在 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
标志等效的功能。