在增量搜索过程中获取出现次数(Cs / isearch-forward)


17

受现代浏览器的启发,我很希望能够在搜索时看到某个字符串出现多少次,例如下面屏幕截图右上角的“ 37之10”。

铬10 of 37

有没有办法在Emacs中获得此功能?为了避免变慢,它应该仅在一段时间空闲后运行。


这是这些[emacs的]在计算器上-标记问题的重复:stackoverflow.com/q/14764130/729907stackoverflow.com/q/22479140/729907。显然,它不能作为重复项关闭,因此我想这意味着人们可以复制成千上万个其他带有SO [emacs]标签的问题... Bonjour les degats。
2014年

@Drew:谢谢那些指针。显然,将问题视为不同网站上的重复项是不合理的,这比在其他地方(例如,在gnu.emacs.help上)询问的问题“重复”要多。是的,对此站点的希望是,如果在此处重现SO提出的好的问题,它将改善该站点的质量。我不知道有人问过SO的问题,但是对于有时间开始在这里提出(和回答)最佳问题的人来说,这绝对是一个好主意。也许应该有一种自动迁移问题的方法。
ShreevatsaR 2014年

为什么?为什么在这里重现“ SO提出的好问题”是一件好事?目的是什么?这个Beta测试了是否有一个单独的Emacs网站是否有意义,而不是在SO等上使用标签[emacs]。如果仅通过从其他地方复制问题来“证明”该网站有意义,那么我们展示了什么?这对我来说毫无意义。为什么我们要鼓励这种行为?它对谁有帮助(除了复印机)?如果我们想迁移内容(在Beta中这样做),那么至少会保留原始提问者和受访者的内容。
2014年

@Drew:目的是为询问和回答有关Emacs的问题提供一个好地方。鼓励所有SE网站在(私人)测试版中通过良好的问题和答案“播种”该网站,以便以后的网站访问者知道哪种内容合适。无论如何,我之所以来到这里,是因为我听说了这个网站,并想问一下目前困扰我的问题。您在上面第一条评论中的言论激发了有关迁移问题的想法。
ShreevatsaR 2014年

好。如果您还有更多要说的话,请带它到Meta
2014年

Answers:


15

anzu包做到了。

anzu.el提供了次要模式,该模式在各种搜索模式下的模式行中显示当前匹配项和总匹配项信息。

屏幕截图


谢谢!我添加了MELPA并安装了anzu并打开了它,它似乎正在运行。我将拭目以待,看看是否还有其他人有不依赖于任何软件包的解决方案(至少,不是ELPA中的软件包)。
ShreevatsaR 2014年

13

这里有一些不太灵活的可能性,它们具有使用股票Emacs的优势。

如果在增量搜索过程中按M-s oisearch-occur),则会弹出一个Occur缓冲区,其中包含当前搜索表达式。*Occur*缓冲区的顶部是匹配的行数。

该命令how-many显示正则表达式的出现次数(包括重复出现的次数)。不幸的是,它没有与增量搜索集成。这是isearch的概念验证集成: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 2014年

这似乎仅显示匹配的行数,而不显示匹配的数。
xuhdev

0

我想建议刷卡

Swiper是isearch的替代产品,它使用常春藤显示所有比赛的概况。

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.