/vim-stay

Make Vim persist editing state without fuss

Primary LanguageVim ScriptMIT LicenseMIT

Stay at my cursor, boy!

Project status Current release Open issues License Lint status

vim-stay adds automated view session creation and restoration whenever editing a buffer, across Vim sessions and window life cycles. It also alleviates Vim's tendency to lose view state when cycling through buffers (via argdo, bufdo et al.). It is smart about which buffers should be persisted and which should not, making the procedure painless and invisible.

If you have wished Vim would be smarter about keeping your editing state, vim-stay is for you.

Installation

  1. The old way: download and source the vimball from the releases page, then run :helptags {dir} on your runtimepath/doc directory. Updating the plug-in via :GetLatestVimScripts is supported. Or,
  2. The plug-in manager way: using a git-based plug-in manager (Pathogen, Vundle, NeoBundle, Vim-Plug etc.), simply add zhimsel/vim-stay to the list of plug-ins, source that and issue your manager's install command. Or,
  3. The Vim package way (requires Vim 7.4 with patch 1384): create a pack/vim-stay/start/ directory in your 'packagepath' and clone this repository into it. Run :helptags {dir} on the doc directory of the created repo. Run :runtime plugin/stay.vim to load vim-stay (or restart Vim).

Usage

Recommended: set viewoptions=cursor,folds,slash,unix (but at the very least do set viewoptions-=options). Edit as usual. See the documentation for more.

Rationale

Keeping editing session state should be a given in an editor; unluckily, Vim's solution for this, view sessions, are not easily automated without encountering painful bumps. As the one plug-in available that aimed to fix this, Zhou Yi Chao’s restore_view.vim, limited itself to Vim editing sessions, didn’t play well with other position setting plug-ins like vim-fetch and as there were some issues with its heuristics, vim-stay was born.

License

vim-stay is licensed under the terms of the MIT license according to the accompanying license file.