Uzyskiwanie liczby wystąpień podczas wyszukiwania przyrostowego (Cs / isearch-forward)

17

Zainspirowany nowoczesnymi przeglądarkami, chciałbym zobaczyć, ile wystąpień jakiegoś ciągu znaków, gdy go szukam - jak „10 z 37” w prawym górnym rogu zrzutu ekranu poniżej.

Chrome 10 z 37

Czy istnieje sposób na uzyskanie tego w Emacsie? Przypuszczalnie, aby nie był powolny, powinien działać tylko po pewnym czasie bezczynności.

ShreevatsaR
źródło
Jest to duplikat tych pytań ze znacznikami [emacs] na StackOverflow: stackoverflow.com/q/14764130/729907 , stackoverflow.com/q/22479140/729907 . Najwyraźniej nie można go zamknąć jako duplikatu, więc sądzę, że oznacza to, że ludzie mogą skopiować zilliony innych pytań oznaczonych SO [emacs] ... Bonjour les degats.
Drew,
@Drew: Dzięki za te wskazówki. Oczywiście rozważanie pytań jako duplikatów w różnych witrynach nie jest rozsądne, podobnie jak w przypadku pytania „duplikat” czegoś zadanego gdzie indziej (np. Na gnu.emacs.help). Tak, mamy nadzieję, że jeśli ta strona zawiera dobre pytania z SO, powinna poprawić jakość tej strony. Nie wiedziałem, że pytanie zostało zadane na SO, ale zdecydowanie jest to dobry pomysł dla kogoś, kto ma czas, aby zacząć zadawać (i odpowiadać) najlepsze pytania tutaj. Może powinien istnieć sposób na automatyczną migrację pytań.
ShreevatsaR
Dlaczego? Dlaczego dobrze jest odtworzyć tutaj „dobre pytania z SO”? Jaki jest cel Ta wersja beta sprawdza, czy sensowne jest posiadanie oddzielnej strony Emacsa, zamiast używania tagu [emacs] w SO itp. Jeśli „udowodnimy”, że ta strona ma sens, po prostu kopiując pytania z innego miejsca, to co pokazaliśmy? To jest bez sensu jak dla mnie. A dlaczego mielibyśmy zachęcać do takiego zachowania? Komu to pomaga (oprócz kopiarki)? Jeśli chcemy migrować rzeczy (co robimy nie , podczas beta), a następnie co najmniej oryginalny pytający i respondenci będą przechowywane w pętli.
Drew,
@Drew: Celem jest dobre miejsce do zadawania pytań na temat Emacsa i odpowiadania na nie. Zachęcamy wszystkie witryny SE do „zalania” strony podczas (prywatnej) wersji beta z dobrymi pytaniami i odpowiedziami, aby później odwiedzający witrynę wiedzieli, jaki rodzaj treści jest odpowiedni. W każdym razie przybyłem tu tylko dlatego, że słyszałem o tej stronie i myślałem o zadaniu pytań, które mnie w tej chwili niepokoiły; te przemyślenia na temat migracji pytań były pobudzone twoimi uwagami w pierwszym komentarzu powyżej.
ShreevatsaR
DOBRZE. Proszę, zanieś to do Meta , jeśli masz coś więcej do powiedzenia.
Drew,

Odpowiedzi:

15

anzuPakiet robi.

anzu.el zapewnia tryb pomocniczy, który wyświetla informacje o bieżącym dopasowaniu i całkowitych dopasowaniach w wierszu trybu w różnych trybach wyszukiwania.

zrzut ekranu

Kaushal Modi
źródło
Dzięki! Dodałem MELPA, zainstalowałem anzu i włączyłem go, i wydaje się, że działa. Zaczekam, aby zobaczyć, czy ktoś ma rozwiązanie, które nie zależy od żadnych pakietów (przynajmniej pakietów nie w ELPA).
ShreevatsaR
13

Oto kilka możliwości, które nie są zbyt sprytne, które mają tę zaletę, że pracują z akcjami Emacsa.

Jeśli naciśniesz M-s o( isearch-occur) podczas wyszukiwania przyrostowego, pojawi się bufor Occur z bieżącym wyrażeniem wyszukiwania. Na górze *Occur*bufora znajduje się liczba pasujących linii.

Polecenie how-manywyświetla liczbę wystąpień wyrażeń regularnych (w tym powtórzeń). Niestety nie jest zintegrowany z wyszukiwaniem przyrostowym. Oto sprawdzona koncepcja integracji isearch: naciśnij M-s #podczas isearch, aby wyświetlić liczbę dopasowań.

(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)
Gilles „SO- przestań być zły”
źródło
To ... tak. To nie jest dokładnie to, czego chcę, ale warto wiedzieć, co najlepsze z Emacsem, dzięki.
ShreevatsaR
Wydaje się, że pokazuje tylko liczbę pasujących linii, a nie liczbę pasujących.
xuhdev
0

Chciałbym zasugerować Swiper !

Swiper jest alternatywą dla isearch, która używa bluszczu, aby wyświetlić przegląd wszystkich dopasowań.

wprowadź opis zdjęcia tutaj

serghei
źródło