我在Vim中选择了一个区域。如何将其复制到OS X剪贴板?

(OS X剪贴板可以通过管道写入到/usr/bin/pbcopy)


当前回答

如果你的Vim没有使用剪贴板编译,你希望复制选定的文本而不是整行,你不想安装MacVim或其他GUI,最简单的解决方案是将这一行添加到你的。vimrc:

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

要使用它,只需直观地选择你想要复制的文本,然后Control-C。如果你想要一个完整的解释这一行阅读“如何复制到剪贴板上的vim”。

其他回答

在我的。vimrc中什么对我有用

set clipboard=unnamed
if has("unnamedplus") " X11 support
    set clipboard+=unnamedplus
endif

如果您正在使用MacPorts,您可以通过以下方式升级您的VIM以包括剪贴板支持:

port install vim +x +x11

现在你可以使用“+”寄存器将文本直接拉到Mac剪贴板上。效果非常好。

使用寄存器“+”或“*”复制到剪贴板不工作?

原因:你的特定版本的vim编译时没有剪贴板支持。在控制台输入vim——version,你会看到-xterm_clipboard。使用gui包安装vim可以解决这个问题。在ubuntu上,你可以在shell上输入:

Sudo apt-get install vim-gui-common

现在再做vim——控制台版本。最有可能的是,您现在将看到+xterm_clipboard !!

所以,现在你可以复制任何东西到剪贴板使用寄存器+(像“+yy复制当前行到剪贴板)

可视地选择文本和类型:

ggVG
!tee >(pbcopy)

我觉得这比:

ggVG
:w !pbcopy

因为它不会闪现提示符:“按ENTER或键入命令继续”

任何yank命令前的双引号星号("*)将把结果插入复制缓冲区。这也适用于Windows和Linux。