如何将选定内容复制到OS X剪贴板

236

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

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


7
只需进行可视化选择,然后执行"+y命令。 - zx1986
2
OSX自带的vim版本不支持+clipboard或者+xterm-clipboard。你可以通过运行vim --version | grep clipboard来验证这一点。你可以通过brew install vim --with-client-server来解决这个问题。 - LondonRob
1
或者使用MacVim,它提供了一个命令行版本,可以通过符号链接放置在你的~/bin下,然后将~/bin插入到你的路径中,优先于系统安装的vim和其同义词。 - the Tin Man
在@zx1986所写的基础上,我做了三件事: 1)将以下内容添加到我的/.bashrc中,以便将vi/vim别名为MacVim的终端模式: alias vi='mvim -v' 2)将以下内容添加到/.vimrc中,映射Ctrl+c(而不是Cmd+c): vnoremap <C-c> "+y 3)配置Keyboard Maestro在终端中运行时键入键序列^c(Ctrl+C)(在我的情况下是iTerm2)这使得可以使用Cmd+c将文本复制到OSX剪贴板中,以便在其他OSX应用程序中粘贴。 - Neil Griffin
28个回答

0

Shift cmd c - 设置复制模式 拖动鼠标,选择文本,使用 cmd c 复制所选文本 使用 cmd v 粘贴


0

我目前使用的是OS X 10.9,我的尝试编译带有+xterm_clipboard选项的vim没有成功。所以我现在的解决方案是在我的~/.vimrc文件中使用set clipboard=unnamed选项,使用终端模式下的MacVim。对我来说完美地解决了问题。


0

使用映射的最佳方式。

例如:

nnoremap C "+y
vnoremap C "+y
nnoremap cC ^"+y$

这将把大写字母C映射到复制到剪贴板,而不改变任何内容。适用于任何vim。


-1

在Mac上当其他方法都无效时 - 用鼠标选择,右键选择复制。噢


-1

使用寄存器'+'或'*'复制到剪贴板不起作用?

原因:您的特定版本的vim没有编译支持剪贴板。在控制台上输入vim --verion,您将看到-xterm_clipboard。通过安装带有GUI包的vim可以解决此问题。在Ubuntu上,您可以通过在shell上键入以下内容来实现:

sudo apt-get install vim-gui-common

现在再次在控制台上执行vim --version。很可能,您现在会看到+xterm_clipboard

所以,现在您可以使用寄存器+复制任何内容到剪贴板(如“+yy”将当前行复制到剪贴板)。


-1

对于Ubuntu用户,您想要检索以使用剪贴板的软件包是vim-full。其他软件包(vim-tiny,vim)不包括剪贴板功能。


vim-full不再是Ubuntu软件包的名称。默认的vim软件包(7.3.154)具有最小的功能集,包括-clipboard。安装vim-gtk或vim-nox将提供+clipboard版本。 - spazm

-1

我遇到了同样的问题,在安装了macvim之后仍然无法正常工作,最终我找到了解决方法:

首先尝试卸载所有的vim,

brew uninstall macvim

brew uninstall --force vim

然后重新安装macvim,

brew install macvim --with-override-system-vim

这样你就可以使用"*y"+y,而不必再设置set clipboard=unnamed


-2

在MacVim和终端中,Command-c对我都有效。


传统的复制和粘贴在Vim缓冲区中无法正常工作,可能会完全破坏您的格式。例如,使用Cmd + C复制15行嵌套对象,然后使用Cmd + V粘贴将导致它失去对嵌套的理解。这很可能取决于您在.vimrc中的设置,并且可能非常特殊。 - netpoetica

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接