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

JRuby環境のrubyソースファイルをvimで開くと遅い

$
0
0

概要

  • JRuby環境下のrubyソースコードをvimで開くのが遅い。
  • vimrcでlet g:ruby_path = ""またはlet b:ruby_version = "2.3.1"などと記述することで解消する。
  • しかし、バッドノウハウの類なのでより良い解決方法求む。

現象

rbenvでJRuby環境にあるソースコードをvimで開くと2,3秒かかった(グローバルにJRubyを導入して使っている場合も同様)。
導入した何らかのプラグインが影響しているのではないかと考え、まずvimrcやpluginを取り払って起動してみたが、やはり遅い。
もう一歩踏み込んで、--nopluginオプションを付けて起動したところ、瞬時に起動した。

原因

ということで、原因は標準に付属しているpluginにあると目星が付いた。

/vim74/ftplugin/ruby.vimを調べたところ、rubyコードを読み込むときに有効になっているrubyを起動していることが分かった。
(ver.7.4で調べたが、コードを見た感じver.8.0でもほぼ同様だと思われる)
JRubyはJVMを起動するのに時間がかかるので、とにかく起動が遅い。
さらっと読み流したところ、rubyの標準ライブラリのパスを調べて、そのパスにあるタグファイルをtagsに追加することを目的としているようだ。

対策

次のいずれかで、ひとまず問題は解消される。

  1. /usr/share/vim/vim74/ftplugin/ruby.vimを撤去
    • ただし、標準のプラグインなので、いろいろな影響が出ると思われる。
    • また、便利な機能も一緒に無効になってしまう。
    • もちろん、ruby標準ライブラリへのタグジャンプはできなくなる。
  2. vimrcにlet g:ruby_path = ""と記述
    • ruby標準ライブラリへのタグジャンプはできなくなる。
    • (このパスで指定した)rubyに依存した機能が効かなくなるはず。
    • 標準以外のプラグインでも、このグローバル変数に依存したものが 影響を受ける可能性あり。
  3. vimrcにCRubyのバージョン、例えばlet b:ruby_version = "2.3.1"と記述
    • "2.3.1"と書いた部分には、自身の環境に導入されているJRuby以外の適当なバージョンを指定する。
    • ruby標準ライブラリへのタグジャンプは指定したバージョンのコードへのジャンプとなるはずである。
    • 邪悪な感じの対処なので、いろいろ危ういかも。

1はやり過ぎなので、基本的には2か3の対応となる。

課題

ひとまず、起動が遅い問題自体は解決したが、あまり正当な方法とは言えない。
良い解決方法をお持ちの方は、教えていただけると助かります。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



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