You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 10:54:04