繁体   English   中英

使用 ninja 和 clang++ 时,vim 中的 Quickfix 列表

[英]Quickfix list in vim when working with ninja and clang++

我有一个使用 ninja 和 clang++ 编译的 C++ 项目,并且希望在编译过程中出现错误出现在 quickfix 列表中。 目前,当我设置makeprg=ninja ,然后运行:make ,ninja 生成的所有输出只会出现在 quickfix 窗口中,不能用于跳转到相应的文件/行等。

我不是在寻找由Syntastic提供的功能(我已经在使用),但我也想查看项目中其他文件的错误,类似于 IDE 提供的功能。

如果这不能(容易)用 ninja 完成,也欢迎使用 make 的解决方案(该项目使用 cmake,所以两者都是可能的),但如果可能的话,我想继续使用 ninja。

ninja 生成的所有输出只出现在 quickfix 窗口中,不能用于跳转

听起来 Vim 无法从错误中解析位置信息,因为尚未设置适当的'errorformat'

找了一圈,可能已经有人写过了。 否则,您需要编写自己的编译器插件,然后使用:compiler ninja而不是:set makeprg=ninja 请参阅:help write-compiler-plugin

CMake+Ninja 使用相对路径。 这是 Vim 中的一个问题。 Vim 使用一种算法来尝试猜测发生错误的文件的位置。 您可以在:h quickfix-directory-stack找到后者的描述。 另外,请看这里: https : //gitlab.kitware.com/cmake/cmake/-/issues/13894 CMake 的人已经意识到这一点并且有一个悬而未决的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM