快速修复清单未打开文件。

4

我正在尝试在 gvim 中使用 quickfix 列表进行 grep 搜索。我在 Windows 上运行,并通过在我的 vimrc 文件中设置以下内容来使用 Cygwin 中的 grep

set grepprg=C:/cygwin64/bin/grep

当我执行以下命令时,grep正常工作:

:grep -R 'LOG' **/*cpp

我看到第一个匹配项并使用:copen打开快速修复列表。一旦我在那里,想要跳转到匹配项时按回车键没有反应。按下Ctrl+W+Enter会打开一个空白的新窗口。如何使得当我按下EnterCtrl+W+Enter时,它会打开到匹配项位置的窗口?


你打开了autochdir吗? - romainl
1个回答

9
默认的Vim快速修复窗口映射就像你所说的<cr><c-w><cr>(在:h :lwindow中列出)。
如果这些映射不起作用,可能会出现以下几个问题:
- 您有一些映射遮盖了本机Vim映射。通过:verbose nmap <buffer> <cr>:verbose nmap <cr>检查您是否有任何与<cr>相关的映射,同时处于快速修复窗口中。对<c-w><cr>执行相同的操作。 - 结果可能被忽略。一个好的方法是,如果匹配被忽略,行将以||开头。这通常是由于未正确设置'grepformat'/'grepprg'引起的。 就我个人而言,我发现过去使用grep很慢,现在使用ag the silver searcherFugitive.vim:Ggrep命令中的git grep
更多帮助请参见:
:h quickfix
:h :lwindow
:h 'grepformat'
:h :map-verbose

1
谢谢!我在所有行的开头加了||。我添加了set grepformat=%f:%l:%m,但没有帮助。然后我添加了-n命令来设置grepprg=C:/cygwin64/bin/grep.exe\,这就解决了问题。 - jgelderloos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接