2010-12-29 12 views
1

я иметь следующую команду в моем .vimrc:vimscript копировать вставить переменную

птар GTB texecute .shellescape (GetLine(), 1 '')

"Perl /home/hermann/hi.pl!"

он исполняет скрипт perl и отправляет ему строку, над которой курсор завершен.
Как я могу отправить скрипт, который находится в буфере копирования-вставки?

ответ

5

В Vim нет единого буфера «копировать-вставить», вместо этого существует набор названных регистров. Вы можете получить содержимое регистра с помощью функции getreg - у него есть один аргумент, имя регистра. Например, используйте это, чтобы получить содержимое буфера yank/paste по умолчанию:

getreg('0') 
+0

Я превращаю свою строку в: nmap gtb texecute «! Perl /home/hermann/hi.pl» .getreg ('0') , а результат - разные ошибки, в зависимости от того, что находится в моем буфере пасты. любая идея, что может быть проблемой? –

+1

nmap gtb: выполнить «! Perl /home/hermann/hi.pl» .getreg ('0') работает для меня. – zeuxcg

+3

@ Hermann Ingjaldsson: почему вы избавились от вызова 'shellescape()'? Конечно, вы получите различные ошибки. –

-2

вы можете использовать функцию «normal», чтобы вставить содержимое буфера обмена.

function MyPastingFunc() 
    "paste from clipboard 
    normal! "+p 
    "do more stuff 
    endfunction 
+0

так как я могу применить нормальную функцию к моей команде? –

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

  • Нет связанных вопросов^_^