Bagaimana Anda menghapus semua teks di atas baris tertentu

239

Bagaimana Anda menghapus semua teks di atas baris tertentu. Untuk penghapusan di bawah garis saya menggunakan "d shift g"

pengguna339108
sumber

Jawaban:

493
dgg

akan menghapus semuanya dari baris Anda saat ini ke bagian atas file.

dadalah perintah penghapusan, dan ggmerupakan perintah gerakan yang mengatakan pergi ke bagian atas file, jadi ketika digunakan bersama-sama, itu berarti menghapus dari posisi saya saat ini ke bagian atas file.

Juga

dG

akan menghapus semua baris pada atau di bawah yang sekarang

Andy White
sumber
25
Dan kdgg akan melakukan hal yang sama kecuali tidak menghapus baris yang dimaksud.
Rook
1
Apa sebenarnya arti dari ggafter delete?
3
gg adalah pintasan Vim - ": help gg" mengatakan: Goto line [count], baris pertama default, pada karakter non-blank pertama | linewise |. Jika startofline 'tidak disetel, simpan kolom yang sama.
Andy White
35
Bagi yang mencarinya, dGakan menghapus semua baris pada atau di bawah yang sekarang.
dimo414
1
@ dan3 Saya pikir arti "atas file" cukup jelas berdasarkan pertanyaan yang diajukan, tetapi Anda dapat mengedit jawaban saya jika Anda mau, atau Anda dapat membuat jawaban Anda sendiri menggunakan terminologi apa pun yang Anda inginkan.
Andy White
38

:1,.dmenghapus baris 1 ke arus.
:1,.-1dmenghapus baris 1 ke atas saat ini.

(Secara pribadi saya akan menggunakan dggatau kdggmenyukai jawaban lain, tetapi TMTOWTDI.)

singkat
sumber
27
Saya mencoba TMTOWTDItetapi sepertinya membiarkan saya dalam mode insert tanpa menghapus apa pun?
terlalu banyak php
12
TMTOWTDI bukan salah satu dari lebih dari satu cara untuk melakukannya.
Sarah
3
tmtowtdi Ada lebih dari satu cara untuk melakukannya (TMTOWTDI atau TIMTOWTDI, dilafalkan "Tim Toady") adalah moto Perl.
vaichidrewar
@toomuchphp Komentar itu fantastis. Tapi nama pengguna ... yang membuatnya sempurna. Memberi +1 kepada Anda.
Parthian Shot
38
kdgg

hapus semua baris di atas yang sekarang.

Benteng
sumber
5
Ini agak membingungkan; sebenarnya menggerakkan kursor ke atas garis k, lalu menghapus garis saat ini dan dengan dgg.
dimo414
2
Dan gunakan 5kdgg untuk menghapus semua baris 5 baris di atas yang sekarang;)
Stefan van den Akker
8

d1G = hapus ke atas termasuk baris saat ini (vi)

mikiedba
sumber
6

Memberikan Anda tahu perintah vim ini:

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

kemudian, berikut ini lebih masuk akal, lebih kesatuan dan lebih mudah diingat 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

Bersulang.

Lian Sebe
sumber