3.6 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 Neocomplcache interface, you might have less trouble using them, because you do not have to remember each snippet name.
Note: neocomplcache is NOT required! But recommended.
Extra snippets files are available in: vim-snippets
Installation
To install neosnippet and other Vim plug-ins 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.
Manual (not recommended)
- Install the Neocomplcache plugin first.
- Put files in your Vim directory (usually
~/.vim/
or%PROGRAMFILES%/Vim/vimfiles
on Windows).
Vundle
-
Setup the vundle package manager
-
Set the bundles for Neocomplcache and Neosnippet
Bundle 'Shougo/neocomplcache' Bundle 'Shougo/neosnippet'
-
Open up Vim and start installation with
:BundleInstall
Neobundle
-
Setup the neobundle package manager
-
Set the bundles for Neocomplcache and Neosnippet
NeoBundle 'Shougo/neocomplcache' NeoBundle 'Shougo/neosnippet'
-
Open up Vim and start installation with
:NeoBundleInstall
VAM (vim-addon-manager)
-
Setup the vim-addon-manager package manager.
-
Add
neosnippet
to the list of addons in your vimrc:call vam#ActivateAddons(['neosnippet'])
. Installation will start automatically when you open vim next time.
Configuration
This is an example ~/.vimrc
configuration for Neosnippet. It is assumes you
already have Neocomplcache configured. With the settings of the example, you
can use the following keys:
C-k
to select-and-expand a snippet from the Neocomplcache popup (UseC-n
andC-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)
xmap <C-k> <Plug>(neosnippet_expand_target)
" SuperTab like snippets behavior.
imap <expr><TAB> neosnippet#expandable_or_jumpable() ?
\ "\<Plug>(neosnippet_expand_or_jump)"
\: pumvisible() ? "\<C-n>" : "\<TAB>"
smap <expr><TAB> neosnippet#expandable_or_jumpable() ?
\ "\<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 than the
built-in ones, then you can set a path to the snippets with
the g:neosnippet#snippets_directory
variable (e.g Honza's
Snippets)
" Enable snipMate compatibility feature.
let g:neosnippet#enable_snipmate_compatibility = 1
" Tell Neosnippet about the other snippets
let g:neosnippet#snippets_directory='~/.vim/bundle/vim-snippets/snippets'