Slide 1

Slide 1 text

࡞ͬͯΘ͔Δ ݱ୅ͷVimͷAutoComplete ~ͦͯ͠VimConf2019΁~ gorilla.vim #9 @lighttiger2505

Slide 2

Slide 2 text

ࣗݾ঺հ • lighttiger2505(Toshikazu Ohashi) • αʔόαΠυΤϯδχΞ@iRidge • Vimྺ3೥͘Β͍ • झຯ • CLIίϚϯυͱVim͍͡Γ

Slide 3

Slide 3 text

AutoCompleteͯ͠·͔͢ʁ

Slide 4

Slide 4 text

AutoComplete͕ Ͳ͏ಈ͘ͷ͔ؾʹͳͬͯ ໷΋຾Ε·ͤΜ͔ʁ

Slide 5

Slide 5 text

ΞδΣϯμ • [ΠϯτϩμΫγϣϯ] Auto Completeͱ͸ʁ • Auto CompleteΛ࡞ͬͯΈΑ͏ • ݱ୅ͷVimͷAuto Completeͱ͸ • એ఻

Slide 6

Slide 6 text

AutoCompleteͱ͸ʁ

Slide 7

Slide 7 text

AutoCompleteͱ͸ • Ϣʔβ͕ΤσΟλʹೖྗͨ͠಺༰ʹԠͯ͡ Ϛον͢ΔީิΛҰཡදࣔ͠ɺೖྗΛิॿ͢ Δػೳ

Slide 8

Slide 8 text

ͳ͓Vimʹ͸(खಈ)ิ׬͕͋Δ • `:help ins-completion` • `CTRL-X`Λى఺ʹ༷ʑͳछྨͷิ׬͕͋Δ • ϑΝΠϧ಺ͷΩʔϫʔυิ׬ • ΦϜχิ׬

Slide 9

Slide 9 text

VimConf2018Ͱൃද͞Εͨ ࢀߟʹͳΔεϥΠυ • https://speakerdeck.com/daisuzu/migrating- plugins-to-standard-features

Slide 10

Slide 10 text

VimͷAutoComplete͸ ϓϥάΠϯʹΑ࣮ͬͯݱ • ϓϥάΠϯͰ࣮ݱͰ͖Δͱ͍͏͜ͱ͸ • Πίʔϧࣗ෼Ͱ࡞ΕΔ • ࡞ͬͯΈΑ͏

Slide 11

Slide 11 text

AutoCompleteΛ ࡞ͬͯΈΑ͏

Slide 12

Slide 12 text

ຊεςοϓͷΰʔϧ • lookcomplete.nvim

Slide 13

Slide 13 text

શ̒εςοϓͰ࡞੒ 1. ࠷খͷิ׬ 2. ิ׬ͷڍಈΛௐ੔ 3. ࣗಈͰิ׬ 4. ӳ୯ޠΛิ׬ 5. ඇಉظͰิ׬ީิΛऔಘ 6. ίʔϧόοΫͷνΣοΫ

Slide 14

Slide 14 text

ຊσϞͰར༻͢Δίʔυ • GitHubͰެ։͞Ε͍ͯ·͢ • https://github.com/lighttiger2505/ lookcomplete.nvim

Slide 15

Slide 15 text

1. ࠷খͷิ׬ • `:help complete` • ૊ࠐΈؔ਺Ͱิ׬ީิΛදࣔ

Slide 16

Slide 16 text

2. ิ׬ͷڍಈΛௐ੔ • F5Λ͓ͨ͠ॠؒʹิ׬ީิ͕Πϯαʔτ • `:help completeopt`Λมߋ • ೖྗࡁΈ಺༰ʹॏෳͯ͠ૠೖ • `complete`ͷ`startcol`Λࢦఆ

Slide 17

Slide 17 text

3. ࣗಈͰิ׬ • `TextChangedI`͝ͱʹpumΛߋ৽ • `InsertEnter/Leave`ͰΧʔιϧߦΛอ࣋ • ΠϯαʔτϞʔυʹͳͬͨॠؒʹදࣔ͞ΕΔ • ೖྗ͕ͳ͍৔߹ʹީิදࣔΛແޮԽ

Slide 18

Slide 18 text

4. ӳ୯ޠΛิ׬ • lookίϚϯυ

Slide 19

Slide 19 text

5. ඇಉظͰิ׬ީิΛऔಘ • lookίϚϯυ࣮ߦதVim͕ϒϩοΫ • `:help jobstart(in NeoVim)`

