如何以Emacs模式行格式调用函数

问题描述 投票:0回答:1

我想以Emacs模式行格式调用某些方法。例如count-words以查看选择了多少个字符或类别/方法名称光标在什么位置。

这是我当前的模式行格式,但是调用count-words,结果显示为*invalid*,而且我不确定是否会在任何更改中调用它。

(setq-default mode-line-format
      (list "---File:[%b%+] Line:[%l] Size:[%i] "
        (count-words (point-min) (point-max))
        ))
emacs elisp modeline
1个回答
0
投票

您所提问题的答案是:

(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可能也适合您的目的。]

© www.soinside.com 2019 - 2024. All rights reserved.