特定の行の上にあるすべてのテキストをどのように削除しますか


239

特定の行より上のすべてのテキストをどのように削除しますか。行の下の削除には、「dシフトg」を使用します

回答:


491
dgg

現在の行からファイルの先頭までをすべて削除します。

dは削除コマンドでありgg、ファイルの先頭に移動することを示す移動コマンドなので、一緒に使用すると、現在の位置からファイルの先頭まで削除することを意味します。

また

dG

現在の行以下のすべての行を削除します


25
そして、kdggは問題の行を削除しないことを除いて同じことをします。
2010年

1
正確に何をgg削除した後の平均?

3
ggはVimのショートカットです-":help gg"は次のように言います:最初の非空白文字の| linewise |にある行の[count]、デフォルトの最初の行に移動します。startofline 'が設定されていない場合、同じ列を保持します。
アンディホワイト

35
それを探している人のために、dG現在の行以下のすべての行を削除します。
dimo414 2013年

1
@ dan3「ファイルの先頭」の意味は、尋ねられた質問に基づいてかなり明確だと思いますが、必要に応じて私の回答を編集することもできますし、好きな用語を使用して独自の回答を作成することもできます。
アンディホワイト

38

:1,.d現在の行1を削除します。
:1,.-1d1行目から現在までの行を削除します。

(個人的には他の回答を使用するdggkdgg好きですが、TMTOWTDIです。)


27
試しましたTMTOWTDIが、何も削除せずに挿入モードのままになっているようです。
phpが多すぎる

12
TMTOWTDIは、複数の方法の1つではありません。
サラ

3
tmtowtdiこれを行う方法は複数あります(TMTOWTDIまたはTIMTOWTDI、 "Tim Toady"と発音)はPerlのモットーです。
vaichidrewar 2013年

@toomuchphpコメントは素晴らしかった。しかし、ユーザー名...それはそれを完璧にしました。あなたに+1します。
パルティアンショット2015年

38
kdgg

現在の行より上のすべての行を削除します。


5
これは少し混乱します。実際には、カーソルをで1行上に移動しk、次に現在の行を削除してで上に移動しますdgg
dimo414 2013年

2
そして、5kdggを使用して、現在の行の5行上のすべての行を削除します;)
Stefan van den Akker 2015年


6

これらのvimコマンドを知っていると:

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

次に、以下の方が理にかなっており、より統一的であり、IMHOを覚えやすくなっています。

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

乾杯。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.