ボクココ

個人開発に関するテックブログ

Rails の bundler でなぜ --path vendor/bundle を付けるのか

今までずっと謎だった。

bundle install

これだけでいいじゃないか、なんでわざわざ --path を付ける必要があるのか、と。

何が嬉しいか

gem をいじっても他のRailsアプリを汚さない
ctagによる検索が可能になる

ctagの存在を知らなかった。。今まで自分をvimmer だと思っていたのが恥ずかしくなるくらい素晴らしい機能。これはいわばEclipseでいうCtrl + クリックでの移動。
Ruby だししょうがないか、と思って今までメソッドとかGrepで検索してましたw

これをRailsアプリ内に置くことで、Gem内のクラスにも移動できるようになる!

 手順

brew install ctags
vim ~/.zshrc
  alias ctags="`brew --prefix`/bin/ctags”
source ~/.zshrc
ctags --langmap=RUBY:.rb --exclude="*.js"  --exclude=".git*" -R .
bundle install --path vendor/bundle

これで
<CTRL-]> 定義元にジャンプ
<CTRL-T> 戻る
ができるようになる。

しかも、 --path vendor/bundle しているおかげで、Gemの方にも移動ができちゃう!素晴らしい・・・。もしかしてこれってかなり当たり前なことだったのかも。

alpaca-tc/alpaca_tagsってので自動でctagを付けてくれるのがあって、それをやろうと思ったんだけど、

Error detected while processing function alpaca_tags#create_tags#update..alpaca_tags#util#system:
line   10:
E117: Unknown function: vimproc#popen2
E116: Invalid arguments for function 10
E15: Invalid expression: s:Watch.new(vimproc#popen2(command), a:message)

こんなエラーが出たから諦めたw とりあえずは bundle install とか何らかのタイミングで ctags コマンド打つようにすればいいや。