grep
在 Vim 中使用时,如何使 quickfix 中的结果着色?
我努力了:
set grepprg=grep\ --color=always\ -n\ $*\ /dev/null
但它不起作用。
我在 cygwin 上使用 Vim 7.4,我也在 Linux Mint 15 中尝试过。请帮忙,谢谢。
使用--color=always
,您指示 grep 始终输出ANSI 颜色序列(看起来像^[[32;40m
的东西),即使输出不是终端。
不幸的是,Vim 不理解这些序列。它有自己的(基于正则表达式的)语法高亮。
虽然AnsiEsc.vim插件可以将前者翻译成后者,但我认为这在这里没有帮助。(我已经简单地尝试过,它没有按预期工作)。
您可以编写一个自定义:Grep
命令,将传递的参数提供给:grep
,然后为 quickfix 窗口定义适当的语法突出显示。一个问题是grep
和 Vim 的正则表达式方言不同。您可以使用:vimgrep
.
其实最简单的解决方法是先在 Vim 内部搜索模式:
/pattern
然后跟进实际的grep:
:vimgrep // file1 file2
使用:set hlsearch
,您将自动突出显示匹配项(在所有窗口中,包括快速修复窗口,但只要您不搜索其他内容)。