Vimは端末のカラーエスケープコードを解釈できますか?


29

多くのCLIプログラムは、適切に強調表示されたテキストを出力します。それらのほとんどは、出力がファイルに送信されるかどうかをチェックしますが、一部にはターミナルエスケープコードが含まれます。エスケープコードを使用した出力は気に入っていますが、Vimでこれらのファイルを表示するのは苦痛です。

Vimはこれらのエスケープコードを予想される色に解釈できますか?そうでない場合、これらのエスケープコードを無視するようにVimを設定できますか?

回答:


28

エスケープコードを使用してANSIカラーを表示できるさまざまなプラグインがあります。


すべてのエスケープコードを削除する場合は、次を使用できます。

:%s/<1b>\[[0-9;]*m//g

注:リテラルテキストで<1b>なく、エスケープ文字です。Ctrl+を使用vEscて挿入^[します(display設定によっては、と表示される場合もあります)。

または、sed;で削除できます。例えば:

$ sed 's|\x1b\[[;0-9]*m||g' somefile | vi -

0

+ terminal機能を備えた十分に近代的なvimがあれば、それを行う:term cat somefileことができ、すべての端末コードが解釈されたバッファーが得られます。

これは、Colorizerなどの大きなファイルでうまく機能する可能性があります。これにより、6000行のファイルでvimを緩めると、vimが使用できないほど遅くなります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.