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