2022/06/05(日) [n年前の日記]
#2 [linux][windows] pecoの代わりにfzyを使ってみた
Windows10 x64 21H2 + MSYS2上で peco を使おうとしたけれど動いてくれなかった。ググってみたら MSYS2上で(というか mintty上で?) peco は動かないらしい。ただ、peco の代わりに fzy というツールが使えるという話を見かけたので導入してみた。
余談。pecoについては以下でメモしてあった。
_mieki256's diary - pecoを導入してみた
余談。pecoについては以下でメモしてあった。
_mieki256's diary - pecoを導入してみた
◎ 使い方。 :
- pcd add . : カレントディレクトリを登録リストに追加。
- pcd edit : 登録リストファイルを編集。
- pcd : 登録リストからインクリメンタルサーチで絞り込んでディレクトリ移動。
- cdp : カレントディレクトリ内からインクリメンタルサーチで絞り込んでディレクトリ移動。
◎ インストール。 :
pacman -S fzy
$ fzy --version fzy 1.0 (C) 2014-2018 John Hawthorn
◎ pcdをインストール。 :
pcd を使えば、自分で登録したディレクトリリストをインクリメンタルサーチで絞り込んでディレクトリ移動ができる。
登録リストファイル、~/.peco/.peco-cd ファイルを作成。
~/.bash_pcd を作成。以下を記述。
~/.bashrc に以下を追記。~/.bash_pcd が存在していたら読み込むようにする。
source ~/.bashrc で反映。
登録リストファイル、~/.peco/.peco-cd ファイルを作成。
mkdir ~/.peco touch ~/.peco/.peco-cd
~/.bash_pcd を作成。以下を記述。
- peco を呼び出している場所で fzy を呼ぶように変更。
- pcd edit と打った際は nanoエディタを呼び出すように変更。
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 else # editor $PCD_FILE nano $PCD_FILE fi elif [ $1 ] && [ $1 = "." ]; then PCD_RETURN=$(/bin/ls -F | grep /$ | fzy -l 20) else PCD_RETURN=$(cat $PCD_FILE | fzy -l 20) fi if [ $PCD_RETURN ]; then cd $PCD_RETURN fi } function cdp { local dir="$( find . -maxdepth 1 -type d | sed -e 's;\./;;' | sort | fzy -l 20 )" if [ ! -z "$dir" ] ; then cd "$dir" fi }
~/.bashrc に以下を追記。~/.bash_pcd が存在していたら読み込むようにする。
if [ -f "${HOME}/.bash_pcd" ]; then source "${HOME}/.bash_pcd" fi
source ~/.bashrc で反映。
◎ 参考ページ。 :
[ ツッコむ ]
以上です。