1

jslintをnpmとともにシステムにインストールしています。

次の形式でエラーメッセージが生成されます。

  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コマンドはエラーを表示しません。

私は何が欠けていますか?

4

2 に答える 2

1

問題は\,、スキップコンマにありました。正しい形式は次のとおりです。

CompilerSet errorformat=
    \%*[\ ]%n\ %l%.%c:\ %m,
    \%-G%.%#
于 2011-05-03T14:38:28.687 に答える
0

カンマは、エラー形式の特殊文字であり、vim構成ファイルの特殊文字であるため、エスケープする必要があります。これ自体をエスケープする必要があります\\,。vimにとって、エラー形式はです。これは、行の先頭またはスペースの前が、エラー形式ではなくvimのエスケープであるためです。,\%*[ ]%n %l\,%c: %m,%-G%.%#\

于 2014-08-29T08:56:51.537 に答える