vimscript复制粘贴变量

Her*_*son 1 vim perl copy-paste

我的.vimrc中有以下命令:

nmap gtb texecute"!perl /home/hermann/hi.pl".shellescape(getline('.'),1)

它执行一个perl脚本并将光标所在的行发送给它.
我如何发送到复制粘贴缓冲区中的任何内容?

zeu*_*xcg 5

Vim中没有单个"复制 - 粘贴"缓冲区,而是有一组命名寄存器.您可以使用getreg函数获取寄存器的内容 - 它有一个参数,寄存器名称.例如,使用它来获取默认的yank/paste缓冲区的内容:

getreg('0')
Run Code Online (Sandbox Code Playgroud)

  • @Hermann Ingjaldsson:你为什么要摆脱`shellescape()`电话?当然你会得到各种错误. (3认同)
  • :execute启动Ex命令,因此您需要转义Vim的特殊符号.为避免这种情况,请使用系统函数:`:call system('perl /home/hi.pl's.hellescape(getreg('0')))<CR>` (2认同)