是否可以直接从Vim复制到剪贴板?yy只把东西复制到Vim的内部缓冲区。我想复制到操作系统的剪贴板。在Vim中有这样的命令吗?或者你只能在Vim中提取东西?


当前回答

如果您在旧版本的macOS中使用vim,不幸的是,附带版本的vim可能会使用剪贴板选项进行编译。幸运的是,自制程序可以很容易地解决这个问题。

安装vim: 安装vim 安装vim的gui版本: 酿造安装macvim 重启终端生效。 将下面的行追加到~/.vimrc 设置剪贴板=不知名的 现在,您可以用yy在vim中复制该行,并在系统范围内粘贴它。

更新方法:

多年来,我一直不满意固定剪贴板的方法。最大的缺点是它会搞乱你的剪贴板历史,即使当你使用x删除。这里有一个更好、更优雅的解决方案。

将vim的文本[range]复制到系统剪贴板中。(提示:先用v或v选择范围,然后输入冒号:激活Ex命令): (行范围):猛拉+ 例如,复制/删除第5-10行到系统剪贴板*寄存器使用: y: 5、10 * 将系统剪贴板中的内容新一行粘贴到vim中: :把+

注意:

如果您选择了一个单词范围,上述操作将不起作用。使用“*y”或“+y”将该可视化块保存到剪贴板。然而,这很难打字,我仍在考虑替代方案。 :help "*或:help *+获取更多信息 酿造信息vim将能够看到其他选项安装vim。目前它没有任何其他选择。

其他回答

我在我的.vimrc中写了一个简单的行来让复制工作。希望这能帮助到一些人。不幸的是,我的vim没有安装剪贴板支持,所以这些建议对我都不起作用。基本上,将这一行粘贴到你的.vimrc中:

map <C-c> y:e ~/clipsongzboard<CR>P:w !pbcopy<CR><CR>:bdelete!<CR>

如果你想了解详细信息,你可以在我的博客上阅读

如果你的vim编译时没有+xterm_clipboard选项,就像Debian和Ubuntu中默认的那样,你可以将选择或整个缓冲区输送到处理桌面剪贴板的外部程序。对于xclip(您可能需要在前面安装它),命令将是:w !xclip -sel clip

在Mac OSX上

复制所选部分:可视选择文本(正常输入v或v) 模式)和类型:w !pbcopy 复制整个文件:%w !pbcopy 从剪贴板粘贴:r !pbpaste

在大多数Linux发行版上,你可以替换:

用xclip -i -sel c或xsel -i -b拷贝上面的内容 使用xclip -o -sel -c或xsel -o -b进行Pbpaste 注意:如果这些工具(xsel和xclip)都没有预先安装在你的发行版上,你可以在回购中找到它们

关于这个问题,我看到了很多答案,而解决这个问题的方法是多种答案的结合。

我遵循的步骤,使vim复制到系统剪贴板

使用sudo apt卸载vim。(我太懒了,不知道如何用+剪贴板支持重新编译它。 使用sudo apt Install带有+clipboard的vim-athena安装另一个名为vim-athena的vim包。 添加到~/。Vimrc下面的行:set clipboard=unnamedplus。 通过进入命令模式并输入Source %来查找文件。 保存并退出。

注意: 我使用的是Ubuntu 20.04。

使用寄存器“+”复制到系统剪贴板(即。+y而不是y)。

同样,您可以从“+”粘贴从系统剪贴板(即。"+p而不是p)。