如何以交互方式阅读此Emacs功能的输入文本?

时间:2016-12-20 20:33:48

标签: regex emacs buffer

我是Emacs功能的新手。今天是我第一次尝试创建一个函数。

我知道count-matches会告诉我在缓冲区的其余部分出现正则表达式的次数,但大多数时候我需要从缓冲区的开头计算。所以我尝试了这个:

(defun count-matches-for-whole-buffer (text-to-count)
  "Opens the ~/.emacs.d/init.el file"
  (interactive "sText-to-count:") 
  (beginning-of-buffer)
  (count-matches text-to-count))

我将它放在〜/ .emacs.d / init.el中,然后在该缓冲区上执行“eval-buffer”。

所以现在我可以访问这个功能了。如果我运行它,它会要求我搜索文本。

但该功能只能达到这一行:

beginning-of-buffer

我从未得到过统计。这是为什么?

1 个答案:

答案 0 :(得分:1)

两件事。

  1. 您应该使用(goto-char (point-min))代替beginning-of-buffer
  2. 从lisp代码调用时,
  3. count-matches不会显示消息,除非您提供一个指示参数的参数。
  4. 试试这段代码:

    (defun count-matches-for-whole-buffer (text-to-count)
      (interactive "sText-to-count:")
      (count-matches text-to-count (point-min) (point-max) t))