Jika Anda menggunakan perpustakaan Icicles maka Anda dapat dengan mudah melakukan hal semacam ini. Apa yang Anda minta (jika saya mengerti dengan benar), adalah mencari hanya dalam konteks pencarian tertentu .
Misalnya, seperti dalam kasus ini, Anda mungkin ingin mencari hanya di dalam definisi fungsi - konteks pencarian adalah definisi fungsi. Dalam Lisp, ini akan menjadi seperti defun
s.
Icicles memiliki beberapa perintah pencarian Icicles yang telah ditentukan untuk mencari definisi seperti ini. Ini secara kolektif disebut perintah Icicles Imenu .
Untuk mencari hanya definisi perintah, Anda dapat menggunakan perintah icicle-imenu-command-full
. Untuk mencari hanya definisi fungsi non-interaktif, gunakan perintah icicle-imenu-non-interactive-function-full
.
Di luar mencari definisi, Anda dapat dengan mudah menentukan segala jenis konteks yang akan dicari. Cara paling sederhana adalah dengan menyediakan regexp. Perintah icicle-search
meminta Anda untuk regexp mendefinisikan konteks pencarian. Anda juga dapat menggunakan fungsi untuk menentukan konteks pencarian.
Kemungkinan lain termasuk:
Mencari teks dari berbagai jenis HAL (misalnya, sexps, kalimat, daftar, string, komentar, elemen XML, ...), yaitu, mengabaikan teks lain di luar HAL.
Mencari zona teks yang telah memberikan teks atau properti overlay, yaitu mengabaikan teks lain.
CATATAN:
Jawaban lain di sini yang menyebutkan occur
dan sejenisnya ( helm-occur
) menyediakan jenis pencarian konteks yang terbatas: konteks pencarian hanyalah garis - garis buffer.
Itu jauh lebih terbatas itu, katakanlah, mencari dalam definisi fungsi keseluruhan, yang adalah apa yang saya pikir Anda minta. Dengan Icicles , perintah icicle-occur
(terikat ke C-c '
) memungkinkan Anda mencari di dalam baris sebagai konteks pencarian.
helm-swoop
, tetapi pertanyaan Anda (dan terutama judulnya) tidak terlalu jelas mengenai hal ini. Mungkin saya tidak mendapatkan pertanyaan Anda karena saya tidak terbiasa dengan helm.