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

JRuby で開発している時に vim を開くと遅いよねという話

$
0
0

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


Viewing all articles
Browse latest Browse all 5608

Trending Articles



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