問題タブ [errorformat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vim - Vim errorformat と ncvhdl
Cadence VHDL Compiler ( ) を使用して VHDL コードをコンパイルできるように、Vim 環境をセットアップしようとしていますncvhdl
。ただし、エラー形式の文字列が正しく機能していません。典型的なncvhdl
エラー行は次 のとおりです。
エラーフォーマットを次のように設定しています:
そこにヒントはありますか?ありがとう!
vim - vim errorformat の高度なパターンの意味は何ですか? (%s、%+、%\\@=)
読ん:help errorformat
でグーグルで調べてみましたが(主にstackoverflow)、そこに記載されているパターンのいくつかを理解できません:
%s
- 「エラー行を見つけるために検索するテキストを指定します。[...]」- ええと、まず、文を理解しようとして、「検索するテキスト」をどこに置きます
%s
か?その前に?または、私にはわかりませんが、パターン全体が汚染されているのでしょうか? なんてこと? - 第二に、このパターンは実際に何をしますか? パターン内の通常のテキストとどう違うの
set efm+=,foobar
でしょうか? ここの「foobar」は、私にとって「検索するテキスト」でもあります... :/
- ええと、まず、文を理解しようとして、「検索するテキスト」をどこに置きます
%+
- たとえば、ある質問で次のようなものが使用されているのを見たことがあります。%+C%.%#
%m
前/後の複数行パターンで使用される行全体が追加されるということですか?%.%#
はいの場合、 (== regexp.*
)がなかった場合はどう%+Ccont.: %.%#
なりcont.:
ます%m
か?%C%.%#
また、と%+C%.%#
との違いは何%+G
ですか?%A
また、と%+A
、またはとの違いは何%E
ですか%+E
?
- 最後に、Python の例
:help errorformat-multi-line
は次の文字で終わります:%\\@=%m
-- WTF%\\@=
って意味ですか?
このことを理解するための助けに非常に感謝しています。
javascript - Vim errorformat 複数行文字列
のこのエラー出力を解析しようとしていますFlow
。最初のエラーで重要なのは、最初のファイルではなく、2 番目のファイルと行番号です。2 番目のファイル エントリを使用するように vim に指示したいと思います。(したがって、この場合、ロケーション リストは source.js の 20 行目ではなく 94 行目にジャンプする必要があります)
flow に対して現在定義されているエラー形式は次のとおりです。
試みられた解決策
複数行のエラー形式を使用しようとしていますが、何をしているのかわかりません。を読んだ後:help errorformat
、このようなものが機能するはずですが、ファイル/行情報なしでエラー全体をメッセージにロードするだけです。また、3 番目ではなく最初のエントリを使用して 2 番目のエラーと一致します。
アップデート
正しい出力と一致していないことを指摘してくれた lcd047 に感謝します。Syntastic はエラーを次のようにフォーマットし、すべて 1 行に記述します。
新しい質問ですが、最初の場所ではなく 2 番目の場所を一致させるにはどうすればよいですか? 最初の場所は無視した方がいいと思います。
回答を更新 - これはうまくいきました:
vim - Vim errorformat 複数のエントリ
私が使用している(antによって開始された)C++コンパイラは、さまざまな形式でエラーを生成します。例えば:
[適用] /localdev/foo.cc:10:29: エラー: foo.h: そのようなファイルまたはディレクトリはありません
(それをフォーマットAと呼びましょう)
および次のような形式で:
[適用] /localdev/foo.cc:307: エラー: 予想される ';' 「標準」の前
(それをフォーマット B と呼びましょう)
注 フォーマット A には追加の列指定子があります。
両方に一致するvimエラーフォーマットを作成しようとしています。
私は持っている:
set errorformat=\ %#[適用]\ %f:%l:%c:\ error:\ %m
set errorformat+=\ %#[適用]\ %f:%l:\ error:\ %m
しかし、VimをフォーマットBに一致させることはできないようです。
最初の errorformat 設定をコメント アウトするとエラー フォーマット B と一致し、2 番目の errorformat 設定をコメント アウトするとエラー フォーマット A と一致するため、errorformat 自体が正しいことはわかっています
。errorformat 設定を逆にすると、その後、Vim がフォーマット A のエラーに遭遇すると、"/localdev/foo.cc:10" というファイルを開こうとしますが、もちろん見つかりません。(vimには貪欲なマッチングアルゴリズムがあり、この場合、ファイルに一致する文字列には行番号も含まれているようです)。
フォーマット A とフォーマット B の両方に一致する適切な errorformat 設定は何ですか?
%c を「オプション」にする方法について、インターネットと vim のドキュメントを調べましたが、その秘密は見つかりませんでした。
ありがとうございました。
vim - Vim の errorformat は無視されます
Vim (v7.3) のエラー形式に問題があります。私のCエラーをクイックフィックスに抽出するように設定しようとしています。エラー パターンはおそらくよく知られています。
私はこのエラーフォーマットを設定しています:
それから私は実行します:make
(そして私も変更し:makeprg
ました)。しかし、errorformat
設定が機能しません。クイックフィックスは多かれ少なかれコンパイルログファイル全体(エラーだけでなく)でいっぱいであるため、完全に無視されているようです。
次のように、エラーフォーマットをナンセンスに設定しようとさえします:
それでも同じ結果。クイックフィックスは何百もの行でいっぱいです。
設定のオン/オフを切り替える魔法がありerrorformat
ませんか?