Quickfix的颜色化导致Vim

时间:2014-03-24 16:32:44

标签: vim cygwin quickfixj

在Vim中使用grep时,如何将quickfix中的结果着色?

我试过了:

set grepprg=grep\ --color=always\ -n\ $*\ /dev/null

但它不起作用。

我在cygwin上使用Vim 7.4,我也在Linux Mint 15中尝试过它。请帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

使用--color=always,指示grep始终输出 ANSI颜色序列(看起来像^[[32;40m的东西),即使输出不是终端。

不幸的是,Vim并不理解这些序列;它有自己的(基于正则表达式)语法突出显示

虽然AnsiEsc.vim插件可以将前者翻译成后者,但我不认为这在这里有用。 (我已经简单地尝试过了,它没有按预期工作)。

溶液

您可以编写一个自定义:Grep命令,将传递的参数提供给:grep,然后为quickfix窗口定义相应的语法突出显示。问题是grep和Vim的正则表达式方言是不同的。您可以使用:vimgrep

来避免此问题

事实上,最简单的解决方案是首先在Vim中搜索模式

/pattern

然后跟进实际的grep:

:vimgrep // file1 file2

使用:set hlsearch,您将自动突出显示匹配项(在所有窗口中,包括quickfix窗口,但只要您不搜索其他内容)。