如何从(并复制到)系统的剪贴板上粘贴vim?

与其他编辑器不同,vim将复制的文本存储在自己的剪贴板中。 所以,我很难从网页上复制一些文本并将其粘贴到当前工作文件中。 恰巧我必须打开gedit或手动输入。

我可以从系统的剪贴板制作vim贴吗?


"*"+寄存器用于系统的剪贴板( :help registers )。 根据您的系统,他们可能会做不同的事情。 例如,在不使用X11(如OSX或Windows)的系统上, "*寄存器用于读写系统剪贴板。在X11系统上,可以使用这两个寄存器。有关更多详细信息,请参阅:help x11-selection ,但基本上"*类似于X11的PRIMARY选择(它通常复制您用鼠标选择的内容并用鼠标中键粘贴), "+类似于X11的CLIPBOARD选择(这是剪贴板本身)。

如果所有这一切都过去了,请尝试使用"*yy"+yy将行复制到系统的剪贴板。 假设你有适当的编译选项,其中一个或另一个应该工作。 您可能希望将此重新映射到更方便的位置。 例如,您可以将vnoremap <Cc> "*y放入您的〜/ .vimrc中,以便您可以直观地选择并按下Ctrl + c以取代您系统的剪贴板。

请注意,如果出现以下情况,系统剪贴板中的复制/粘贴将不起作用 :echo has('clipboard')返回0.在这种情况下,vim不是用+clipboard功能编译的,您必须安装不同的版本或重新编译它。 一些Linux发行版默认提供最低限度的vim安装,但通常如果安装vim-gtk软件包,您可以获得额外的功能。

您也可能想看看在:help cb描述的'clipboard'选项:help cb 。 在这种情况下,您可以:set clipboard=unnamed:set clipboard=unnamedplus ,使所有:set clipboard=unnamedplus /删除操作自动复制到系统剪贴板。 在某些情况下,如果您将其他内容存储在剪贴板中,这可能会造成不便,因为它会覆盖它。

要粘贴,您可以使用"+p"*p (同样取决于您的系统和/或所需的选择),或者您可以将这些映射到其他地方。 我明确键入它们,但我经常发现自己处于插入模式。 如果您处于插入模式,您仍然可以使用<Cr><Cp>*<Cr><Cp>+它们粘贴到适当的缩进处。 请参阅:help i_CTRL-R_CTRL-P

还值得一提的是vim的paste选项( :help paste )。 这使vim进入一个特殊的“粘贴模式”,禁用了其他几个选项,允许您使用终端仿真器或多路复用器熟悉的粘贴快捷方式轻松粘贴到vim中。 只需键入:set paste启用它,粘贴您的内容,然后键入:set nopaste将其禁用。 或者,您可以使用pastetoggle选项来设置切换模式的键盘代码( :help pastetoggle )。 我建议使用寄存器而不是这些选项,但如果它们仍然太可怕,这可以是一个方便的解决方法,而你正在完善你的VIM印章。

请参阅:help clipboard了解更多详细信息。


你可以复制到vim中。 在插入模式下创建文件并使用Ctrl + Shift + v。 请事先记住

 :set paste 

避免混淆身份...


Linux的

在我的Linux系统上, +*寄存器映射到X11选择,可以用鼠标中键来粘贴。 当:set clipboard=unnamed:set clipboard=unnamedplus ,寄存器映射到剪贴板,并可以用CTRL-V粘贴。

具体细节似乎有些配置和系统依赖,所以你的里程将肯定会有所不同。 不过,它肯定会让你指出正确的方向。

也可以看看

http://vim.wikia.com/wiki/Accessing_the_system_clipboard

链接地址: http://www.djcxy.com/p/8721.html

上一篇: How to make vim paste from (and copy to) system's clipboard?

下一篇: Vim Auto Indent with newline