Vimに色コードで示された色を表示させる方法は?


61

要するに、私は()に置き換える努力をしてlessいます。可能な場合はいつでも色(および太字など)を吐き出すスクリプトの設定があります。カラーコードを理解し、適切に表示します。どうすればコードを解析し、色/太字を表示できますか?vimvimpagerlessvimless

回答:


45

2つの答え:

短いもの:vimスクリプトAnsiEsc.vimを使用したい。ファイル内の実際のANSIエスケープシーケンスを隠し、構文の強調表示を使用してテキストを適切に色付けします。これをポケットベルで使用する際の問題は、vimにいつ使用するかを認識させる必要があることです。常にロードできるのか、他の構文ファイルと競合するのかはわかりません。あなたはそれを実験する必要があります。

長い答え:期待できる最善の方法は、部分的に移植性のないソリューションです。Lessは実際には端末のエスケープシーケンスを理解していません。これらは端末に大きく依存しているためです。しかし-r-R)オプション。端末はエスケープシーケンスを解釈し、テキストの属性(色、太字、下線...)を変更します。Vimは、ページャーではなくエディターであるため、単に生の制御文字を端末に渡すだけではありません。何らかの方法で表示する必要があるため、実際に編集できます。隠蔽や構文の強調表示など、vimの他の機能を使用してシーケンスを非表示にし、テキストの色の設定に使用できますが、常にターミナルシーケンスのサブセットのみを処理し、一部のターミナルでは動作しません。

これは、テキストエディターをページャーとして使用しようとするときに遭遇する多くの問題の1つにすぎません。


簡単に言えば、Vimでターミナルエミュレータの一部を記述する必要があります。これは、入力に存在するターミナルエスケープシーケンスを処理する部分です。
ジル「SO-悪であるのをやめる」

ありがとう、私はあきらめていると思います。簡単ではない場合、それはもう意味がありません。
プネヘヘ

1
@JanHlavacekリンクが壊れています:(
Nitrodist

19
@Nitrodist: less -r FILEソース
アドビ


2

vim 8では、ターミナルモード:terminalを使用し、そのターミナルcat myfileでCtrl-w Nを使用して通常モードに戻ることができます。これにより、ANSIカラーコードが正しく表示されます。これらの手順を自動化し、ファイルではなく標準入力から読み取ることにより、vimを使用してlessを置き換えることができるはずです。


それはまったく質問に答えません。これはどのように置き換えられlessますか?
ossbuntu

あなたが実行した場合@ossbuntu ls --color=always >/tmp/colored.txt、その後、vimの中:terminal cat /tmp/colored.txtに続いて:only、あなたは以下のような素敵なvimので着色lsの出力を行うだろう必要があります。vimは起動時にコマンドライン引数としてコマンドを渡すことをサポートしているため、そのソリューションを置換のために機能させるためにless
いじくり回す
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.