Bagaimana saya bisa menyisipkan teks di akhir sekelompok baris?

16

Katakanlah saya memiliki satu blok teks ...

Lorem ipsum
Lorem ipsum dolor
Lorem ipsum dolor sit
Lorem ipsum dolor sit amet

... dan saya ingin memasukkan .di akhir setiap baris. Apa pendekatan terbaik untuk mencapai ini?

vim.ryan
sumber

Jawaban:

12

Saya melakukan hal berikut untuk menambahkan teks ke beberapa baris:

  • <c-V> - Masuk ke mode Blok Visual.
  • Gunakan j/ kuntuk memilih garis.
  • $ - Pindahkan kursor ke karakter terakhir.
  • A - Masuk ke mode penyisipan setelah karakter terakhir.
  • Sisipkan teks yang diinginkan.
  • <Esc> - Keluar dari mode insert dan selesaikan blok append.

Ketika dibandingkan dengan menulis :normsetelah pemilihan, ada penekanan tombol yang lebih sedikit, tetapi alasan sebenarnya mengapa saya menggunakan ini adalah karena lebih naluriah bagi saya untuk bekerja pada mode Visual Block untuk jenis perubahan ini.

Vitor
sumber
Sangat berguna dikombinasikan dengan menempelkan kolom teks .
Paul Rougieux
8

Pada baris pertama ketikkan saja: 4:norm A.

4dan :buat rentang untuk Anda dan kemudian norm A.tambahkan titik untuk setiap baris

Solusi lain untuk paragraf yang lebih panjang adalah: Vip<C-v>$A.<Esc>

Langkah pertama adalah memilih paragraf dengan Vipkemudian Anda mengubah ke mode blok visual dan memindahkan kursor ke akhir setiap baris dengan $kemudian Anda menambahkan .ke setiap baris dengan A.dan sampai ke mode normal dengan <Esc>untuk melihat perubahan diterapkan pada setiap baris .

rbernabe
sumber
Apa :Aperintah ini ? Saya tidak menemukannya via:h :A
Peter Rincker
salahku. Bahkan tidak menguji jawabannya. Saya memperbaruinya. Seharusnya menggunakan perintah normal seperti @Kritixi Lhitos answer
rbernabe
Dua karakter kurang dari 4:norm A.akan4:s/$/.
Philippos
3

Pertama, Anda dapat memilih secara visual menggunakan Vdan kemudian menggunakan tombol gerakan untuk memilih seluruh teks (atau jika teks itu benar-benar paragraf yang dapat Anda lakukan [mulai dari baris pertama] V}). Dan kemudian ketik :. Ini akan memunculkan sesuatu seperti :'<,'>di command-line.

:'<'>normal A.

Ini dijalankan normal A.pada baris yang dipilih. normal A.dieksekusi A.sebagai penekanan tombol mode normal. Ini Amenghasilkan a .di akhir setiap baris yang dipilih.

Kritixi Lithos
sumber
3

Jika Anda ingin menambahkan titik di akhir semua baris:

:%norm A.

atau Anda dapat menggunakan pencarian dan ganti:

:%s/$/./

% adalah seluruh file, $ adalah ujung baris

folow
sumber
Sejak @ vim.ryan meminta blok teks dan bukan seluruh file, :1,4s/$/./ yang menggantikan karakter terakhir dengan titik pada baris satu hingga empat inklusif.
rjt
1

Untuk membuatnya sedikit lebih umum, Anda dapat merekam makro pada satu baris, dan kemudian memutarnya kembali di setiap baris dalam rentang yang dipilih secara visual.

Rekam makro ke dalam register (register q dalam contoh ini):

qqA.<Esc>q

Anda kemudian dapat secara visual memilih jalur yang ingin Anda operasikan:

Vip

Dan kemudian putar makro Anda di setiap baris (rentang akan terisi otomatis):

:'<,'>norm @q
Zach Ingbretsen
sumber