与其他编辑器不同,vim将复制的文本存储在自己的剪贴板中。所以,我很难从网页上复制一些文本并粘贴到当前的工作文件中。所以我必须打开gedit或手动输入。
我可以从系统剪贴到vim吗?
在"*和"+寄存器是系统的剪贴板(:help registers)。根据你的系统,他们可能会做不同的事情。例如,在不使用X11(如OSX或Windows)的系统上,"*寄存器用于读写系统剪贴板。在X11系统上,可以使用两个寄存器。查看:help x11-selection更多细节,但基本上"*类似于X11的PRIMARY选择(它通常复制你用鼠标选择的东西,并用鼠标中键粘贴),"+类似于X11的CLIPBOARD选择(这是剪贴板本身)。
如果所有这一切都过去了,尝试使用"*yy或"+yy将行复制到系统的剪贴板。假设你有适当的编译选项,其中一个或另一个应该工作。您可能希望将其重新映射到更方便的位置。例如,你可以放入vnoremap <C-c> "*y你的〜/ .vimrc文件,这样你就可以直观地选择并按下Ctrl+ c来插入系统的剪贴板。
请注意,如果返回0,则从系统剪贴板复制/粘贴将不起作用。:echo has('clipboard')在这种情况下,vim不会与该+clipboard功能一起编译,您将不得不安装不同的版本或重新编译它。一些Linux发行版默认提供最低限度的vim安装,但通常如果安装vim-gtk软件包,您可以获得额外的功能。
你也可能想看看在上面'clipboard'描述的选项:help cb。在这种情况下,您可以:set clipboard=unnamed或:set clipboard=unnamedplus使所有的拖放/删除操作自动复制到系统剪贴板。在某些情况下,如果您在剪贴板中存储了其他内容,则会造成不便,因为它会覆盖它。
要粘贴,你可以使用"+p或"*p(再次,取决于你的系统和/或所需的选择),或者你可以映射到其他东西。我明确地键入它们,但是我经常发现自己处于插入模式。如果您处于插入模式,则仍然可以使用<C-r><C-p>*或将其粘贴到适当的缩进处<C-r><C-p>+。看:help i_CTRL-R_CTRL-P。
还值得一提的是vim的paste选项(:help paste)。这使vim进入一个特殊的“粘贴模式”,禁用了其他几个选项,使您可以使用终端仿真器或多路复用器熟悉的粘贴快捷方式轻松粘贴到vim中。只需键入:set paste以启用它,粘贴您的内容,然后键入:set nopaste以禁用它。或者,您可以使用该pastetoggle选项来设置切换模式(:help pastetoggle)的键码。我建议使用寄存器,而不是这些选项,但如果他们仍然太可怕,这可以是一个方便的解决方法,而你正在完善你的VIM复制。
相似问题