Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
防止:使VIM进入警告状态_Vim_Makefile_Warnings - Fatal编程技术网

防止:使VIM进入警告状态

防止:使VIM进入警告状态,vim,makefile,warnings,Vim,Makefile,Warnings,我有一个警告,我不能轻易地从我的构建中删除,每次我运行:make“从vim内部,quickfix将我带到一些我不关心的头文件。如何防止VIM这样做,而只向我显示我确实关心的警告和错误?一种快速而肮脏的方法是编写一个简单的shell脚本,运行make并将不希望看到的警告变灰。然后让vim使用此脚本而不是make(将“set makeprg=yourscript.sh”添加到您的.vimrc中)。检查:h'errorformat'(又称&efm),只要您能用模式识别警告,就可以忽略警告。向Bram本

我有一个警告,我不能轻易地从我的构建中删除,每次我运行:make“从vim内部,quickfix将我带到一些我不关心的头文件。如何防止VIM这样做,而只向我显示我确实关心的警告和错误?

一种快速而肮脏的方法是编写一个简单的shell脚本,运行make并将不希望看到的警告变灰。然后让vim使用此脚本而不是make(将“set makeprg=yourscript.sh”添加到您的.vimrc中)。

检查
: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
),因此您可以在当前版本中查找更改,并在必要时进行调整。