ターミナルウィンドウでmakeからのエラーをキャプチャする方法


8

Vim 8.1のリリースノートは、ターミナルウィンドウで実行中のmakeからの出力をquickfixリストにフィードできることを示しているようですが、詳細な説明は見つかりませんでした。これを自動的に行う方法はあり:caddbufferますか、それとも手動でクイックフィックスリストに追加する必要がありますか?


これは一般的ですか?これはどのようなタスクですか?Quickfixの最も一般的な使用法は、lintingとgreppingです。リンティングしている場合は、:makeまたはALEを使用します。検索する場合は、を使用します:grep。そうしないと、あなたは、おそらくのような何かをする必要があります:cgetbuffer可能性が高いか<c-w>N、出力をヤンク、その後:cexpr @@
ピーターRincker

1
「検出されたエラーをキャッチしてクイックフィックスリストに追加できるため、問題の原因に直接ジャンプできます。」OPは、これを書いた人(Bram?)の意味を知りたいだけです。
質量

@PeterRincker私はとをよく使用しますが:make:grep実行中にエディター全体をブロックする方法が気になります。リリースノートのようにターミナルウィンドウを使用することは、有望な代替手段のように見えます。@Massが言及したリリースノートの一節は、これを行う簡単な方法があることを示唆しているようですが、私は本当にわかりません。
水無月そら

回答:


2

小さなプラグインvpagerを作りました。端末の出力をダンプしてVimに戻すことができます。

さらに、最後のコミットでは、出力を使用してクイックフィックスリストにダンプできます。だから、あなたは簡単に:make |vpager -Qそれを行うことができ、それはVimに読み込まれるはずです。

(エラーフォーマットの設定を調整する必要があるかもしれません、わかりません)。

READMEからの抜粋:

git diff | vpager -nC 'ft=diff'

  Copies the output of git diff into a buffer inside Vim. Any previous
  output in the buffer will be cleared and the filetype will be set
  to "diff", for proper syntax highlighting.

  grep -n <searchterm> files | vpager -Q

  Parses the grep -n output, copies it back into the quickfix buffer
  and opens the first result in a new window.

2

今のcaddbufferところ、自分がやりたいことを達成する最善の方法だと思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.