vim: ganti semua karakter sampai akhir baris

30

Mungkin saya bodoh tapi bisakah Anda mengganti semua karakter dari tempat kursor ke ujung baris dengan satu perintah? Kemudian gunakan .untuk melakukan penggantian yang sama pada baris berikutnya dan seterusnya.

Sardathrion - Pasang kembali Monica
sumber

Jawaban:

49

Jika saya memahami pertanyaan Anda dengan benar, coba ini:

C(itu huruf kapital C) akan menghapus semuanya dari kursor hingga akhir baris dan menempatkan Anda dalam mode INSERT , lalu Anda menulis pengganti Anda, keluar dari mode INSERT, gunakan .untuk mengulangi proses di tempat lain.

sr_
sumber
Baik. :)Sama-sama.
sr_
16
jika ada yang bertanya-tanya, itu adalah huruf C :)
David Silva Smith
1
Akan baik untuk memperbarui jawaban untuk menentukan bahwa ini adalah huruf kapital C.
lampiran
14

Menambahkan ke jawaban sr_:

Jika kursor Anda mulai pada posisi yang sama pada setiap baris, Anda mungkin tertarik pada fitur Blok Visual .

Ketik yang berikut ini secara berurutan, dengan kursor Anda di posisi awal:

  • Ctrl+ v: Masuk ke mode blok visual.
  • $: pergi ke akhir baris.
  • [X]j: ganti X dengan jumlah baris yang ingin Anda turunkan.

Ini akan membuat seleksi persegi panjang dari kursor Anda pada baris pertama ke akhir baris [X] di bawah ini.

Anda kemudian dapat mengganti seluruh pilihan Anda:

  • c: hapus selction dan masuk dalam mode insert.
  • masukkan teks baru
  • Esc: Keluar dari mode masukkan; Vim akan secara otomatis mengulangi langkah pada setiap baris yang dipilih.

Saya menggunakan blok visual kapan pun saya bisa, saya pikir saya akan berbagi

rahmu
sumber
+1 jawaban yang bagus memang. Tapi tidak benar-benar apa yang saya inginkan karena kadang-kadang kode saya tidak diformat dengan baik seperti itu ^ _ ~
Sardathrion - Reinstate Monica
@sathathrion; Komentar RE, 'diformat dengan baik'. Membuat tabel dalam penurunan harga Saya dapat secara otomatis mengisi spasi dalam n+1garis, setelah membuat garis ndengan Visual Block memilih mundur ! Dengan kata lain bentuknya mirip dengan mundur 7 atau vertikal membalik L, atau 'tidak diformat dengan baik'. lol.
xtian
3

Catau c$untuk "perubahan" dan Runtuk "ganti".

Dua perilaku yang hampir serupa. Yang pertama akan menghapus baris sebelum Anda mulai mengetik; sementara yang terakhir akan membiarkan Anda mengetik di atas karakter dan mungkin melampaui batas karakter garis lama yang ditampilkan.

ismail
sumber
1

Cukup tekan 'C' yaitu Capital C dalam mode perintah, dan ketikkan teks pengganti.

weima
sumber
0

Jawaban lain melewatkan ini, mereka tidak masuk ke mode memasukkan

  • D Hapus ke akhir baris
  • d$ Menghapus dari kursor ke akhir baris

Maka tentu saja gunakan .

Gareth A. Lloyd
sumber
-1 untuk tidak memasuki mode penyisipan karena itulah yang secara khusus saya minta. +1 demi kelengkapan.
Sardathrion
0

Karena dapat berguna, setelah kami mencoba mengubah hingga akhir baris. Saya telah membuat pemetaan memasukkan untuk melakukan tugas ini, itu tidak digunakan Dkarena dalam mode memasukkan kunci ini digunakan untuk mengurangi lekukan. Jadi Ctrl-k

:inoremap <C-k> <C-o>C
SergioAraujo
sumber