繁体   English   中英

jslint vim 错误格式

[英]jslint vim errorformat

我在我的系统上安装了带有 npm 的jslint

它产生以下格式的错误消息:

  1 1,9: Missing name in function statement.
    function() {
  2 2,11: Use '===' to compare with '0'.
    if (x == 0) {
  3 4,2: Unnecessary semicolon.
    };

我为 Vim 编写了一个编译器插件来解析错误消息,但我无法弄清楚errorformat的问题。 我的编译器文件中现在有以下内容:

CompilerSet makeprg=jslint
      \\ $*
      \\ %
CompilerSet errorformat=
    \%*[\ ]%n\ %l\,%c:\ %m,
    \%-G%.%#

哪个 AFAIK 应该执行以下操作:

  • %*[\ ] -- 跳过行首的空格
  • %n -- 匹配错误号
  • \ -- 跳过一个空格
  • %l -- 匹配行号
  • \, -- 跳过逗号
  • %c -- 匹配列号
  • : -- 跳过冒号
  • \ -- 再次跳过空格
  • %m -- 匹配错误信息
  • , -- 新行
  • %-G%.%# -- 跳过所有其他

它运行显示消息的jslint ,但:clist命令不显示任何错误。

我错过了什么?

问题在于\, ,跳过逗号,正确的格式是:

CompilerSet errorformat=
    \%*[\ ]%n\ %l%.%c:\ %m,
    \%-G%.%#

逗号必须用\\,因为,是错误格式的特殊字符,而\是 vim 配置文件中的特殊字符,它本身必须被转义。 对于 vim,您的错误格式为%*[ ]%n %l\,%c: %m,%-G%.%# ,因为行首或空格之前的\是 vim 的转义,而不是对于错误格式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM