我想以Emacs模式行格式调用某些方法。例如count-words
以查看选择了多少个字符或类别/方法名称光标在什么位置。
这是我当前的模式行格式,但是调用count-words
,结果显示为*invalid*
,而且我不确定是否会在任何更改中调用它。
(setq-default mode-line-format
(list "---File:[%b%+] Line:[%l] Size:[%i] "
(count-words (point-min) (point-max))
))
您所提问题的答案是:
(setq mode-line-format
(list "---File:[%b%+] Line:[%l] Size:[%i] %d"
(format "count: %d" (count-words (point-min) (point-max)))))
但是我不认为这是您要问的问题,因为该值不会更新。让我们修复它。
我选择保存文件后对其进行更新,因为如果您经常执行此操作,则在某些缓冲区大小下,对缓冲区中的单词进行计数将使v变慢。
(setq mode-line-format
(list "---File:[%b%+] Line:[%l] Size:[%i] %d"
'count-words-string))
(defun update-count-words-string-for-modeline ()
(interactive)
(setq count-words-string
(format "word count: %d" (count-words (point-min) (point-max))))
(force-mode-line-update))
(add-hook 'after-save-hook 'update-count-words-string-for-modeline)
((保存后,只用字数简单地调用message
可能也适合您的目的。]