Kết hợp hai không gian với tìm kiếm gia tăng


20

Khi tìm kiếm bằng cách sử dụng:

C-s SPC SPC

Cũng phù hợp với không gian duy nhất. Tôi muốn khớp chính xác hai không gian.

Câu trả lời:


24

Sử dụng M-s SPCtrong Isearch để chuyển đổi khoảng trắng phù hợp theo nghĩa đen. Khi khớp theo nghĩa đen, mỗi SPCchar bạn gõ được khớp riêng lẻ. (Đây từng là hành vi Emacs mặc định, BTW.)

Để cấu hình này như tùy chọn tùy chỉnh hành vi mặc định search-whitespace-regexpđể nil. ( M-x customize-option search-whitespace-regexp.)

Xem hướng dẫn sử dụng GNU Emacs, nút Special Isearch.


Cảm ơn vì điều đó. Có thể là tốt để thực sự đặt dòng .emacs (set-variable 'search-whitespace-regexp nil)trong đó. Cảm ơn.
Xám

1
@Gray: set-variablekhông lưu giá trị mới liên tục, do đó sẽ không thay đổi hành vi mặc định. Tôi nghĩ M-x customize-optionlà những gì được gọi cho ở đây.
Drew

Oh tôi đã nói về nó trong tập tin dot emacs. Không biết về tùy chọn tùy chỉnh. Cảm ơn đã chỉnh sửa.
Xám

3

Sử dụng tìm kiếm gia tăng regrec giải quyết vấn đề, nếu bạn thoát khỏi các ký tự khoảng trắng:

C-M-s \SPC\SPC

Bạn cũng có thể sử dụng tìm kiếm và thay thế mà không có dấu gạch chéo ngược, nếu đó là những gì bạn đang theo đuổi:

M-% SPC SPC

Tôi gặp vấn đề tương tự ngày hôm nay khi xây dựng một macro bàn phím. Câu trả lời này đã giải quyết vấn đề cho tôi, mặc dù tôi phải sử dụng tổ hợp phím ESC C-sthay thế. Xem thêm github.com/leoliu/ggtags/issues/64
Jonas Dahlbæk

3

Sử dụng tìm kiếm regrec giúp, nhưng bạn cũng có thể đảm bảo khoảng trắng theo nghĩa đen cho tìm kiếm bằng cách C-q SPCtrích dẫn một khoảng trắng vào tìm kiếm.

Sau đó, để loại bỏ câu trả lời của @ Rovmate, sử dụng isearch-forward-regexp:

C-M-s C-q SPC C-q SPC

Điều đó sẽ tìm kiếm hai không gian liên tiếp. Thật thú vị, isearch-forward-regexpđòi hỏi các trận đấu rời rạc. Tìm kiếm aaacho aasẽ chỉ phù hợp với một lần và không một lần nữa ở nhân vật thứ hai.


Về lưu ý cuối cùng của bạn, hãy tưởng tượng tìm kiếm "không hoặc nhiều khoảng trắng theo sau bởi một vật" và, với N ký tự của khoảng trắng hàng đầu, cần phải bước qua tất cả các kết quả khớp N + 1 riêng lẻ. Tôi có thể thấy rằng đó là một lựa chọn hợp lý để cung cấp, nhưng nó sẽ là một mặc định khủng khiếp.
phils
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.