Quickfix的着色会导致Vim

Quickfix的着色会导致Vim,vim,cygwin,quickfixj,Vim,Cygwin,Quickfixj,当我在Vim中使用grep时,如何将quickfix中的结果着色 我试过: set grepprg=grep\--color=always \-n\$*\/dev/null 但它不起作用 我在cygwin上使用Vim 7.4,我也在LinuxMint15上尝试过它。请帮助,谢谢。使用--color=always,您指示grep始终输出ANSI颜色序列(看起来像^[[32;40m),即使输出不是到终端 不幸的是,Vim不理解这些序列;它有自己的(基于正则表达式的)语法高亮显示 虽然这个插件可以将前

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

我试过:

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

但它不起作用

我在cygwin上使用Vim 7.4,我也在LinuxMint15上尝试过它。请帮助,谢谢。

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

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

虽然这个插件可以将前者转换为后者,但我认为这在这里没有帮助(我曾短暂地尝试过,但效果并不理想)

解决方案 您可以编写一个自定义的
:Grep
命令,将传递的参数提供给
:Grep
,然后为quickfix窗口定义适当的语法高亮显示。问题在于
Grep
和Vim的正则表达式方言不同。您可以通过使用
:vimgrep
来避免该问题

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

/pattern
然后跟进实际的grep:

:vimgrep // file1 file2

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

即使我使用:vimgrep和:set-hlsearch,我仍然无法在quickfix窗口中获得彩色的结果,我是否遗漏了什么?谢谢。
/pattern
的另一种选择是
:match search/pattern/