在vim脚本中从剪贴板粘贴

时间:2010-07-01 01:25:48

标签: clipboard paste vim

我想编写一个vim函数,其中包括从剪贴板粘贴(如果重要,则为窗口)

我认为它应该像

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

当然“+ p只是.vim文件中的注释。我怎样才能使这个工作?

3 个答案:

答案 0 :(得分:4)

您正在寻找:normal命令:

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

!用于阻止vim运行可能属于"+p的用户映射。

答案 1 :(得分:2)

如果您想要进入新行,可以使用:put命令,例如:

:put +      will paste after the current line
:put! +     will paste before the current line
:123 put +  will paste after line 123

N.B。它还会将光标位置移动到插入文本的第一个非空白字符。这可能是也可能不是你想要的。

答案 2 :(得分:1)

您应该能够使用feedkeys函数,其名称非常明显:

function MyPastingFunc()
    call feedkeys("\"+p")  "paste from clipboard
    "do more stuff
endfunction