如何在Emacs中为主模式更改缓冲区局部变量?

时间:2013-02-09 06:52:29

标签: emacs

通常,如何在Emacs中自定义缓冲区局部变量的值?例如,变量w3m-lnum-mode是缓冲区本地的,如果我在(setq w3m-lnum-mode t)中设置.emacs,它在w3m模式缓冲区中的值仍为零。如何在w3m主模式下将其设置为t

2 个答案:

答案 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)

相关问题