Saya ingin menambahkan *ke akhir setiap baris di Vim.
Saya mencoba kode tidak berhasil
:%s/\n/*\n/g
Saya ingin menambahkan *ke akhir setiap baris di Vim.
Saya mencoba kode tidak berhasil
:%s/\n/*\n/g
Jawaban:
:%s/$/\*/g
harus bekerja. Jadi harus :%s/$/*/gseperti yang ditunjukkan MrWiggles dengan benar.
gbendera tidak perlu.
Bahkan lebih pendek dari: perintah pencarian:
:%norm A*
Inilah artinya:
% = for every line
norm = type the following commands
A* = append '*' to the end of current line
I*daripada 0i*akan menghemat satu keystroke.
:, ini akan mengisi awal perintah :'<,'>yang dengannya Anda bisa membuatnya menjadi:'<,'>norm A*
Isebagai gantinya -:%norm I*
Juga:
:g/$/norm A*
Juga:
gg<Ctrl-v>G$A*<Esc>
gadalah globalperintah yang melakukan sesuatu pada setiap baris yang cocok. $cocok dengan setiap baris. Bisa juga ^atau .*. norma menjalankan perintah yang biasanya Anda gunakan dalam mode perintah. Jadi A*berarti menambahkan *ke akhir baris.
Saya pikir menggunakan mode blok visual adalah metode yang lebih baik dan lebih fleksibel untuk menangani hal semacam ini. Ini sebuah contoh:
This is the First line.
This is the second.
The third.
Untuk menyisipkan "Halo dunia." (spasi + papan klip) di akhir setiap baris ini:
Hasilnya adalah:
This is the First line. Hello world.
This is the second. Hello world.
The third. Hello world.
(contoh dari Vim.Wikia.com )
jjsatu dapat menekan Guntuk pindah ke baris terakhir. Ini berguna dalam file besar, di mana menekan jsampai Anda menekan baris terakhir tidak praktis.
Jika Anda ingin menambahkan Hello world di akhir setiap baris:
:%s/$/HelloWorld/
Jika Anda ingin melakukan ini untuk jumlah baris tertentu, mulai dari 20 hingga 30 gunakan:
:20,30s/$/HelloWorld/
Jika Anda ingin melakukan ini pada awal setiap baris kemudian gunakan:
:20,30s/^/HelloWorld/
Anda tidak benar-benar membutuhkannya gdi akhir. Jadi itu menjadi:
:%s/$/*
Atau jika Anda hanya menginginkannya *di akhir, ucapkan baris 14-18:
:14,18s/$/*
atau
:14,18norm A*
... dan untuk menambahkan (menambahkan awal) setiap baris dengan *,
%s/^/*/g
Salah satu opsi adalah:
:g/$/s//*
Ini akan menemukan setiap jangkar ujung baris dan menggantinya dengan *. Saya mengatakan "pengganti" tetapi, pada kenyataannya, ini lebih merupakan tambahan karena jangkar adalah hal yang istimewa daripada karakter biasa. Untuk informasi lebih lanjut, lihat Kekuatan g - Contoh .
:% s / \ n / * \ r / g
Yang pertama Anda benar di tempat lain, tetapi Vim harus memiliki penanganan baris baru yang berbeda untuk beberapa alasan.
:s///,\nsesuai dengan karakter nol. Bagian:help sub-replace-specialini relevan.