如何从Vim脚本中的Perl方法返回值?

Eri*_*son 7 vim perl

我正在写一个Vim脚本.我有一个使用嵌入式Perl的函数.如何从Perl代码返回值?

Eri*_*son 7

关键是要逃避您尝试返回的值中的任何单引号,然后使用VIM::DoCommand("return '$data'").

例如:

function PhoneHome()
    perl << EOF
        use IO::Socket;
        my $mothership = IO::Socket->INET->connect()
        my $data = <$mothership>;
        $data =~ s|'|''|g; # escape '
        VIM::DoCommand("return '$data'")
    EOF
endfunction
Run Code Online (Sandbox Code Playgroud)

另见:help perl:help perl-DoCommand.但在大多数情况下,这并没有真正记录在案.