通常,如何在Emacs中自定义缓冲区局部变量的值?例如,变量w3m-lnum-mode
是缓冲区本地的,如果我在(setq w3m-lnum-mode t)
中设置.emacs
,它在w3m模式缓冲区中的值仍为零。如何在w3m主模式下将其设置为t
?
答案 0 :(得分:1)
主要模式有一个钩子变量用于此类事情。寻找w3m-mode-hook
。
(defun my-w3m-hook nil
(setq w3m-lnum-mode t))
(add-hook 'w3m-mode-hook #'my-w3m-hook)
挂钩一个单独的函数的间接并不是绝对必要的,但是简化了钩子功能的管理(否则你必须重新启动Emacs或跳过几个箍来向现有钩子添加东西;现在你只需要do是评估从钩子调用的函数的新defun
。
答案 1 :(得分:0)
您可以像这样设置默认值:
(setq-default w3m-lnum-mode t)
对于细粒度控制,如RNAer建议的那样使用钩子。据我所知,这不是一个普通的局部变量,而是一个次模式变量。你实际上可能想做(w3m-lnum-mode 1)
。