fish shellでzの結果をpecoって爆速でディレクトリ移動する
のfish shell版
z.shはfishermanでインストールできるものを使う。-> GitHub - fisherman/z: Pure-fish z directory jumping
https://github.com/rupa/zを直接使うプラグインがあったけど、z -l
の出力がstdout/stderrに出力されなかったので使えなかった。
fisher z
関数は元記事のものをだいたいそのまま
# ~/.config/fish/config.fish function peco_z set -l query (commandline) if test -n $query set peco_flags --query "$query" end z -l | peco $peco_flags | awk '{ print $2 }' | read recent if [ $recent ] cd $recent commandline -r '' commandline -f repaint end end function fish_user_key_bindings bind \x1b peco_z # Ctrl-[にバインドする end
bindする時に\c[
と指定したかったのだけど、Unexpected end of string, square brackets do not match
と怒られたのでfishの別のプラグインを参考に設定。ターミナルの時点でシーケンスじゃなくて\x1b
で送られてくるからかな?
使ってみるとghqに比べて少しだけ時間がかかるので、もう少し早く動くz.sh実装があればそっちに移行したい(あるいは作るか)。
*1:Jan 9, 2017 22:12 コマンドを呼び出す前の入力値をpecoに渡すように更新