【Vim】Vimの起動が遅い
マカーもどきになってから、Vimの起動が突然重くなりました。
限界突破したので、調べてみました
プラグイン別起動時間の調べ方
起動時に、オプションをつけて起動することで、起動時のプロファイルを出力することができます!(知らなかった…)※ver7.2かららしい
--startuptime <出力先ファイル名>
これでいつも通り起動するだけです!
times in msec clock self+sourced self: sourced script clock elapsed: other lines 000.012 000.012: --- VIM STARTING --- 000.204 000.192: Allocated generic buffers 000.735 000.531: locale set 000.744 000.009: clipboard setup 〜省略〜 182.425 004.046 004.046: sourcing /Users/sea_mountain/.vim/bundle/neocomplcashe/autoload/neocomplcache/cache.vim 186.598 032.039: VimEnter autocommands 186.602 000.004: before starting main loop 187.705 001.103: first screen update 187.708 000.003: --- VIM STARTED ---
こんな感じで出力されます。
vi --startuptime hoge.txt
でもいいですが、
vi hoge.html --startuptime hoge.txt
とすると、そのファイル(hoge.html)を開いたときのプロファイルを見れます。
(特定のファイルが読み込み遅いと思ったら、こっちですね。)
気を付けないといけないのは、vimのバージョンによって
vim --startuptime=<出力先ファイル名>
という記述だったり、違うようなので、vim -hで確認しておいたほうが良さそうです。
測定結果
ファイル指定なしで測定したとき
vim --startuptime <出力先ファイル名>
の時、
起動するまでに187.708msec
そのなかで一番重かったのは.vimrcで067.308msecです。
htmlファイルを開いたとき
重さが気になってたのは、htmlやcssファイルを開いた時なので、index.htmlを開いた時のを測定してみました。
vi index.html --startuptime hoge.txt
起動するまでに8568.239msec
…遅すぎます。vimの起動に約8.5秒…しかも軽いファイルで… 開くたびにこの長さだなんて耐えられません。
せっかくのvimのよさが…
一番時間がかかっていたのはcss.vimで8102.889msec
どうみてもこれが原因です。
css.vimを削除して実行してみると
444.117msecで起動しました。ちょっと一瞬画面が映らなくなるなー程度になりました。
css.vim
そもそも、css.vimは何かと言うと、cssファイルで#ffffffなど、色が指定されている部分の背景を、その色に変えてくれるプラグインです。
公式サイトのこの画像(http://lanpartei.de/~niklas/vim/after/syntax/css-color-vim.png)が分かりやすいです。
色をブラウザで確認しなくても、大体分かるので、大変使いやすかったのに…。(´・ω・`)
後で検索で知ったのですが、このサイト(http://www.serendip.ws/archives/2607)によると、
256色表示ができるターミナルならば、ターミナル上の Vim でもハイライト表示できる。
ただし、ターミナルでは css、html ファイル編集時に Vim の起動が遅くなってしまった…追記:ターミナルでの Vim の起動速度の問題は、1つ前のバージョン 0.6 を使えばよい。
ただし、ターミナルでのハイライト表示はできなくなる。
たしかに、前にWindowsのGVimで使っていたときに、遅くなかったので原因がcss.vimだと気づきませんでした…。
css.vimの代わりは?
軽く調べてみたのですが、どのサイトも紹介しているのもcss.vimでした…(下に追記で、代わりのプラグイン紹介しています)
(表記としては、css.vimかcss_color.vimです。http://www.vim.org/scripts/script.php?script_id=2150)
先のサイト(http://www.serendip.ws/archives/2607)に書かれていた、rgbにも対応させたというcss.vimも同じくらい重かったです。
それっぽいのも、検索でひっかかりはしたのですが…
http://www.vim.org/scripts/script.php?script_id=2539
中国語?かなにかで書いてありさっぱり…いれてみると、大量のエラーが出たので、すぐやめました…。
-
- -
※2011/05/24追記
コメント欄で、代わりのプラグイン教えていただきました!
colorizer(http://www.vim.org/scripts/script.php?script_id=3567)
こんな感じです。
rgb表記にも対応していてこれは使えそうです!\tcコマンドで起動します
colorizerのサイトで、似たプラグインだと紹介されていたのが有ります。
hexHighlight(http://www.vim.org/scripts/script.php?script_id=2937)
ただし、こっちは
hexHighlight only works with a graphical version of vim
と怒られてしまうので、GVimじゃないとダメそうです。
-
- -
最初はてっきり、zencoding.vimが原因だと思っていたので(導入した時期的に)、拍子抜けしました…^^;
vim起動のプロファイル出来ることに気づいてなかったら、ひたすら思い当たるプラグイン外してみていたのかな…とか思うと恐ろしいです…