gorilla.vim #4 at Akatsuki on 2019/5/15
Neovim 0.4.0 ৽ػೳϑϩʔτΟϯυʹ͍ͭͯgorilla.vim #4, 2019/05/14
View Slide
About Me@Linda_pp@rhysd࠷ۙ git-messenger.vim ͱ͔ͭͬͯ͘·͢
ϑϩʔτΟϯυΛͬͨϓϥάΠϯ
coc.nvimhttps://github.com/neoclide/coc.nvim
LanguageClient-neovimhttps://github.com/autozimu/LanguageClient-neovim
git-messenger.vimhttps://github.com/rhysd/git-messenger.vim
vim-icedhttps://github.com/liquidz/vim-iced
Neovim ϑϩʔτΟϯυAPI
ϑϩʔτΟϯυͱʁλΠϧܕͰͳ͍ɼ৽͍͠ܗࣜͷΟϯυɽNeovim 0.4.0 ͰՃ͞ΕΔCSS Ͱ͍͏ position: absolute; ͳͲͷΑ͏ʹɼطଘͷΟϯυͷ্ʹΦʔόʔϥοϓͨ͠ΟϯυΛͭ͘Δ͜ͱ͕Ͱ͖Δ
call nvim_open_win(bufnr('%'), v:true, {\ 'relative': 'cursor',\ 'anchor': 'NW',\ 'row': 4,\ 'col': 4,\ 'width': 10,\ 'height': 10,\ })
call nvim_open_win(bufnr('%'), v:true, {\ 'relative': 'cursor',\ 'anchor': 'NW',\ 'row': 4,\ 'col': 4,\ 'width': 10,\ 'height': 10,\ })࠷ॳʹ։͘όοϑΝΟϯυΛ։͍ͨޙͦͷதʹΧʔιϧΛҠಈ͢Δ͔Ͳ͏͔ϑϩʔτΟϯυΛͲ͏։͔͘Λࢦఆ͢Δ$POpHࣙॻʢޙड़ʣ։͍ͨϑϩʔτΟϯυͷ8JOEPX*%Λฦ͢
Config ࣙॻΩʔ આ໌ σϑΥϧτSFMBUJWFFEJUPS DVSTPS XJOͷ͏ͪͷ͍ͣΕ͔ΟϯυͷىͷҐஔʢޙड़ʣFEJUPSBODIPS/& /8 4& 48ͷ͍ͣΕ͔ىʹͯ͠ํͷͲ͜ʹΟϯυΛग़͔͢ʢޙड़ʣ/8GPDVTBCMF CPPMFBOϢʔβ͕ΟϯυʹΧʔιϧΛҠಈͰ͖Δ͔WUSVFFYUFSOBM CPPMFBO(6*ଆ͕ϑϩʔτΟϯυΛදࣔ͢Δ͔WGBMTF
"relative" (row: 2, col: 3 ͷͱ͖ʣ• "editor"εΫϦʔϯ• "cursor"ΧʔιϧΟϯυׂ• "relative"˞ରΟϯυXJOΩʔͰࢦఆ͢Δ"row": 2, "col": 3 ͷͱ͖ϑϩʔτΟϯυ
"anchor""relative": "cursor", "row": 0, "col": 0 ͷͱ͖Χʔιϧ• "NE" • "NW"• "SW"• "SE"ΧʔιϧΧʔιϧ Χʔιϧ
։͘Ҏ֎ͷૢ࡞• ด͡Δ → ී௨ͷ Vim ͷΟϯυͱಉ͡ɽ:close :wincmd c nvim_close_win()ͳͲ͖ʹด͡ΒΕΔ• αΠζมߋɾҠಈ →nvim_win_set_config(win_id, config) ͰίϯϑΟάࣙॻΛηοτ͠ͳ͓͢͜ͱͰө͞ΕΔ
ϑϩʔτΟϯυͷ࣮• ࣮ऀɿ@bfredl ͞Μ• ֻ͚2͔͚࣮ͯ1. ϑϩʔτΟϯυͷΈΛ࣮ɽnvim_open_win() ͳͲͰϓϥάΠϯ͔Βࣗ༝ʹ͑ΔΑ͏ʹ͢Δʢ#6619ʣ2. ΈࠐΈͷิΟϯυΛϑϩʔτΟϯυͰ࠶࣮͠ɼϑϦοΧϦϯάΛܰݮ͢Δʢ#9530ʣ3. ίϚϯυϥΠϯϞʔυͷϙοϓΞοϓิ wildoptions=pum Λ࣮ʢ#9607ʣ4. ॏͳ͍ͬͯΔΟϯυͷ৭ΛϒϨϯυ͢Δػೳͷ࣮ͳͲվળதʢ#9923ʣ• ϕʔεͱͳΔΈΛ࣮͠ɼͦΕΛͬͯ෦ΛϦϑΝΫλϦϯάɾϢʔβ͔Βར༻Ͱ͖ΔΑ͏ʹ͍ͯ͠Δ
ϑϩʔτΟϯυͲ͕͜ྑ͍ͷ͔
৽نػೳΛΟϯυͷϨΠΞτͷΈʹߜΓɼैདྷͷ Vim Οϯυͱಉʹ͑Δ• Οϯυͷதී௨ͷ Vim ͷόοϑΝ• ৭Λ͚͚ͨΕߏจϋΠϥΠτΛॻ͍ͯfiletype ΛΟϯυͰηοτ͢Εྑ͍• ดͨ͡ΓΧʔιϧҠಈͨ͠Γ :wincmd ͳͲͷैདྷͷΓํͰͰ͖Δ
ଥڠ͠ͳ͍࣮• ΟϯυͷαΠζ 1x1 ͔ΒࢦఆͰ͖Δ• ͍ͭ͘ͰੜͰ͖Δʢz-index ޙউͪʣ• ϑϩʔτΟϯυ͕εΫϦʔϯ͔ΒΈग़Δ࣌ࣗಈͰௐͯ͘͠ΕΔͷͰϓϥάΠϯ࡞ऀؾʹ͠ͳͯ͘ྑ͍
ϓϥάΠϯ࡞ऀ͜ΕΛʹ༷ʑͳUI ΛߏஙͰ͖Δ• ΠϯλϥΫςΟϒͳϙοϓΞοϓϝχϡʔ• ิϝχϡʔࣗ࡞• υΩϡϝϯτͳͲͷϓϨϏϡʔΟϯυπʔϧνοϓ• ςΩετϥϕϧʢEasyMotion ͷΑ͏ͳʣ• ௨• ...
ϑϩʔτΟϯυҙ• ΟϯυΛ͍ऴΘͬͨΒϓϥάΠϯଆͰ࣮֬ʹด͡Δɽಛʹ "enter": v:falseʹ͢ΔͱϢʔβ͔Β༰қʹด͡ΒΕͳ͍• git-messenger.vim ͰόοϑΝͰΧʔιϧ͕ಈ͍ͨΓ৽͍͠ΟϯυʹҠಈ͢ΔλΠϛϯάΛϑοΫͯ͠ด͍ͯ͡Δ• σϑΥϧτͰ NormalFloat ͱ͍͏ϋΠϥΠτ͕ Normal ͷΘΓʹΘΕΔʢมߋ͢Δʹ 'winhightlight' ΦϓγϣϯΛ͏ʣ• ίϯςϯπ͕Οϯυʹऩ·ΔΑ͏ʹ͢Δɽऩ·Γ͖Βͳ͍߹Ϣʔβ͕εΫϩʔϧͰ͖ΔΑ͏ʹ͢ΔͳͲ͢Δ• Vim ͱͷޓੑΛอͭʹɼVim ͰϓϨϏϡʔΟϯυΛ͏Α͏ʹ͢Δͱ͏·͍͘͘߹͕͋Δʢgit-messenger.vimʣ
·ͱΊ• ϑϩʔτΟϯυඇৗʹ 'ے͕ྑ͍' ػೳ• ϓϥάΠϯ࡞ऀࠓ·Ͱʹ࣮ݱ͕ࠔͩͬͨ UI ΛߏஙͰ͖Δ• Neovim ϓϥάΠϯΛ͍ͭͬͯ͘Δํੋඇར༻Λݕ౼ͯ͠Έ͍ͯͩ͘͞