pecoでエンジニア人生を10倍楽にしよう!
ビジネスバンクグループ エンジニア の数藤 智幸です。
エンジニアを生業としている関係で生産性向上のために色々なツールを探していますが、
時々、衝撃的に便利なツールに出会えることがあります。
今回はそんな中でも最も便利といえるかもしれない「peco」をご紹介します。
pecoとは?
こちらではSimplistic interactive filtering toolと紹介されていますが、
標準入力で与えられた情報から行を絞込み、標準出力に出力するだけのものです。
だけ、と書きましたが、unix哲学にそって他のコマンドと組み合わせることで、
劇的に便利なものになります。
元々は同じ機能をもったpython製のpercolというツールがあり、
こちらはそのgolang実装として開発されました。
golang製になることにより、バイナリ一つで動作するようになったため人気となっています。
インストール
OS XでHomebrewをお使いであれば、以下で入ります。
brew install peco
その他の場合は、以下のリリースページから自分のマシンにアーキテクチャにあった
バイナリをダウンロードし、パスの通ったところに置いておきましょう。
他には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を使っています。
どうしても平行して幾つかのブランチを修正することがあるので、便利です。
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の魅力なので、
ぜひ独自の活用方法を考えてみてください。
エンジニア募集中!
ビジネスバンクグループではエンジニアを募集中しています。
弊社が採用しているテクノロジーや開発環境に興味を持った方は、 ここから是非エントリー を!