แรงบันดาลใจจากเบราว์เซอร์ที่ทันสมัยฉันชอบที่จะเห็นว่ามีสตริงเกิดขึ้นกี่ครั้งเมื่อฉันค้นหามันเช่น "10 จาก 37" ที่มุมขวาบนของภาพด้านล่าง
มีวิธีรับสิ่งนี้ใน Emacs หรือไม่? สันนิษฐานว่าเพื่อที่จะไม่ช้ามันควรจะทำงานหลังจากเวลาว่าง
แรงบันดาลใจจากเบราว์เซอร์ที่ทันสมัยฉันชอบที่จะเห็นว่ามีสตริงเกิดขึ้นกี่ครั้งเมื่อฉันค้นหามันเช่น "10 จาก 37" ที่มุมขวาบนของภาพด้านล่าง
มีวิธีรับสิ่งนี้ใน Emacs หรือไม่? สันนิษฐานว่าเพื่อที่จะไม่ช้ามันควรจะทำงานหลังจากเวลาว่าง
คำตอบ:
anzu
แพคเกจไม่ว่า
anzu.el จัดให้มีโหมดรองซึ่งแสดงข้อมูลการจับคู่ปัจจุบันและข้อมูลการจับคู่ทั้งหมดในบรรทัดโหมดในโหมดการค้นหาต่างๆ
นี่คือความเป็นไปได้บางอย่างที่ไม่ลื่นมากซึ่งมีข้อได้เปรียบในการทำงานกับ Emacs หุ้น
หากคุณกดM-s o
( isearch-occur
) ระหว่างการค้นหาที่เพิ่มขึ้นบัฟเฟอร์ Occur จะปรากฏขึ้นพร้อมกับนิพจน์การค้นหาปัจจุบัน ที่ด้านบนของ*Occur*
บัฟเฟอร์คือจำนวนบรรทัดที่ตรงกัน
คำสั่งhow-many
แสดงจำนวนการเกิดขึ้นของ regexp (รวมถึงการเกิดซ้ำ) น่าเสียดายที่มันไม่ได้รวมเข้ากับการค้นหาที่เพิ่มขึ้น นี่คือการรวมแนวคิดการค้นหาที่พิสูจน์แล้ว: กดM-s #
ระหว่าง isearch เพื่อแสดงจำนวนการจับคู่
(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)
ฉันอยากจะแนะนำSwiper !
Swiper เป็นอีกทางเลือกหนึ่งของ isearch ที่ใช้ไม้เลื้อยในการแสดงภาพรวมของการแข่งขันทั้งหมด