peco - Simplistic Interactive Filtering Tool
どんなものかわからないと思うので上のリンクから Demo の gif 画像を見て下さい。
なんとなく便利そうな雰囲気がしますよね?
インストール
それではインストールしてみましょう。Mac では Homebrew で以下の通り。brew tap peco/peco
brew install peco
それ以外の場合は上のリンクからインストール方法を確認して下さい。
Go で作られているのでインストールが簡単らしいです。
peco のカスタマイズ
peco はパイプでコマンドの出力を行選択して、パイプで次のコマンドに渡すコマンドラインツールなわけだけどある程度頻繁に使いそうなものについてはスクリプトファイルを書いておいたほうが便利ですね。
こういうものはどんどん拡張したくなるのでスクリプトファイルの保存場所を決めておきます。
- ~/.zshrc
- ~/.zsh/peco-scripts/ の読み込みやキーバインドの設定
- ~/.zsh/peco-scripts/
- peco のスクリプトファイルの保存場所
# load peco scripts (require cdr) for f (~/.zsh/peco-scripts/*) source "${f}"
% tree peco-scripts peco-scripts ├── peco-cdr.zsh └── peco-select-history.zsh
peco-cdr.zsh: 開いたディレクトリの履歴からディレクトリを選択する
[zsh]cdr: 開いたディレクトリの履歴からディレクトリを開く | DevAchievefunction peco-cdr() { local selected_dir=$(cdr -l | awk '{ print $2 }' | peco) if [ -n "$selected_dir" ]; then BUFFER="cd ${selected_dir}" zle accept-line fi zle clear-screen } zle -N peco-cdr
# 履歴から cd bindkey '^@' peco-cdr
peco-select-history.zsh: コマンドの履歴からコマンドを選択する
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
追記: 2014/12/10
コマンド履歴の重複を削除して peco で選択できるようにしました。[peco]peco-select-history.zsh で表示されるコマンド履歴の重複を削除する - Qiita
まとめ
使ってみるとわかりますが、すごく便利です!参考: pecoを使い始めた - $shibayu36->blog;