Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Recent Neovim
Search
Masafumi Okura
July 30, 2021
0
120
Recent Neovim
Masafumi Okura
July 30, 2021
Tweet
Share
More Decks by Masafumi Okura
See All by Masafumi Okura
My KaigiEffect at RubyKaigi 2025, part 1
okuramasafumi
1
39
Writing documentation can be fun with plugin system
okuramasafumi
0
180
Alba: Why, How and What's So Interesting
okuramasafumi
0
370
Why did my proposals get rejected?
okuramasafumi
1
670
A suggestion for the future of RDoc
okuramasafumi
1
310
15 JSON serializers for Ruby
okuramasafumi
2
370
Tech Events, Should We See Them from the Outside or the Inside?
okuramasafumi
1
69
Creating gems 101
okuramasafumi
2
140
How NOT to make your DSL terrible
okuramasafumi
0
560
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Building an army of robots
kneath
306
45k
Statistics for Hackers
jakevdp
799
220k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Balancing Empowerment & Direction
lara
1
400
Music & Morning Musume
bryan
46
6.6k
Producing Creativity
orderedlist
PRO
346
40k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Scaling GitHub
holman
459
140k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Git: the NoSQL Database
bkeepers
PRO
430
65k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Transcript
࠷ۙͷNeovim ͜Μͳײͬ͡Ά͍Α ẂנϥΠτχϯάτʔΫʢAkarenga.LTʣ ୈ10ճ OKURA Masafumi, 2021-07-30
ࣗݾհ • ໊લɿେխ࢙ • ॴଐɿϑϦʔϥϯε • ಘҙͳݴޠɿRuby • ͍ͬͯΔΤσΟλɿNeovim •
՝֎׆ಈɿKaigi on Rails, ʰϚελϦϯάVimʱ༁
ࠓͷςʔϚ
Neovim
Neovimͱ • https://neovim.io/ • ݹ͔͘Β͋ΔΤσΟλͰ͋ΔVimͷϑΥʔΫ • LuaΛ࠾༻֦ͨ͠ுੑͷߴ͕͞Ϧ • 2021࣌ͰVimͱҟͳͬͨํʹਐԽ͍ͯ͠Δ
࠷ۙͷNeovimࣄ • LSPʢLanguage Server ProtocolʣͷΈࠐΈ • TreeSitterͷద༻ʹΑΔ֦ு͞ΕͨγϯλοΫεϋΠϥΠτ • Floating WindowʹΑΔUIͷࣗ༝ͷߴ͞
LSP
LSP • https://microsoft.github.io/language-server-protocol/ • Microsoft͕։࢝ͨ͠ΤσΟλͷͨΊͷϓϩτίϧ • ิީิͷఏڙϦωʔϜػೳͳͲɺ༷ʑͳػೳΛඋ͑Δ • NeovimͰݱ࣌Ͱͷ࠷৽൛Ͱ͋Δv0.5ΑΓωΠςΟϒʹαϙʔτ ͞ΕΔ
TreeSitter
TreeSitter • https://tree-sitter.github.io/tree-sitter/ • ύʔαδΣωϨʔλͱύʔεϥΠϒϥϦ • ֤छϓϩάϥϛϯάݴޠʹରԠ • nvim-treesitterϓϥάΠϯΛ͏͜ͱͰNeovimͷγϯλοΫεϋΠϥ ΠτΛஔ͖͑Մೳ
nvim-treesitter • https://github.com/nvim-treesitter/nvim-treesitter • ࠓݟͨΒNeovim v0.5Ͱಈ͔ͳ͍ͱॻ͍͚ͯ͋ͬͨͲɺͬͯΈͨ ײ͡ಈ͍ͯͦ͏ • NeovimͷγϯλοΫεϋΠϥΠτ͕ΊͪΌ៉ྷʹͳΔ
Floating Window
Floating Window • Neovimͷ௨ৗͷόοϑΝͷ্ʹΦʔόʔϨΠ͢ΔΟϯυ • API͔Β࡞Ͱ͖Δ • GitͷใLinterͷใΛग़͢ϓϥάΠϯ͕͋Δ
͓·͚ɿVimͱϚεΦʔόʔ
VimͱϚεΦʔόʔ • ࠷ۙͷVimʹʮόϧʔϯʯͱݺΕΔFloating Window૬ͷػೳ ͕͋Γɺ͔͠ϚεΦʔόʔʹରԠ͍ͯ͠Δ • Linterͷܯࠂ͕ग़͍ͯΔՕॴʹϚεΛ͍࣋ͬͯ͘ͱܯࠂͷৄࡉ͕ද ࣔ͞ΕΔ • Neovimʹͳ͍ػೳ