错误列表的VIM语法着色

时间:2013-11-20 22:07:53

标签: vim

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

myBuild.sh 2> errors

我可以编辑该文件以及各种来源。语法高亮显示在.cpp和.h中,但错误文件没有突出显示。

有没有办法让vim为我的错误文件着色?也许添加一个文件类型,如errors.err或存储在$ VIM_something中的一些脚本?

示例输出

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

如果我:设置filetype = cpp, 48:48 为红色, bool 为绿色,是黄色的。其他所有东西都保持不变,就像没有突出显示一样。

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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

注意:如果您将错误文件加载到Vim的 quickfix list :cfile errors)中,您将获得文件名和行/列的基本突出显示,以及跳转到该位置等设施错误。

答案 2 :(得分:0)

您可以在中将文件类型设置为cpp

:set filetype=cpp

如果您想知道当前使用的是filetype,可以输入

:set filetype

如果您不想每次都输入,可以使用autocmd

autocmd BufNewFile,BufRead *.err   set filetype=cpp