使用vim quickfix窗口时,请勿更改当前缓冲区

dcn*_*dcn 7 vim

我在开发C++项目时使用VIM,并按如下方式配置编译简述

map <F4> :w<CR> :set makeprg=make<CR> :make <CR>:cw 4<CR>
Run Code Online (Sandbox Code Playgroud)

它构建我的项目并显示quickfix窗口,以防出现任何错误.

但是,这将始终使vim打开包含当前缓冲区中第一个错误的文件,当编译器指示的行不是逻辑上导致错误而当前打开的文件中的某些其他代码段时,这会很烦人.跳转到错误时,是否可以阻止VIM切换当前打开的文件(即仅当包含在当前文件中时才转到第一个错误,否则只需打开quickfix窗口).另外:我可以防止跳转到第一个错误(再次:只需打开quickfix窗口)

ib.*_*ib. 10

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

:make!
Run Code Online (Sandbox Code Playgroud)

见第:help :make7项.


blu*_*yed 5

除了使用make!(带有爆炸声)外,另请参阅“ switchbuf”选项。

set switchbuf=split从quickfix打开文件时,您可能总是使用新的拆分。

还要检查您是否未设置switchbuf=useopen,这可能会在浏览快速修复列表时导致意外的窗口/缓冲区更改。