错误列表的VIM语法着色

错误列表的VIM语法着色,vim,Vim,我们使用shell脚本调用各种cmake操作来构建我们的产品。回显到STDERR的信息是g++编译器输出的错误。我可以使用流重定向将错误获取到文件中 myBuild.sh 2> errors 我可以编辑该文件以及各种来源。语法高亮显示在.cpp和.h中工作,但错误文件未高亮显示 有没有办法让vim为我的错误文件着色?可能添加errors.err中的文件类型,或者添加存储在$VIM_中的脚本 示例输出 /wxyzModule/wxyzModule.h: In member function

我们使用shell脚本调用各种
cmake
操作来构建我们的产品。回显到STDERR的信息是g++编译器输出的错误。我可以使用流重定向将错误获取到文件中

myBuild.sh 2> errors
我可以编辑该文件以及各种来源。语法高亮显示在.cpp和.h中工作,但错误文件未高亮显示

有没有办法让vim为我的错误文件着色?可能添加errors.err中的文件类型,或者添加存储在$VIM_中的脚本

示例输出

/wxyzModule/wxyzModule.h: In member function 'void WxyzModule::setIsTesting(bool)':
/wxyzModule/wxyzModule.h:48:48: error: 'm_isTesting' was not declared in this scope

如果I:set filetype=cpp,则48:48为红色,bool为绿色,not为黄色。其他所有内容都保持白色,就好像没有突出显示一样。

您可以使用将文件类型设置为,例如,
cpp

:set filetype=cpp
如果您想知道当前使用的
文件类型
,只需键入

:set filetype
如果您不想每次都键入,可以使用
autocmd

autocmd BufNewFile,BufRead *.err   set filetype=cpp

考虑在vim中使用
:make
,您可以通过设置
:h'makeprg'
选项将其设置为使用shell命令,例如
set makeprg=myBuild.sh\2>&1
,默认的
:h'errorformat'
应该可以使用此选项,否则,你可以调整它。

虽然你的错误文件包含C++函数和变量名,<强>它不是C++语法(特别是前面的文件名的整体结构不同)。因此,尝试将
:setfiletype cpp
应用于它肯定会失败

如果你真的需要突出显示,你必须编写自己的语法插件(例如称为
g++errorformat
)。您当然可以从
$VIMRUNTIME/syntax/cpp.vim
复制某些语法元素,但本质上,您编写的是一个单独的语法


注意:如果您将错误文件加载到Vim的快速修复列表中(
:cfile errors
),您将获得文件名和行/列的基本高亮显示,以及跳转到错误位置等便利条件。

查询我的文件类型返回文件类型=即无文件类型。将其设置为cpp会在这里和那里突出显示一些单词,但没有什么特别之处。这是一个错误信息文件,不是代码,尽管有些行可能包含一些代码。您希望有哪种突出显示?现有的?您还可以编写自己的语法突出显示:好问题。现在我可以用cpp染色了。我想我期望“in file included from”行的颜色与实际错误的颜色不同。可能是另一种颜色的文件名。。。旁白:有趣的是,这个东西需要英式拼写。写一个自定义的errorformat并使用quickfix窗口怎么样?