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
に更新しました。