Tìm kiếm chuỗi bỏ qua các dòng mới


11

Tôi được sử dụng để viết các tập tin trong đó các đoạn được chia thành nhiều dòng, ví dụ như với fill-column. Khi tôi tìm kiếm một chuỗi ( C-s), chẳng hạn như this is a long text, kết quả tìm kiếm sẽ không trả về các vị trí mà chuỗi xuất hiện với dấu ngắt dòng giữa hai từ (như this\nis a long text).

Có một lệnh cũng sẽ trả lại những kết quả này?

Câu trả lời:


11

Hãy nhìn vào các biến isearch-lax-whitespace, isearch-regexp-lax-whitespacesearch-whitespace-regexp.

Nếu hai biến đầu tiên được đặt thành một cái gì đó không phải là số không (ví dụ t), bất kỳ ký tự khoảng trắng nào trong chuỗi tìm kiếm của bạn sẽ khớp với bất kỳ chuỗi nào khớp với biểu thức chính quy được xác định bởi search-whitespace-regexpbiến.

Để khớp các từ trên ngắt dòng, hãy làm điều này:

(setq isearch-lax-whitespace t)
(setq isearch-regexp-lax-whitespace t)
(setq search-whitespace-regexp "[ \t\r\n]+")

Một ký tự khoảng trắng trong truy vấn của bạn bây giờ sẽ khớp với bất kỳ khoảng trắng, tab hoặc ngắt dòng bất kỳ số lần nào.


Cảm ơn, nhưng điều đó không làm việc cho tôi. Phiên bản Emacs của tôi là 23.4.1. Rõ ràng nó không có biến "isearch-lax-whitespace".
Tony

1
Vâng, các tính năng này đã được giới thiệu trong Emacs 24.3. Bất kỳ cơ hội nâng cấp lên phiên bản mới hơn? Phiên bản 23.4.1 đã hơn ba năm tuổi.
rekado

2
Hãy thử isearch-forward-word, đó là ràng buộc M-s wtrong Emacs gần đây.
Politza

Emacs 23 không hoạt động với tôi, hãy đảm bảo bạn đang sử dụng 24.
ragerdl
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.