回答:
2つの答え:
短いもの:vimスクリプトAnsiEsc.vimを使用したい。ファイル内の実際のANSIエスケープシーケンスを隠し、構文の強調表示を使用してテキストを適切に色付けします。これをポケットベルで使用する際の問題は、vimにいつ使用するかを認識させる必要があることです。常にロードできるのか、他の構文ファイルと競合するのかはわかりません。あなたはそれを実験する必要があります。
長い答え:期待できる最善の方法は、部分的に移植性のないソリューションです。Lessは実際には端末のエスケープシーケンスを理解していません。これらは端末に大きく依存しているためです。しかし-r
、-R
)オプション。端末はエスケープシーケンスを解釈し、テキストの属性(色、太字、下線...)を変更します。Vimは、ページャーではなくエディターであるため、単に生の制御文字を端末に渡すだけではありません。何らかの方法で表示する必要があるため、実際に編集できます。隠蔽や構文の強調表示など、vimの他の機能を使用してシーケンスを非表示にし、テキストの色の設定に使用できますが、常にターミナルシーケンスのサブセットのみを処理し、一部のターミナルでは動作しません。
これは、テキストエディターをページャーとして使用しようとするときに遭遇する多くの問題の1つにすぎません。
vim 8では、ターミナルモード:terminal
を使用し、そのターミナルcat myfile
でCtrl-w Nを使用して通常モードに戻ることができます。これにより、ANSIカラーコードが正しく表示されます。これらの手順を自動化し、ファイルではなく標準入力から読み取ることにより、vimを使用してlessを置き換えることができるはずです。
less
ますか?
ls --color=always >/tmp/colored.txt
、その後、vimの中:terminal cat /tmp/colored.txt
に続いて:only
、あなたは以下のような素敵なvimので着色lsの出力を行うだろう必要があります。vimは起動時にコマンドライン引数としてコマンドを渡すことをサポートしているため、そのソリューションを置換のために機能させるためにless