Vim插件cscope_quickfix.vim不会在quickfix窗口

时间:2015-09-17 22:41:16

标签: regex vim vim-plugin

我正在编辑这个vim插件,我上网使用命令行cscope打开quickfix窗口。我理解大部分文件。该插件非常旧,所以当我对我的数据库运行时,我没有看到函数名称。 我得到:

filename.cpp|linenumber| text from that line
main.cpp|23| returncode = say_hello();

该工具使用命令行cscope,它返回原始功能。 来自cscope的结果:

filename.cpp function_name linenumber 'text from that line'
main.cpp see_top 23 returncode = say_hello();

我进入插件并发现这条线,这似乎是罪魁祸首,但我无法理解它的说法或做法:

set efm=%f\ %*[^\ ]\ %l\ %m

有人可以解释一下它想要实现的目标。从正则表达式的基本知识来看,我所知道的是%f可能是文件名,然后它会忽略所有内容,直到%l因此也忽略了我需要看到的重要函数名。 如何更改脚本以显示函数名称? 这是我一直在讨论的vim插件:QuickFix plugin 使用quickfix插件的原因:我在开发系统上使用vim 6(无法升级)。我知道我可以编译新版本,但这是一个更大的障碍,因为所有的库都需要更新。

Edit1:将标题更新为更直接。

2 个答案:

答案 0 :(得分:1)

您可以先阅读Vim文档的以下部分以及所有相关部分:

$select=" WRITE YOUR SELECT QUERY HERE ";
$queryResult= mysql_query($select);

//DECLARE YOUR ARRAY WHERE YOU WILL KEEP YOUR RECORD SETS
$data_array=array();

//STORE ALL THE RECORD SETS IN THAT ARRAY 
while ($row = mysql_fetch_array($queryResult, MYSQL_ASSOC)) 
{
    array_push($data_array,$row);
}


mysql_free_result($queryResult);


//TEST TO SEE THE RESULT OF THE ARRAY 
echo '<pre>';
print_r($data_array);
echo '</pre>';
// YOU CAN USE HERE FOR EACH LOOP AS PER YOUR REQUIREMENTS. 

但插件有一些选项,包括一个用于禁用quickfix窗口的选项。值得一试。

答案 1 :(得分:0)

我知道这很愚蠢,但我认为值得尝试。只需删除

set efm=%f\ %*[^\ ]\ %l\ %m
插件中的

,以便Vim可以使用其默认的'errorformat'