如何删除特定行上方的所有文本


239

如何删除特定行上方的所有文本。对于一行以下的删除,我使用“ d shift g”

Answers:


493
dgg

将从您当前行到文件顶部的所有内容删除。

d是删除命令,gg是一条移动命令,它说到文件的顶部,因此,一起使用时,意味着从我当前位置删除到文件的顶部。

dG

将删除当前行或当前行以下的所有行


25
和kdgg将会执行相同的操作,只是不删除相关行。
Rook

1
gg删除后究竟是什么意思?

3
gg是Vim的快捷方式-“:help gg”说:转到行[count],默认为第一行,在第一个非空白字符| linewise |上。如果未设置startofline',请保留同一列。
安迪·怀特

35
对于寻找它的人,dG将删除当前行或当前行以下的所有行。
dimo414

1
@ dan3我认为,根据所提出的问题,“文件顶部”的含义非常清楚,但是如果您愿意,也可以编辑我的答案,也可以使用所需的任何术语来创建自己的答案。
安迪·怀特

38

:1,.d将第1行删除为当前行。
:1,.-1d将第1行删除到当前行以上。

(我个人会使用dggkdgg喜欢其他答案,但TMTOWTDI。)


27
我试过了,TMTOWTDI但似乎只是让我处于插入模式而没有删除任何内容?
太多的php 2010年

12
TMTOWTDI不是一种以上的方法。
萨拉

3
tmtowtdi这样做的方法不止一种(TMTOWTDI或TIMTOWTDI,发音为“ Tim Toady”)是Perl的座右铭。
vaichidrewar,2013年

@toomuchphp评论很棒。但是用户名...使其完美。+1给你。
Parthian Shot

38
kdgg

删除当前行上方的所有行。


5
这有点令人困惑。它实际上是将光标移动到上一行k,然后删除当前行和上一行dgg
dimo414

2
并使用5kdgg删除当前行上方5行的所有行;)
Stefan van den Akker


6

为您提供以下vim命令:

1G -> go to first line in file
G -> go to last line in file

那么,以下内容会更有意义,更统一,更容易记住恕我直言:

d1G -> delete starting from the line you are on, to the first line of file
dG -> delete starting from the line you are on, to the last line of file

干杯。

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.