请注意,如果:echo has('clipboard') 返回 0,则从系统剪贴板复制/粘贴将不起作用。在这种情况下,vim 没有使用+clipboard 功能编译,您必须安装不同的版本或重新编译它。一些 Linux 发行版默认提供最小的 vim 安装,但如果您安装 vim-gtk 或 vim-gtk3 包,您仍然可以获得额外的功能。
"* 和 "+ 寄存器用于系统的剪贴板 (:help registers)。根据您的系统,他们可能会做不同的事情。例如,在 OSX 或 Windows 等不使用 X11 的系统上,"* 寄存器用于读取和写入系统剪贴板。在 X11 系统上,两个寄存器都可以使用。有关更多详细信息,请参阅 :help x11-selection,但基本上 "* 类似于 X11 的 _PRIMARY_ 选择(通常复制您使用鼠标选择的内容并使用鼠标中键粘贴),"+ 类似于 X11 的 @987654333 @selection(这是正确的剪贴板)。
如果这一切都超出了您的想象,请尝试使用"*yy 或"+yy 将一行复制到系统的剪贴板。假设您有适当的编译选项,其中一个应该可以工作。
您可能希望将其重新映射为对您更方便的东西。例如,您可以将vnoremap <C-c> "*y 放入您的~/.vimrc 中,这样您就可以直观地选择并按Ctrl+c 拉动到系统的剪贴板。
您可能还想查看:help cb 中描述的'clipboard' 选项。在这种情况下,您可以: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 印章。
有关更多详细信息,请参阅:help clipboard。