# Poco

- URL: <https://krymtkts.github.io/posts/2019-06-23-poco.html.md>
- Date: 2019-06-23
- Author: krymtkts
- Tags: powershell, poco

5月以降outputのリズムが崩れております🤔

時間の使い方の改善を目論み、ポモドーロを導入するなど。まだ効果の程は見えていないので今日はPowerShell版pecoのpocoを紹介する。

### peco

まずpecoってなんじゃこらって感じでもあるのだが、linuxなどで使えるインクリメンタルなフィルタリングコマンドらしい。

[Unix :: コマンド / peco [Tipsというかメモ]](http://tm.root-n.com/unix:command:peco)

こんなに便利な機能なので、もちろんWindowsでも使えるようになってある [peco/peco: Simplistic interactive filtering tool](https://github.com/peco/peco)

ただ日常使いのシェルをPowerShellにしている身としては、単純なテキストの絞り込みじゃなくてオブジェクトを扱えるやつが望ましいわけで...

### poco

というふうに思ってたら普通にPowerShell Galleryにあったわ😲

PowerShellの場合は[powershell peco](https://gist.github.com/yumura/8df37c22ae1b7942dec7)というのがあって、それを使ったPSModuleがPSGalleryに上がっている...!!!これは使わない手はないぞよ🤔

- [PowerShell Gallery | poco 1.1.0](https://www.powershellgallery.com/packages/poco/1.1.0)
- [jasonmarcher/poco: Interactive pipeline filtering in PowerShell (a port of peco).](https://github.com/jasonmarcher/poco)

ただしこのモジュール、[powershell peco](https://gist.github.com/yumura/8df37c22ae1b7942dec7)のコードをそのまま使ってるのが現状みたいで、作者の方が書かれている改善点そのまま残ってるくさい😭

[PowerShell で peco (インタラクティブ・フィルタリングツール)っぽいものを作った - Qiita](https://qiita.com/yumura_s/items/a068329769c6338471dd)

という具合に不完全なできであるのは確かなんやが、雰囲気でCLIにPowerShellを使っているようなワイには非常に便利なツールなのである。

### pocoを使ってなにか書こう

例えば、PowerShellではCLIの完全な入力履歴を取ろうとしたら`PSReadLine`に頼ることになるのだが、こいつをインタラクティブにフィルタリングするコマンドをぺぺっと書いてしまうこともできる↓

```powershell
function Show-ReadLineHistory() {
    Get-Content -Path (Get-PSReadlineOption).HistorySavePath | poco
}
```

こんな風な単純なやつは正直なところpecoで十分なのだけど...

あと、検索結果の1行を選んで即実行なんしたいのだけど、pocoの機能不足でリストアップされた検索結果をarrow keyで選んだりとかできないので、今のところかなり癖のある使い方になってる😅

そんな感じPowerShellにも育てたい？ツールがあって使っていくモチベーションみたいなもんが湧いてきますな？🤔現状至らないところ多いからなんかコントリビュートしたい。
でもまず時間を作らなあかんな🤔
