ディレクトリの移動も peco を使うことにしてみた

最近ディレクトリ構造が複雑な(単純に長い)アプリケーションを触っていて、移動したい先のディレクトリまでスッと飛べないことが多かったのにイライラして書いた。 自分の場所より下のディレクトリをすべて出して peco でインクリメンタルサーチして飛ぶ感じ。 雑に .git を検索範囲に入れないようにした。とりあえず Ctrl-z で運用しているけどもっといいキーバンドがありそう。

function peco-change-dir() {
    selected_dir=$(find . -type d | grep -v .git | peco --prompt "[Change dir]")
    if [ -n "$selected_dir" ]; then
        BUFFER="cd ${selected_dir}"
        zle accept-line
    fi
    zle redisplay
}
zle -N peco-change-dir
bindkey '^z' peco-change-dir