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](https://github.com/Shougo/neocomplcache.vim) / [neocomplete](https://github.com/Shougo/neocomplete.vim) interface, you might have less trouble using them, because you do not have to remember each snippet name. 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. Notes: * Default snippets files are available in: [neosnippet-snippets](https://github.com/Shougo/neosnippet-snippets) * Installing default snippets is optional. If choose not to install them, you must deactivate them with `g:neosnippet#disable_runtime_snippets`. * neocomplcache/neocomplete is not required to use neosnippet, but it's highly recommended. * Extra snippets files can be found in: [vim-snippets](https://github.com/honza/vim-snippets). ### Manual (not recommended) 1. Install the [neocomplcache](https://github.com/Shougo/neocomplcache.vim)/ [neocomplete](https://github.com/Shougo/neocomplete.vim) and [neosnippet-snippets](https://github.com/Shougo/neosnippet-snippets) first. 2. Put files in your Vim directory (usually `~/.vim/` or `%PROGRAMFILES%/Vim/vimfiles` on Windows). ### Vundle 1. Setup the [vundle](https://github.com/gmarik/vundle) package manager 2. Set the bundles for [neocomplcache](https://github.com/Shougo/neocomplcache) or [neocomplete](https://github.com/Shougo/neocomplete.vim) And [neosnippet](https://github.com/Shougo/neosnippet) And [neosnippet-snippets](https://github.com/Shougo/neosnippet-snippets) ```vim 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](https://github.com/Shougo/neobundle.vim) package manager 2. Set the bundles for [neocomplcache](https://github.com/Shougo/neocomplcache) or [neocomplete](https://github.com/Shougo/neocomplete.vim) And [neosnippet](https://github.com/Shougo/neosnippet) And [neosnippet-snippets](https://github.com/Shougo/neosnippet-snippets) ```vim 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](https://github.com/MarcWeber/vim-addon-manager) package manager. 2. Add `neosnippet` to the list of addons in your vimrc: ```vim 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. ```vim " Plugin key-mappings. imap (neosnippet_expand_or_jump) smap (neosnippet_expand_or_jump) xmap (neosnippet_expand_target) " SuperTab like snippets behavior. imap neosnippet#expandable_or_jumpable() ? \ "\(neosnippet_expand_or_jump)" \: pumvisible() ? "\" : "\" smap neosnippet#expandable_or_jumpable() ? \ "\(neosnippet_expand_or_jump)" \: "\" " 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](https://github.com/honza/vim-snippets)) But if you enable `g:neosnippet#enable_snipmate_compatibility`, neosnippet will load snipMate snippets from runtime path automatically. ```vim " 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' ```