Отримання кількості подій під час поступового пошуку (Cs / isearch-forward)


17

Натхненний сучасними браузерами, я хотів би бачити, скільки зустрічається в деяких рядках, коли я шукаю його, як-от "10 з 37" у верхньому правому куті екрана внизу.

Chrome 10 з 37

Чи є спосіб отримати це в Emacs? Імовірно, щоб не бути повільним, він повинен працювати лише через деякий час простою.


Це копія цих [Emacs] -tagged питання по StackOverflow: stackoverflow.com/q/14764130/729907 , stackoverflow.com/q/22479140/729907 . Мабуть, це не може бути закрито як дублікат, тому я думаю, що це означає, що люди можуть копіювати мільйони інших питань, позначених SO [emacs] ... Bonjour les degats.
— Дрю

@Drew: Дякую за ці вказівники. Очевидно, що нерозумно розглядати питання як дублікати на різних веб-сайтах, інакше, ніж ви вважаєте це питання "дублікатом" чогось, що задають десь в іншому місці (наприклад, на gnu.emacs.help). Так, сподівання цього сайту полягає в тому, що якщо тут будуть відтворені хороші запитання від SO, це повинно покращити якість цього веб-сайту. Я не знав, що запитання було задано на SO, але, безумовно, хороша ідея, щоб хтось із часом почав задавати (і відповідати) найкращі питання тут. Можливо, має бути спосіб автоматичної міграції питань.
— ShreevatsaR

Чому? Чому тут добре відтворити "хороші запитання від ТА"? Яка мета? Ця бета-версія перевіряє, чи є сенс мати окремий сайт Emacs, на відміну від використання тегів [emacs] на SO тощо. Якщо ми "докажемо", що цей сайт має сенс, просто копіюючи запитання з інших місць, то що ми показали? Це для мене немає сенсу. І чому ми б хотіли заохочувати таку поведінку? Кому це допомагає (крім копіювальної машини)? Якби ми хотіли перенести речі (чого ми не робимо під час бета-версії), то принаймні оригінальний опитувальник та респонденти залишалися б у циклі.
— Дрю

@Drew: Мета - мати гарне місце для запитань та відповідей на запитання щодо Emacs. Усі сайти SE пропонують "засівати" сайт під час (приватної) бета-версії з хорошими запитаннями та відповідями, щоб пізніше відвідувачі сайту дізналися, який тип вмісту є відповідним. У всякому разі, я прийшов сюди лише тому, що чув про цей сайт і думав задати питання, які мене турбують на даний момент; ці думки щодо міграційних питань були спонукані вашими зауваженнями в першому коментарі вище.
— ShreevatsaR

ДОБРЕ. Будь ласка, віднесіть його до Meta , якщо у вас є щось більше сказати.
— Дрю

Відповіді:


15

anzuПакет робить це.

anzu.el надає другорядний режим, який відображає інформацію про поточну відповідність та загальну відповідність у рядку режимів у різних режимах пошуку.

скріншот


Спасибі! Я додав MELPA, встановив анзу і включив його, і, здається, працює. Я зачекаю, чи знайде хтось інше рішення, яке не залежить від будь-яких пакунків (принаймні, пакетів, які не є в ELPA).
— ShreevatsaR

13

Ось декілька можливостей, які не дуже витончені, які мають перевагу роботи з Emacs на складі.

Якщо натиснути M-s o( isearch-occur) під час поступового пошуку, буфер Occur з'являється з поточним виразом пошуку. У верхній частині *Occur*буфера - кількість відповідних рядків.

Команда how-manyвідображає кількість випадків повторного виразу (включаючи повторні випадки). На жаль, він не інтегрований з поступовим пошуком. Ось інтеграція пошуку із підтвердженням концепції: натисніть M-s #під час пошуку, щоб показати кількість збігів.

(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)

Це ... так. Це не зовсім те, що я хочу, але цінно знати найкраще, що можливо із запасом Emacs, спасибі.
— ShreevatsaR

Здається, це відображає лише кількість відповідних ліній, а не кількість збігів.
— xuhdev

0

Я хотів би запропонувати Swiper !

Swiper - це альтернатива пошуку, яка використовує плющ для показу огляду всіх матчів.

введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.