Slide 20

Slide 20 text

6. ίʔϧόοΫͷνΣοΫ • lookίϚϯυ͕஗͔ͬͨ৔߹͓͔͠ͳڍಈ • lookίϚϯυͷίʔϧͨ͠ঢ়گ(Context)ͱ ิ׬දࣔͷঢ়گͱҰகͨ͠ͱ͖͚ͩදࣔ

Slide 21

Slide 21 text

࡞ͬͯΘ͔ͬͨAutoComplete • ΤσΟλͷ֩Ͱ͋ΔςΩετมߋΛϑοΫ͢ ΔͷͰɺ΋ͷ͘͢͝ؾΛ͔ͭ͏ • Ϣʔβ͕৺஍ྑ͍λΠϛϯάͰิ׬Λग़͢ • ࡉ͔͍ௐ੔/νΣοΫॲཧ͕ෆՄܽ

Slide 22

Slide 22 text

࡞ͬͯΘ͔ͬͨAutoComplete • ςΩετฤूΛϒϩοΫͯ͠͸ͳΒͳ͍ • ߴ଎ॲཧɺඇಉظॲཧ͕ඞਢ

Slide 23

Slide 23 text

ݱ୅ͷVimͷ AutoCompleteͱ͸

Slide 24

Slide 24 text

Αࣗ͠෼΋AutoComplete ϓϥΪϯΛ࡞Ζ͏ʂ • ͪΐͬͱ·ͬͯ • ଞͷAutoCompleteͱׯব • ϓϥάΠϯ͝ͱʹॏෳͨ͠ॲཧ • VimͷΠϕϯτϑοΫ/ίϯςΩετऔಘ/֤छνΣοΫ • ඇಉظιʔεऔಘͷࠔ೉͞ • VimͱNeoVimͷ྆ରԠ͸ͭΒͦ͏...

Slide 25

Slide 25 text

Completion Manager • ΠϕϯττϥοΩϯά͔Βิ׬ιʔεऔಘɺ ϙοϓΞοϓ੍ޚͳͲΛߦ͏ิ׬ϑϨʔϜϫʔ Ϋ

Slide 26

Slide 26 text

Completion Manager • ίΞͷิ׬ػೳͱิ׬ιʔεΛΠϯλϑΣʔ εܦ༝Ͱૄ݁߹ʹ • ิ׬ιʔεΛϓϥάΠϯՄೳ͔ͭݸผ։ൃ͕ Մೳ • ิ׬ιʔε։ൃऀ͸ΠϯλϑΣʔεʹै͑ ͹ൺֱత؆୯ʹߴ଎ͳิ׬ͷԸܙΛड͚Δ

Slide 27

Slide 27 text

Completion Managerͷߏ੒ $PNQMFUJPO.BOBHFS 4PVSDF ΠϕϯττϥοΩϯά ิ׬ιʔεґཔ ิ׬ީิදࣔ ิ׬ιʔεऔಘ ิ׬ιʔε ίʔϧόοΫ BTZOD DUY

Slide 28

Slide 28 text

۩ମྫ • deoplete.nvim • https://github.com/Shougo/deoplete.nvim/wiki/Completion- Sources • asyncomplete.vim • https://github.com/prabirshrestha/ asyncomplete.vim#sources • coc.nvim • https://github.com/neoclide/coc.nvim#completion-sources

Slide 29

Slide 29 text

Completion ManagerͰ շదͳੜ׆Λ

Slide 30

Slide 30 text

એ఻

Slide 31

Slide 31 text

2019/11/03

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

Keynote speaker • Prabir Shrestha • asyncomplete.vim • lookcomplete.nvim͸΄΅͜Εͷ؆қ൛ • async.vim • vim-lsp

Slide 34

Slide 34 text

Speaker • Shougo(҉ࠇඒແԦ) • deoplete.nvim • Completion Manager࠷ڧͷ֦ுੑ • ϦϞʔτϓϥάΠϯͷ୅ද֨

Slide 35

Slide 35 text

Keynote speaker • Justin M. Keyes • NeoVim • Ϧʔυϝϯςφʔ

Slide 36

Slide 36 text

Lightning Talk • lighttiger2505 • deoplete-vim-lsp • deoplete.vimͱvim-lspʹ͓ΜͿʹͩͬ͜

Slide 37

Slide 37 text

Let's enjoy VimConf2019