タイトルが長い。
モチベーション
# ghq, peco alias ghqcd='cd $(ghq list --full-path | peco)'
ghqとpecoを使って開発ディレクトリを行き来しているが、ctrl+cでキャンセルすると /Users/{USER_NAME}
に遷移してしまう。キャンセル時はコマンド実行時のディレクトリに留まりたい。
こうした
# ghq, peco alias ghqcd='`ghq list --full-path | peco`'
解説
前提として、autocdが有効になっていることを確認。ディレクトリ名だけでcdができる。
> setopt | grep autocd autocd
以下の感じで表題を解決できた。
# ghqでリスト表示 -> pecoでフィルタリング -> 標準出力 > ghq list --full-path | peco /Users/{USER_NAME}/ghq/github.com/tokizuoh/dotfiles # バッククォートで囲むことで上記の結果をコマンドとして実行 > `ghq list --full-path | peco` > pwd /Users/{USER_NAME}/ghq/github.com/tokizuoh/dotfiles
以前は明にcdを実行していたため、キャンセル時も遷移してしまっていた。変更したコマンドはディレクトリ名が選択されないとautocdが実行されないため遷移もしない。