wslttyという、WSL用の端末エミュレータがあります。
GitHub - mintty/wsltty: Mintty as a terminal for Bash on Ubuntu on Windows / WSL
wslttyは、以前はスクロールバックが事実上無制限だったのですが、最近のバージョンだとたったの25万行しか保持できなくなっていました。 これは(あまり普通の使い方ではなさそうですが)私の使い方では大問題です。
他の端末エミュレータ
調べた範囲ではまともな端末エミュレータは他には存在しませんでした。
Windowsで使えるターミナルとシェルのまとめ - Qiitaを参考に以下を導入して調べましたが、全く話になりません。
端末エミュレータ | 最大スクロールバック | 備考 |
---|---|---|
ConEmu | 32766行 | これを超える値を設定すると強制的にこの値になる |
ConsoleZ | 32766行 | これを超える値を設定するとエラーとなる |
Hyper | 無限? | yes コマンドに対するCtrl+Cの効きが悪い(7秒くらいかかる) |
PowerShell | 実測で9031行 | 最大スクロールバックの量をいくら大きくしても無言で この量になって邪悪。また、 yes コマンドに対するCtrl+Cの効きが悪い(2秒くらいかかる) |
wslttyの設定で直せる
wslttyはオープンソースですから、解決策を自力で探すことができます。 wslttyはminttyの薄いラッパーなので、minttyのソースを読む必要があります。
GitHubでscrollbackなどと検索してみると、以下のコードが怪しそうであることがわかります。
https://github.com/mintty/mintty/blob/eb8c5c81e561598704ff7f3384917debaaa4f529/src/config.c#L160
どうやらこのコミットでスクロールバックが25万行に制限されてしまったようです
MaxScrollbackLinesはGUIからは設定できませんが、configファイルを直接編集することで設定できます。
configファイルは、C:\Users\lpha\AppData\Roaming\wsltty
にありました。
これに、MaxScrollbackLines=999999999
を書き加えれば、スクロールバックが以前と同様に十分多く保持されるようになりました。