提取整个文件


126

我经常在gVim中写一些东西,然后需要将其复制粘贴到另一个应用程序中。

有没有一种简单的方法可以提取整个文件?我通常会这样

ggVG"+y

(转到顶部,以可视行模式,转到底部,拉动)

但是,有什么更好的方法让我错过吗?

Answers:


201

我使用以下指令: :%y+


6
请+做什么?
2010年

5
这是与剪贴板有关的寄存器。OP在他的问题中使用的那个。=> :h :y:h registers
卢克·赫米特

5
@VoY:您需要将Clipboard -property编译到Vim中,才能使此“ + clipboard”正常工作。它的意思是“将所有内容发送给某些窗口管理器中的外部剪贴板”。此属性不是实际的,但它带有一些图形上的图形Vim,例如gVim。请纠正我,如果我错了(在Windows gVim中不得不使用yank时才注意到这一点,所以我当然不能完全确定,但我确实相信这是属性)。
hhh

8
如果在ubuntu 11.04+中+寄存器对您不起作用,请尝试安装gVim(apt-get install vim-gnome)。这将提供+ clipboard属性到VIM的终端版本,以及
adharris

3
我曾经做过,gg"+YG但是我从来不喜欢它,因为我失去了原来的台词。太棒了!
2016年

56

ggyG (转到第一行,拉到最后一行)

编辑:啊,系统剪贴板。不能完全从手指上滚下来,但是:gg"+yG


1
谢谢这对我有用,而不是:%y +。但是,如何从远程将其粘贴到localhost上?:)
德沃克

1
因此,基本上,此命令到达文档的顶部,并且有一些事情拉到文档的底部?“这里做什么?”
geoyws 2014年

1
@Geoyws "说您想使用寄存器。"+是绑定到系统剪贴板的寄存器。"+yG将所有内容移至该寄存器的文件底部。:help "+
Annika Backstrom

15

旧的vi中有效的解决方案在:r filename新文件中。


5
虽然这是不完全的问题的答案,这是回答我的。谢谢。

2
我需要添加一个零以将其粘贴到文件的开头::0r filename
Stefan van den Akker,2015年



6

我使用以下指令::%y


...不要在窗口管理器中的其他窗口上。+最后将其拖到外部剪贴板(显然操作会尝试执行此操作)
hhh



3

在OSX中:

ggVG
!tee >(pbcopy)

我发现比以下更好:

ggVG
:w !pbcopy

由于它不会闪烁提示:“ Press ENTER or type command to continue


1

:%y+如果您正在使用neo-vim(nvim),则无法在整个系统上运行。

这样我们就可以避免将手指伸到+-准确地使此快捷方式比ggyG


0

根据您执行操作的频率,只需为此映射一个键并有选择地添加到vimrc

:nnoremap <F5> :%y

要么

:nnoremap <leader><whatever> :%y

或您知道的安全且最快的任何密钥-然后将其添加到映射源中。这样做的好处ggyG是它不会移动光标(更快),并且要保留光标位置,您必须添加一个<Ctrl-o><Ctrl-o>

人们常常会忘记,除非在vimrc中,命令是基于会话的。我经常知道什么时候我要做很多事情,但不需要它作为默认设置,只是:[mode]remap <whatever> <whatever>

如果需要,我可以关闭然后重新打开vim。

如果<Ctrl-A><Ctrl-C>适合您,则您在源代码中使用mswin.vim,从而失去了递增<Ctrl-a>和递减<Ctrl-x>运算的功能(以及其他功能)。我从Windows开始,不久前停止使用mswin.vim。我个人认为最好以正确的方式操作Vim,然后添加您真正需要的拐杖:P


2
欢迎使用Stackoverflow。编辑器支持格式化,因此请考虑将您的代码示例(例如您使用的命令)包装在反引号(`)或代码块中。
JanKundrát

-1

它很脏,但是您根本不需要使用Shift键,而只需使用3个不同的键,可能会更快:

gg1111yy

(假设文件短于1111行)


-2

在Windows上,我通常只执行CTRL-A,CTRL-C即可将所有内容复制到Windows剪贴板中……再简单不过了!

我正在从网站上使用标准的gvim 7.1 ...

(顺便说一句:也可以在我的MacVim上使用MacVim以及有趣的mac-key + A,mac-key + C)


1
Windows gvim添加了一些其他版本中没有的其他快捷方式,以尝试使其更适合Windows用户。ctrl + a,ctrl + c是其中的两个示例。
davr,2009年

9
嗯,ctrl-c对终端用户而言有完全不同的含义。
熊基亚莫夫09年

当然,但是在Windows中时,就像在Windows中一样:)只是说,gvim和MacVim尊重平台标准的剪贴板快捷方式-使用它们也没有错....
Daren Thomas

4
如果要使用这些快捷方式,也可能根本不使用vim。
2010年

1
CTRL-A增大光标下方的数字。
Alexcp
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.