有没有办法在VI编辑器中将所有行从文件复制到剪贴板。我在之前的帖子中尝试了*yG
,+yG
,"+yG
和:%y+
,但在OS X中没有任何效果。
答案 0 :(得分:29)
Mac OS X附带的默认Vim /usr/bin/vi[m]
未使用剪贴板支持进行编译。
您有三种选择:
从命令行使用pbcopy
,而不使用Vim
$ cat filename | pbcopy
使用Vim中的pbcopy
:%w !pbcopy
通过剪贴板支持获取自己的Vim
您可以通过MacPorts或Homebrew,下载MacVim或构建from the source来完成此操作。
使用y
的特定注册表的正确方法是"{register}y
。
在终端中查看$ man pbcopy
,在Vim中查看:help clipboard
和:help !
。
答案 1 :(得分:2)
G
只是意味着“转到文件末尾”,您需要在*
或+
之前引用它们才能使它们作为剪贴板寄存器生效。您正在寻找更像gg"*yG
的内容,这意味着:
gg
- 转到文件顶部
"*
- 使用*
注册
y
- 开始猛拉
G
- 转到文件底部
或者您可以使用:!cat % | pbcopy
,这与romainl提供的精细解决方案不同。
答案 2 :(得分:0)
vim --version | grep剪贴板,如果你看到" -clipboard",你就不会那样做。你的vim不支持它。您需要重新编译源代码。
$./configure \ --enable-gui=auto --with-features=huge --with-x
$ make && sudo make install