在VI编辑器中有没有一种方法可以将打开文件的所有行复制到剪贴板中。我尝试使用yG,但它没有使用剪贴板来存储这些行。
那么,这是否可能呢?
在VI编辑器中有没有一种方法可以将打开文件的所有行复制到剪贴板中。我尝试使用yG,但它没有使用剪贴板来存储这些行。
那么,这是否可能呢?
%
用于将下一个命令应用于所有行。
- y
用于复制这些行。
- +
用于复制到系统剪贴板。+
和*
是等效的请参考此答案。E850: Invalid register name
错误,请尝试使用:%y"+
将所有内容复制到剪贴板,然后使用"+p
进行粘贴(感谢@deadLock)。set clipboard=unnamed
命令,但之后这个功能运作得很好! - cdunn2001E850:非法的寄存器名称
:(。 - lony你应该将文本yank到*
或+
寄存器中:
gg"*yG
解释:
gg
将光标移动到文件的第一个字符"*y
开始一个yank命令,将从第一行开始直到最后一行的文本复制到寄存器*
中...G
跳转到文件的结尾在Mac上
复制选定部分:可视选择文本(在正常模式下输入 v
或 V
),然后键入:w !pbcopy
复制整个文件 :%w !pbcopy
从剪贴板粘贴 :r !pbpaste
pbcopy
是Mac操作系统的一个实用程序。在Linux上,可能可以使用xsel
替代,而在Windows上则可以使用clip
。 - David Lord@SridharSarnobat
的命令 :%w !pbcopy
仍然有效。 - Adrian Schmidt如果你使用 VI 遇到问题,另一种简单的复制整个文件的方法就是只需键入 "cat 文件名"。 它会将文件输出到屏幕上,然后您只需上下滚动并复制/粘贴即可。
:!cat %
。在Mac OS上将文件内容以编程方式复制到剪贴板的方法是::!cat % | pbcopy
。 - TanguyP剪贴板是一个缓冲区+。要复制到剪贴板,请执行"+y和[移动]。
因此,gg"+yG将复制整个文件。
类似地,要从剪贴板粘贴,使用"+p
这是我用来复制整个文件的方法:
ggVGy
在Ubuntu 12上
你可以尝试安装vim-gnome
软件包:
sudo apt-get install vim-gnome
我尝试了一下,因为vim --version
告诉我将会禁用标志xterm_clipboard(由-表示),而这是使用剪贴板功能所需的。
在Ubuntu 12上安装vim-gnome软件包也会安装基于控制台的Vim版本,该选项已启用(在xterm_clipboard标志之前有+)
在Arch Linux上
出于同样的原因,您可以安装vim-clipboard
。
如果您运行neovim,则应安装xclip
(如help clipboard-tool
所述)
(回复@rshdev,并为了避免像OP评论中@nelstrom所说的那样必须重新编译带有+xterm_clipboard的vim)
在Ubuntu 11上,有一个名为xclip的程序可以像putclip一样工作:
:%!xclip -sel clip
u
默认情况下它未安装。若要安装,请使用:
sudo apt-get install xclip
y G
p
要删除整个文件,请使用以下命令:
d G