Nếu bạn sử dụng thư viện Icicles thì bạn có thể dễ dàng làm điều này. Những gì bạn đang yêu cầu (nếu tôi hiểu chính xác), là chỉ tìm kiếm trong các bối cảnh tìm kiếm nhất định .
Ví dụ, như trong trường hợp này, bạn có thể chỉ muốn tìm kiếm trong các định nghĩa hàm - bối cảnh tìm kiếm là các định nghĩa hàm. Trong Lisp, đây sẽ là những thứ như defun
s.
Icicles có một số lệnh tìm kiếm Icicles được xác định trước để tìm kiếm các định nghĩa như thế này. Chúng được gọi chung là các lệnh Icicles Imothy .
Để chỉ tìm kiếm các định nghĩa lệnh, bạn có thể sử dụng lệnh icicle-imenu-command-full
. Để chỉ tìm kiếm các định nghĩa hàm không tương tác, sử dụng lệnh icicle-imenu-non-interactive-function-full
.
Ngoài các định nghĩa tìm kiếm, bạn có thể dễ dàng xác định bất kỳ loại bối cảnh nào cần tìm kiếm. Cách đơn giản nhất là cung cấp một biểu thức chính quy. Lệnh icicle-search
nhắc bạn cho regex xác định bối cảnh tìm kiếm. Bạn có thể sử dụng một chức năng để xác định bối cảnh tìm kiếm.
Các khả năng khác bao gồm:
Tìm kiếm văn bản của các loại THING khác nhau (ví dụ: sexps, câu, danh sách, chuỗi, nhận xét, các yếu tố XML, ...), tức là bỏ qua văn bản khác bên ngoài THINGs.
Tìm kiếm các vùng văn bản đã cho các thuộc tính văn bản hoặc lớp phủ, nghĩa là bỏ qua văn bản khác.
GHI CHÚ:
Các câu trả lời khác ở đây có đề cập occur
và tương tự ( helm-occur
) cung cấp một loại tìm kiếm ngữ cảnh hạn chế: bối cảnh tìm kiếm chỉ là các dòng của bộ đệm.
Điều đó hạn chế hơn nhiều, giả sử, tìm kiếm trong toàn bộ định nghĩa hàm, đó là điều tôi nghĩ bạn đang yêu cầu. Với Icicles , lệnh icicle-occur
(ràng buộc C-c '
) cho phép bạn tìm kiếm trong các dòng dưới dạng bối cảnh tìm kiếm.
helm-swoop
, nhưng câu hỏi của bạn (và đặc biệt là tiêu đề) không rõ ràng về điều này. Có lẽ tôi không nhận được câu hỏi của bạn vì tôi không quen với helm.