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


当前回答

也许有人会觉得有用。我想要独立于X剪贴板,并且仍然能够在两个运行的vims之间复制和粘贴一些文本。这段小代码将所选文本保存在temp.txt文件中以供复制。将下面的代码放入您的.vimrc中。使用CTRL-c CTRL-v来完成这项工作。

cp /dev/null ~/temp.txt && cat > ~/temp.txt

Noremap:r !cat ~/temp.txt

其他回答

我有问题,因为我的vim不支持剪贴板:

vim --version | grep clip
-clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      -mouseshape      +startuptime     -xterm_clipboard

我安装了vim-gnome(支持剪贴板),然后再次检查:

vim --version | grep clipboard
+clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      +mouseshape      +startuptime     +xterm_clipboard

现在我可以分别使用“+y”和“+p”进行复制和粘贴。

我已经使用这些很多年了:

nnoremap Y "+y
vnoremap Y "+y
nnoremap yY ^"+y$

你现在可以只使用大写Y复制到剪贴板,小写Y不会受到影响,例如通过set clipboard= named,所以你仍然可以选择拷贝是否会到剪贴板。

在ubuntu 21.04, vim 8.2上测试。

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

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

我在mac osx(10.15.3)和新的vim。我发现这太令人沮丧了,这里所有的答案都太复杂了,或者不适用于我的情况。我最终在两个方面得到了这个工作:

使用pbcopy的键映射:适用于mac附带的旧版本的vim。 将vmap ":w !pbcopy<CR><CR>添加到~/.vimrc中 现在您可以直观地选择并点击“(两个撇号)复制到剪贴板 安装新版本的vim,这样我就可以访问其他答案中最推荐的解决方案: 编译安装vim的别名vim=/usr/local/bin/vim(应该把这个添加到~/。Bashrc或同等语言) 现在您可以直观地选择并点击“+yy复制到剪贴板

把设置剪贴板=未命名在你的vimrc。 选择你想要复制在视觉模式(按v进入)。 返回正常模式(按escape[esc]),按y复制。 如果你想从操作系统的剪贴板中粘贴一些东西,在Vim Normal模式下按p/ p。