By

pecoでエンジニア人生を10倍楽にしよう!

ビジネスバンクグループ エンジニア の数藤 智幸です。

エンジニアを生業としている関係で生産性向上のために色々なツールを探していますが、
時々、衝撃的に便利なツールに出会えることがあります。

今回はそんな中でも最も便利といえるかもしれない「peco」をご紹介します。

pecoとは?

peco/peco

こちらではSimplistic interactive filtering toolと紹介されていますが、
標準入力で与えられた情報から行を絞込み、標準出力に出力するだけのものです。
だけ、と書きましたが、unix哲学にそって他のコマンドと組み合わせることで、
劇的に便利なものになります。

元々は同じ機能をもったpython製のpercolというツールがあり、
こちらはそのgolang実装として開発されました。
golang製になることにより、バイナリ一つで動作するようになったため人気となっています。

インストール

OS XでHomebrewをお使いであれば、以下で入ります。

brew install peco

その他の場合は、以下のリリースページから自分のマシンにアーキテクチャにあった
バイナリをダウンロードし、パスの通ったところに置いておきましょう。

Releases · peco/peco · GitHub

他にはgolangの開発環境が整っている場合は、go getで最新のものを試すことができます。

go get github.com/peco/peco/cmd/peco

動作確認

インストールが終わったら、試しにディレクトリ一覧から絞り込みを行ってみましょう。

ls -al | peco

すると、lsの結果が一覧として出てきますが、1行目はQUERYで始まっているはずです。

QUERY>
total 8332008
drwx------    4 sudo  staff         136  1 12  2016 Applications
drwx------+  54 sudo  staff        1836  8  1 00:36 Desktop
drwx------+  16 sudo  staff         544  7 11 17:09 Documents
drwx------+ 156 sudo  staff        5304  8  1 00:48 Downloads

適当な文字を入力して絞り込んでみましょう。
ファジー検索なので正確に入力する必要はありません。
絞り込んだら、カーソルキーで行を選択しEnterを押すと、
選択した行の内容がそのまま表示されます。
基本的な動作は以上となります。
なお、選択せずに終了したい場合はCtrl+cで終了します。

色々な利用方法

あとは色々と組み合わせて使っていくだけなのですが、
自分が使っているものを参考までに。
詳しく書かれている他サイト様を参考とさせていただいています。

コマンド履歴、ディレクトリの移動履歴

pecoを使う上での基本ですね。ぜひ設定して使ってみましょう。

最近ナウイpecoを試してみたメモ | Futurismo コマンド履歴、ディレクトリの移動履歴など。

プロジェクト(gitリポジトリ)の移動

私は仕事用もプライベート用も全てのリポジトリはgolangの決まりに従い、
$GOPAT/src内に入れるようにしています。
Railsのプロジェクトなども全て同じ場所にあります。
そして$GOPAT/src内のプロジェクトをpecoで選択し移動できるようにしています。

ghqを使ったローカルリポジトリの統一的・効率的な管理について - delirious thoughts

gitのブランチ切替

gitのブランチの切り替えもpecoを使っています。
どうしても平行して幾つかのブランチを修正することがあるので、便利です。

私のpeco活用事例 - k0kubun's blog

sshログイン

以下のようなコマンドを設定しておけば、
~/.ssh/configの設定からHostを絞りこみ、ログインすることが可能となります。

alias sshlist="cat ~/.ssh/config |grep ^Host\  |sed -e 's/^Host\ //g'"
alias pssh="sshlist | peco | xargs -I{} sh -c 'ssh {} </dev/tty' ssh"

これでpsshコマンドを実行すればHostを絞り込むことができるようになります。

Rakeタスクの実行

rakeタスクを絞り込んで実行します。Railsでの開発時に便利です。

PecoからRakeタスクを実行する - Qiita

まとめ

簡単な紹介でしたが、いかがでしょうか?
アイデア次第でいくらでも活用方法が広がっていくのがpecoの魅力なので、
ぜひ独自の活用方法を考えてみてください。

エンジニア募集中!

ビジネスバンクグループではエンジニアを募集中しています。

弊社が採用しているテクノロジーや開発環境に興味を持った方は、 ここから是非エントリー を!