如何从 vim 复制到 Mac 剪贴板?

Ree*_*eep 6 clipboard vim macports copy-paste macos

我可以从一个终端窗口中的 vim 粘贴到另一个终端窗口中的 vim,但不能粘贴到 vim 之外的任何内容。我已经阅读了许多关于这个主题的帖子,但我发现没有任何帮助。从 MacVim 复制/粘贴有效,但我更喜欢使用 VIM。

我使用的是通过 MacPorts 安装的 OSX 10.7.5 和 Vim 7.4。

vim --version 
Run Code Online (Sandbox Code Playgroud)

显示 +clipboard、+x11、+xterm_clipboard。

我试过 "+y, "*y 结合视觉选择和范围选择。

在我的~/.vimrc,我有

set clipboard=unnamedplus,unnamed,autoselect
Run Code Online (Sandbox Code Playgroud)

编辑:

找到解决方案!现在,y、yy 等等都可以完美运行!无论我在 Vim 中拉什么,我都可以粘贴到外面,而我在外面命令 -c 的任何东西,我都可以在 Vim 中 p。

解决方案:根据 FDinof 的建议,我通过没有 x11 的 MacPorts 重新安装,而不是只做

sudo -v port install vim +huge

为了记录,我仍然有

set clipboard=unnamedplus,unnamed,autoselect

在我的 ~/.vimrc

感谢您的帮助!

Ant*_*ony 7

在 Vim 的内存中,您可以像使用任何其他外部命令一样使用 pbcopy 和 pbpaste。要将当前行复制到剪贴板类型:

:.!pbcopy
Run Code Online (Sandbox Code Playgroud)

复制第 1 到 50 行

:1,50!pbcopy
Run Code Online (Sandbox Code Playgroud)

要将剪贴板的内容复制到当前的 vim 缓冲区中,请使用:

:r !pbpaste
Run Code Online (Sandbox Code Playgroud)


FDi*_*off 2

复制到剪贴板不需要 x11,因为 mac 不使用 x11。重新编译 vim,无需 x11。我的猜测是您正在复制到 x11 剪贴板,但您不知道如何从 mac 端访问该剪贴板。

在 macports 中,使用巨大的变体足以使剪贴板支持正常工作。

port install vim +huge
Run Code Online (Sandbox Code Playgroud)