我可以将一个终端窗口中的 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>
在可视模式下复制数据,在普通模式下粘贴数据。