読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

Go製対話型フィルタリングツール「peco」

golang

pecoはpytyon製ツールpercolを参考にgo言語で実装された対話型フィルタリングツールです。

使い方

通常のコマンドと同様、パイプで繋いで実行します。

$ ls | peco

pecoが実行されると、クエリの入力画面がでます。

QUERY>                                                     IgnoreCase [97 (1/5)]
121025/                                                                         
121212.log                                                                      
Applications/                                                                   
Desktop/                                                                        
Documents/                                                                      
...

十字キーがついている場合は、右左でページ送りができます。

QUERY>                                                     IgnoreCase [97 (2/5)]
blog.org                                                                        
blog.txt                                                                        
brewlist.log                                                                    
contor_data/                                                                    
contour_data.zip                                                                
development.sqlite3                                                             
development_withRole.sqlite3                                                    
emacs-w3m-1.4.4/ 
...

クエリを入力すると、フィルタリング結果がでます。

QUERY> txt                                                 IgnoreCase [12 (1/1)]
blog.txt                                                                        
hatenablog.txt                                                                  
labnote1031.txt                                                                 
lecturenote1101.txt                                                             
list.txt                                                                        
mail.txt                                                                        
memolize.txt                                                                    
note.txt                                                                        
ports.txt                                                                       
rectureMemo.txt                                                                 
sample.txt                                                                      
事業計画.txt  

デフォではAND検索です。

QUERY> txt ha                                               IgnoreCase [1 (1/1)]
hatenablog.txt                                                                  
                                                                                

終わったらエンターキーで確定です。

$ ls | peco
hatenablog.txt

導入

go getで楽々。それなりの大きさがあるので、コンパイルに多少時間はかかります。

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

オプションで色々カスタマイズできる

スゴイ点として、キーバインドや色などの設定を自分で定義できる点が上げられます。
正規表現検索をデフォにしたり、一致した内容の色を自分好みに変更できたりします。
詳しい事は公式を参考にしてください。

参考もと