Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Vim conf2019 | PDF
[go: Go Back, main page]

My dark plugins development
history ~ over 10 years ~
Shougo
2
"My presentation may
be the last.
So I need to speak the
development history."
Note
3
Profile
●
Shougo= 暗黒美無王
●
“Dark Vim Master”
(pronounciation: Uncock Vim Awe)
●
Text editor is the world
=
4
VimConf 2019’s theme
●
“How to be more productive with
Vim?”
5
“more productive with Vim” is ...
●
To develop dark plugins is my
productive method!
6
My theme is ...
●
My dark plugins development
history over 10 years
●
“Why does Shougo discard Vim
script and choose Python3
instead?”
7
What is “dark plugins”?(1)
●
I want to do everything in
Vim(neovim) like Emacs
●
It is not allowed by “:help design-
not” in Vim
8
What is “dark plugins”?(2)
●
It is not the light way to use Vim
●
I have defined it as the dark way
My plugins are
dark powered!
9
Zero generation plugins
●
Autocomplpop.vim(acp.vim)
●
FuzzyFinder.vim(fzf.vim)
●
Shell.vim
10
Why did I use the plugins?
●
I used IDEs in Windows
●
I wanted to use IDE features
11
Why did I quit to use zero
generation plugins?
●
The plugins are not customizable
fully
●
Does not exist plugins for me
●
I can create the plugins!
12
1st
generation plugins
●
vimshell.vim (2009)
●
neocomplcache.vim (2009)
●
neosnippet.vim (2012)
13
Vimshell.vim
14
Neocomplcache.vim
15
Neosnippet.vim
16
1st
generation features
●
Custimizable
●
Many functions
●
Pluggable
17
2nd
generation plugins
●
unite.vim (2010)
●
vimfiler.vim (2010)
●
neobundle.vim (2011)
●
neocomplete.vim (2013)
18
2nd
generation features
●
Use if_lua
●
Plugins combination
19
I choosed if_lua because...
Vim script is
too Slow!!!
20
Plugins combination examples
●
Unite.vim + vimfiler.vim
●
Neocomplete.vim +
neosnippet.vim
●
Unite.vim + neobundle.vim
21
3rd
generation plugins
●
deoplete.nvim (2015)
●
denite.nvim (2016)
●
deol.nvim (2016)
●
dein.vim (2015)
22
3rd
generation features
●
Use Vim8/neovim features
●
Use Python3 instead
●
Asynchronous
23
Use Vim8/neovim features
●
:terminal
●
Job APIs
●
Remote plugins
●
winid
●
And more…
●
No more Vim 7!
24
I have chosen Python3 because...
Vim script is
too Slow!!!
25
Python3 vs if_lua
90% 10%
if_lua
Python3
26
For example:
slow!
27
4th
generation plugins
●
deoplete.nvim (2019, ver. 5.1~)
●
denite.nvim (2019, ver. 3.0~)
●
deoppet.nvim (2017)
●
defx.nvim (2018)
28
4th
generation features
●
Type definitions
●
Non default key-mappings
●
Remove configuration variables
mappings variables
29
Why is type definition important?
●
It can detect some bugs
●
Detect bugs is important
30
Why non default key-mappings?(1)
https://github.com/Shougo/
defx.nvim/issues/5
31
Why non default key-mappings?(2)
●
No best default key mappings
●
Hard to define defaults
●
Conflict with other plugins/config
Default mappings
are not needed!
32
Why I have removed configuration
variables?
●
Functions can keep interfaces in
multiple plugins
●
Example:
call defx#custom#option('_', {})
call denite#custom#option('_', {})
33
Let’s create your plugins!
●
This is just my history.
●
You can choose other selection!
34
Your Vim is your text editor!
The extra: denite.nvim version 3
Shougo
36
Denite.nvim big changes
●
Many issues are reported after
upgrade
37
Denite.nvim version 2
●
Steal your input
●
Define original mappings
●
Similar to ctrlp.vim
38
Denite.nvim version 2
Prompt
39
Prompt UI’s disadvantages
●
Ignore user’s configuration
●
Hard to work asynchronously
●
Cannot combine with other
plugins
●
They fit with my policy???
40
My plugin development policy
●
Customizable
●
Combine with other plugins
●
Asynchronous if possible
41
Denite.nvim version 3
●
Replace prompt.nvim to normal
buffer
●
Edit buffer instead of command
line
42
Denite.nvim version 3
Normal buffer
Edit buffer
43
New UI advantages
●
Use user’s configuration
●
Easy to work asynchronously
●
Can combine with other plugins
●
The features fit with my policy!
44
Denite.nvim version 3 Demo
The extra2: My development note
Shougo
46
My development style
●
https://employmen
t.en-japan.com/en
gineerhub/entry/2
018/08/28/110000
47
I don’t use memo plugins!
●
Memolist.vim
●
QfixHowm
●
Vimwiki
●
…
48
I use paper note for development
●
Here
49
I use the paper note for...
●
(Finished)task list
●
Technology notes
●
Survey for issues
50
Why do I use paper note?
●
Not needed PC!
●
Free style
51
The note is the strongest Vim for me!
●
Thank you!
52
End
●
Any questions?

Vim conf2019