Vim 中的 `:cw` 命令:如何避免自动跳转到第一个错误?

Vim 中的 `:cw` 命令:如何避免自动跳转到第一个错误?

在 Vim 中,:cw如果有任何错误,命令会显示快速修复窗口,并让光标跳转到快速修复窗口中第一个识别的错误(而不是在出现错误的缓冲区中)。是否有命令可以执行相同的工作,但不跳转到第一个错误,而是停留在原来的位置?

答案1

如果你的问题是 quickfix 窗口从你当前正在工作的窗口窃取了焦点,那么解决方案很简单。将以下几行添加到你的~/.vimrc

augroup quickfix
  autocmd!
  autocmd Syntax qf wincmd p
augroup END

它不是:cw[indow]将光标跳转到缓冲区中第一个匹配行的命令,而是创建在快速修复窗口中显示的列表的命令。

假设您有:

foo
foobar
foobarbaz

你也是:

:vim foo %

您的光标将自动定位到第一个匹配的行上,无需:cw

如果你这样做:

:vim foo % | cw

您的光标仍然位于第一个匹配的行上,因此该行为与无关:cw

但如果你这么做:

:vim /foo/j % | cw

你的光标停留在原处。参见:help :vimgrep

您应该检查所用命令的文档,看看它是否具有与该j标志等效的功能。

相关内容