Mendapatkan jumlah kemunculan, selama pencarian tambahan (Cs / maju-pencarian)

17

Terinspirasi oleh browser modern, saya ingin dapat melihat berapa banyak kejadian dari beberapa string, ketika saya mencarinya - seperti "10 dari 37" di sudut kanan atas tangkapan layar di bawah ini.

Chrome 10 dari 37

Apakah ada cara untuk mendapatkan ini di Emacs? Agaknya, agar tidak lambat, itu harus berjalan hanya setelah beberapa waktu idle.

ShreevatsaR
sumber
Ini adalah duplikat dari pertanyaan [emacs] yang bertanda ini di StackOverflow: stackoverflow.com/q/14764130/729907 , stackoverflow.com/q/22479140/729907 . Rupanya itu tidak dapat ditutup sebagai duplikat, jadi saya kira itu berarti bahwa orang dapat menyalin zillions pertanyaan SO lainnya [emacs] ... Bonjour les degats.
Drew
@Rew: Terima kasih untuk petunjuk itu. Jelas tidak masuk akal untuk menganggap pertanyaan sebagai duplikat di berbagai situs web, apalagi Anda menganggap pertanyaan di sini sebagai "duplikat" dari sesuatu yang ditanyakan di tempat lain (misalnya di gnu.emacs.help). Ya harapan untuk situs ini adalah bahwa jika pertanyaan bagus dari SO direproduksi di sini, itu akan meningkatkan kualitas situs ini. Saya tidak tahu pertanyaan telah diajukan pada SO, tapi itu jelas merupakan ide yang baik untuk seseorang dengan waktu untuk mulai bertanya (dan menjawab) pertanyaan terbaik di sini. Mungkin harus ada cara untuk memigrasi pertanyaan secara otomatis.
ShreevatsaR
Mengapa? Mengapa hal yang baik untuk mereproduksi "pertanyaan bagus dari SO" di sini? Apa tujuannya? Beta ini menguji apakah masuk akal untuk memiliki situs Emacs yang terpisah, bukan menggunakan tag [emacs] pada SO, dll. Jika kami "membuktikan" bahwa situs ini bermakna hanya dengan menyalin pertanyaan dari tempat lain, lalu apa yang telah kami tunjukkan? Ini tidak masuk akal bagi saya. Dan mengapa kita ingin mendorong perilaku seperti itu? Siapa yang membantu (selain mesin fotokopi)? Jika kita ingin bermigrasi hal-hal (yang kita lakukan tidak , selama Beta) maka setidaknya penanya asli dan responden akan disimpan dalam lingkaran.
Drew
@Rew: Tujuannya adalah untuk memiliki tempat yang baik untuk bertanya dan menjawab pertanyaan tentang Emacs. Semua situs SE didorong untuk "menabur" situs selama beta (pribadi) dengan pertanyaan dan jawaban yang baik, sehingga nantinya pengunjung ke situs tahu jenis konten apa yang sesuai. Lagi pula, saya hanya datang ke sini karena saya mendengar situs ini dan berpikir untuk mengajukan pertanyaan yang mengganggu saya saat ini; pikiran-pikiran tentang pertanyaan migrasi dimunculkan oleh komentar Anda dalam komentar pertama di atas.
ShreevatsaR
BAIK. Silakan bawa ke Meta , jika Anda memiliki sesuatu untuk dikatakan.
Drew

Jawaban:

15

The anzupaket melakukan itu.

anzu.el menyediakan mode minor yang menampilkan informasi kecocokan saat ini dan total kecocokan dalam mode-line dalam berbagai mode pencarian.

tangkapan layar

Kaushal Modi
sumber
Terima kasih! Saya menambahkan MELPA dan menginstal anzu dan menyalakannya, dan tampaknya berfungsi. Saya akan menunggu untuk melihat apakah ada orang lain yang memiliki solusi yang tidak bergantung pada paket apa pun (setidaknya, paket tidak dalam ELPA).
ShreevatsaR
13

Berikut adalah beberapa kemungkinan yang tidak terlalu apik, yang memiliki keuntungan bekerja dengan saham Emacs.

Jika Anda menekan M-s o( isearch-occur) selama pencarian tambahan, sebuah Terjadi penyangga muncul dengan ekspresi pencarian saat ini. Di bagian atas *Occur*buffer adalah jumlah garis yang cocok.

Perintah how-manymenampilkan jumlah kemunculan regexp (termasuk kejadian berulang). Sayangnya itu tidak terintegrasi dengan pencarian tambahan. Berikut adalah integrasi isearch proof-of-concept: tekan M-s #selama isearch untuk menunjukkan jumlah kecocokan.

(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 'SANGAT berhenti menjadi jahat'
sumber
Ini ... ya. Bukan apa yang saya inginkan, tetapi berharga untuk mengetahui yang terbaik yang mungkin dengan saham Emacs, terima kasih.
ShreevatsaR
Ini sepertinya hanya menunjukkan jumlah baris yang cocok, bukan jumlah yang cocok.
xuhdev
0

Saya ingin menyarankan Swiper !

Swiper adalah alternatif untuk pencarian yang menggunakan ivy untuk menunjukkan ikhtisar semua pertandingan.

masukkan deskripsi gambar di sini

serghei
sumber