48 lines
2.0 KiB
Markdown
48 lines
2.0 KiB
Markdown
|
# obsession.vim
|
||
|
|
||
|
Vim features a `:mksession` command to write a file containing the current
|
||
|
state of Vim: window positions, open folds, stuff like that. For most of my
|
||
|
existence, I found the interface way too awkward and manual to be useful, but
|
||
|
I've recently discovered that the only thing standing between me and simple,
|
||
|
no-hassle Vim sessions is a few tweaks:
|
||
|
|
||
|
* Instead of making me remember to capture the session immediately before
|
||
|
exiting Vim, allow me to do it at any time, and automatically re-invoke
|
||
|
`:mksession` immediately before exit.
|
||
|
* Also invoke `:mksession` whenever the layout changes (in particular, on
|
||
|
`BufEnter`), so that even if Vim exits abnormally, I'm good to go.
|
||
|
* If I load an existing session, automatically keep it updated as above.
|
||
|
* If I try to create a new session on top of an existing session, don't refuse
|
||
|
to overwrite it. Just do what I mean.
|
||
|
* If I pass in a directory rather than a file name, just create a
|
||
|
`Session.vim` inside of it.
|
||
|
* Don't capture options and maps. Options are sometimes mutilated and maps
|
||
|
just interfere with updating plugins.
|
||
|
|
||
|
Use `:Obsess` (with optional file/directory name) to start recording to a
|
||
|
session file and `:Obsess!` to stop and throw it away. That's it. Load a
|
||
|
session in the usual manner: `vim -S`, or `:source` it.
|
||
|
|
||
|
## Installation
|
||
|
|
||
|
If you don't have a preferred installation method, I recommend
|
||
|
installing [pathogen.vim](https://github.com/tpope/vim-pathogen), and
|
||
|
then simply copy and paste:
|
||
|
|
||
|
cd ~/.vim/bundle
|
||
|
git clone git://github.com/tpope/vim-obsession.git
|
||
|
|
||
|
## Self-Promotion
|
||
|
|
||
|
Like obsession.vim? Follow the repository on
|
||
|
[GitHub](https://github.com/tpope/vim-obsession) and vote for it on
|
||
|
[vim.org](http://www.vim.org/scripts/script.php?script_id=4472). And if
|
||
|
you're feeling especially charitable, follow [tpope](http://tpo.pe/) on
|
||
|
[Twitter](http://twitter.com/tpope) and
|
||
|
[GitHub](https://github.com/tpope).
|
||
|
|
||
|
## License
|
||
|
|
||
|
Copyright © Tim Pope. Distributed under the same terms as Vim itself.
|
||
|
See `:help license`.
|