zshでzの結果をpecoって爆速でディレクトリ移動する

  • 49
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

f6da11a830d933811e13be029780a686.gif

今回の場合は C-f にbind. C-f を押すことでpecoの検索画面が表示され,そこでよく行くディレクトリ名を記述すれば
爆速で移動が可能です.

pecoとz.shの導入

z.shの概要
http://qiita.com/yoshikaw/items/38d3008ac7d0b19b4805

peco の概要
http://qiita.com/xtetsuji/items/05f6f4c1b17854cdd75b

z.shのインストール

$ git clone https://github.com/rupa/z.git ~/.zsh.d
$ echo 'source ~/.zsh.d/z.sh' >> ~/.zshrc
$ exec zsh

pecoのインストール

$ brew install peco

centosは次を参照
http://qiita.com/popstaplerate/items/dd983267a7075250035b

.zshrcに次の関数を追記

.zshrc
function peco-z-search
{
  which peco z > /dev/null
  if [ $? -ne 0 ]; then
    echo "Please install peco and z"
    return 1
  fi
  local res=$(z | sort -rn | cut -c 12- | peco)
  if [ -n "$res" ]; then
    BUFFER+="cd $res"
    zle accept-line
  else
    return 1
  fi
}
zle -N peco-z-search
bindkey '^f' peco-z-search
$ exec zsh

zは引数なしで実行した時,よく移動するディレクトリ順と,頻度の指標が表示されます.

キャプチャ.PNG

それを利用して,頻度を基準に逆順でsortし,余分な空白をカットして pecoに渡しています.
それだけです.

探して意外と似た記事が見つからなかったので投稿します.