2. Profile
● Shougo
● The dark powered Vim user 暗黒美無王
(Uncock Vim Awe, The dark Vim maestro)
● The text editor is the world
● My icon is not zebra!
3. The dark powered plugins
● deoplete.nvim: The next completion plugin for neovim
● deol.nvim: The next terminal plugin for neovim/Vim8
● dein.vim: The next plugin manager for neovim/Vim8
● denite.nvim: The next UI plugin for neovim/Vim8
● deoppet.nvim: The next snippet plugin for neovim (vaporware)
● defx.nvim: The next file manager for neovim/Vim8 (vaporware)
● deorise.nvim: The next hexadecimal editor plugin for neovim/Vim8
(vaporware)
4. Today's theme
● The snippet plugins
● neosnippet.vim
● deoppet.nvim
● The extra thing
Note:No songs
6. What is the snippet plugin?
● It expands the snippet trigger
Ex: if → if () {}
● And jumps the next places(place holder)
Ex: if (${1}) { ${2} }
● You don’t have to insert the texts and move to the next
position manually
● The similar plugins: The template plugin, emmet-vim
10. What is the marker type snippet plugin?
● It adds the markers to the buffer to detect the next jump
places
Ex: <`1`>
● It is easy to implement
● No performance problem
● Easy to find the next jump places
11. What is the non marker type snippet
plugin?
● It monitors the buffer changes to find the next jump
position
● The implementation is complex
● It is easy to implement jump back feature
13. The history of neosnippet.vim
● I don't understand why the snippet plugins are useful
● I have created the snippet plugin as builtin
neocomplcache source
● The snippet plugin is very huge... → neosnippet.vim
● The default snippets are very huge and not easy to
customize for the users → neosnippet-snippets
14. neosnippet.vim disadvantages
● Conflicts with conceal feature
● Hard to implement jump back feature
● It changes the buffer
● The slow parser (Vim script performance problem)
● It is hard to extend…
16. deoppet.nvim
https://github.com/Shougo/deoppet.nvim
● The dark powered neo snippet plugin
● Compatible syntax with neosnippet.vim
● The non-marker type snippet plugin
● It depends on Extended Marks feature in neovim
https://github.com/neovim/neovim/pull/5031
● neovim only
● Python3 based, almost 300 lines
17. Extended marks feature
● It detects the buffer changes automatically
● The plugins don’t have to detect the buffer changes
● And it has the namespaces
let ns = nvim_init_mark_ns(‘deoppet’)
let id = nvim_buf_set_marks(bufnr, ns, ‘’, row, col)
18. Current development status
● Works the simple neosnippet syntax parser
● Can expand the snippet trigger
● The Completion by deoplete
● Can Jump forward/jump back to the placeholders
● It is hard to try...
19. Current development status
● Works the simple neosnippet syntax parser
● Can expand the snippet trigger
● The Completion by deoplete
● Can Jump forward/jump back to the placeholders
● It is hard to try...