防止:使VIM进入警告状态
我有一个警告,我不能轻易地从我的构建中删除,每次我运行:make“从vim内部,quickfix将我带到一些我不关心的头文件。如何防止VIM这样做,而只向我显示我确实关心的警告和错误?一种快速而肮脏的方法是编写一个简单的shell脚本,运行make并将不希望看到的警告变灰。然后让vim使用此脚本而不是make(将“set makeprg=yourscript.sh”添加到您的.vimrc中)。检查防止:使VIM进入警告状态,vim,makefile,warnings,Vim,Makefile,Warnings,我有一个警告,我不能轻易地从我的构建中删除,每次我运行:make“从vim内部,quickfix将我带到一些我不关心的头文件。如何防止VIM这样做,而只向我显示我确实关心的警告和错误?一种快速而肮脏的方法是编写一个简单的shell脚本,运行make并将不希望看到的警告变灰。然后让vim使用此脚本而不是make(将“set makeprg=yourscript.sh”添加到您的.vimrc中)。检查:h'errorformat'(又称&efm),只要您能用模式识别警告,就可以忽略警告。向Bram本
:h'errorformat'
(又称&efm
),只要您能用模式识别警告,就可以忽略警告。向Bram本人学习
我模模糊糊地记得他在伦敦的某个地方谈到这件事
他添加了一个过滤器,在编译gvim时忽略一些gnome警告
不管怎样,这段视频很值得一看
大约30分钟。正如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
可用于指定要忽略的模式。
set errorformat^=…
中的^=
用于将忽略的警告模式预先添加到'errorformat'
——使用+=
(set errorformat+=…
)将附加到选项中,并且不起作用,因为'errorformat'
是一个格式列表,并且使用了第一个匹配的格式,因此“正常”警告模式将改为应用
也许您可以根据您的环境调整这些设置。为了建立在Ammontu建议的基础上,将其添加到my中。vimrc帮了我的忙(忽略我的gcc编译器中的所有警告)
set errorformat^=%-G%f:%l:\warning:%m只记住
%.%.
,这只是regexp*
,您可以set errorformat^=%-G%.%.\u warning#u message%.%.\code>这将删除所有包含子字符串的行warning#u message
。记住在errorformat前加前缀,而不是附加。这不会让模式与您想要的文件名匹配,但是如果警告足够具体,就可以了。如果需要的话,只学习更复杂的东西。用neovim尝试这个方法,结果根本不起作用。@AcidTonic,这并不奇怪,因为答案是在neovim诞生之前四年给出的。无论如何,对文档的引用仍然应该是相关的(errorformat
),因此您可以在当前版本中查找更改,并在必要时进行调整。