Bersihkan garis lebih cepat dari [0] [d] [$]

18

Apakah ada cara yang lebih cepat untuk menghapus teks pada baris daripada

  • menekan 0untuk melompat ke awal, lalu
  • menekan d$untuk menghapus sampai akhir baris?

Juga, bagaimana jika saya ingin menghapus semuanya kecuali lekukan? Apakah ada cara untuk melakukan itu?

Robbie Wxyz
sumber

Jawaban:

34

Seperti yang Anda katakan, ada beberapa cara, dan Anda juga dapat mempertimbangkan apa tindakan Anda selanjutnya setelah Anda menghapus atau menghapus baris saat ini.

  1. dd akan menghapus baris saat ini (tidak jelas)
  2. 0D akan menghapus baris saat ini termasuk spasi
  3. ^Dakan menghapus baris saat ini tidak termasuk spasi ( ^dg_menghemat ruang tambahan)
  4. 0C akan menghapus baris saat ini termasuk spasi dan menempatkan Anda ke mode insert
  5. ^Cakan menghapus baris saat ini tidak termasuk spasi dan menempatkan Anda ke mode insert ( ^cg_menghemat ruang tambahan)

ccatau Sakan berfungsi sebagai 4. atau 5. jika 'autoindent' tidak aktif atau aktif.

Jadi gunakan apa pun yang sesuai dengan tindakan yang ada. Saya percaya itu 0Dadalah yang tercepat untuk menghapus garis, tetapi Anda dapat memetakannya ke sesuatu jika Anda mau, untuk membuatnya lebih cepat.

akshay
sumber
7
@SuperScript Sadalah sinonim untukcc
FDinoff
1
Terima kasih atas jawaban yang bagus, @akshay; TYLTK terserah yang terbaik: vi.stackexchange.com/…
Robbie Wxyz
9

Ya. Jika ada satu hal yang saya sukai tentang Vim, itu adalah jawaban untuk "Bisakah saya melakukan itu?" hampir selalu ya tegas .

0D Melompat ke awal, lalu menghapus melalui ujung garis.

^D (bukan Ctrl + D) akan melompat ke karakter non-spasi pertama, kemudian menghapus sampai akhir.

(PS Saya baru saja memikirkan hal ini dan ingin berbagi dengan noobs lain. Tolong beri tahu saya jika ada cara yang lebih baik.)

Robbie Wxyz
sumber
6

Jelas garis dengan satu (bergeser) kunci: S.

Ini juga membuat indentasi.

Anda masuk ke mode penyisipan di posisi pertama setelah indentasi, atau pada awal baris - hanya apa yang Anda butuhkan untuk mengganti baris - karena itu nama Sseperti pengganti.

:help S

["x]S   Delete [count] lines [into register x] and start
        insert.  Synonym for "cc" |linewise|.

["x]cc  Delete [count] lines [into register x] and start
        insert |linewise|.  If 'autoindent' is on, preserve
        the indent of the first line.
Volker Siegel
sumber
Sadalah kunci yang bagus.
domi91c
3

Dengan plugin " vim-textobj-line " Kana , Anda dapat menggunakan operasi pada baris indentasi dengan il(misalnya dil), atau seluruh baris tanpa baris baru, dengan al(misalnya yal). Keuntungan dari pendekatan ini adalah halus: daripada harus memikirkan kedua gerakan (mulai, akhir) untuk operasi yang diinginkan, Anda menentukan objek teks secara langsung : i n l ine, a l ine.

VanLaser
sumber