如何从系统剪贴板复制并粘贴到控制台Vim?

4

我可以使用"*y将文本从Vim复制到其他Mac应用程序中。但是,当我尝试从TextEdit等应用程序粘贴到Vim时,我无法使用"*p粘贴文本。是否有一些我错过的设置?


你使用的是哪个版本(包括补丁级别)? - romainl
在 Mac 上,控制台(console)是什么意思?tty?还是终端(terminal)? - Kent
@romainl,我正在使用带有补丁1-286的7.3版本,并且它具有“+clipboard”功能。 - Kit
@Kent,我正在使用iTerm2终端。 - Kit
1
@Kit,你应该安装MacVim。你可以在终端中使用“$ mvim -v”来运行它。 - romainl
@romainl,好的,谢谢。不是想强制它工作,但有没有想法为什么终端Vim不支持“*p”? - Kit
3个回答

6
"*p和"*y在默认的OS X Vim中无法使用,这是因为它没有编译剪贴板支持。你可能会误以为它们能够工作,因为如果你使用不存在的寄存器并从默认寄存器复制或粘贴时,Vim不会发出任何警告。但是用命令:reg +:reg *查看应该不显示任何内容。很容易验证你的Vim是否带有剪贴板支持,可以使用以下命令:
$ /path/to/vim --version | grep clipboard

应该查找-clipboard-xterm-clipboard,它们意味着“没有剪贴板支持”。

实现剪贴板支持的唯一实用方法是安装适当的Vim构建,可以通过下载MacVim、使用Homebrew或Macports等软件包管理器或手动编译来完成。我建议选择第一种选项:这是最简单和最快捷的选择,也不需要太多技术知识。


1
请注意,我的vim中启用了clipboard和xterm-clipboard,但*和+仍然无法工作。 - IttayD
@IttayD,如果您在本地运行Vim,则这是不正常的。请使用$ vim --version命令输出完整信息,并提供有关您的环境的所有细节来提出问题。 - romainl

2
不需要安装MacVim,只需将以下内容放入您的.vimrc文件中:
set clipboard=unnamed

1
编辑: 看起来随着 Mac OS(Mountain Lion)一起出货的默认版本不带有剪贴板支持。既然如此,我建议只使用 Command+V 从系统剪贴板中粘贴或通过 macports 安装一个新版本的 vim。

改用 "+p

我认为 + 是指向系统剪贴板的寄存器。


在 Mac OS X 上,"+"* 是等效的。 - romainl

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