2011-04-19 73 views
6

因此,摆弄EasyGrep.vim插件,试图让它进入一个适合我的状态。 我正在使用它进行Rails项目的递归搜索。伊夫几乎得到了它,我怎么想的那样,这是grep命令我修改EasyGrep执行的例子:防止vim grep打开第一个匹配文件

:grep -R -i --include=*.rb --include=*.rbw --include=*.gem --include=*.gemspec --include=[rR]akefile --include=*.erb --include=*.rhtml SEARCH_WORD . 

其中找到光标下的单词,并打开快捷列表的搜索结果。

唯一的问题是,:grep的似乎自动打开一个包含第一场比赛到当前缓冲区,这是我希望它做的文件,因为那时我输了,我只是看文件。

任何人都知道我可以如何防止这种行为?或者,至少有一个哈克解决方法,重新打开我正在搜索的文件?

:vimgrep不是一个选项 - 它太慢了。

回答

17

:help :grep

Just like ":make", but use 'grepprg' instead of 'makeprg' and 'grepformat' instead of 'errorformat'.

:help :make

If [!] is not given the first error is jumped to.

所以::grep!

+1

至于“一个hacky解决方法”(在这里没有必要,但可能仍然对你有用),':help CTRL- ^' – 2011-04-19 23:29:52

+0

legend!我认为id已经尝试过(; grep!),但显然当时还有其他事情发生,因为现在它起作用了! – dalyons 2011-04-20 05:16:23

+4

我建议不要在vim帮助文本中粘贴。这首歌是一个很好的例子,它可能是无益的。如果他们不知道如何制作作品,那么从make中定义grep并不能帮助他人。 :grep的!将是一个简单而完整的答案。虽然我不得不同意OP,但它有点过分。有时候很简单:grep不会打开第一个错误。哦,而且超级混淆,他们被称为“错误”而不是“匹配”。 – Milimetric 2012-10-25 13:55:44

0

添加到您的.vimrc:

let g:EasyGrepOpenWindowOnMatch=0 

EasyGrep具有可以控制它的行为的许多选项。请输入:GrepOptions以获取所有这些列表。