รับจำนวนการเกิดขึ้นในระหว่างการค้นหาที่เพิ่มขึ้น (Cs / isearch-forward)


17

แรงบันดาลใจจากเบราว์เซอร์ที่ทันสมัยฉันชอบที่จะเห็นว่ามีสตริงเกิดขึ้นกี่ครั้งเมื่อฉันค้นหามันเช่น "10 จาก 37" ที่มุมขวาบนของภาพด้านล่าง

Chrome 10 จาก 37

มีวิธีรับสิ่งนี้ใน Emacs หรือไม่? สันนิษฐานว่าเพื่อที่จะไม่ช้ามันควรจะทำงานหลังจากเวลาว่าง


นี้เป็นซ้ำ [emacs] คำถามเหล่านี้ -tagged ใน StackOverflow: stackoverflow.com/q/14764130/729907 , stackoverflow.com/q/22479140/729907 เห็นได้ชัดว่าไม่สามารถปิดซ้ำซ้อนดังนั้นฉันเดาว่าหมายความว่าผู้คนสามารถคัดลอก zillions ของคำถามที่ติดแท็ก SO อื่น ๆ [emacs] ... Bonjour les degats
ดึง

@ ดึง: ขอบคุณสำหรับตัวชี้เหล่านั้น เห็นได้ชัดว่ามันไม่สมเหตุสมผลที่จะพิจารณาคำถามว่าซ้ำซ้อนในเว็บไซต์อื่น ๆ มากกว่าที่คุณจะพิจารณาคำถามที่นี่ "ซ้ำ" ของสิ่งที่ถามที่อื่น (เช่นใน gnu.emacs.help) ใช่ความหวังสำหรับเว็บไซต์นี้คือถ้าหากมีการทำซ้ำคำถามที่ดีจากที่นี่มันควรปรับปรุงคุณภาพของเว็บไซต์นี้ ฉันไม่รู้ว่าคำถามถูกถามใน SO แต่เป็นความคิดที่ดีสำหรับใครบางคนที่มีเวลาเริ่มถาม (และตอบ) คำถามที่ดีที่สุดที่นี่ อาจมีวิธีโยกย้ายคำถามโดยอัตโนมัติ
ShreevatsaR

ทำไม? เหตุใดจึงเป็นสิ่งที่ดีในการทำซ้ำ "คำถามที่ดีจากดังนั้น" ที่นี่? เป้าหมายคืออะไร? เบต้านี้ทดสอบว่าเหมาะสมหรือไม่ที่จะมีไซต์ Emacs แยกจากกันเมื่อเทียบกับการใช้แท็ก [emacs] บน SO เป็นต้นหากเรา "พิสูจน์" ว่าเว็บไซต์นี้มีความหมายเพียงคัดลอกคำถามจากที่อื่นเราแสดงอะไร? มันไม่สมเหตุสมผลสำหรับฉัน และทำไมเราต้องการที่จะสนับสนุนพฤติกรรมดังกล่าว? ใครช่วย (นอกเหนือจากเครื่องถ่ายเอกสาร)? หากเราต้องการที่จะย้ายข้อมูล (ซึ่งเราไม่ได้ทำในช่วงเบต้า) อย่างน้อยผู้ถามดั้งเดิมและผู้ตอบจะถูกเก็บไว้ในลูป
ดึง

@Drew: จุดมุ่งหมายคือการมีสถานที่ที่ดีสำหรับการถามและตอบคำถามเกี่ยวกับ Emacs ไซต์ SE ทั้งหมดได้รับการสนับสนุนให้ "เพาะ" ไซต์ในช่วงเบต้า (ส่วนตัว) พร้อมคำถามและคำตอบที่ดีเพื่อให้ผู้เยี่ยมชมเว็บไซต์ทราบในภายหลังว่าเนื้อหาประเภทใดที่เหมาะสม อย่างไรก็ตามฉันมาที่นี่เพียงเพราะฉันได้ยินเว็บไซต์นี้และคิดถึงการถามคำถามที่รบกวนฉันในขณะนี้ ความคิดเห็นเกี่ยวกับการโยกย้ายคำถามถูกกระตุ้นโดยข้อสังเกตของคุณในความคิดเห็นแรกข้างต้น
ShreevatsaR

ตกลง. โปรดนำไปที่Metaถ้าคุณมีอะไรจะพูดมากกว่านี้
Drew

คำตอบ:


15

anzuแพคเกจไม่ว่า

anzu.el จัดให้มีโหมดรองซึ่งแสดงข้อมูลการจับคู่ปัจจุบันและข้อมูลการจับคู่ทั้งหมดในบรรทัดโหมดในโหมดการค้นหาต่างๆ

ภาพหน้าจอ


ขอบคุณ! ฉันเพิ่ม MELPA และติดตั้ง anzu แล้วเปิดใช้งานและดูเหมือนว่าจะใช้งานได้ ฉันจะรอดูว่าใครมีโซลูชันที่ไม่ได้ขึ้นอยู่กับแพคเกจใด ๆ (อย่างน้อยแพคเกจไม่ได้อยู่ใน ELPA)
ShreevatsaR

13

นี่คือความเป็นไปได้บางอย่างที่ไม่ลื่นมากซึ่งมีข้อได้เปรียบในการทำงานกับ 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)

นี่ ... ใช่ มันไม่ใช่สิ่งที่ฉันต้องการ แต่เป็นสิ่งที่มีค่าที่จะรู้ว่าสิ่งที่ดีที่สุดที่เป็นไปได้กับหุ้น Emacs ขอบคุณ
ShreevatsaR

ดูเหมือนว่าจะแสดงจำนวนบรรทัดที่ตรงกันเท่านั้นไม่ใช่จำนวนที่ตรงกัน
xuhdev

0

ฉันอยากจะแนะนำSwiper !

Swiper เป็นอีกทางเลือกหนึ่งของ isearch ที่ใช้ไม้เลื้อยในการแสดงภาพรวมของการแข่งขันทั้งหมด

ป้อนคำอธิบายรูปภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.