web-dev-qa-db-ja.com

ANSIエスケープシーケンスのvimと色:catコマンドで表示されるのと同じ色をvimで表示する方法

私がやっていることは次のとおりです:私はこのようなPHPの色を通してエコーしています:

Shell colors

phpは、端末のシェルを介して表示されるときにテキストに色を付けるANSIエスケープシーケンスを含む出力を作成します。 phpクラスと説明を見つけることができます こちら

しかし、出力をファイルに送信し、vimでそれを読み取ろうとすると、「色付き」ではなく、特殊文字が表示されるだけです。シェルに表示されるように色を表示する方法はありますか?

8
Olivier Pons

ファイルの内容が変更なしで「そのまま」端末に送信される場合、端末出力は色付けされます。ただし、vimおよび他の一部のエディターはテキスト内のメタ文字をエスケープし、代わりに構文の強調表示に他の色コードを追加する場合があるため、これは機能しません。

catでファイルを端末にダンプしてみてください、これは動作するはずです。 lessのようないくつかの単純なエディターまたはページャーも機能する場合があります。

Edit:vimにすべてのエスケープコードを「パススルー」させる方法が見つかりませんでしたしかし、私は この回答 これにリンクする vimスクリプト を見つけました。これはエスケープコードを解析し、vim構文の強調表示を使用して出力のカラーコードを再作成します。その説明によれば、それはあなたが望むことを正確に行う必要があります(しかし、私はそれをテストしていません)。

8
Philipp Wendler

ASCIエスケープ文字を処理するVimプラグインがあることがわかりました。 「Ansi Highlighting」と呼ばれます。興味がある場合は、 http://www.drchip.org/astronaut/vim/index.html#ANSIESC にアクセスしてください。

ああ、あなたは「Vimballs」を使ってANSIESCを開梱する必要があります。

0
Wawrzek