在Vim中使用grep
时,如何将quickfix中的结果着色?
我试过了:
set grepprg=grep\ --color=always\ -n\ $*\ /dev/null
但它不起作用。
我在cygwin上使用Vim 7.4,我也在Linux Mint 15中尝试过它。请帮助,谢谢。
答案 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窗口,但只要您不搜索其他内容)。