neosnippet.vim/README.md

128 lines
4.1 KiB
Markdown
Raw Normal View History

Neosnippet
==========
2012-10-31 08:11:33 +00:00
The Neosnippet plug-In adds snippet support to Vim. Snippets are
2012-10-30 14:20:46 +00:00
small templates for commonly used code that you can fill in on the
2012-10-31 08:11:33 +00:00
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
2012-10-30 14:20:46 +00:00
snipMate.vim or snippetsEmu.vim. But since you can choose snippets with the
2013-06-05 05:29:46 +00:00
[neocomplcache](https://github.com/Shougo/neocomplcache.vim) /
[neocomplete](https://github.com/Shougo/neocomplete.vim) interface, you might
2012-10-30 14:20:46 +00:00
have less trouble using them, because you do not have to remember each snippet
name.
2013-06-04 13:39:30 +00:00
Note: neocomplcache/neocomplete is NOT required! But recommended.
2013-02-24 13:23:31 +00:00
2013-03-24 08:22:20 +00:00
Extra snippets files are available in:
2013-04-05 00:32:56 +00:00
[vim-snippets](https://github.com/honza/vim-snippets)
2013-03-24 08:22:20 +00:00
2012-10-30 14:20:46 +00:00
Installation
------------
2012-10-31 08:17:27 +00:00
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.
2012-10-31 08:11:33 +00:00
### Manual (not recommended)
2013-06-05 05:29:46 +00:00
1. Install the
[neocomplcache](https://github.com/Shougo/neocomplcache.vim)/
[neocomplete](https://github.com/Shougo/neocomplete.vim) plugin first.
2. Put files in your Vim directory (usually `~/.vim/` or
`%PROGRAMFILES%/Vim/vimfiles` on Windows).
2012-10-31 08:11:33 +00:00
### Vundle
2013-06-05 05:29:46 +00:00
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)
2012-10-31 08:11:33 +00:00
2013-04-23 14:42:24 +00:00
```vim
Bundle 'Shougo/neocomplcache'
2013-06-05 05:29:46 +00:00
or
Bundle 'Shougo/neocomplete'
2013-04-23 14:42:24 +00:00
Bundle 'Shougo/neosnippet'
```
2012-10-31 08:11:33 +00:00
3. Open up Vim and start installation with `:BundleInstall`
### Neobundle
1. Setup the [neobundle](https://github.com/Shougo/neobundle.vim) package manager
2013-06-05 05:29:46 +00:00
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)
2012-10-31 08:11:33 +00:00
2013-04-23 14:42:24 +00:00
```vim
NeoBundle 'Shougo/neocomplcache'
2013-06-05 05:29:46 +00:00
or
NeoBundle 'Shougo/neocomplete'
2013-04-23 14:42:24 +00:00
NeoBundle 'Shougo/neosnippet'
```
2012-10-31 08:11:33 +00:00
3. Open up Vim and start installation with `:NeoBundleInstall`
### VAM (vim-addon-manager)
2013-06-05 05:29:46 +00:00
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'])
```
. Installation will start automatically when you open vim next time.
2012-10-30 14:20:46 +00:00
Configuration
-------------
2012-10-31 08:17:27 +00:00
This is an example `~/.vimrc` configuration for Neosnippet. It is assumes you
2013-04-05 00:19:52 +00:00
already have Neocomplcache configured. With the settings of the example, you
2012-10-31 08:17:27 +00:00
can use the following keys:
2013-04-05 00:19:52 +00:00
* `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 <C-k> <Plug>(neosnippet_expand_or_jump)
smap <C-k> <Plug>(neosnippet_expand_or_jump)
2013-04-23 14:42:24 +00:00
xmap <C-k> <Plug>(neosnippet_expand_target)
" SuperTab like snippets behavior.
2013-04-23 14:42:24 +00:00
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
```
2012-10-31 08:17:27 +00:00
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
2013-04-05 00:32:56 +00:00
Snippets](https://github.com/honza/vim-snippets))
2013-11-12 08:19:02 +00:00
But if you enable g:neosnippet#enable_snipmate_compatibility, neosnippet will
load snipMate snippets from runtime path automatically.
```vim
2013-04-23 14:42:24 +00:00
" Enable snipMate compatibility feature.
let g:neosnippet#enable_snipmate_compatibility = 1
2012-10-31 08:17:27 +00:00
" Tell Neosnippet about the other snippets
2013-04-05 00:32:56 +00:00
let g:neosnippet#snippets_directory='~/.vim/bundle/vim-snippets/snippets'
```