標準入力をフィルタリングして標準出力に返すツールです。golangで書かれています。
pecoを使ってディレクトリ移動を便利にするエントリーをみかけたのでシェルスクリプトで再実装してみました。
Windows のコマンドプロンプトを10倍便利にするコマンド「peco」
気に入りリストからフィルタリングしてディレクトリ移動します。
シェルスクリプトファイルだとcdコマンドが実行中のプロセス内でしかきいてないので
.[zs|bas]hrcあたりに書きました。
.zshrc
function pcd() {
local PCD_FILE=$HOME/.peco/.peco-cd
local PCD_RETURN
if [ $1 ] && [ $1 = "add" ]; then
if [ $2 ]; then
ADD_DIR=$2
if [ $2 = "." ]; then
ADD_DIR=$(pwd)
fi
echo "add $ADD_DIR to $PCD_FILE"
echo $ADD_DIR >> $PCD_FILE
fi
elif [ $1 ] && [ $1 = "edit" ]; then
if [ $EDITOR ]; then
$EDITOR $PCD_FILE
fi
elif [ $1 ] && [ $1 = "." ]; then
PCD_RETURN=$(/bin/ls -F | grep /$ | sort | peco)
else
PCD_RETURN=$(cat $PCD_FILE | sort | peco)
fi
if [ $PCD_RETURN ]; then
cd $PCD_RETURN
fi
}
[[追記]]
autoloadで読み込むかたちにしました。
https://github.com/trapple/pcd
pcd
で実行
pcd add .
で現在のディレクトリをお気に入りに追加
pcd edit
でお気に入りファイルを編集
historyから絞り込むとか他にも方法はたくさん考えられると思います。
とにかくpeco素敵!