Emacs 23.3 - 默认模式行格式已过时?

saw*_*awa 0 emacs elisp emacs23

我从emacs 23.1切换到emacs 23.3.我在配置文件中有如下设置:

(setq default-mode-line-format '(
    string-one
    string-two
    more-strings
))
Run Code Online (Sandbox Code Playgroud)

Emacs响应default-mode-line-format自emacs 23.2以来已经过时,并且说要使用mode-line-format,但只是替换default-mode-line-format,mode-line-format似乎不起作用.如何修复它以使用emacs 23.3?

Tre*_*son 6

如果您阅读了文档mode-line-format,您会注意到它:

Automatically becomes buffer-local when set in any fashion.
Run Code Online (Sandbox Code Playgroud)

这意味着为了让你改变所有缓冲区的值,你需要setq-default像这样使用:

(setq-default mode-line-format 
      '(string-one
        string-two
        more-strings))
Run Code Online (Sandbox Code Playgroud)

文档链接:缓冲区局部变量,describe-variable(绑定到C-h v).