VI编辑器:将整个文件复制到剪贴板(仅适用于OS X)

18

在VI编辑器中,有没有办法将文件中所有的行复制到剪贴板中。我已经尝试过先前在SO上提出的*yG+yG"+yG:%y+,但在OS X系统中都无法使用。


你是在使用MacVim还是在终端中使用Vim? - pb2q
我正在终端中使用vim。 - Antony Thomas
3个回答

38

默认的Mac OS X自带Vim,/usr/bin/vi[m],没有编译剪贴板支持。

你有三个选项:

  1. 在不使用Vim的情况下从命令行使用pbcopy

     $ cat filename | pbcopy
    
  2. 在 Vim 中使用 pbcopy

  3.  :%w !pbcopy
    
  4. 获取带有剪贴板支持的 Vim

    您可以通过MacPortsHomebrew来下载MacVim,也可以通过源代码编译来获得。

另外,使用特定寄存器进行复制的正确方法是"{register}y

在终端中查看$ man pbcopy以及在 Vim 中查看:help clipboard:help !


太棒了!pbcopy 真是太好用了。 :) - Juho Vepsäläinen

4
G代表“到文件结尾”,在*+之前需要加引号,才能将它们作为剪贴板寄存器使用。您可能更需要类似gg"*yG的内容,意思是:

gg - 到文件顶部

"* - 使用*寄存器

y - 开始复制

G - 到文件底部

或者您可以使用:!cat % | pbcopy,这与romainl提供的优秀解决方案不太一样。


1

如果你在运行 "vim --version | grep clipboard" 命令时看到了 "-clipboard",那么你的 vim 不支持剪贴板功能。你需要重新编译源代码。

编译

$./configure \ --enable-gui=auto --with-features=huge --with-x
$ make && sudo make install

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