2012-06-09 4 views
4

Я пытаюсь написать функцию в gvim, которая использовала бы модуль File::Path. Но это предупреждает меня "Can't locate File/Path.pm in @INC(@INC contains: .) at (eval 8) line 1. BEGIN failed--compilation aborted at (eval 8) line 1.", когда gvim start. Я знаю, это означает, что gvim не смог найти мой путь к perl lib. Итак, мой вопрос: Как сказать gvim правильный путь для поиска модулей Perl? Я попытался добавить use lib'C:/Perl/lib';, но проблема продолжалась. Спасибо ~~~gvim не может найти модули Perl

if has("perl") 
function! Make_dir() 
    perl make_dir(); 
endfunction 
autocmd VimEnter * call Make_dir() 
perl <<EOF 
use File::Path; 
sub make_dir{ 
    my $bakup=$ENV{'HOME'}."/bakup" ; 
    mkdir $bakup if not -e _; 
    #VIM::SetOption("backup"); 
    #VIM::SetOption("backupdir=$bakup"); 
    #VIM::Msg($bakup); 
    #todo.... 
} 
EOF 
endif 
+0

Если ваша проблема - 'mkdir', вы можете также использовать внутреннюю функцию скрипта vim. ': help mkdir' – aliva

+0

также вы можете вызвать mkdir из скрипта yourperl' VIM :: DoCommand ("call mkdir ('$ bakup')") ' – aliva

+0

Является ли' perl -MFile :: Path -e1' работает в вашей оболочке? –

ответ

1

http://vim.wikia.com/wiki/Script:556 Кстати, я попробовал путь на VIM советы вики также ... но проблема продолжала

+2

Ответ? Если вы не попросите [изменить] (http://stackoverflow.com/posts/10959635/edit) свой вопрос. –

2

Вы «цензор» свой выход, или делает это на самом деле говорят просто "(@INC contains: .)"? Это, казалось бы, указывает на плохую установку Perl. Там должно быть еще несколько каталогов. Полагаю, это может указывать на проблему разрешения.

use lib не работает, потому что Perl не может найти lib.pm или любой другой модуль, с которым он поставляется. -I должен работать, но это будет только исправление бандаи.

+0

Спасибо, я мог отлично работать с Perl-скриптом и выводить правильную информацию о perl по типу 'perl -v' в консоли. Таким образом, установка Perl должна быть в порядке. – niejieqiang

+0

Вы предполагаете, что один и тот же «perl» запускается в обоих случаях, но вы этого не продемонстрировали. – ikegami

+0

Кроме того, 'perl -v' не использует никаких модулей. – ikegami

Смежные вопросы