質問: Go をインストールしたら最初に `go get -u golang.org/x/tools/...` をして `gorename` や `goimports` などエディタが静的解析等で使うであろうツールを一括でインストールしていました。 最近 Ruby を使いはじめて、これだと golang.org/x/tools/cmd/bundle と Ruby の Bundler のコマンド名がどちらも `bundle` になっていて被ると気づきました。Go 側の issue によるとこれを直すつもりは無いようです: 。私の環境の PATH は `$GOPATH/bin` の方が先頭に入っているため、`bundle` コマンドで Go の bundle が呼ばれてしまい困ります。 PATH の順番を弄ったり Go tools を一括インストールするのではなく個別にしたりする解決法もありますが、やや面倒に思っています。(PATH は他のツールとの兼ね合いもあり......。) Go の bundle は当面のところ使わないので、良い感じに Ruby の Bundler を使えるようにする方法は無いでしょうか。 環境: macOS Catalina ※自己回答していますが、環境構築するにあたってもっと便利な方法があれば知りたいです。
回答: direnv を用いると、「特定のディレクトリだけで有効な PATH の prepend」を実現できそうです。 具体例: `.envrc` にて、 ``` PATH_add "/path/to/bin/dir" ``` この `.envrc` ですと、 1. そのディレクトリに cd したら PATH に prepend される 2. そのディレクトリから cd して他の場所に移動すると、 prepend が解除される 何がどうなって上記が実現できているのかは、私はちょっと把握できていないです。 さらに `.envrc` はただのシェル実行ファイルですので、任意に整理ができそうな雰囲気はあります。