「peco」の版間の差分

提供: FreeBSD入門
移動: 案内検索
(ページの作成:「peco とは、Go言語で実装された Anything ライクなフィルタです。grepとは違い、インクリメンタルにフィルタができます...」)
(相違点なし)

2014年10月26日 (日) 17:45時点における版

peco とは、Go言語で実装された Anything ライクなフィルタです。grepとは違い、インクリメンタルにフィルタができます。ログやプロセス情報のフィルタ、ファイルを検索するときなどの便利です。

読み方

peco
ぺーこー(peh-koh)

概要

peco は、たとえば zsh のコマンド履歴を検索するときにも便利です。通常のコマンド履歴検索(C-r)では、マッチした行が1つだけしか参照できませんが、pecoを使用することで、履歴のマッチしている行をいくつも確認でき、履歴の中からカーソルで選択することもできます。

インストール

pkgコマンドでインストールする場合

sudo pkg install peco

Windows

WindowsのChocolatey NuGet ユーザの場合です。

C:\> choco install peco

Go

Goを使う場合、pecoコマンドは、GOPATH/bin にインストールされます。

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

設定

 

使い方

コマンドラインオプション

Usage: peco [options] [FILE]
 
Options:
  -h, --help            show this help message and exit
  --version             print the version and exit
  --rcfile=RCFILE       path to the settings file
  --query=QUERY         pre-input query
  --no-ignore-case      start in case-sensitive mode
  -b, --buffer-size     number of lines to keep in search buffer
  --null                expect NUL (\0) as separator for target/output (EXPERIMENTAL)
  --initial-index       position of the initial index of the selection (0 base)
  --prompt              specify prompt

使用例

psのプロセス情報をフィルタする場合です。

$ ps axuw|peco

ファイル検索する場合の使用例です。

$ find . | peco

zsh の設定

.zshrcに以下の設定を加えることで、C-r で、pecoを併用したコマンド履歴検索が可能となります。

function peco-select-history() {
        local tac
        if builtin command -v 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
}
 
if builtin command -v peco > /dev/null; then
        zle -N peco-select-history
        bindkey '^r' peco-select-history
fi

関連項目