VIM中的ANSI颜色代码

Bla*_*ake 40 vim ansi color-codes

我有一个脚本生成一个日志文件,其中包含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
Run Code Online (Sandbox Code Playgroud)

有没有办法让Vim理解这些颜色代码?

谢谢你的帮助.

Joh*_*ter 52

我不确定vim,但是如果你只是查看一个日志文件(即你不需要编辑),你可以少用:

less -R
Run Code Online (Sandbox Code Playgroud)


gun*_*uns 38

使用Charles Campbell(Dr Chip)AnsiEsc插件:

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

之前:

之前

:AnsiEsc<CR>

后

  • Alex Efros有一个更新的Charles Campbell(Dr Chip)AnsiEsc的分支:[改进的AnsiEsc](http://www.vim.org/scripts/script.php?script_id=4979)([github](https:/ /github.com/powerman/vim-plugin-AnsiEsc)). (3认同)

小智 6

由于接受的答案中的链接似乎无效,因此我找到了此链接:https : //github.com/vim-scripts/AnsiEsc.vim


den*_*nis 5

AnsiEsc适用于基本的ANSI颜色代码,但不适用于其他代码。问题是,有很多ANSI_escape_code已经超出基本的\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
Run Code Online (Sandbox Code Playgroud)

另请参阅可爱的bash脚本colors256