Nhận số lần xuất hiện, trong quá trình tìm kiếm gia tăng (Cs / isearch-Forward)


17

Lấy cảm hứng từ các trình duyệt hiện đại, tôi rất muốn có thể xem có bao nhiêu lần xuất hiện của một số chuỗi, khi tôi tìm kiếm nó - như "10 trên 37" ở góc trên bên phải của ảnh chụp màn hình bên dưới.

Chrome 10 trên 37

Có cách nào để có được điều này trong Emacs? Có lẽ, để không bị chậm, nó chỉ nên chạy sau một thời gian nhàn rỗi.


Đây là bản sao của các câu hỏi được đánh dấu [emacs] này trên StackOverflow: stackoverflow.com/q/14764130/729907 , stackoverflow.com/q/22479140/729907 . Rõ ràng nó không thể được đóng lại như một bản sao, vì vậy tôi đoán điều đó có nghĩa là mọi người có thể sao chép hàng trăm câu hỏi được đánh dấu SO [emacs] khác ... Bonjour les degats.
vẽ

@Drew: Cảm ơn những gợi ý này. Rõ ràng là không hợp lý khi coi các câu hỏi là trùng lặp trên các trang web khác nhau, bất kỳ bạn muốn xem một câu hỏi ở đây là "bản sao" của một câu hỏi nào đó được hỏi ở đâu đó (ví dụ: trên gnu.emacs.help). Có hy vọng cho trang web này là nếu các câu hỏi hay từ SO được sao chép ở đây, nó sẽ cải thiện chất lượng của trang web này. Tôi không biết câu hỏi đã được hỏi trên SO, nhưng chắc chắn đó là một ý tưởng tốt cho người có thời gian bắt đầu hỏi (và trả lời) những câu hỏi hay nhất ở đây. Có lẽ nên có một cách để di chuyển các câu hỏi tự động.
ShreevatsaR

Tại sao? Tại sao nó là một điều tốt để tái tạo "câu hỏi hay từ SO" ở đây? Mục tiêu là gì? Bản Beta này kiểm tra xem có một trang Emacs riêng biệt hay không, trái ngược với việc sử dụng thẻ [emacs] trên SO, v.v. Nếu chúng tôi "chứng minh" rằng trang này có ý nghĩa bằng cách chỉ sao chép câu hỏi từ nơi khác, thì chúng tôi đã thể hiện điều gì? Điều này không có nghĩa gì với tôi. Và tại sao chúng ta muốn khuyến khích hành vi như vậy? Nó giúp ai (ngoài máy photocopy)? Nếu chúng tôi muốn di chuyển công cụ (mà chúng tôi không , trong bản Beta) thì ít nhất người hỏi và người trả lời ban đầu sẽ được giữ trong vòng lặp.
vẽ

@Drew: Mục đích là để có một nơi tốt để hỏi và trả lời các câu hỏi về Emacs. Tất cả các trang web SE được khuyến khích "gieo" trang web trong giai đoạn thử nghiệm (riêng tư) với các câu hỏi và câu trả lời hay, để những khách truy cập sau này vào trang web biết loại nội dung nào phù hợp. Dù sao, tôi chỉ đến đây vì tôi nghe nói về trang web này và nghĩ đến việc hỏi những câu hỏi đang làm phiền tôi vào lúc này; những suy nghĩ về câu hỏi di chuyển đã được thúc đẩy bởi nhận xét của bạn trong bình luận đầu tiên ở trên.
ShreevatsaR

ĐỒNG Ý. Vui lòng mang nó đến Meta , nếu bạn có điều gì muốn nói hơn.
vẽ

Câu trả lời:


15

Các anzugói làm điều đó.

anzu.el cung cấp một chế độ nhỏ hiển thị thông tin khớp hiện tại và tổng số thông tin khớp trong dòng chế độ trong các chế độ tìm kiếm khác nhau.

ảnh chụp màn hình


Cảm ơn! Tôi đã thêm MELPA và cài đặt anzu và bật nó lên, và nó dường như đang hoạt động. Tôi sẽ chờ xem liệu có ai khác có giải pháp không phụ thuộc vào bất kỳ gói nào không (ít nhất là các gói không nằm trong ELPA).
ShreevatsaR

13

Dưới đây là một số khả năng không quá trơn tru, có lợi thế khi làm việc với một Emacs chứng khoán.

Nếu bạn nhấn M-s o( isearch-occur) trong khi tìm kiếm gia tăng, bộ đệm Xảy ra sẽ xuất hiện với biểu thức tìm kiếm hiện tại. Ở đầu *Occur*bộ đệm là số dòng khớp.

Lệnh how-manyhiển thị số lần xuất hiện của một biểu thức chính quy (bao gồm cả các lần xuất hiện lặp lại). Thật không may, nó không được tích hợp với tìm kiếm gia tăng. Đây là một tích hợp isearch-of-concept: nhấn M-s #trong khi isearch để hiển thị số lượng trận đấu.

(defun isearch-how-many (regexp)
  "Run `how-many' using the last search string as the regexp.
Interactively, REGEXP is constructed as with `isearch-occur'."
  (interactive
   (list (cond
      ((functionp isearch-word)
       (funcall isearch-word isearch-string))
      (isearch-word (word-search-regexp isearch-string))
      (isearch-regexp isearch-string)
      (t (regexp-quote isearch-string)))))
  (how-many regexp nil nil (interactive-p)))
(define-key isearch-mode-map [?\M-s ?#] 'isearch-how-many)

Đây ... vâng. Đó không phải là chính xác những gì tôi muốn, nhưng thật có giá trị khi biết điều tốt nhất có thể với chứng khoán Emacs, cảm ơn.
ShreevatsaR

Điều này dường như chỉ hiển thị số lượng dòng phù hợp, không phải số lượng phù hợp.
xuhdev

0

Tôi muốn đề nghị Swiper !

Swiper là một thay thế cho isearch sử dụng cây thường xuân để hiển thị tổng quan về tất cả các trận đấu.

nhập mô tả hình ảnh ở đây

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.