🏄
vim.loaderでNeovimをお手軽高速化
vim.loader
を導入するPRがNeovimのHEADにマージされました。
有名なNeovimプラグインをいくつも開発しているfolke氏によるPRです。
同氏がパッケージマネージャのlazy.nvimに高速ロードの処理を実装していたのですが、これをNeovim本体に導入するもののようです。
使い方はvim.loader.enable()
を設定ファイルの先頭に書くだけです。
init.vim
lua vim.loader.enable()
" 存在確認する場合
lua if vim.loader then vim.loader.enable() end
init.lua
vim.loader.enable()
-- 存在確認する場合
if vim.loader then vim.loader.enable() end
早速、Neovimを最新版に更新し、実験してみました。
手許の環境で、vimrcの先頭にlua if vim.loader then vim.loader.enable() end
をつけた場合とつけなかった場合をvim-startuptimeで計測してみました。
なし
❯ vim-startuptime -vimpath nvim
Extra options: []
Measured: 10 times
Total Average: 38.461800 msec
Total Max: 40.244000 msec
Total Min: 37.775000 msec
あり
❯ vim-startuptime -vimpath nvim
Extra options: []
Measured: 10 times
Total Average: 30.526200 msec
Total Max: 32.680000 msec
Total Min: 29.965000 msec
1行の設定で起動を高速化できました。
設定関連にどれくらいluaファイルを使っているかで高速化の効果(キャッシュされる範囲)は変わりそうですが、lazy.nvimユーザーでなくても高速化の恩恵を受けられるのは良さそうです。
なお、impatient.nvimも類似のキャッシュ効果を持っていますが、lazy.nvimのdiscussionsには、「impatientを使うならlazyのキャッシュ機能は無効化したほうが良い」と書かれています。
今回のvim.loader
もlazy.nvimと同様の仕組みであると考えられるので、やはりimpatientとの同時利用は避けたほうが良いのではないかと思われます。
Discussion