かわろぐ

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

MENU

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

環境

  • MacOSX 10.14.5
  • nvim 0.3.7

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/kawa/.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)

  • 作者:Neil, Drew
  • 発売日: 2015/12/02
  • メディア: Kindle版