在Emacs Lisp中,计算从行开始到当前光标位置的点数

  • 本文关键字:光标 位置 开始 Lisp Emacs 计算 emacs
  • 更新时间 :
  • 英文 :


假设我有一个文件,里面有几句话,我想计算(每次光标位置变化时(点从行的开始到当前光标的位置,所以,一个例子(光标用|符号(管道(表示(:

First sentence. Second. Third. And | is the cursor. ;; 3 dots

First sentence. | Second. Third. ;; 1 dot

我希望它是清楚的。

我将在代码中进一步处理这个结果,因此只有在缓冲区中每次更改光标位置后的点的当前值才是重要的。

我也会用这个钩子只针对特定类型的文件,所以不用担心性能,尽管我不认为计算一行中最多有cca 80个字符的点数会太耗费CPU,通常更少

(defun count-dots-to-point ()
(interactive)
(let ((start (save-excursion
(beginning-of-line)
(point)))
(end (point)))
(message "%d" (count-matches "\." start end))))
(add-hook 'post-command-hook 'count-dots-to-point)

最新更新