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

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

我可以将一个终端窗口中的 vim 粘贴到另一个终端窗口中的 vim 中,但无法粘贴到 vim 之外的任何地方。我读过很多关于这个主题的帖子,但发现没有一个有用。从 MacVim 复制/粘贴是可行的,但我更喜欢使用 VIM。

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

vim --version 

显示 +clipboard、+x11、+xterm_clipboard。

我已经尝试将“+y”、“*y”与视觉选择和范围选择结合起来。

在我的~/.vimrc,我有

set clipboard=unnamedplus,unnamed,autoselect

编辑:

找到解决方案了!现在,y、yy 等都可以完美运行了!我在 Vim 中拉取的任何内容都可以在外部粘贴,我在外部使用 command-c 的任何内容都可以在 Vim 中 p。

解决方案:根据 FDinof 的建议,我通过 MacPorts 重新安装,不使用 x11,而是直接执行

sudo -v port 安装 vim +huge

记录显示,我仍然

设置剪贴板 = unnamedplus、unnamed、autoselect

在我的 ~/.vimrc 中

感谢您的帮助!

答案1

由于 mac 不使用 x11,因此无需 x11 即可复制到剪贴板。重新编译没有 x11 的 vim。我猜您正在复制到 x11 剪贴板,而您不知道如何从 mac 端访问它。

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

port install vim +huge

答案2

在 Vim 中,你可以像使用其他外部命令一样从内存中使用 pbcopy 和 pbpaste。要将当前行复制到剪贴板,请输入:

:.!pbcopy

复制 1 至 50 行

:1,50!pbcopy

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

:r !pbpaste

答案3

不管怎样,我在配置 vim 以使用剪贴板时遇到了很多麻烦,并且直到我通过没有客户端-服务器选项的 homebrew 重新安装它后才能够使其工作。

答案4

http://vim.wikia.com/wiki/In_line_copy_and_paste_to_system_clipboard

在 vimrc 中输入以下设置:

vnoremap \y y:call system("pbcopy", getreg("\""))<CR>
nnoremap \p :call setreg("\"", system("pbpaste"))<CR>p

noremap YY "+y<CR>
noremap P "+gP<CR>
noremap XX "+x<CR>

在可视模式下复制数据,在普通模式下粘贴数据。

相关内容