Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

MacVim-KaoriYa の gVim 起動が遅かったので一時的な対処法を調べてみた

$
0
0

最近の MacVim-KaoriYa で gVim の起動が遅かったので調査してみた。

環境

  • OS X El Capitan Version 10.11.6
  • MacVim-KaoriYa 20161013

起動処理の経過時間のメッセージをファイルに書き出す方法

--startuptime file_name.logオプションを付けて gVim を起動し、起動処理をファイルに書き出し調査する。

ちなみに、Vim 起動時の他オプションとして、

引数vimrcファイルプラグイン
なしyesyes
-u NONEnono
-u NORCnoyes
--nopluginyesno

があるので、自分の .vimrc やプラグイン環境が原因の場合とそうでない場合を切り分けて検証できる。

実際に書き出す

$ gvim test.txt --startuptime before.log
before.log
timesinmsecclockself+sourcedself:sourcedscriptclockelapsed:otherlines000.005000.005:---VIMSTARTING---()034.969028.270000.935:sourcing$VIM/vimrc036.213000.392000.392:sourcing/Users/user_name/.vim/dein/repos/github.com/Shougo/dein.vim/autoload/dein.vim038.989001.656001.656:sourcing/Applications/MacVim.app/Contents/Resources/vim/runtime/ftoff.vim039.236002.555000.899:sourcing/Users/user_name/.vim/dein/state_Vim.vim061.339000.473000.473:sourcing/Users/user_name/.vim/dein/.dein/ftdetect/ftdetect.vim061.907000.430000.430:sourcing/Users/user_name/.vim/dein/.dein/ftdetect/ftdetect.vim065.970001.423001.423:sourcing/Applications/MacVim.app/Contents/Resources/vim/runtime/lang/menu_ja_jp.utf-8.macvim.vim066.055000.025000.025:sourcing/Applications/MacVim.app/Contents/Resources/vim/runtime/lang/menu_ja_jp.utf-8.vim066.868000.054000.054:sourcing/Applications/MacVim.app/Contents/Resources/vim/runtime/autoload/paste.vim8456.5698394.3998392.897:sourcing/Applications/MacVim.app/Contents/Resources/vim/runtime/menu.vim8456.6088417.140021.838:sourcing/Applications/MacVim.app/Contents/Resources/vim/runtime/filetype.vim8456.790000.021000.021:sourcing/Users/user_name/.vim/dein/.dein/ftplugin.vim8456.858000.008000.008:sourcing/Users/user_name/.vim/dein/.dein/ftplugin.vim8456.908000.010000.010:sourcing/Applications/MacVim.app/Contents/Resources/vim/runtime/ftplugin.vim8457.087000.010000.010:sourcing/Applications/MacVim.app/Contents/Resources/vim/runtime/indent.vim()8840.837000.003:---VIMSTARTED---

/Applications/MacVim.app/Contents/Resources/vim/runtime/menu.vim の読み込みに非常に時間が掛かっていることが分かる。

調査

以前は起動に1秒も掛かっていなかったので https://github.com/macvim-dev/macvim
の直近のコミットログを辿ったところ、https://github.com/macvim-dev/macvim/pull/331/filesにて読み込みに時間が掛かりそうな

menu.vim
+let s:n .= globpath(&packpath, "pack/*/{opt,start}/*/colors/*.vim")

の差分があった。

カラースキーム読み込みの走査が、 :echo &packpathによると

/Users/user_name/.vim,
/Applications/MacVim.app/Contents/Resources/vim/vimfiles,
/Applications/MacVim
.app/Contents/Resources/vim/runtime,
/Applications/MacVim.app/Contents/Resources/vim/vimfiles/afte
r,
/Users/user_name/.vim/after

で追加で行われるようになっていたので、試しに該当箇所をコメントアウトして gVim を再起動してみた。

修正後

$ gvim test.txt --startuptime after.log
after.log
timesinmsecclockself+sourcedself:sourcedscriptclockelapsed:otherlines000.007000.007:---VIMSTARTING---()038.875027.662001.341:sourcing$VIM/vimrc039.870000.348000.348:sourcing/Users/user_name/.vim/dein/repos/github.com/Shougo/dein.vim/autoload/dein.vim043.204002.049002.049:sourcing/Applications/MacVim.app/Contents/Resources/vim/runtime/ftoff.vim043.492002.976000.927:sourcing/Users/user_name/.vim/dein/state_Vim.vim065.683000.461000.461:sourcing/Users/user_name/.vim/dein/.dein/ftdetect/ftdetect.vim066.249000.426000.426:sourcing/Users/user_name/.vim/dein/.dein/ftdetect/ftdetect.vim069.583001.117001.117:sourcing/Applications/MacVim.app/Contents/Resources/vim/runtime/lang/menu_ja_jp.utf-8.macvim.vim069.648000.022000.022:sourcing/Applications/MacVim.app/Contents/Resources/vim/runtime/lang/menu_ja_jp.utf-8.vim070.482000.056000.056:sourcing/Applications/MacVim.app/Contents/Resources/vim/runtime/autoload/paste.vim086.663020.146018.951:sourcing/Applications/MacVim.app/Contents/Resources/vim/runtime/menu.vim086.698042.970021.937:sourcing/Applications/MacVim.app/Contents/Resources/vim/runtime/filetype.vim086.949000.020000.020:sourcing/Users/user_name/.vim/dein/.dein/ftplugin.vim087.032000.009000.009:sourcing/Users/user_name/.vim/dein/.dein/ftplugin.vim087.089000.012000.012:sourcing/Applications/MacVim.app/Contents/Resources/vim/runtime/ftplugin.vim087.280000.010000.010:sourcing/Applications/MacVim.app/Contents/Resources/vim/runtime/indent.vim()455.765000.002:---VIMSTARTED---

起動時間が9秒未満から0.5秒未満に減った!

一時的な対処法まとめ

MacVim-KaoriYa 20161013 にて、/Applications/MacVim.app/Contents/Resources/vim/runtime/menu.vim の 395 行目の

menu.vim#395
lets:n .= globpath(&packpath,"pack/*/{opt,start}/*/colors/*.vim")

をコメントアウトすると gVim の起動時の遅さが改善される。

ただし、コメントアウトするとパッケージ1ディレクトリ以下のカラースキームがメニューバーの Edit > Color Schemeに表示されないままになる。

MacVim への Issue は、 MacVim-KaoriYa ではなく MacVim にて確認次第 Issue を立てる予定。


  1. Vim 8.0 にて追加された機能。 


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>