在quickfix错误上按ENTER会跳到空缓冲区

时间:2019-04-26 12:16:28

标签: vim

我正在Windows 10上使用GVim 8.1,没有任何外部插件。 我的.gvimrc文件中设置了以下内容:

include(CPack)

现在,这将自动打开带有正确的编译器输出的quickfix窗口。但是,当我在错误上按ENTER键时,光标跳到了受影响文件的缓冲区,但是一行一行完全空白。此外,这是由于我在quickfix窗口中使用let g:build_file_abs_path = fnamemodify(findfile("windows-build.bat", ";."), ":p:h") " This build script is a basic wrapper for 'clang.exe file.c -o file.exe' style invocation let &makeprg=g:build_file_abs_path . "\\windows-build.bat" nnoremap <silent> <C-B> :cd <C-R>=g:build_file_abs_path<CR> <bar> make! <bar> copen <bar> redraw <bar> cd -<CR> :cn命令而发生的。例如:

显示这两种状态的图像: before after

请注意: :cp不返回任何映射,因此那里没有冲突。

如果有人可以提供一些有关如何避免缓冲区变空并实际上跳到相应文件中的错误的见解,我将不胜感激。非常感谢。

1 个答案:

答案 0 :(得分:0)

由于克里斯蒂安·布拉班德(Christian Brabandt)的评论,我得以解决此问题。我误解了vim工作目录和构建脚本之间的区别。我进行了以下更改:

let &makeprg="cd " . g:build_file_abs_path . " && windows-build.bat"
nnoremap <silent> <C-B> :make! <bar> copen <bar> redraw <CR>