在使用vim快速修复窗口时,请勿更改当前缓冲区

7

在我开发C++项目时,我使用VIM,并配置了以下的编译快捷键

map <F4> :w<CR> :set makeprg=make<CR> :make <CR>:cw 4<CR>

这个命令用于构建我的项目并在出现任何错误时显示快速修复窗口。

但是,当错误不是由编译器指示的行逻辑引起而是由文件中当前打开的其他代码引起时,VIM总是会打开包含第一个错误的文件,这让人感到很烦恼。是否可以防止VIM在跳转到错误时切换当前打开的文件(即:只有在当前文件中包含第一个错误时才跳转,否则仅打开快速修复窗口)。同时:我能否完全防止跳转到第一个错误(再次强调:仅打开快速修复窗口)?

2个回答

10
为了防止:make命令跳转到第一个错误,请使用!修饰符调用它。
:make!

请参见:help :make,第7项。


6
除了使用 make!(带感叹号)外,还可以查看'switchbuf'选项。
您可以使用 set switchbuf=split 来始终在打开快速修复文件时使用新的分割窗口。
还要检查您是否设置了 switchbuf=useopen,这可能会在浏览快速修复列表时导致意外的窗口/缓冲区更改。

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