Katakanlah saya memiliki 10 buffer terbuka, dan saya ingin menemukan semua kejadian blah
di semua 10 buffer. Bagaimana saya melakukan ini?
Menempel perintah Emacs bawaan, Anda dapat menggunakan multi-occur
atau multi-occur-in-matching-buffers
( M-x multi-occur- TAB RET
). multi-occur
memberi Anda kontrol yang baik dengan meminta setiap buffer untuk digunakan, tetapi itu membosankan. multi-occur-in-matching-buffers
memungkinkan Anda memasukkan regexp untuk mencocokkan nama file (hanya mencari dalam buffer yang mengunjungi file); masukkan .
sebagai regexp file untuk mencari di semua buffer yang mengunjungi file.
Ada juga fungsi untuk pencarian tambahan di seluruh daftar buffer atau file, tetapi mereka membosankan seperti multi-occur
karena mereka membutuhkan daftar buffer atau file satu per satu.
Untuk mencari di semua file dalam direktori, atau file yang cocok dengan pola tertentu, apakah itu terbuka atau tidak, Anda dapat menggunakan grep
. Ada varian rgrep
dan grep-find
untuk mencari subdirektori secara rekursif.
.
adalah ekspresi reguler untuk mencocokkan semua file.Selain apa yang orang lain sebutkan - di sini ada dua sumber daya lain untuk ini.
M-x multi-isearch-buffers
atauM-x multi-isearch-buffers-regexp
(vanilla Emacs) - Pencarian bertahap di beberapa buffer.Jika Anda menggunakan Icicles maka Anda dapat menggunakan
icicle-search
(atauicicle-occur
, atau sejumlahicicle-search
spesialisasi lainnya ) untuk mencari di beberapa file atau buffer.(Selain mencari dan mengganti buffer sewenang-wenang , tentu saja ada perintah yang melakukan itu di beberapa file . Yang lain telah disebutkan
grep
, misalnya. Dan tentu saja adaA
di Dired. Tapi Anda tidak bertanya tentang mencari file.)sumber
Ini dapat dilakukan dengan helm melalui perintah
helm-multi-occur
. Anda dapat menginstal helm dari melpa dan kemudian memanggil perintah sebagai berikut:Ini akan terbuka
helm-multi-occur
dan kemudian pilih semua buffer. Alih-alih menggunakanM-a
untuk menandai semua buffer, Anda dapat memilih buffer yang diminati satu per satu. Navigasi naik dan turun daftar denganC-n
danC-p
dan tandai buffer denganC-SPC
. Setelah semua buffer ditandai, tekanRET
untuk menerima buffer yang ditandai dan mulai mencari.Jika Anda menambahkan berikut ini ke file init Anda:
Anda kemudian dapat mengikat perintah
my-helm-multi-occur-buffers
untuk melakukan multi- kejadian di semua buffer yang didukung oleh file.sumber
helm-swoop
paket dalam MELPA. Ini menyediakan fungsi ini dan memungkinkan pengeditan cepat hasil juga.swiper-all
dari paket swiper menyediakan alat untuk melakukan ini. Itu bahkan tambahan, sehingga diperbarui saat Anda mengetik.sumber
Anda dapat menggunakan
ibuffer
mode untuk menandai buffer yang ingin Anda cari. Panggilibuffer-do-isearch
(terikatM-s a C-s
secara default) untuk mencari teks, atauibuffer-do-isearch-regexp
jika Anda perlu mencari ekspresi reguler.Jika Anda tidak terbiasa
ibuffer
, jalankan dan lihat menu Mark untuk melihat semua cara Anda dapat memilih satu set buffer yang akan digunakan.sumber
Berikut adalah cara lain dengan helm:
M-x helm-mini M-a C-s blah
. Setelah memohonhelm-mini
,M-a
akan menandai semua buffer pembukaan kemudianC-s blah
akan melakukan multi terjadi pada buffer ditandai.sumber
Juga, solusi menggunakan mode helm adalah dengan
helm-swoop
.Menggunakan
kemudian, untuk mencari di semua buffer terbuka, ketik
lalu, cukup ketik
blah
untuk mencarinya di semua buffer. Pada jendela yang berbeda akan ditampilkan semua kejadian.Atau, Anda bisa mengetik
kemudian, tandai semua buffer yang ingin Anda cari dengan
M-SPC
atauC-SPC
, tekanRET
dan cariblah
.sumber