VIM: интерфейс Perl, передача переменной в Perl и чтение переменной vim из Perl - PullRequest
0 голосов
/ 15 февраля 2011

Я использую скрипт Perl (loader.vim) для загрузки модулей VIM: (.vimrc) source /whwhat/loader.vim

loader.vim:

function! LoadBundles()
perl  HERE

while(</root/.vim/bundle/*/plugin/*>) {
  my ($path, $fname) =($_ =~ m|^(.+/)(.+?)$|);
  #VIM::Msg("$path $fname\n");
  VIM::DoCommand("set runtimepath=$path");
  VIM::DoCommand("runtime! $fname");
}
HERE
endfunction

call LoadBundles()

I 'Я хотел бы сделать что-то вроде LoadBundles ('/ path / to / bundledir'), но для этого мне нужно иметь возможность читать переменную из Perl, например:

function! LoadBundles(path)
  let var = a:path
perl HERE
print "$var\n";

Как мне это сделать???

Я также хотел бы сохранить путь выполнения в perl ЗДЕСЬ, а затем восстановить его.Как мне прочитать runtimepath из perl ЗДЕСЬ?

1 Ответ

3 голосов
/ 15 февраля 2011

Вот как вы можете получить опцию «runtimepath» из встроенного Perl:

perl VIM::Msg( VIM::Eval('&runtimepath') )

Чтобы получить больше от документации , выполните следующие действия:

:help if_perl.txt

Затем найдите «VIM :: Eval». Так что попробуйте:

function! AnExample(arg)
perl << EOF
    VIM::Msg( VIM::Eval('a:arg') )
EOF
endfunction

А затем проверить:

:so %
:call AnExample("hello")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...