我写了一个分析 perl 文件的脚本(完全没有 PPI,因为它将在管理员不希望安装 PPI 的服务器上使用等等,但我们不要谈论这个)。
现在,假设我有这段代码:
my $object = MySQL->new();
my $ob2 = $object;
$ob2->
(MySQL 是我们的模块之一)。我的脚本正确地识别出 $ob2 是一个 MySQL-Object 并查看它的来源,然后返回该模块中找到的子列表。
我的想法是,因为我使用 vim 进行编辑,这对于“CTRL-n”-Completetion 来说可能是一种非常酷的方式。
那么,当...
$ob2->[CTRL-n]
它显示了 CTRL-n-Box,它打开了我的 Perl-Script 并为其提供了一些参数(我需要:我实际所在的行、光标位置和 vim 中的整个文件)。
我已经找到了 vim-perl 之类的东西,它允许我编写类似的东西
if has('perl')
function DefPerl()
perl << EOF
use MyModule;
return call_to_my_function(); # returns all the methods from the object for example
EOF
endfunction
call DefPerl()
endif
但不知何故,这并没有得到执行(我只是为了测试而尝试使用系统调用将某些内容写入文件)......
所以,简而言之:
这里有人知道如何实现吗?通过使用完整的文件代码按 CTRL-n 从 vim 调用 perl 函数,并且 vim 行实际上在和位置,然后打开一个带有从 perl 脚本获得的结果的完成菜单?
我希望有人知道我在这里的意思。任何帮助,将不胜感激。