12
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

pecoを使ってフィルタリング&ディレクトリ移動

Last updated at Posted at 2014-06-17

https://github.com/peco/peco

標準入力をフィルタリングして標準出力に返すツールです。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で実行

rX6q4X87R6.gif

pcd add .で現在のディレクトリをお気に入りに追加
pcd editでお気に入りファイルを編集

historyから絞り込むとか他にも方法はたくさん考えられると思います。
とにかくpeco素敵!

12
12
0

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
12
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?