3

javascript (ノード) でのプログラミングには Vim/gVim を使用します。ファイルタイププラグインで jslint を makeprg として接続しました。エラーフォーマットは次のとおりです。

efm=%-P%f,
        \%A%>%\\s%\\?#%*\\d\ %m,%Z%.%#Line\ %l\\,\ Pos\ %c,
        \%-G%f\ is\ OK.,%-Q

そして、これがjslintの出力です:

routes/pcr.js
#1 'db' was used before it was defined.
db.collection('pcrs', function (err, collection) { // Line 11, Pos 5
#2 'db' was used before it was defined.
db.collection('pcrs', function (err, collection) { // Line 23, Pos 5
#3 'BSON' was used before it was defined.
collection.findOne({'_id': new BSON.ObjectID(id)}, function (err, item) { // Line 24, Pos 40

そして、クイックフィックスウィンドウへの出力は次のとおりです。

routes/pcr.js|11 col 5| 'db' was used before it was defined.
routes/pcr.js|23 col 5| 'db' was used before it was defined.
routes/pcr.js|24 col 40| 'BSON' was used before it was defined.

列番号の後に、次のようになるように、2 桁の数字をパディングして残したいと思います (ファイルのエラーが 99 個以下であることを願っています!)。

routes/pcr.js|11 col  5| 'db' was used before it was defined.
routes/pcr.js|23 col  5| 'db' was used before it was defined.
routes/pcr.js|24 col 40| 'BSON' was used before it was defined.

これは、行番号 0 ~ 9 にも影響すると思います。条件付きで出力をパディングすることは可能ですか?

4

2 に答える 2

2

正当化された数字は確かに素晴らしいですが、これには Vim へのソース コード パッチが必要になると思います。

クイックフィックス ウィンドウの情報は Vim の内部データ構造 (:help getqflist()形式については を参照) から取得され、Vim はそれを視覚化する方法を決定します。

于 2013-05-03T06:38:13.550 に答える
1

:help quickfix-windowエラーリストの再フォーマットについて言及しています。

次の設定は私のために機能します(更新):

au BufRead quickfix setl modifiable
            \| silent exe "%!perl -ple '
                \my ($file, $pos, $msg) = split qr{[|]}, $_, 3;
                \my $aligned_pos = sub {
                \  my @p = split qr{[ ]}, shift;
                \  return                                        if @p == 0;
                \  return sprintf q{\\%3s}, @p                   if @p == 1;
                \  return sprintf q{\\%3s \\%s}, @p              if @p == 2;
                \  return sprintf q{\\%3s \\%s \\%2s}, @p        if @p == 3;
                \  return sprintf q{\\%3s \\%s \\%2s \\%-8s}, @p if @p == 4;
                \  return join q{ }, @p;
                \}->($pos);
                \$_ = join q{|}, $file, $aligned_pos, $msg;
            \'"
            \| setl nomodifiable
于 2013-05-04T04:55:24.320 に答える