8

ninja と clang++ を使用してコンパイルする C++ プロジェクトがあり、コンパイル中にエラーがクイックフィックス リストに表示されるようにしたいと考えています。現在、 を設定makeprg=ninjaして実行すると:make、ninja によって生成されたすべての出力がクイックフィックス ウィンドウに表示されるだけで、対応するファイルや行などにジャンプするために使用することはできません。

syntastic (既に使用しています)によって提供される機能を探しているわけではありませんが、IDE が提供するものと同様に、プロジェクト内の他のファイルからのエラーも確認したいと考えています。

これが忍者で(簡単に)できない場合は、makeを使用した解決策も歓迎します(プロジェクトはcmakeを使用しているため、両方が可能です)が、可能であれば忍者にとどまりたい.

4

2 に答える 2

4

ninja によって生成された出力はすべてクイックフィックス ウィンドウに表示されるだけで、ジャンプには使用できません。

適切な場所が設定されていないため、Vim はエラーから位置情報を解析できないよう'errorformat'です。

周りを検索してください。誰かがすでにそのようなことを書いているかもしれません。それ以外の場合は、独自のコンパイラ プラグイン:compiler ninjaを作成し、代わりに を使用する必要があります:set makeprg=ninja。を参照してください:help write-compiler-plugin

于 2013-12-16T08:50:31.667 に答える
0

CMake+Ninja は相対パスを使用します。これは Vim の問題です。Vim はアルゴリズムを使用して、エラーが発生したファイルの場所を推測しようとします。後者の説明については、 を参照して:h quickfix-directory-stackください。また、こちらもご覧ください: https://gitlab.kitware.com/cmake/cmake/-/issues/13894 . CMake の人々はこれを認識しており、未解決の問題があります。

于 2020-12-19T21:06:19.060 に答える