2012-10-29 23:00:04 +00:00
|
|
|
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
|
2018-05-01 11:40:19 +00:00
|
|
|
snipMate.vim. But since you can choose snippets with the
|
|
|
|
[deoplete](https://github.com/Shougo/deoplete.nvim) interface, you might have
|
|
|
|
less trouble using them, because you do not have to remember each snippet name.
|
2012-10-30 14:20:46 +00:00
|
|
|
|
|
|
|
Installation
|
|
|
|
------------
|
2012-10-29 23:00:04 +00:00
|
|
|
|
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
|
|
|
|
2014-01-15 22:22:01 +00:00
|
|
|
Notes:
|
|
|
|
|
2017-02-13 07:44:33 +00:00
|
|
|
* Vim 7.4 or above is needed.
|
|
|
|
|
2018-05-01 11:40:19 +00:00
|
|
|
* Vim 8.0 or above or neovim is recommended.
|
|
|
|
|
2014-01-15 22:22:01 +00:00
|
|
|
* Default snippets files are available in:
|
|
|
|
[neosnippet-snippets](https://github.com/Shougo/neosnippet-snippets)
|
2018-05-01 11:40:19 +00:00
|
|
|
|
2014-01-15 22:22:01 +00:00
|
|
|
* Installing default snippets is optional. If choose not to install them,
|
|
|
|
you must deactivate them with `g:neosnippet#disable_runtime_snippets`.
|
|
|
|
|
2018-05-01 11:40:19 +00:00
|
|
|
* deoplete is not required to use neosnippet, but it's highly recommended.
|
2012-10-31 08:11:33 +00:00
|
|
|
|
2018-05-01 11:40:19 +00:00
|
|
|
* Extra snippets files can be found in:
|
|
|
|
[vim-snippets](https://github.com/honza/vim-snippets).
|
2012-10-29 23:00:04 +00:00
|
|
|
|
2014-01-11 07:29:00 +00:00
|
|
|
### Vundle
|
2012-10-31 08:11:33 +00:00
|
|
|
|
2013-04-23 14:42:24 +00:00
|
|
|
```vim
|
2018-05-01 11:40:19 +00:00
|
|
|
Plugin 'Shougo/deoplete.nvim'
|
|
|
|
if !has('nvim')
|
|
|
|
Plugin 'roxma/nvim-yarp'
|
|
|
|
Plugin 'roxma/vim-hug-neovim-rpc'
|
|
|
|
endif
|
2013-06-05 05:29:46 +00:00
|
|
|
|
2018-05-01 11:40:19 +00:00
|
|
|
Plugin 'Shougo/neosnippet.vim'
|
2015-06-22 23:27:39 +00:00
|
|
|
Plugin 'Shougo/neosnippet-snippets'
|
2013-03-03 15:19:22 +00:00
|
|
|
```
|
2012-10-31 08:11:33 +00:00
|
|
|
|
2018-05-01 11:40:19 +00:00
|
|
|
### dein.vim
|
2012-10-31 08:11:33 +00:00
|
|
|
|
2013-04-23 14:42:24 +00:00
|
|
|
```vim
|
2018-05-01 11:40:19 +00:00
|
|
|
call dein#add('Shougo/deoplete.nvim')
|
|
|
|
if !has('nvim')
|
|
|
|
call dein#add('roxma/nvim-yarp')
|
|
|
|
call dein#add('roxma/vim-hug-neovim-rpc')
|
|
|
|
endif
|
|
|
|
let g:deoplete#enable_at_startup = 1
|
|
|
|
|
|
|
|
call dein#add('Shougo/neosnippet.vim')
|
|
|
|
call dein#add('Shougo/neosnippet-snippets')
|
2013-03-03 15:19:22 +00:00
|
|
|
```
|
2012-10-31 08:11:33 +00:00
|
|
|
|
2018-05-01 11:40:19 +00:00
|
|
|
### vim-plug
|
2013-03-03 15:19:22 +00:00
|
|
|
|
|
|
|
```vim
|
2018-05-01 11:40:19 +00:00
|
|
|
if has('nvim')
|
|
|
|
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
|
|
|
|
else
|
|
|
|
Plug 'Shougo/deoplete.nvim'
|
|
|
|
Plug 'roxma/nvim-yarp'
|
|
|
|
Plug 'roxma/vim-hug-neovim-rpc'
|
|
|
|
endif
|
|
|
|
let g:deoplete#enable_at_startup = 1
|
|
|
|
|
|
|
|
Plug 'Shougo/neosnippet.vim'
|
|
|
|
Plug 'Shougo/neosnippet-snippets'
|
2013-03-03 15:19:22 +00:00
|
|
|
```
|
|
|
|
|
2012-10-30 14:20:46 +00:00
|
|
|
Configuration
|
|
|
|
-------------
|
2012-10-29 23:00:04 +00:00
|
|
|
|
2015-07-23 18:50:40 +00:00
|
|
|
This is an example `~/.vimrc` configuration for Neosnippet. It is assumed you
|
2018-05-01 11:40:19 +00:00
|
|
|
already have deoplete configured. With the settings of the example, you can use
|
|
|
|
the following keys:
|
2012-10-29 23:00:04 +00:00
|
|
|
|
2018-05-01 11:40:19 +00:00
|
|
|
* `C-k` to select-and-expand a snippet from the deoplete popup (Use `C-n`
|
2012-10-29 23:00:04 +00:00
|
|
|
and `C-p` to select it). `C-k` can also be used to jump to the next field in
|
|
|
|
the snippet.
|
2018-05-01 11:40:19 +00:00
|
|
|
|
2012-10-29 23:00:04 +00:00
|
|
|
* `Tab` to select the next field to fill in the snippet.
|
|
|
|
|
|
|
|
```vim
|
|
|
|
" Plugin key-mappings.
|
2017-01-08 12:34:29 +00:00
|
|
|
" Note: It must be "imap" and "smap". It uses <Plug> mappings.
|
2012-10-29 23:00:04 +00:00
|
|
|
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)
|
2012-10-29 23:00:04 +00:00
|
|
|
|
|
|
|
" SuperTab like snippets behavior.
|
2017-01-08 12:34:29 +00:00
|
|
|
" Note: It must be "imap" and "smap". It uses <Plug> mappings.
|
2015-08-31 20:03:27 +00:00
|
|
|
"imap <expr><TAB>
|
|
|
|
" \ pumvisible() ? "\<C-n>" :
|
|
|
|
" \ neosnippet#expandable_or_jumpable() ?
|
2015-11-07 01:18:54 +00:00
|
|
|
" \ "\<Plug>(neosnippet_expand_or_jump)" : "\<TAB>"
|
2013-04-23 14:42:24 +00:00
|
|
|
smap <expr><TAB> neosnippet#expandable_or_jumpable() ?
|
2015-08-31 20:03:27 +00:00
|
|
|
\ "\<Plug>(neosnippet_expand_or_jump)" : "\<TAB>"
|
2012-10-29 23:00:04 +00:00
|
|
|
|
2015-06-23 12:51:53 +00:00
|
|
|
" For conceal markers.
|
2012-10-29 23:00:04 +00:00
|
|
|
if has('conceal')
|
2015-01-28 12:51:56 +00:00
|
|
|
set conceallevel=2 concealcursor=niv
|
2012-10-29 23:00:04 +00:00
|
|
|
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))
|
2012-10-29 23:00:04 +00:00
|
|
|
|
2014-01-11 07:29:00 +00:00
|
|
|
But if you enable `g:neosnippet#enable_snipmate_compatibility`, neosnippet will
|
2013-11-12 08:19:02 +00:00
|
|
|
load snipMate snippets from runtime path automatically.
|
|
|
|
|
2012-10-29 23:00:04 +00:00
|
|
|
```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'
|
2012-10-29 23:00:04 +00:00
|
|
|
```
|
|
|
|
|