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

时间:2011-09-10 14:04:09

标签: vim

我在开发C ++项目中使用VIM并配置 compile shortcurt ,如下所示

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

构建我的项目,并在出现任何错误时显示quickfix窗口。

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

2 个答案:

答案 0 :(得分:10)

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

:make!

:help :make,第7项。

答案 1 :(得分:4)

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

从quickfix打开文件时,您可以使用set switchbuf=split始终使用新拆分。

同时检查您是否没有设置switchbuf=useopen,这可能会在通过quickfix列表时导致意外的窗口/缓冲区更改。