vim-rails
vim-rails( rails.vim )は、RoRプロジェクトでのコマンドをvim上から行えたり、色々便利なプラグインです。
問題点
その中で、mountain lionにしてから下記のコマンドがバグるようになりました。
何故かRuby系の実行ファイルをMacOSにプリインストールされている方で実行しており、:!ruby filename
や:QuickRun
で実行したときに盛大にバグってました。
Rails.vimでもこんな有様です。
:Rake db:create
rake aborted!
no such file to load -- bundler/setup
/Users/taichou/project/gift/Rakefile:5:in `require'
(See full trace by running task with --trace)
(in /Users/taichou/project/gift)
:Rails new hoge
Rails is not currently installed on this system. To get the latest version, simply type:
$ sudo gem install rails
You can then rerun your "rails" command."
しかし、shell上からはちゃんと動かせるしPATHが通っていないはずはない。
:!$PATH
でvimから$PATHを調べてみました。
すると
/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/Applications/MacVim.app/Contents/MacOS:/Users/taichou/.autojump/bin:…続く
何故か/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
が先頭でも読み込まれている?
MacOS標準搭載のrubyを避けるために、/usr/binのPATHは後ろに記述しているはずなのですが。。
解決
原因はMacOSに標準で入っているshellの設定ファイルが原因でした。
cd /etc
sudo vim paths
# /usr/binを削除
どうやら、vim上からコマンドを呼び出すと、先にこちらに記述したPATHへアクセスするようです
これでめでたし、~/.zshrcなどの設定から$PATHを構築してくれるようになりました。
なお、/etc/pathsは恐らくshellのデフォルト$PATHを設定しているので、編集する場合は十分注意してくださいね。
おまけ
調べている最中に:sh
コマンドを発見した。
vimをいったん抜けてshellを起動出来るみたい。(しかもshellを閉じたらvimに戻る)
おぉ、これは捗る!