vim запускает Perl-скрипт со словом под курсором в качестве аргумента - PullRequest
1 голос
/ 12 октября 2010

можно ли отправить слово под курсором в скрипт на Perl, набрав ярлык?

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

Ответы [ 3 ]

5 голосов
/ 12 октября 2010

Вышеуказанные решения небезопасны, если слово под курсором содержит специальные символы. Вы должны использовать

nnoremap <F2> :execute "!/path/to/script.pl ".shellescape(expand("<cword>"), 1)<CR>

вместо.

Для всей строки заменить expand("<cword>") на getline('.'). Для имени файла под курсором используйте expand("<cfile>").

2 голосов
/ 12 октября 2010

Учитывая Perl-скрипт ${HOME}/test.pl, вы можете использовать:

:nnoremap <F2> :!${HOME}/test.pl <C-R><C-W><CR>

Затем нажатие F2 отправит слово под курсором в ваш скрипт.

Согласно моему ответу на ваш предыдущий вопрос , CTRL - R CTRL - W представляет слово под курсором.

См. Следующие разделы справки в Vim, чтобы приступить к написанию сочетаний клавиш:

Мой тестовый скрипт:

#!/usr/bin/env perl -w
print "You selected '$ARGV[0]'.\n";
1 голос
/ 12 октября 2010

Вы можете сделать следующее:

nnoremap <f5> :!perl my_script.pl <c-r><c-w><enter>

В вашем vimrc эта строка отображает клавишу F5 в эту комбинацию символов.CTRL-R CTRL-W вставляет текущее слово в командную строку.

...