Saya kira ini hanya akan berhasil jika tidak ada '. *' Yang digunakan dalam pola
AK
10
Tidak perlu mengulang string, lakukan saja %s/string//ng.
slm
23
(mirip seperti yang dikatakan Gustavo, tetapi sebagai tambahan:)
Untuk pencarian sebelumnya , Anda dapat melakukannya dengan mudah:
:%s///gn
Pola tidak diperlukan, karena sudah ada di search-register ( @/).
"%" - lakukan s/di seluruh file
"g" - cari global (dengan beberapa klik dalam satu baris)
"n" - mencegah penggantian apa puns/ - tidak ada yang dihapus! tidak ada yang harus dibatalkan!
(lihat: :help s_flaguntuk informasi lebih lanjut)
(Dengan cara ini, ini berfungsi sempurna dengan " Telusuri teks yang dipilih secara visual ", seperti yang dijelaskan di vim-wikia tip171 )
:Anda masuk dari Commandke Command-linemode. Sekarang, apa pun yang Anda tulis setelahnya :ada di CLI (Command Line Interface)
%smenentukan semua baris. Menentukan rentang sebagai %cara melakukan substitusi di seluruh file. Sintaks untuk semua substitusi kemunculan adalah:%s/old-text/new-text/g
gmenentukan semua kejadian di baris. Dengan adanya gbendera tersebut, Anda dapat membuat seluruh baris diganti. Jika gflag ini tidak digunakan maka hanya kemunculan pertama di baris saja yang akan diganti.
n menentukan jumlah keluaran dari kejadian
//garis miring ganda melambangkan penghilangan replacement text. Karena kami hanya ingin mencari.
Setelah mendapatkan jumlah kemunculannya, Anda dapat Tekan NTombol untuk melihat kejadian satu per satu.
Untuk mencari dan menghitung dalam rentang tertentu dari nomor baris 1 sampai 10:
: 1,10s / halo // gn
Harap dicatat, %untuk seluruh file diganti dengan ,nomor baris yang dipisahkan.
Untuk menemukan dan mengganti dalam rentang tertentu dari baris nomor 1 sampai 10:
Cari dengan *untuk melakukan "pencarian terbatas" untuk apa yang ada di bawah kursor, atau melakukan /patternpencarian standar .
Gunakan :%s///gnuntuk mendapatkan jumlah kemunculan. Atau Anda bisa menggunakan :%s///nuntuk mendapatkan jumlah baris dengan kejadian.
** Saya benar-benar dengan saya dapat menemukan plug-in yang akan memberikan pesan "cocok N dari N 1 pada N 2 baris" dengan setiap pencarian, tapi sayangnya.
Catatan: Jangan bingung dengan kata-kata yang rumit dari keluarannya. Perintah pertama mungkin memberi Anda sesuatu seperti di 4 matches on 3 linesmana perintah terakhir mungkin memberi Anda 3 matches on 3 lines. Meskipun secara teknis akurat, yang terakhir menyesatkan dan harus mengatakan '3 baris cocok'. Jadi, seperti yang Anda lihat, sebenarnya tidak perlu menggunakan bentuk yang terakhir (hanya 'n'). Anda mendapatkan info yang sama, lebih jelas, dan lebih banyak dengan menggunakan formulir 'gn'.
:g/xxxx/d
) buruk, berbahaya, dan lebih rendah dari yang lain di halaman ini. Harap batalkan pilihannya.Jawaban:
Ini akan menghapus semua baris dengan pola, dan melaporkan berapa banyak yang dihapus. Urungkan untuk mendapatkannya kembali setelahnya.
sumber
THE caranya
:% s / pattern // gn
sumber
Anda membutuhkan
n
benderanya. Untuk menghitung kata-kata gunakan:dan kata tertentu:
Lihat
count-items
bagian dokumentasi.Jika Anda cukup mengetik:
maka baris status akan memberi Anda jumlah pertandingan di vi juga.
sumber
:% s / string / string / g akan memberikan jawabannya.
sumber
%s/string//ng
.(mirip seperti yang dikatakan Gustavo, tetapi sebagai tambahan:)
Untuk pencarian sebelumnya , Anda dapat melakukannya dengan mudah:
Pola tidak diperlukan, karena sudah ada di search-register (
@/
)."%" - lakukan
s/
di seluruh file"g" - cari global (dengan beberapa klik dalam satu baris)
"n" - mencegah penggantian apa pun
s/
- tidak ada yang dihapus! tidak ada yang harus dibatalkan!(lihat:
:help s_flag
untuk informasi lebih lanjut)(Dengan cara ini, ini berfungsi sempurna dengan " Telusuri teks yang dipilih secara visual ", seperti yang dijelaskan di vim-wikia tip171 )
sumber
menggunakan
ketika pola string terlalu panjang dan Anda tidak suka mengetik semuanya lagi.
sumber
Jawaban singkatnya :
Untuk belajar :
Ada 3 mode dalam editor VI seperti di bawah ini
:
Anda masuk dariCommand
keCommand-line
mode. Sekarang, apa pun yang Anda tulis setelahnya:
ada di CLI (Command Line Interface)%s
menentukan semua baris. Menentukan rentang sebagai%
cara melakukan substitusi di seluruh file. Sintaks untuk semua substitusi kemunculan adalah:%s/old-text/new-text/g
g
menentukan semua kejadian di baris. Dengan adanyag
bendera tersebut, Anda dapat membuat seluruh baris diganti. Jikag
flag ini tidak digunakan maka hanya kemunculan pertama di baris saja yang akan diganti.n
menentukan jumlah keluaran dari kejadian//
garis miring ganda melambangkan penghilanganreplacement text
. Karena kami hanya ingin mencari.Setelah mendapatkan jumlah kemunculannya, Anda dapat Tekan
N
Tombol untuk melihat kejadian satu per satu.Untuk mencari dan menghitung dalam rentang tertentu dari nomor baris 1 sampai 10:
%
untuk seluruh file diganti dengan,
nomor baris yang dipisahkan.Untuk menemukan dan mengganti dalam rentang tertentu dari baris nomor 1 sampai 10:
sumber
Saya sarankan melakukan:
*
untuk melakukan "pencarian terbatas" untuk apa yang ada di bawah kursor, atau melakukan/pattern
pencarian standar .:%s///gn
untuk mendapatkan jumlah kemunculan. Atau Anda bisa menggunakan:%s///n
untuk mendapatkan jumlah baris dengan kejadian.** Saya benar-benar dengan saya dapat menemukan plug-in yang akan memberikan pesan "cocok N dari N 1 pada N 2 baris" dengan setiap pencarian, tapi sayangnya.
Catatan: Jangan bingung dengan kata-kata yang rumit dari keluarannya. Perintah pertama mungkin memberi Anda sesuatu seperti di
4 matches on 3 lines
mana perintah terakhir mungkin memberi Anda3 matches on 3 lines
. Meskipun secara teknis akurat, yang terakhir menyesatkan dan harus mengatakan '3 baris cocok'. Jadi, seperti yang Anda lihat, sebenarnya tidak perlu menggunakan bentuk yang terakhir (hanya 'n'). Anda mendapatkan info yang sama, lebih jelas, dan lebih banyak dengan menggunakan formulir 'gn'.sumber