web-dev-qa-db-ja.com

ANSIカラーコードVIM

ANSIカラーコードを含むログファイルを生成するスクリプトがあります。

[2012-05-14 18:00:02] ^[[0mINF: -- Starting update script --^[[0m
[2012-05-14 18:00:29] ^[[91mERR: Improper date, entry being ignored.^[[0m

Vimにこれらのカラーコードを理解させる方法はありますか?

助けてくれてありがとう。

42
Blake

Charles Campbell(Dr Chip)AnsiEscプラグインを使用します。

http://www.vim.org/scripts/script.php?script_id=302

前:

before

:AnsiEsc<CR>

after

40
guns

Vimについてはわかりませんが、ログファイルを表示しているだけの場合(つまり、編集する必要がない場合)、以下を使用できます。

less -R
53
John Carter

承認された回答のリンクが機能していないように見えるため、次のリンクを見つけました: https://github.com/vim-scripts/AnsiEsc.vim

6
ndjensen

AnsiEscは、基本的なANSIカラーコードで機能しますが、他のコードでは機能しません。問題は ANSI_escape_codelotsが基本的な\033[31m red \033[0mを超えていることです。 AnsiEscとは何ですか、\033[... unrecognizedを使用するためのプログラムは何ですか? AnsiEscはそれをそのままにしているようですが、Vimとmvimでは異なります。

AnsiEscに関するより良いドキュメントを歓迎します。 python=の小さなANSIエスケープコードパーサーへのリンクは歓迎されます。

TERM xterm-256colorおよびmacosxターミナルバージョン2.3を使用したgnu lsおよびgrepからのカラー出力のテストケース:

#!/bin/bash
# test https://en.wikipedia.org/wiki/ANSI_escape_code#Colors from gnu ls and grep

mkdir bluedir  2> /dev/null
ls -d --color=always  bluedir  > ls.out

echo red-hot | grep --color=always  red  > grep.out

od -c ls.out
# 0000000  033   [   0   m 033   [   3   4   m   b   l   u   e   d   i   r
# 0000020  033   [   0   m  \n                                            
# Vim 7.3 :AnsiEsc "bluedir" blue, \033[0m as is
# mvim 8.0 :AnsiEsc "bluedir" works

od -c grep.out
# 0000000  033   [   0   1   ;   3   1   m 033   [   K   r   e   d 033   [
# 0000020    m 033   [   K   -   h   o   t  \n                            
# both Vim and mvim display as is

素敵なbashスクリプト colors256 も参照してください。

5
denis