zとpecoで簡単ディレクトリ移動

今更ながらpecoをインストールした。

インストール

$ brew install peco

でインストールできる。

ディレクトリの移動

以前から使用していたzでオプションを指定するとリストを表示できるというのがわかったので、 .bashrcに移動したことのあるディレクトリに簡単に移動できるエイリアスを書いてみた。

type peco >/dev/null 2>&1 && ccd() {
  local path=$(z -l | awk '{ print $2 }' | peco | head -n 1)
  [ -n "$path" ] && cd "$path"
}

これで$ ccdと入力すると、zのリストを元にpecoでインクリメンタルサーチをして移動できる。 findやmdfindなどと連携させて使っている人もいるみたいだ。

ついでにptを使って$ pt -l '' ~ | peco | head -n 1などを試してみたが検索範囲が広すぎてあまり良くない感じだ。 検索範囲が広いからこそのインクリメンタルサーチなのかもしれないが。

それとこの場合はディレクトリの移動でなくてファイルの検索になるので開くアプリケーションを選ばないといけない。 $ open -aに渡せば良いのかもしれないが、テキストファイルだったらターミナル内のVimで開いて欲しいのでひと工夫が必要だと思う。