🐕
【古いpecoが参照されてた】Windows10にWSLを再インストールしたら、pecoの表示が化けるようになった【brewでインストール】
Windows10にWSLを再インストールしたら、pecoの表示が化けるようになった
結論と解決
Ubuntu 22.04以降で、古いバージョンのpecoがUbuntuリポジトリに含まれるようになったらしく、何かしらの別パッケージが、僕の環境に古いpecoをインストールしていたことが原因だった。
$ which bin
/bin/peco
brewなどで新しいpecoをインストールして、そちらが先に参照されるようにすれば直る。
(よく知られてないかもしれないけど、brewはmacOSだけじゃなくて、Linuxにも入れられるんだよ。)
$ sudo apt remove peco
$ brew install peco
$ which peco
/home/linuxbrew/.linuxbrew/bin/peco
$ sudo apt remove peco
したくない特殊な事情があるなら、$PATH
を調整すればいい。
どうおかしくなってたの?
以下を実行すると
$ cat << EOF | peco
a
b
c
EOF
pecoに突入した時点で、以下のような表示になっていた。
$ cat << EOF | peco
c
%p1%dG
a
>O IgnoreCase [3 (1/1)]
%p1%dGQ
a,b,cがリバースしており、c,b,aになっている? のと、bが%p1%dG
になっている。
詳しくは追ってないけど、僕のClaude Codeによると
「%p1%dG
みたいな制御文字の化けは、古いpecoのターミナル制御機能の問題だったのですね♪」
とのこと。
解決
これがおかしい。
$ which bin
/bin/peco
新しいpecoを入れる。
$ sudo apt remove peco
$ brew install peco
$ which peco
/home/linuxbrew/.linuxbrew/bin/peco
なんで以前は大丈夫だったの?
僕は以前はUbuntu20.04あたりを使っており、またbrewからpecoをインストールしていたため。
Discussion