

zsh を 使っていてカレントのディレクトリに `Gemfile`があれば `bundle exec`を
`rake`など特定のコマンドの頭につけるという処理をしたく、[`zsh-bundle-
exec`](https://github.com/rhysd/zsh-bundle-exec)
をインストールしたのですが正常に入れれてないらしくコマンドの自動付加は行われませんでした。

以下がインストールするために行った処理です。

  1. リポジトリを`git clone`
  2. `.zshrc`内で環境変数を設定して`zsh-bundle-exec.zsh`を読み込む
[code]     export BUNDLE_EXEC_GEMFILE_CURRENT_DIR_ONLY=yes

    export BUNDLE_EXEC_COMMANDS='rails rake rspec guard cap'
    source ~/.zsh/zsh-bundle-exec/zsh-bundle-exec.zsh
    
[/code]

  3. `. ~/.zshrc` で設定の再読み込み

zshのバージョンは`zsh 5.0.2 (x86_64-apple-darwin13.0)`を使用しています。

1週間前に Issues に登録させてもらったのですが、反応がまだもらえていません。  
<https://github.com/rhysd/zsh-bundle-exec/issues/4>

このプラグインを使うための正しい設定方法、もしくはその他の方法によるものどちらでも構わないので`bundle
exec`の入力を`zsh`で省略する方法は何かありますか？

### oh-my-zsh に関する追記

kyohsukeさんに教えていただいた `oh-my-zsh`を試してみたのですがうまく動きませんでした。

具体的には

  * `alias | grep bi` で `bi=bundle_install`が表示されるためインストールは正常にできている
  * プロジェクト内にbinstubされた`bin`フォルダがあると`bin/rake`などが実行される
  * `bin`フォルダがない時に `rake db:migrate` すると `bundle exec`が付加されない
  * `rake` は `rake=_rake_command`の alias がふられている
  * `which _rake_command` は以下の結果

[code]

    _rake_command () {
        if [ -e "bin/rake" ]
        then
            bin/rake $@
        else
            command rake $@
        fi
    }
    
[/code]


CC BY-SA 3.0
2015-01-08T18:41:29.250
4307
2015-07-17T16:31:18.690
2015-07-17T16:31:18.690
2242
3271
question
zsh
bundle exec を zsh で打たずに済ませる方法


他の方法になりますが、oh-my-zsh の bundler プラグインを利用するのはどうでしょうか。  
bundler プラグインで自動的に bundle exec が挿入されるコマンド一覧は wiki に記載されています。

・[oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh)

もし利用される場合、以下が参考になると思います。

・[Bundlerプラグインについてのwikiページ](https://github.com/robbyrussell/oh-my-
zsh/wiki/Plugins#bundler) (en)  
・[Mac OS X で zsh ＋ oh-my-zsh
の環境を作って一通り設定するまで](http://qiita.com/udzura/items/0d08d71d809bfd8c5981)

【追記】

追記された質問内容を調べてみましたところ、oh-my-
zshのrailsプラグインに[該当の処理](https://github.com/robbyrussell/oh-my-
zsh/blob/master/plugins/rails/rails.plugin.zsh#L13)が挿入されています。

プラグイン設定を以下のように bundler のみにするとどうでしょうか。  
`plugins=( bundler )`


CC BY-SA 3.0
2015-01-08T19:43:12.770
4309
2015-01-10T22:31:25.917
2015-01-10T22:31:25.917
5313
5313
4307
answer


自分では試していませんが、こちらでdirenvを使った解決策が紹介されています。

<http://mattn.kaoriya.net/software/lang/ruby/20140314032519.htm>

あと、完璧な解決策ではありませんが、僕は`~/.zshrc`にエイリアスを設定しています。

[code]

    alias be="bundle exec"
    
[/code]

こうすれば `be rspec` のような形で実行できます。

ご参考までに。


CC BY-SA 3.0
2015-01-09T01:34:21.797
4315
2015-01-09T01:34:21.797
85
4307
answer