neosnippet.vim/README.md

2.9 KiB

Neosnippet

The Neosnippet plug-In adds snippet support to Vim. Snippets are small templates for commonly used code that you can fill in on the fly. To use snippets can increase your productivity in Vim a lot. The functionality of this plug-in is quite similar to plug-ins like snipMate.vim or snippetsEmu.vim. But since you can choose snippets with the Neocomplecache interface, you might have less trouble using them, because you do not have to remember each snippet name.

Installation

To install this Vim plug-in it is recommended to use one of the popular package managers for Vim, rather than installing by drag and drop all required files into your .vim folder.

  1. Install Neocomplecache first.
  2. Put files in your Vim directory (usually ~/.vim/ or %PROGRAMFILES%/Vim/vimfiles on Windows).

Vundle

  1. Setup the vundle package manager
  2. Set the bundles for Neocomplecache and Neobundle
Bundle 'Shougo/neocomplcache.git'
Bundle 'Shougo/neosnippet.git'
  1. Open up Vim and start installation with :BundleInstall

Neobundle

  1. Setup the neobundle package manager
  2. Set the bundles for Neocomplecache and Neobundle
NeoBundle 'Shougo/neocomplcache.git'
NeoBundle 'Shougo/neosnippet.git'
  1. Open up Vim and start installation with :NeoBundleInstall

Configuration

Here is an example ~/.vimrc configuration for Neosnippet. It is assumed you already have Neocomplecache configured.

With these settings, you will use the following keys:

  • C-k to select-and-expand a snippet from the Neocomplecache popup (Use C-n and C-p to select it). C-k can also be used to jump to the next field in the snippet.
  • Tab to select the next field to fill in the snippet.
" Plugin key-mappings.
imap <C-k>     <Plug>(neosnippet_expand_or_jump)
smap <C-k>     <Plug>(neosnippet_expand_or_jump)

" SuperTab like snippets behavior.
imap <expr><TAB> neosnippet#expandable() ? "\<Plug>(neosnippet_expand_or_jump)" : pumvisible() ? "\<C-n>" : "\<TAB>"
smap <expr><TAB> neosnippet#expandable() ? "\<Plug>(neosnippet_expand_or_jump)" : "\<TAB>"

" For snippet_complete marker.
if has('conceal')
  set conceallevel=2 concealcursor=i
endif

If you want to use a different collection of snippets other than the built-in ones, such as Honza's Snippets, then you can set the g:neosnippet#snippets_directory variable.

" Tell Neosnippet about these snippets
let g:neosnippet#snippets_directory='~/.vim/bundle/snipmate-snippets/snippets'