Sumber informasi: 1
Untuk pengguna pro emacs:
- Panggilan dired untuk daftar file dalam dir, atau panggilan find-dired jika Anda memerlukan semua subdirektori.
- Tandai file yang Anda inginkan. Anda dapat menandai dengan regex dengan mengetikkan 【% m】.
- Ketik Q untuk memanggil dired-do-query-replace-regexp.
- Ketik regex temukan Anda dan ganti string. 〔☛ pola regex elisp umum〕
- Untuk setiap kejadian, ketik y untuk mengganti, n untuk melewati. Ketik 【Ctrl + g】 untuk membatalkan seluruh operasi.
- Tipe ! untuk mengganti semua kemunculan dalam file saat ini tanpa diminta, N untuk melewati semua kemungkinan penggantian untuk sisa file saat ini. (N hanya emacs 23)
- Untuk melakukan penggantian pada semua file tanpa bertanya lebih lanjut, ketik Y. (khusus Emacs 23)
- Panggil ibuffer untuk mendaftar semua file yang dibuka. Ketik 【* u】 untuk menandai semua file yang belum disimpan, ketik S untuk menyimpan semua file yang ditandai, ketik D untuk menutup semuanya.
Panduan Langkah-demi-Langkah untuk Pemula Emacs
Pilih File Target
Mulai emacs dengan mengetikkan "emacs" di prompt antarmuka baris perintah. (Atau, klik dua kali ikon Emacs jika Anda berada di lingkungan Graphics User Interface)
Memilih File dalam Direktori
Pertama, Anda perlu memilih file yang ingin Anda ganti. Gunakan menu grafis 〖File ▸ Open Directory〗. Emacs akan meminta Anda untuk jalur direktori. Ketikkan jalur direktori, lalu tekan Enter.
Sekarang, Anda akan diperlihatkan daftar file, dan sekarang Anda harus menandai file yang Anda ingin regex temukan / ganti untuk bekerja. Anda menandai file dengan memindahkan kursor ke file yang Anda inginkan, lalu tekan m. Hapus tanda dengan menekan u. (Untuk daftar subdirektori, pindahkan kursor ke direktori dan tekan i. Konten sub-direktori akan terdaftar di bagian bawah.) Untuk menandai semua file dengan regex, ketik 【% m】, lalu ketik pola regex Anda. Misalnya, jika Anda ingin menandai semua file HTML, ketikkan 【% m】 lalu .html $. (Anda dapat menemukan daftar perintah tanda di menu grafis "Tandai" (menu ini muncul ketika Anda berada dalam mode dired).)
Memilih File dalam Direktori dan Semua Sub-Direktorinya
Jika Anda ingin mencari / mengganti file di dalam direktori, termasuk ratusan subdirektori, berikut adalah metode untuk memilih semua file ini.
Hubungi find-dired. (Anda memanggil perintah dengan menekan 【Alt + x】) Kemudian, ketikkan nama direktori, ⁖ / Users / mary / myfiles
Catatan: jika Anda menggunakan emacs pada terminal teks non-grafis unix, dan jika 【Alt + x】 tidak berfungsi, stroke key yang setara adalah 【Esc x】.
Emacs akan meminta Anda dengan prompt “Run find (with args):”. Jika Anda perlu melakukan penggantian pada semua file HTML, maka ketik -name "* html". Jika Anda tidak peduli tentang jenis file apa tetapi hanya semua file di bawah dir itu, maka berikan "-type f".
Sekarang, tandai file seperti dijelaskan di atas.
Cari / Ganti Interaktif
Sekarang, Anda siap melakukan penggantian pencarian interaktif. Untuk kesederhanaan, katakanlah Anda hanya ingin mengganti kata "cepat" dengan "super". Sekarang, panggil dired-do-query-replace-regexp. Ini akan meminta Anda untuk string regex dan string pengganti. Ketik "cepat", masukkan, lalu "super".
Sekarang, emacs akan menggunakan pola Anda dan memeriksa file, dan berhenti dan menunjukkan kepada Anda setiap kali terjadi kecocokan. Ketika ini terjadi, emacs akan meminta Anda, dan Anda memiliki pilihan untuk melakukan perubahan atau melewatkan perubahan. Untuk melakukan perubahan, ketik y. Untuk melewati, ketik n. Jika Anda hanya ingin emacs melanjutkan dan membuat semua perubahan pada file saat ini, ketik!
Jika Anda ingin membatalkan seluruh operasi tanpa menyimpan perubahan yang Anda buat, ketik 【Ctrl + g】, lalu keluar emacs menggunakan menu 〖File ▸ Keluar Emacs〗.
Menyimpan File yang Diubah
Sekarang, setelah Anda melewati cobaan di atas, ada satu langkah lagi yang perlu Anda lakukan, dan itu menyimpan file yang diubah.
Jika Anda menggunakan emacs versi 22 atau lebih baru, panggil ibuffer untuk masuk ke mode daftar buffer, lalu ketik 【* u】 untuk menandai semua file yang belum disimpan, kemudian ketik S untuk menyimpan semuanya. (itu shift-s)
Jika Anda menggunakan emacs versi 21, maka Anda dapat melakukan ini: panggil daftar-buffer, kemudian pindahkan kursor ke file yang ingin Anda simpan dan ketik s. Ini akan menandai file untuk tindakan penyimpanan nanti. Ketik u untuk menghapus tanda. Setelah selesai, ketik x untuk menjalankan penyimpanan semua file yang ditandai untuk disimpan. (dalam emacs, file yang dibuka disebut "buffer". Mengabaikan hal-hal lain di sana.)
Alternatif untuk opsi di atas, Anda juga dapat memanggil save-some-buffer 【Ctrl + xs】. Kemudian emacs akan menampilkan setiap file yang belum disimpan dan bertanya apakah Anda ingin menyimpannya.
Catatan: regex emacs tidak sama dengan Perl atau Python, tetapi serupa. Untuk ringkasan dan pola umum, lihat: Emacs Regex.