VIM语法着色错误列表

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

myBuild.sh 2> errors

我可以编辑该文件以及各种来源。 语法突出显示在.cpp和.h's中工作,但错误文件不被着重。

有没有办法让vim着色我的错误文件? 也许在errors.err或$ VIM_something中存储的某些脚本中添加filetype?

示例输出

/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是绿色的,而不是这个是黄色的。 其他的一切都保持白色,就像没有突出显示一样。


考虑使用:make从vim中,你可以通过设置:h 'makeprg'选项来设置它使用你的shell命令,例如: set makeprg=myBuild.sh 2>&1 ,默认值:h 'errorformat' set makeprg=myBuild.sh 2>&1与这工作,否则你可以调整它。


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

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

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


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

:set filetype=cpp

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

:set filetype

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

autocmd BufNewFile,BufRead *.err   set filetype=cpp
链接地址: http://www.djcxy.com/p/19135.html

上一篇: VIM Syntax coloring for error listings

下一篇: Piping buffer to external command in Vim