珈琲とバイクとときどきプログラミング

狐が好きな編入生的な人間のブログです

pecoがめっちゃ便利だった

ssh hogehogeなんかを使ってインスタンスの中いって状況みたり

いくつかのprojectのファイルを行き来するために頻繁に cd ~/hogeとか打つことが多くて

若干ストレスがあったのですが、どうやらpecoってものが便利らしく使ってみたという話です。

github.com

READMEを見るだけでワクワクしてきますね。

pecoとは

peco can be a great tool to filter stuff like logs, process stats, find files, because unlike grep, you can type as you think and look through the current results.

ということで、lsとかpsで吐き出される出力をインクリメンタルにサーチ→選択ができ、

選択した値を使ってゴニョゴニョしたりできるみたいです。

使ってみた

Homebrewを使ってとりあえずインストール

$ brew install peco

こんだけです。

$ ls -al | peco

みたいにpecoに渡して上げると

f:id:yosshi0774:20180321071435p:plain

エモいインターフェイスになり検索できるわけですね。良い。。。

さて一番最初にいったような いくつかのprojectのファイルを行き来するために頻繁に cd ~/hoge

とかの解消法ですが

bashを使っている方なら ~/.bashrcとかに

function pcd() {
  local target=$(ls $HOME/(探したいdir) | grep -e '絞りたい語句1' -e '絞り込みたい語句2' | peco)

  if [ ! -z "$target" ]; then
    cd $HOME/(探したいdir)/$target
  fi
}

みたいなものを作っておき source ~/.bashrcとかして更新

$ pcd

として選択すれば指定のディレクトリに遷移できるわけです。きもちいですね

あと~/.ssh/configとかに設定をまとめておけば

function pssh() {
  local host=$(grep -r 'Host ' $HOME/.ssh/* | cut -d' ' -f2 | sort | peco)

  if [ ! -z "$host" ]; then
    ssh "$host"
  fi
}

で接続先を選んでsshとかができます。