\x1B[…;…m 形式のカラーシーケンスを受け付けるページャ(例えば拙作の nemo )で、Git 互換バージョン管理システム jj のバージョン間差分を見る時、出力が歯抜けになってしまう場合がある(差分が表示されるべき行が空行になったりする)
(例:文字コード変換のためにフィルターを入れようとした)
jj diff --color always | nkf32 -w | nemo
これは Windows のみ発生するケースで、どうやら CR と LF の間にカラーシーケンスが入ってしまうためのようだ。そのせいで、凝ったことをやってるページャはおかしくなる(逆に more.com などはまったく無傷)
この場合、Perl をかませて、単品の CR を削除し、LF を CRLF に変換すればよろしい。
jj diff --color always | nkf32 -w | perl -pe "s/\r//g; s/\n/\r\n/g" | nemo