如何让Vim在新缓冲区中展示C++编译产生的错误与警告信息?
你需要的效果可以通过Vim自带的quickfix功能实现,不需要修改现有编译脚本,只需要在.vimrc中添加对应配置即可,操作方法如下:
配置步骤
1. 修改.vimrc配置文件
添加以下内容:
" 配置编译命令,完全适配你使用的g++编译参数 set makeprg=g++\ -static\ -DLOCAL\ -lm\ -s\ -x\ c++\ -Wall\ -Wextra\ -O2\ -std=c++17\ -o\ %<\ % " 匹配g++的错误输出格式 set errorformat=%f:%l:%c:\ %m " 编译完成后如果存在错误/警告,自动打开quickfix窗口 autocmd QuickFixCmdPost [^l]* nested cwindow " 设置quickfix窗口默认高度,可自行调整数值 set quickfixheight=8 " 可选:配置快捷键提升操作效率 nnoremap <F5> :cnext<CR> " 跳转到下一个错误 nnoremap <F6> :cprev<CR> " 跳转到上一个错误 nnoremap <F7> :cclose<CR> " 关闭quickfix窗口
如果你希望继续使用自己现有的shell编译脚本,只需要把makeprg配置项替换为你的脚本路径即可,假设你的脚本名为compile.sh存放在用户根目录:set makeprg=~/compile.sh\ %<
2. 操作方式
- 打开待编译的C++文件后,在Vim正常模式输入
:make即可触发编译 - 所有警告、错误会自动展示在Vim底部的独立quickfix缓冲区,无需切换到终端,效果和你期望的截图一致:

- 把光标移到quickfix的错误行按回车,会自动跳转到源码对应的错误位置
- 可通过配置的F5、F6快捷键快速切换错误条目,F7一键关闭quickfix窗口
内容的提问来源于stack exchange,提问作者Godspeed
相关产品推荐
相关产品推荐

