当前位置: 首页 > 知识库问答 >
问题:

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

仲孙诚
2023-03-14

我可以使vim粘贴从和到系统的剪贴板?

共有1个答案

吴康平
2023-03-14

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

如果所有这些都超出了您的理解,请尝试使用“*yy”+yy将一行复制到系统的剪贴板。假设您有适当的编译选项,其中一个或另一个应该会起作用。

您可能希望将其重新映射为对您更方便的内容。例如,您可以将vnoremap “*y 放在~/.vimrc中,这样您就可以直观地选择并按下Ctrl+C键,以缩放到系统的剪贴板。

请注意,如果:echo has('clipboard')返回0,则从系统剪贴板复制/粘贴将不起作用。在这种情况下,vim不是用+clipboard特性编译的,您必须安装一个不同的版本或重新编译它。某些linux发行版默认提供了最小的vim安装,但如果您安装了vim-gtkvim-gtk3包,则仍然可以获得额外的特性。

您还可能希望查看:help cb中描述的“剪贴板”选项。在这种情况下,您可以:set clipboard=unnamed:set clipboard=unnamedplus使所有拉取/删除操作自动复制到系统剪贴板。在某些情况下,当您在剪贴板中存储其他东西时,这可能是一个不便,因为它会覆盖它。

要粘贴,您可以使用“+p”*p(同样,这取决于您的系统和/或所需的选择),也可以将它们映射到其他内容。我显式地键入它们,但我经常发现自己处于插入模式。如果处于插入模式,则仍然可以使用 * + 以适当的缩进来粘贴它们。请参阅:help i_ctrl-r_ctrl-p

还值得一提的是Vim的paste选项(:help paste)。这使vim进入一个特殊的“粘贴模式”,它禁用了其他几个选项,允许您使用终端仿真器或多路复用器熟悉的粘贴快捷方式轻松地粘贴到vim中。(只需键入:set paste启用它,粘贴您的内容,然后键入:set nopaste禁用它。)或者,您可以使用pastetoggle选项设置切换模式的键码(:help pastetoggle)。

我建议使用寄存器而不是这些选项,但如果它们仍然太可怕,这可以是一个方便的解决办法,同时您完善您的vim Chop。

有关更多详细信息,请参阅:帮助剪贴板

 类似资料:
  • 在Linux上不接触鼠标,在命令模式下的VIM和系统剪贴板之间复制粘贴的最快方法是什么?

  • 问题内容: 我想从Java中的系统剪贴板中粘贴。我该怎么做? 问题答案: 尽管机器人类可以工作,但它不像直接使用系统剪贴板那样优雅,例如:

  • 问题是,从vim到剪贴板的复制/粘贴停止工作。我不知道为什么。。。 在中,我也没有看到和缓冲区... 这是我的。vimrc,如果需要的话。 有什么建议吗? 谢谢

  • 问题内容: 我正在寻找一个如何将文本复制到iOS剪贴板的干净示例,然后可以在其他应用程序中使用/粘贴该文本。 此功能的优点是可以快速复制文本,而无需传统文本复制的标准文本突出显示功能。 我假设键类在其中,但是在它们提供的代码示例中找不到相关的区域。 问题答案: 如果您只需要纯文本,则可以使用属性。它既可读又可写: (从剪贴板中 读取数据时 ,UIPasteboard文档还建议您首先检查一下,“以避

  • 问题内容: 当我尝试使用粘贴到单元格时,我要粘贴的单元格保持空白,但setValueAt()似乎可以正常工作。另外,当我尝试从一个单元格剪切或复制JPopupMenu时,如果要粘贴到另一个单元格,则我的“粘贴”选项将保持禁用状态。我不知道为什么。我的代码如下。 Here’s my code for 问题答案: 根据您的示例代码,并且必须填写空白,它对 我有用… Now, maybe you’d l

  • 使用“复制链接”按钮复制链接 导航到其他输入/文本字段 用Ctrl+V粘贴到字段中,并读取该字段的内容以验证 我的测试: 但是,没有任何内容粘贴到该输入(和return)。 谢了!