Go to file
Shougo Matsushita 6b3a670b5a Fix error
2014-01-11 16:35:29 +09:00
autoload Fix error 2014-01-11 16:35:29 +09:00
doc Version 4.1 Fatal: split default snippets repository 2014-01-11 16:29:00 +09:00
ftdetect Renamed files 2013-12-31 07:54:47 +09:00
ftplugin Renamed files 2013-12-31 07:54:47 +09:00
indent Fixed SnippetsIndent() 2014-01-05 23:18:39 +09:00
plugin Rename snippet to neosnippet 2013-12-31 07:54:47 +09:00
syntax Rename snippet to neosnippet 2013-12-31 07:54:47 +09:00
.gitignore Add .gitignore to ignore doc/tag. 2012-05-05 23:28:47 +08:00
README.md Version 4.1 Fatal: split default snippets repository 2014-01-11 16:29:00 +09:00

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 / neocomplete interface, you might have less trouble using them, because you do not have to remember each snippet name.

Note: Default snippets are required! You must install them or disable runtime snippets by g:neosnippet#disable_runtime_snippets.

Default snippets files are available in: neosnippet-snippets

Note: neocomplcache/neocomplete 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.

  1. Install the neocomplcache/ neocomplete and neosnippet-snippets 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 neocomplcache or neocomplete And neosnippet And neosnippet-snippets

    Bundle 'Shougo/neocomplcache'
    or
    Bundle 'Shougo/neocomplete'
    
    Bundle 'Shougo/neosnippet'
    Bundle 'Shougo/neosnippet-snippets'
    
  3. Open up Vim and start installation with :BundleInstall

Neobundle

  1. Setup the neobundle package manager

  2. Set the bundles for neocomplcache or neocomplete And neosnippet And neosnippet-snippets

    NeoBundle 'Shougo/neocomplcache'
    or
    NeoBundle 'Shougo/neocomplete'
    
    NeoBundle 'Shougo/neosnippet'
    NeoBundle 'Shougo/neosnippet-snippets'
    
  3. Open up Vim and start installation with :NeoBundleInstall

VAM (vim-addon-manager)

  1. Setup the vim-addon-manager package manager.

  2. Add neosnippet to the list of addons in your vimrc:

    call vam#ActivateAddons(['neosnippet', 'neosnippet-snippets'])
    

    . 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 (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)
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)

But if you enable g:neosnippet#enable_snipmate_compatibility, neosnippet will load snipMate snippets from runtime path automatically.

" 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'