Cari dan ganti Vim

Vim Search Replace



Vim adalah penyunting teks yang maju dan popular yang telah terpasang di sebahagian besar pengedaran Linux. Ia adalah editor teks berasaskan baris perintah yang kebanyakannya digunakan dalam sistem operasi berasaskan bukan GUI. Ia sangat boleh dikonfigurasi dan dilengkapi dengan banyak ciri. Titik penting mengenai Vim adalah bahawa ia sangat dioptimumkan untuk pengulangan.

Dalam artikel ini, kami akan menerangkan salah satu ciri yang paling berguna iaitu carian dan penggantian. Dengan segelintir konfigurasi, anda boleh mencari apa sahaja yang anda mahukan dengan kelajuan yang sangat tinggi dan butiran yang lebih halus.







Kaedah # 1 Cari dan Ganti Satu Kejadian pada Satu Masa (Menggunakan perintah garis miring dan titik)

Cara termudah untuk mencari dan mengganti perkataan dalam Vim adalah dengan menggunakan perintah slash dan dot. Slash (/) dapat digunakan untuk mencari kata sementara titik (.) Dapat digunakan untuk menggantikan perkataan itu.



Ikuti langkah mudah di bawah ini untuk mencari dan mengganti mana-mana perkataan dalam editor Vim:



  • Buka fail di Vim
  • Tekan kekunci slash (/) bersama dengan istilah carian seperti / search_term dan tekan Enter. Ia akan menonjolkan perkataan yang dipilih.
  • Kemudian tekan tombol kekunci cgn untuk menggantikan perkataan yang diserlahkan dan masukkan Repl__term
  • Kembali ke mod biasa. Seterusnya, tekan n untuk beralih ke kemunculan istilah carian seterusnya.
  • Kemudian tekan titik (.) Jika anda ingin mengganti kejadian seterusnya dengan Repl_terter yang sama sebaliknya tekan lagi kekunci n untuk beralih ke kejadian seterusnya.

Ini adalah kaedah terpantas dan terbaik untuk carian asas dan menggantikan fungsi kerana hanya melibatkan sebilangan penekanan kekunci dan sedikit gangguan pada kerja anda sekarang. Namun, untuk mencari kata yang terjadi berkali-kali, ia akan menjadi tugas yang berulang dan memakan masa.





Dengan Vim, ada cara lain yang lebih baik untuk mengelakkan tugas berulang ini iaitu menggunakan perintah pengganti.

Kaedah # 2 Cari dan Ganti menggunakan arahan Pengganti

Perintah pengganti dapat digunakan untuk melakukan pencarian dasar hingga lanjutan dan mengganti fungsi dengan satu perintah. Sintaks untuk arahan ini adalah:



$: s/<carian_terma> /<ganti_term> /pilihan

Perhatikan bahawa anda harus memasukkan perintah ini dalam mod biasa.

Di mana

  • S: bermaksud pengganti
  • search_term: perkataan yang anda mahu cari dan ganti
  • substit_term: perkataan yang anda mahu gantinya
  • Pilihan: c (untuk pengesahan), g (ganti semua kejadian dalam satu baris), i (kerana mengabaikan kes itu)

Cari dan Ganti

Untuk melakukan carian asas dan penggantian menggunakan perintah pengganti, gunakan sintaks berikut:

:%s/<carian_terma> /<ganti_term> /g

Perintah ini akan menggantikan semua kejadian search_term dengan Repl__term.

Contohnya, ini adalah teks contoh kami:

Ubuntu adalah salah satu OS Linux yang paling banyak digunakan. Ubuntu merangkumi beribu-ribu program berguna. Dengan baris perintah Ubuntu, anda dapat menyelesaikan hampir semua jenis tugas.

Untuk menggantikan setiap kejadian Ubuntu dengan Debian dalam teks berikut, perintah berikut akan digunakan:

:%s/Ubuntu/Debian/g

Cari dan Ganti dalam satu baris

Untuk mencari dan mengganti kejadian perkataan hanya dalam satu baris dan bukannya keseluruhan fail, gunakan sintaks berikut:

: s/<carian_terma> /ganti_term/g

Sebagai contoh, untuk mengganti kejadian Ubuntu dengan Debian dalam contoh teks di atas, perintah berikut tanpa simbol% ​​akan digunakan:

: s/Ubuntu/Debian/g

Cari dan Ganti dengan Pengesahan

Sekiranya anda ingin diminta pengesahan sebelum mengganti istilah carian, gunakan c di akhir perintah carian seperti berikut:

: s/<carian_terma> /<ganti_term> /gc

Perintah di atas akan meminta pengesahan sebelum setiap penggantian (Masukkan y untuk ya sementara n untuk tidak).

Cari dan Ganti yang tidak sensitif kes

Apabila anda melakukan carian dan ganti di Vim, secara lalai ia peka huruf besar kecil. Anda boleh melakukan carian tanpa huruf besar-kecil dengan menambahkan i pada akhir perintah seperti berikut:

: s/<carian_terma> /<ganti_term> /memberi

Sebagai contoh, untuk mencari istilah Ubuntu tanpa mengira kasusnya (UBUNTU, Ubuntu, ubuntu, uBuntu), perintah berikut akan digunakan:

: s/ubuntu/debian/memberi

Cari dan ganti keseluruhan perkataan

Secara lalai, perintah pengganti mencari mana-mana perlawanan sama ada separa atau penuh. Untuk memadankan search_term yang tepat dan kemudian menggantinya dengan substit_term, masukkan _term carian di dalam.

Contohnya, dalam beberapa dokumen, anda ingin mencari dan mengganti kata yang tepat oleh anda oleh saya. Sekiranya demikian, arahan berikut akan digunakan:

: s/<anda > /Saya/

Ia akan menemui perkataan anda dan menggantikannya dengan saya. Walau bagaimanapun, ia tidak akan menggantikan perkataan seperti anda.

Cari dan Ganti Kata di antara Garis tertentu

Untuk mencari kata di antara baris tertentu dan bukannya hanya satu baris atau keseluruhan fail, sintaks berikut dapat digunakan:

:<start_line>,<garis akhir_>s/<carian_terma> /<ganti_term> /g

Sebagai contoh, untuk mencari dan mengganti kejadian Ubuntu dengan Debian dari baris antara 3 hingga 8 dalam beberapa file, perintahnya adalah:

:1, 10-an/ubuntu/debian/g

Untuk mencari dan menggantikan terjadinya kata dari baris semasa ke bilangan baris berikutnya x, sintaks berikut akan digunakan:

: s/carian_terma/ganti_term/g x

Begitu juga, untuk mencari dan mengganti kejadian perkataan dari baris semasa ke baris terakhir: sintaks berikut akan digunakan:

:.,$ s/carian_terma/ganti_term/g

KESIMPULAN

Dalam artikel ini, kami telah mempelajari dua cara baris perintah mencari dan mengganti mana-mana perkataan dalam editor Vim. Perintah pertama yang menggunakan garis miring dan titik adalah kaedah termudah dan termudah tetapi ternyata berulang-ulang ketika anda mencari dan mengganti perkataan yang berlaku berkali-kali. Perintah lain yang merupakan perintah penggantian mungkin kelihatan sukar dan rumit, tetapi setelah anda mula mempraktikkannya, anda akan merasa sangat berguna dalam pelbagai senario.