如何删除某一行以上的所有文本

use*_*108 224 vim

如何删除某一行以上的所有文本.对于删除线以下我使用"d shift g"

And*_*ite 457

dgg
Run Code Online (Sandbox Code Playgroud)

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

d是删除命令,gg是一个移动命令,表示转到文件的顶部,因此当一起使用时,它意味着从当前位置删除到文件的顶部.

dG
Run Code Online (Sandbox Code Playgroud)

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

  • 对于那些寻找它的人,`dG`将删除当前或之下的所有行. (35认同)
  • kdgg会做同样的事情,除非不删除有问题的行. (24认同)
  • gg是一个Vim快捷方式 - ":help gg"说:在第一个非空白字符| linewise |上转到行[count],默认第一行.如果未设置startofline,请保留相同的列. (2认同)

Roo*_*ook 38

kdgg
Run Code Online (Sandbox Code Playgroud)

删除当前行之上的所有行.

  • 这有点令人困惑; 它实际上是用'k`将光标向上移动一行,然后用`dgg`删除当前行. (5认同)
  • 并使用5kdgg删除当前行之上的所有行5行;) (2认同)

eph*_*ent 35

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

(就个人而言,我会使用dggkdgg喜欢其他答案,但TMTOWTDI.)

  • 我试过`TMTOWTDI`,但它似乎让我处于插入模式而不删除任何东西? (24认同)
  • TMTOWTDI并不是不止一种方法之一. (12认同)
  • tmtowtdi有多种方法可以做到这一点(TMTOWTDI或TIMTOWTDI,发音为"Tim Toady")是Perl的座右铭. (2认同)

小智 7

d1G =删除到顶部,包括当前行(vi)


Lia*_*ebe 5

为您提供以下vim命令:

1G -> go to first line in file
G -> go to last line in file
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

干杯。