Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Rubyエンジニアが vimrcを棚卸しして ナウいluaに書き換えた話
Search
zatton
March 03, 2023
Programming
700
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rubyエンジニアが vimrcを棚卸しして ナウいluaに書き換えた話
zatton
March 03, 2023
Other Decks in Programming
See All in Programming
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
270
Jetpack Compose Mechanisms
skydoves
3
820
AIに “答え“を書かせるのを やめてみた
___akari11
0
120
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
120
golang-bob.pdf
iwatsukayura
0
130
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
170
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
650
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.9k
Next.js: The final boss of Web Performance
guaca
0
280
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
790
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
780
Featured
See All Featured
Faster Mobile Websites
deanohume
310
32k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Music & Morning Musume
bryan
48
7.4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Why Our Code Smells
bkeepers
PRO
340
58k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Rails Girls Zürich Keynote
gr2m
96
14k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.2k
Google's AI Overviews - The New Search
badams
0
1.6k
We Have a Design System, Now What?
morganepeng
55
8.4k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
Transcript
© DeNA Co., Ltd. 1 Rubyエンジニアが vimrcを棚卸しして ナウいluaに書き換えた話 zatton 主にサーバーサイドエンジニア
株式会社ディー・エヌ・エー
© DeNA Co., Ltd. 2 遅延読み込みで高速化!と思いきゃ。。 目次 プロフィール 普段のNeovimでの開発 init.luaに書き換え!
1 2 3 4 まとめ 5
© DeNA Co., Ltd. 3 zatton • 修士22卒の1年目 • Vim歴6年くらい
• 趣味: ランニング(フル3:40)/登山(百名山35)/ スノボ/プロ野球観戦(横浜) DeNA サーバーサイドエンジニア @zatton @_zatton (今週作った!) © DeNA Co., Ltd. 自己紹介
© DeNA Co., Ltd. 4 1 普段のNeovimでの開発 • ほぼ100%Neovimでコーディング •
Alacritty + tmux + Neovim • Ruby on Rails, SQL, CSV, YML, etc Rubyの場合 1. v でneovim起動 (alias v=nvim) 2. telescope.nvimでファイルを開く 3. コーディングする ◦ LSPで定義ジャンプ ◦ aleでRubocopフォーマット ◦ quickrun.vimでRspec実行 ◦ NERDTreeでファイル操作 4. Neovimを閉じてgit操作 4 ↑昔書いた趣味PJのコード ←5年前とほぼ変わってない()
© DeNA Co., Ltd. 5 2 • 起動が時々遅い!ナウい(死語)luaが良い!ほとんどのプラグインを遅延読み込みに init.vimをinit.luaに書き換え! 秘伝のinit.vim
• dein.vim (プラグイン管理) • vim-colors-solarized (カラースキーム) • NERDTree (ファイルツリー) • Telescope.nvim (fuzzy finder) • quickrun.vim (コード実行) • lightline.vim (ステータスライン) • vim-signify (git diffを表示) • asyncomplete.vim (補完) • vim-lsp & vim-lsp-settings (LSP) • neosnippet.vim (スニペット) • ale.vim (Linter & Formatter) • open-browser-github (GitHubで開く) ナウいinit.lua • lazy.nvim • neosolarized.nvim (truecolor化!) • nvim-tree.lua • Telescope.nvim • jaq-nvim • lualine.nvim • gitsigns.nvim • nvim-cmp • nvim-lspconfig • cmp-vsnip • null-ls.nvim • openingh.nvim • tabline.nvim (タブライン) • nvim-insx (カッコ補完) これでさらに快適になるはず。。
© DeNA Co., Ltd. 6 Vim ScriptもLuaで書き換えた 3 ↓編集中のファイルに対応するRspec(テスト)ファイルを開くキーバインド
© DeNA Co., Ltd. 7 これで起動も速くなるはず。。! ワクワク
© DeNA Co., Ltd. 8 が、全然変わらなかった(泣) 時々Rubyファイルを開くのに数秒かかる
© DeNA Co., Ltd. 9 4 startuptimeを計測してみる • v --startuptime
/tmp/startup.log で起動時のログが取れる と以前頼れる先輩エンジニアに聞いた • 遅い原因を探る。。。 • デフォルトで入っているスクリプトが悪さをしている?? • https://github.com/neovim/neovim/blob/master/runtime/ftplugin/ruby.vim を覗いてみる • どうやらRubyを起動しているっぽい??
© DeNA Co., Ltd. 10 そして解決🎉 • vim.g.ruby_path = ""
を追記すればRubyが起動しないようだ • 良くない副作用があるかもしれないが、ひとまず様子をみてみることに 5 ←実用的なNeovimが 起動50ms以下! 体感的にも速くなった! (Lazy.nvim見やすい)
© DeNA Co., Ltd. 11 (たぶん)まとめ • 定期的にアップデートすべし ◦ init.vimからの移行に丸1日くらいかかった😣
(土日👋) • Luaはいいぞ ◦ かなり書きやすい & カスタマイズしやすいと感じた • 「推測するな、計測せよ」はNeovimでも大事 ◦ startuptimeを活用すべし • Neovim最高! 6 今回紹介したinit.lua等々はCompassのGitHubリンクから見れます!
© DeNA Co., Ltd. 12 おまけ:Ruby関連のはなし • jaq-nvim での Rspec実行の設定はシェル側で対応してる
(いい方法あったら教えて下さい!) • LSP ◦ 結局古き良き(?) solargraph を使っている ◦ Shopify/ruby-lsp は定義ジャンプが未実装らしい (期待) ◦ RubyMine の LSP試してみたい (ケチなので多分しない) • Rubocop が遅い! ◦ fohte/rubocop-daemon を使ったらめっちゃ良かった ◦ Neovimが遅いとき原因がNeovimにあるとは限らない 7
© DeNA Co., Ltd. 13