8

VimがRubyおよびERB(Embedded Ruby)ファイルを開くのに非常に長い時間がかかることに気づきました。私は自分の起動時間をプロファイリングしました、そしてこれらの興味深い行(あなたがそれを見たいなら完全なプロファイルは一番下にあります):

32980.181  32011.917  32011.917: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/ftplugin/ruby.vim
32980.516  32035.414  022.871: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/ftplugin/eruby.vim

ご覧のとおり、RubyとERubyのftdetectをロードするには、長い時間がかかります(時間は明らかに「ミリ秒」単位です)。これをHTMLのftdetectと、.vimrcのロードにかかる時間と比較してください。

952.223  000.626  000.626: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/ftplugin/html.vim
738.536  612.248  534.785: sourcing $HOME/.vimrc

これは正常ですか、それについて私ができることはありますか?ファイルを開くのに最大33秒待たなければならないのはかなり腹立たしいことです。

times in msec
 clock   self+sourced   self:  sourced script
 clock   elapsed:              other lines

000.022  000.022: --- VIM STARTING ---
012.064  012.042: Allocated generic buffers
012.910  000.846: locale set
013.186  000.276: clipboard setup
013.203  000.017: window checked
033.918  020.715: inits 1
034.697  000.779: parsing arguments
034.716  000.019: expanding arguments
077.784  043.068: shell init
079.520  001.736: Termcap init
079.562  000.042: inits 2
080.186  000.624: init highlight
179.889  001.991  001.991: sourcing /Users/davidtuite/.vim/autoload/pathogen.vim
564.261  000.178  000.178: sourcing /Users/davidtuite/.vim/filetype.vim
632.475  000.389  000.389: sourcing /Users/davidtuite/.vim/bundle/jst/ftdetect/jst.vim
633.141  055.478  055.089: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/filetype.vim
660.587  000.236  000.236: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/ftplugin.vim
661.081  000.247  000.247: sourcing /Users/davidtuite/.vim/filetype.vim
661.408  000.041  000.041: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/filetype.vim
673.005  000.208  000.208: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/indent.vim
699.170  000.901  000.901: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/syntax/syncolor.vim
699.550  007.236  006.335: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/syntax/synload.vim
699.669  008.305  001.069: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/syntax/syntax.vim
700.763  000.561  000.561: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/syntax/syncolor.vim
715.774  000.497  000.497: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/syntax/syncolor.vim
716.658  000.452  000.452: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/syntax/syncolor.vim
722.467  010.218  009.269: sourcing /Users/davidtuite/.vim/bundle/solarized/colors/solarized.vim
738.536  612.248  534.785: sourcing $HOME/.vimrc
738.593  046.159: sourcing vimrc file(s)
784.522  000.859  000.859: sourcing /Users/davidtuite/.vim/bundle/ctrlp/autoload/ctrlp/mrufiles.vim
785.378  045.922  045.063: sourcing /Users/davidtuite/.vim/bundle/ctrlp/plugin/ctrlp.vim
816.261  000.454  000.454: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/plugin/getscriptPlugin.vim
818.593  000.792  000.792: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/plugin/gzip.vim
820.050  000.921  000.921: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/plugin/matchparen.vim
830.405  002.463  002.463: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/plugin/netrwPlugin.vim
843.038  000.145  000.145: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/plugin/rrhelper.vim
850.425  000.293  000.293: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/plugin/spellfile.vim
851.617  000.671  000.671: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/plugin/tarPlugin.vim
852.558  000.509  000.509: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/plugin/tohtml.vim
853.470  000.599  000.599: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/plugin/vimballPlugin.vim
854.255  000.463  000.463: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/plugin/zipPlugin.vim
854.362  062.537: loading plugins
854.375  000.013: inits 3
875.931  021.556: reading viminfo
875.995  000.064: setting raw mode
876.010  000.015: start termcap
876.062  000.052: clearing screen
952.223  000.626  000.626: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/ftplugin/html.vim
32980.181  32011.917  32011.917: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/ftplugin/ruby.vim
32980.516  32035.414  022.871: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/ftplugin/eruby.vim
33007.912  000.688  000.688: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/indent/ruby.vim
33024.997  001.804  001.804: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/indent/html.vim
33025.207  025.843  023.351: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/indent/eruby.vim
33067.541  000.929  000.929: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/syntax/javascript.vim
33085.205  004.486  004.486: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/syntax/vb.vim
33088.445  002.575  002.575: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/syntax/css.vim
33089.314  039.262  031.272: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/syntax/html.vim
33106.920  003.463  003.463: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/syntax/ruby.vim
33107.112  064.122  021.397: sourcing /usr/local/Cellar/vim/7.3.266/share/vim/vim73/syntax/eruby.vim
33107.888  107.447: opening buffers
33108.114  000.226: BufEnter autocommands
33108.117  000.003: editing files in windows
33108.319  000.202: VimEnter autocommands
33108.320  000.001: before starting main loop
33127.031  018.711: first screen update
33127.033  000.002: --- VIM STARTED ---
4

2 に答える 2

9

この遅延は、ftplugin/ruby.vimがRubyロードパスをクエリしていることが原因です。ほんの数日前、Ruby Gemsのクエリを削除することで、この速度を大幅に向上させました。私のMacは現在、約125ミリ秒かかると報告しており、これは大幅な改善です。したがって、最新のものに更新してみてください。

それでも不十分な場合は、vimrcでg:ruby_pathを設定することで、ロードパスクエリを完全に無効にすることができます。

これを(ホームフォルダ内の).vimrcファイルに追加してみてください。

if !empty($MY_RUBY_HOME)
 let g:ruby_path = join(split(glob($MY_RUBY_HOME.'/lib/ruby/*.*')."\n".glob($MY_RUBY_HOME.'/lib/rubysite_ruby/*'),"\n"),',')
endif
于 2012-11-07T00:48:57.167 に答える
0

vim ruby​​パスを明示的なものに設定したいだけの場合は、これを:の任意の場所に追加してください.vimrc

let g:ruby_path = "/Users/<username>/rbenv/shims/ruby"

rbenvを使用している場合は<username>、実際のMacユーザー名に置き換えることができます。

ルビーパスが別のものである場合は、引用符内のすべてをルビー実行可能ファイルへのフルパスに置き換えます。

于 2020-08-19T16:49:38.633 に答える