【发布时间】:2011-10-04 09:36:03
【问题描述】:
我想将 cscope 的输出重定向到 Vim quickfix 窗口。胶水部分很容易,但我目前停留在错误格式。这是 cscope 输出的示例(cscope -L -1 bar):
Format: "filename scope linenumber sourceline"
Example: "abc.cpp foo 25 bar()"
这意味着在 foo() 内部,在 abc.cpp 的第 25 行有一个对 bar() 的调用。
efm = %f\ %*[^\ ]\ %l\ %m 有效,但范围信息丢失。例如:
Input: "abc.cpp foo 25 bar()" becomes
Output: "abc.cpp |25| bar()"
我想要的是将范围包含在 quickfix 窗口中,如下所示:
Input: "abc.cpp foo 25 bar()" becomes
Output: "abc.cpp |25| bar() inside foo()"
是否可以仅使用 errorformat 来执行此操作,还是我需要编写一个脚本来在将输出提供给 Vim 之前对其进行操作?
【问题讨论】:
-
这可能会有所帮助,所以我只是放在这里:可以使用
:cex将程序的输出连接到 Vim quickfix。例如::cex system("cscope -L -1 " . expand("<cword>"))<CR>。就个人而言,我将它与 cppcheck 和 vera++ 一起用于 C++ 代码的静态分析。
标签: vim cscope errorformat