3

Generally, how can I customize the value of a buffer-local variable in Emacs? For example, the variable w3m-lnum-mode is buffer-local, if I set (setq w3m-lnum-mode t) in .emacs, its value in a w3m mode buffer is still nil. How could I set it to t in w3m major mode?

4

2 回答 2

2

主要模式对这类事情有一个钩子变量。寻找w3m-mode-hook

(defun my-w3m-hook nil
  (setq w3m-lnum-mode t))
(add-hook 'w3m-mode-hook #'my-w3m-hook)

间接挂钩一个单独的函数不是绝对必要的,但简化了挂钩功能的管理(否则你必须重新启动 Emacs 或跳过几个循环来向现有挂钩添加一些东西;现在你需要做的就是评估从钩子调用的新defun函数)。

于 2013-02-09T08:24:34.903 回答
0

您可以像这样设置默认值:

(setq-default w3m-lnum-mode t)

对于细粒度控制,请使用 RNAer 建议的钩子。据我所知,这不是一个普通的局部变量,而是一个次要模式变量。你实际上可能想要这样做(w3m-lnum-mode 1)

于 2013-02-09T11:30:20.787 回答