peco はプログラミング言語 go でできたコマンドです。ファイルや標準入力から値を与えて、対話形式でキー入力を行ないフィルタリングできるソフトウェアです。フィルタリングした結果を選択して、さらに標準出力に出力できます。

peco の主な特徴

1) キー入力により対話形式でフィルタリング

実行してみます。何か入力が必要ですから、peco のドキュメントから license.htm をダウンロードして参照することにします。コンソールで次の通り入力して実行します。

peco license.htm

license.htm の内容が表示されます。コマンドラインで html と入力します。キーを入力するたびにフィルタリングされて表示します。結果は次の通りです。

QUERY> html                                            IgnoreCase [1/1]
< !DOCTYPE html>
<html lang="en" class="">
</html>

2) 表示した内容を選択し、標準出力に出力

カーソル・キーでカーソルを移動して Enter キーを入力します。これによって選択した行を出力します。peco でフィルタリングして選択した結果を、他のコマンドに渡せますので大変便利です。

3) peco だけで動作

go でできていますが、go をインストールしなくても実行できるようリリース版が用意されています。Windows/Linux/Mac OSXそれぞれに32ビット版と64ビット版が用意されています。

4) 応用することが楽しくなる

さまざまなコマンドとパイプで組み合わせて利用することで、新たなコマンドを作ることができるでしょう。Windows でコンソールを利用している方々にも大変便利なコマンドとなるでしょう。

筆者もWindows で作業をすることがありますので、Windows でのサンプルを紹介いたします。筆者は仕事の案件毎にフォルダを分けてドキュメントを管理しています。そのフォルダを選択してフォルダを移動するといったサンプルとなります。カレントドライブのルートからフォルダを検索してフィルタリングし、フォルダを移動します。なお、フォルダの階層はひとつしかありません。

バッチコマンドにしました。内容は次の通りです。

echo off
cls
echo Please wait a moment...

for /F "tokens=1,2 delims=:" %%i in ('cd') do set DRIVE=%%i
set DRIVE=%DRIVE%:
set TOP=%DRIVE%\

for /f %%i in (
	'dir /B %TOP% ^| iconv -f Shift-JIS -t UTF-8 ^| peco ^| iconv -f UTF-8 -t Shift-JIS'
) do (
	cd %TOP%%%i
	%DRIVE%
	echo Good luck.
	echo You are in %TOP%%%i.
	break;
)

筆者の環境ではフォルダー名に Shit-JIS を使用していますので、peco に結果を渡す時に UTF-8 にしています。peco の出力は UTF-8となりますから、Shift-JIS に戻しています。(面倒な環境ですみません)。

実行します。筆者の実行環境では、次の通り表示します。

QUERY>                                            IgnoreCase [1/1]
20140901_20140910__案件その1
20140901_20140920__案件その2
20140911_20140930__案件その2

条件として「その1」を入力します。結果は次の通りです。

QUERY> その1                                     IgnoreCase [1/1]
20140901_20140910__案件その1

カーソルキーで選択して Enter キーを入力します。結果は次の通りです。

Please wait a moment...
Good luck.
You are in Z:\20140911_20140930__案件その1.

5) オプションが豊富

オプションは次の通りです。

: peco --help

Usage: peco [options] [FILE]

Options:
  -h, --help            show this help message and exit
  --tty                 path to the TTY (usually, the value of $TTY)
  --query               initial value for query
  --rcfile              path to the settings file
  --no-ignore-case      start in case-sensitive-mode (DEPRECATED)
  --version             print the version and exit
  -b, --buffer-size     number of lines to keep in search buffer
  --null                expect NUL (\0) as separator for target/output
  --initial-index       position of the initial index of the selection (0 base)
  --initial-matcher     specify the default matcher
  --prompt              specify the prompt string
  --layout              layout to be used 'top-down' (default) or 'bottom-up'

peco のインストール

ここではリリース版のみを紹介いたします。各OSのリリース版をダウンロードして、適切なフォルダやディレクトリに置いて、実行できるようにパスを追加します。

カスタマイズもできます。peco を利用することで、ストレスを減らし、仕事が楽になるでしょう。

peco は go 製、MIT License のオープンソース・ソフトウェアです。

peco/peco source code binary