先日、リモートでRails Developers Meetupのセッション聞いてまして、
リモート着席
— しいたけ (@shitake4) March 24, 2018
ちょっと気になるツールがあったので、調査してみて数日間使ってみました
紹介されていたのは、@itoさんのセッションで
pecoというツールが紹介されていましたので、色々と調べて実際に使ってみました
pecoとは?
とてもシンプルなツールで 「標準入力から受けた行データをインクリメンタルサーチして、選択した行を標準出力に返す」 コマンドです。
シンプルゆえに様々な組み合わせで効果を発揮します。あらゆる場面での選択肢を標準入力に渡して、選択された結果を標準出力から受け取って加工してコマンド実行をする、というのが基本的な流れ。
説明じゃ伝わらないので実例を体験したほうが早いかも。
引用:pecoの基礎の基礎
pecoを利用した設定
調べてみると、peco単体で使うよりもよく検索に使う処理と組み合わせて、というパターンが多かったです。
なので、実際に私も上の記事を参考にいくつか設定してみました
1. find file (^w)
rspecでテストケースを指定したい場合、前まではzshの補完を使っていたのですが、ディレクトリが深かったりすると指定するのがめんどくさかったりと大変だったのですが、これを設定したことでいっきに楽になりました
参考サイト:私のpeco活用事例#4. peco find file
2. search branch (alias -g B)
ブランチ切り替えする際に、なんとなく名前を覚えているんだけど、どんな名前だっけ?という時にいちいちローカルに落としているブランチ一覧から探していくのが結構めんどくさかったので、非常に助かりました。ちょくちょくマージされたブランチとかは消しているけど、気づくとすごい数増えていたりするのでこれで作業が楽になったのは間違いないです
参考サイト:私のpeco活用事例#2. peco git branch
3. select-history (^r)
引数が微妙に違うコマンドとかをヒストリ検索するのは結構めんどいな〜という感じだったので、これが使えるようになって一気に入力が容易になりました
更には、入力したコマンドが一覧で見れるので、微妙な違いとかも一目瞭然でタイポしたコマンドをヒストリから選択してしまうという凡ミスもなくなりました
参考サイト:pecoを使い始めた#peco-select-history
4. cdr (^@)
こちらも非常にお世話になってます。よく移動するディレクトリで階層深かったりすると移動が面倒でした。この作業の効率化は結構バカにならないな〜と思います
参考サイト:pecoを使い始めた#peco-cdr
pecoファイルの運用方法
前と大体同じ感じでやる。基本的にこういうツールは自分でいろいろ作りたくなってきて、設定が増えてきて破滅するので、ファイルを置くディレクトリを決めておいてそこに置いておくことにする。
- .zshrc : 決めたディレクトリのファイルの全ロードと、キーバインドの設定
- ~/.zsh/peco-sources/ : peco用の設定ファイルを置いておく用
引用:pecoを使い始めた#pecoのファイル運用
shiba_yu36氏と全く同じ運用にしています。複数Macで使いたいので、ファイルはDropboxに置いて、シンボリックリンクを張るという感じで運用しています
数日間使ってみての感想
とにかく便利の一言に尽きます!上記で設定してない場合で使いたいときは | peco
で使えるので、どんなパターンでも柔軟に活躍してくれます。何かよく使うパターンがあれば、その時にまたファイルを追加したいな〜と思います