Contents
- UNIX
- Windows
- サーバ
- プログラミング言語
- データベース
- プロトコル
- サービス
- オープンソース
- 規格・技術
- アプリケーション
- PC
- DEVICE
- その他(未分類)
お問合せ: メールフォーム
コマンド | 説明 |
---|---|
peco | python のツールである percol がベースのコマンド。標準出力(STDOUT)に対してフィルタリング機能が提供され、インタラクティブ(インクリメンタル)に操作が可能になる |
標準出力(STDOUT)に対してフィルタリング機能を提供します。
インクリメンタルに絞り込めるので、現在の表示を見ながら直感的に操作できます。
バイナリファイル単体で動作するため、/usr/local/bin/ などの PATH の通っているディレクトリに配置するだけで、すぐに動作します。
通常は
% ps aux | peco
のように、標準出力をパイプで渡して利用します。
もちろんこれも便利なのですが、今回おすすめしたいのは「シェルのコマンド履歴と peco の連携」です。
連携させることで超絶便利になり、快適なシェルライフを送ることが出来ます。
peco を連携させた状態で「Ctrl-r」とすると以下のように直近で入力したコマンドが新しい順に表示されます。
そして、コマンドを選択することでコマンドの再利用が可能になります。
※ コマンドを選択して「エンターキー」を押すか、「Ctrl-c」で通常のプロンプトに戻れます。
例えば「あの長ったらしいコマンド何だったけ?」という時、「Ctrl-r」とタイプしてコマンド履歴を探すことがあると思います。
しかし、通常は一覧表示されないので、とっても探しにくいです。
peco と連携状態にあれば、コマンドに含まれる文字列を入力することで、関連する過去のコマンド履歴がインクリメンタルに一覧表示されます。
視認性が良いので、お目当てのコマンドがすぐに発見できます。
もちろん、探し出したコマンドは再び実行することが可能です。
以下の例では「git」で絞り込んでいますが、このように「git」が含まれるコマンドのみを抽出することが出来ます。
シェル上で
% git
と入力してから、「Ctrl-r」としても同様の状態になります。
今回は「v0.2.12」の「peco_linux_386」を適用しました。
環境に合った最新版を以下より探して、適宜適用してください。
https://github.com/peco/peco/releases
% wget 'https://github.com/peco/peco/releases/download/v0.2.12/peco_linux_386.tar.gz' -O peco_linux_386.tar.gz % tar xvzf peco_linux_386.tar.gz % cd peco_linux_386 % sudo cp peco /usr/local/bin/ % ll /usr/local/bin/peco
以下を .zshrc に記述します。
% vi ~/.zshrc
#/** # * Associate command-history with peco for zsh # * bindkey '^r' # */ function peco-select-history() { local tac if which tac > /dev/null; then tac="tac" else tac="tail -r" fi BUFFER=$(\history -n 1 | \ eval $tac | \ peco --query "$LBUFFER") CURSOR=$#BUFFER zle clear-screen } zle -N peco-select-history bindkey '^r' peco-select-history
※ キーバインドは「Ctrl-r」です。お好みにより適宜変更してください。
以下を .bashrc に記述します。
% vi ~/.bashrc
#/** # * Associate command-history with peco for bash # * bindkey '^r' # */ function peco-select-history() { local tac="tail -r" if [ -n "`which tac 2> /dev/null`" ]; then tac="tac" elif [ -n "`which gtac 2> /dev/null`" ]; then tac="gtac" fi local l=$(HISTTIMEFORMAT= history | ${tac} | sed -e 's/^\s*[0-9]* \+\s\+//' | peco --query "$READLINE_LINE") READLINE_LINE="$l" READLINE_POINT=${#l} } bind -x '"\C-r":peco-select-history'
※ キーバインドは「Ctrl-r」です。お好みにより適宜変更してください。
.zshrc, .bashrc を編集したら、source コマンドで設定を反映しましょう。
% source ~/.zshrc
or
% source ~/.bashrc
source コマンドを実行したら「Ctrl-r」とタイプします。
peco と連携されているはずです。