かわろぐ

技術、セキュリティ、その他もろもろ

MENU

Vim の起動に何に時間がかかっているか調べ、改善する

環境

  • MacOSX 10.14.5
  • nvim 0.3.7
  • MacBook 2017 1.4GHz

Vimの起動がもっさりな原因を調べる

現在は nvim を使っていますが、Vimを使いだしてからかれこれ10年近くが経過しています。

プラグインとかもマネージャは変わりつつもずっと昔から入れているものもあり、Vimの起動が結構もっさりするようになってしまいました。

その原因を調査するために、何に時間がかかっているのかを調査しました。

プラグインの有無で起動時間を比較してみる

プラグインを無効化する —noplugin オプションと —startuptime オプションを使います。

後者のstartuptime を使うには vim が +startuptime でコンパイルされている必要があります。私の環境(homebrewでインストールしたnvim)では初期状態で有効になっていました。

まずは、プラグインや自分で加えた設定を何も読み込まない状態、おそらく最も早いであろう状態を調べましょう。

$ nvim —noplugin —startuptime {filename}

この状態で私の環境の nvim は 300ms くらい起動にかかりました。体感速度的にも普段より少し早い気がします。 それでは次に、プラグインなどすべて読み込んだ状態を測定してみましょう。

$ nvim —startuptime {filename}

上記のオプションで nvim を起動すると filename に指定したファイルに起動処理の間のメッセージや経過時間を出力してくれます。この状態で私の nvim は 360ms ~ 1707ms かかっていました。

少々幅がありますが、毎回時間が書かているのはどうやら clipboard.vim の読み込みのようです。

309.745  233.180  233.180: sourcing /usr/local/Cellar/neovim/0.3.7_1/share/nvim/runtime/autoload/provider/clipboard.vim
310.345  234.289  001.109: sourcing /Users/kawamura/.vim/dein/.cache/init.vim/.dein/plugin/fakeclip.vim

fakeclip.vim は環境的にもう無くても何ら問題ないことがわかったので、削除しましたが、一つ上の clipboard.vim は nvim 標準の機能のようなのでこれ以上の起動高速化はむりかなぁ。

後日時間を取って調査してみよう。

参考文献

Practical Vim: Edit Text at the Speed of Thought (English Edition)

Practical Vim: Edit Text at the Speed of Thought (English Edition)