Làm thế nào tôi có thể tự động khớp với rắn Snake_case, khi tôi tìm kiếm nhầm trường hợp rắn rắn?


8

Tôi thường gõ nhầm "_" là "-" khi thực hiện nhanh isearch-forward.

Ví dụ, tôi đang tìm kiếm snake_casevà vô tình gõ C-s snake-casevà không có kết quả. Trường hợp tốt nhất tôi nhận thấy đủ nhanh và không phải xóa quá nhiều cụm từ tìm kiếm, trường hợp xấu nhất về cơ bản tôi phải gõ lại từ đó.

Có cách nào để nối vào isearch-forwardđể thay đổi truy vấn của tôi thành isearch-forward-regexpnhư thế snake[-_]casenào không?

Tôi cần phải thực sự tìm kiếm lisp-caseđủ thường xuyên mà chỉ cần thay đổi "-" thành "_" sẽ gây ra nhiều vấn đề hơn nó giải quyết.


6
Bạn có thể tránh gõ lại toàn bộ. Làm M-eđể nhảy đến bộ đệm mini để chỉnh sửa chuỗi tìm kiếm trong khi isearch đang hoạt động. Sau đó C-e M-b BKSPC _C-stiếp tục tìm kiếm.
Kaushal Modi

Bằng cách sử dụng 'công cụ' tìm kiếm phù hợp, hiện đại hơn, bạn chỉ cần nhập 'sc' và trường hợp con rắn, SnakeCase và Snake_case tất cả khớp (ví dụ: sử dụng ido cùng với flx hoặc somesuch)
Tom Regner

@TomRegner Bạn tìm kiếm 'flex' isearchnhư thế nào?
Kaushal Modi

@kaushalmodi bitbucket.org/jpkotta/flex-isearch có thể làm
Tom Regner

Câu trả lời:


8

Tôi không thể tưởng tượng bất kỳ hành vi tự động như vậy không gây ra đau đớn cho bạn khi đó không phải là điều bạn muốn nó làm.

Theo tôi, khuyến nghị của kaushalmodi M-elà câu trả lời tốt nhất - giúp dễ dàng khắc phục vấn đề có vẻ tốt hơn là cố gắng làm cho isearch đọc tâm trí của bạn.

Lưu ý rằng isearch đủ thông minh để ghi chú ký tự đầu tiên trong đó tìm kiếm thất bại và M-etự động đặt con trỏ ở vị trí đó, ngay cả khi bạn tiếp tục nhập các ký tự tiếp theo, chuỗi phím điển hình để sửa mẫu và tiếp tục tìm kiếm sẽ chỉ là:

M-eC-d_C-s


Thật tuyệt vời! TIL: isearch đủ thông minh để ghi chú ký tự đầu tiên trong đó tìm kiếm thất bại và M-etự động đặt con trỏ ở vị trí đó
Kaushal Modi

Tôi không biết về M-eđiều đó, điều đó chắc chắn làm cho mọi thứ dễ dàng hơn, đặc biệt là khi nó quay trở lại lỗi đánh máy.
Tom

5

Nếu bạn sử dụng swiper và tìm kiếm snake case, nó sẽ khớp cả hai snake_casesnake-case.

swiperlà một isearchthay thế mới cung cấp cho bạn một cái nhìn tổng quan trong xe buýt nhỏ khi bạn tìm kiếm.

swiper.png

Trong hình trên, đầu vào là ivy mdịch sang regex ivy.*m. Có 36 trận đấu cho regex này. Bạn có thể điều hướng giữa chúng với C-s/ C-r hoặc C-n/ C-p.

Bạn có thể cài đặt swipervới M-x package-install. Nó có sẵn trong cả MELPA và GNU ELPA.


swiper (và swiper-helm) là gọn gàng. Tôi đã thêm chúng vào thiết lập của mình và đang dùng thử chúng trong vài ngày. Không hoàn toàn như những gì tôi đã làm sau đó vì tôi sẽ phải gõ một cái gì đó khác với những gì tôi đang tìm kiếm, sẽ xem liệu tôi có quen với điều đó không. Ngoài ra, có ý tưởng nào để Cw và Me hoạt động khi ở chế độ swiper không?
Tom

Những gì C-wM-ephải làm gì? Bạn có thể đăng bài tại github.com/abo-abo/swiper/issues nếu bạn muốn tôi thêm một cái gì đó.
abo-abo

Tôi được mô tả trong các bình luận và câu trả lời khác - nó chỉnh sửa tìm kiếm trong xe buýt nhỏ. Cw mở rộng cụm từ tìm kiếm bằng ký hiệu dưới con trỏ.
Tom

OK, bạn không cần M-eswiper, nó đã sẵn sàng M-e. Và để có được điều đó, nhấn M-n. Không có cách nào để mở rộng nó, nhưng bạn có thể tiếp tục gõ.
abo-abo

Mn là những gì tôi đã theo đuổi, đó là điều tốt để biết. Tính năng hữu ích của tôi là nó di chuyển điểm đến ký tự không khớp đầu tiên, tôi không biết liệu điều đó có thực tế với kết hợp mờ hay không.
Tom
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.