繁体   English   中英

如何使用vim命令行从vim编辑器复制所有文本?

[英]How to copy all the text from vim editor using vim command line?

我想从 vim 编辑器中选择所有文本,我尝试了命令:%y+但收到错误E850: Invalid register name 我从这个链接得到这个命令。 请帮助我如何从在 vim 中打开的文件中复制所有文本。 他们正在使用 yank,这是什么意思..

我有一个类似的问题。 不知道为什么你得到了这么多反对票。 问题是你还没有安装vim-gnome ,它需要大约 24 MB 并为内置 vim 添加一个功能。

sudo apt-get install vim-gnome

那么您的命令将起作用。 :%y+此命令将复制系统剪贴板中的所有文本。

TLDR:如果要将 Vim 中的文本复制到系统剪贴板,请键入g g V G " * y 。下面的解释...

Vim 在终端中运行,并且取决于您如何使用它以及您正在运行的 Vim 类型,它并不是真正为您设计的用鼠标选择文本并以传统方式复制和粘贴。

如果要使用 Vim 选择所有文本,请使用g g V G y (注意中间的大写V G )。 此命令将光标移动到文件顶部,进入可视模式,移动到文件底部(因此,选择所有文本),然后猛拉(复制)它。 然后你可以使用p来放置(粘贴)这段代码,但只能放在 Vim 内部

如果你想复制到剪贴板以在 Vim 之外的某个地方使用,那么试试这个:

首先,使用上面列出的命令选择所有内容,但没有最后的y :( g g V G )。 然后按" * y 。现在应该将其复制到操作系统的剪贴板,您可以在 Vim 之外的任何地方粘贴( Ctrl / Cmd + v )。这可能会因您对 Vim 的设置而异,但它应该可以工作.


所用命令的简要说明。 g g转到文件顶部。 V按行进入可视模式。 G转到文件末尾。 y猛拉(复制)文本但复制到剪贴板。 p放置(粘贴)文本。

更高级(即酷)的东西:

"允许您访问寄存器。例如" a提供对寄存器 a 的访问。

*是系统剪贴板,因此"*提供对系统键盘的访问。因此, "*y猛拉进入系统剪贴板。

虽然对如何在 vim 中利用系统剪贴板有很好的解释,但听起来您首先无法让 vim 访问剪贴板。 尝试安装 vim-gnome,它会为您提供进入系统剪贴板所需的软件包。

出于某种原因, "* 对我不起作用,但与 "+ 寄存器完全相同的命令确实如此。

要选择整个文件,您可以跳到开头,启动视觉模式,跳到结尾:

GGVG

这个问题已经有几年了,但我在 Linux Mint 18 上遇到了同样的问题。我发现使用xclip对我xclip 您可以在 .vimrc 中映射命令vmap <F7> :!xclip -sel c<CR><CR>以将当前在可视模式下的选择复制到系统剪贴板。

是一个包含上述(和其他)解决方案的线程。

您可以使用

Vggy/vggy 或,

VGy/VGy

要直观地选择任意数量的文本然后复制它,在您的情况下,它是 gg / G,因为您希望文件中的所有文本,

gg 是在光标位于文件底部时进行复制,gg 是转到顶部

G 是在光标位于文件顶部时进行复制

或者甚至你总是可以使用

Vk(as number of time)y 复制选定的文本行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM