LoginSignup
15
15

More than 5 years have passed since last update.

Pecoで(ちょっと)汎用ディレクトリ選択function(zsh専用)

Last updated at Posted at 2014-08-05

Pecoが流行っているので使ってみたらよい感じだったので開始してみました。
現状、多くのスニペットが特定のコマンド専用っぽい感じだったので、変化球を。

~/.zshrc
function peco-dfind() {
    local current_buffer=$BUFFER
    # .git系など不可視フォルダは除外
    local selected_dir="$(find . -maxdepth 5 -type d ! -path "*/.*"| peco)"
    if [ -d "$selected_dir" ]; then
        BUFFER="${current_buffer} \"${selected_dir}\""
        CURSOR=$#BUFFER
        # ↓決定時にそのまま実行するなら
        #zle accept-line
    fi
    zle clear-screen
}
zle -N peco-dfind
bindkey '^x^f' peco-dfind

上記コマンドを.zshrcに入れておくことで、cdまで打ったあと、^x^fを打つことで5階層下までのディレクトリ一覧を表示してpecoに渡します。あとは、絞り込みをして決定。 cdだけでなく、findやlsなど、どのコマンドにも適用可能です。

更新

なにも入力がない状態で、^dを受け取るとzshがログアウトを実行してしまうため、もともと^x^dとしていたショートカットを^x^fに更新しました。

15
15
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
15