vim-ruby、vim-bundler、vim-rake プラグインなどで ruby コマンドを実行していて、.ruby-version に jruby が指定されていると、jruby が実行されることになるので遅い。jruby の立ち上がりに3秒ぐらいかかる
該当箇所
vim-bundler
vim-bundler/plugin/bundler.vim
337: let gem_paths = split(system(prefix.'/usr/local/bin/ruby -rubygems -e '.s:shellesc('print Gem.path.join(%(;))')), ';')
340: let abi_version = system('/usr/local/bin/ruby -rrbconfig -e '.s:shellesc('print RbConfig::CONFIG["ruby_version"]'))
vim-rails
vim-rails/autoload/rails.vim
1838: call system("ruby -e 'Process.kill(:TERM,".pid.")'")
1841: call system("ruby -e 'Process.kill(9,".pid.")'")
4043: let json = system('ruby -e '.s:rquote('require %{yaml}; require %{json}; File.open(%q{'.a:file.'}) {|f| puts JSON.generate(YAML::load(f))}'))
vim-rake
vim-rake/plugin/rake.vim
217: let self._ruby_include_path = system('ruby -rrbconfig -e "print RbConfig::CONFIG[\"rubyhdrdir\"] || RbConfig::CONFIG[\"topdir\"]"')
vim-ruby
78: let path_check = prefix.'ruby -e "' . code . '"'
80: let path_check = prefix."ruby -e '" . code . "'"
対応方法
(1) .ruby-version を変える
.ruby-version に jruby が指定されているので jruby が起動するわけで、vim を開くときだけ cruby を指定するようにする。。。辛い
(2) vim プラグインの ruby パスを書き換える
変数でパスを変えられなさそうなので、直接 /usr/local/bin/ruby
とシステム ruby を使うように書き換えてしまえば速くなる。。。辛い
(3) vim 起動時に PATH を変える
/usr/local/bin を優先にして vim を起動すれば、システム ruby が使われるので速くなる。
env PATH=/usr/local/bin:$PATH vim foo.rb
まとめ
とりあえず (3) vim 起動時に PATH を変える、になるように alias vim してやっているけど、上手い方法あれば welcome