我有一个警告,我不能轻易地从我的构建中删除,每次我从 vim 内部运行 ":make" 时,quickfix 都会将我带到一些我不关心的头文件。我怎样才能防止 VIM 这样做并且只向我显示我关心的警告和错误?
5 回答
正如 Luc Hermite 所说,可以使用'errorformat'
选项忽略警告。调整这个选项有点复杂;$VIMRUNTIME/compiler
检查一些示例可能会有所帮助。
使用 avr-gcc 和 C++ 时会出现一些像这样的恼人警告
tests.cpp:492: warning: only initialized variables can be placed into program memory area
出现,这很可能是编译器错误的结果。
为避免在 quickfix 窗口上显示此警告,我将其添加到~/.vimrc
:
compiler gcc
set errorformat^=%-G%f:%l:\ %tarning:\ only\ initialized\ varia
\bles\ can\ be\ placed\ into\ program\ memory\ area
可%-G
用于指定要忽略的模式。^=
in用于将set errorformat^=...
忽略的警告模式添加到'errorformat'
-- using +=
( set errorformat+=...
) 将附加到选项并且不起作用,就像'errorformat'
格式列表一样,并且使用第一个匹配的格式,因此“正常”警告模式将改为申请。
也许您可以根据您的环境调整这些设置。
检查:h 'errorformat'
(又名&efm
),只要您可以使用模式识别警告,就有忽略警告的选项。
一种快速而肮脏的方法是编写一个简单的 shell 脚本来运行你的 make 并找出你不想看到的警告。然后让 vim 使用这个脚本而不是 make(添加“set makeprg=yourscript.sh”到你的 .vimrc)。
为了建立在 mMontu 建议的基础上,将其添加到我的 .vimrc 对我有用(忽略来自我的 gcc 编译器的所有警告)
设置错误格式^=%-G%f:%l:\ 警告:%m