如何在vim / gvim中选择/删除文件直到结尾?


41

偶然地,我设法将一段文字复制粘贴了无数次。如何选择然后从当前位置删除文本到文件末尾?

在Windows中,这将是Ctrl-Shift-End,然后是Delete。


Vim已撤消。按u
库萨兰达

Answers:


49
VGx

进入可视模式,转到文件尾,删除。

或者,您可以执行以下操作:

Vggx

从当前位置删除到文件的开头。


1
gh,我永远不会记住所有这些vim快捷方式。Windows快捷方式非常直观。
ripper234 2011年

我个人认为vim更加直观。V,进入可视模式G,几乎像“开始”一样,到文件末尾。和x,删除。
Mark Szymanski

10
@ ripper234:不要试图记住“片段”来完成特定的任务,而要专注于子命令。这就是vim的魔力:使用这些较小的命令来构建更大,更复杂的东西。它几乎是无限灵活的。
里德

花点时间阅读相关的vim帮助部分,
确实很有帮助

1
要添加到此:从命令行运行vimtutor以熟悉它们@ ripper234
Bernhard

48

d是删除并G移动到文件末尾,因此dG将删除到文件末尾。它包括整个当前行。如果您是中线并且想要保留当前位置之前的所有内容,则需要使用Mark的方法


+1保留当前行的一部分的另一种方法是D<enter>dGD删除到EOL,<enter>移动到下一行,dG删除到EOF。
Jim L.

8

还有另一种方法: :.,$d

这意味着在ex模式下,将当前行寻址到末尾并删除。


7

您也可以键入u以撤消导致错误的复制粘贴的更改。


并非总是可能,请参见“选择”。假设您在文件末尾编写了一些代码(并希望将其放在其他地方),dG允许您使用p | P插入
relascope 2015年

2
vGx

适用于多行选择(在本例中为段落),但如果要在单行中进行选择,它会表现得很神秘(从光标选择直到行首)。

如果在“单行”中选择,则必须使用:

v$x

进入可视模式(“ v”)并转到行尾(“ $”),并从当前位置删除(“ x”)直到行尾。


0

Vggx不适用于我,但vG $ d可以。vG $选择EOF(最后一行的最后一个字符),然后选择要执行的任何命令。

=这种方法(选择发出命令)似乎效果更好。当然,几年之后,我在Windows 10上使用了Vim 8.1。

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.