1

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

我努力了:

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

但它不起作用。

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

4

1 回答 1

0

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

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

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

解决方案

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

其实最简单的解决方法是先在 Vim 内部搜索模式:

/pattern

然后跟进实际的grep:

:vimgrep // file1 file2

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

于 2014-03-25T07:52:34.600 回答