[英]how to change buffer-local variable for a major mode in Emacs?
通常,如何在Emacs中自定義緩沖區局部變量的值? 例如,變量w3m-lnum-mode
是局部於緩沖區的,如果我在.emacs
設置(setq w3m-lnum-mode t)
,則其在w3m模式緩沖區中的值仍為nil。 如何在w3m主模式下將其設置為t
?
主要模式具有用於此類情況的hook變量。 尋找w3m-mode-hook
。
(defun my-w3m-hook nil
(setq w3m-lnum-mode t))
(add-hook 'w3m-mode-hook #'my-w3m-hook)
間接掛鈎一個單獨的函數不是絕對必要的,但是可以簡化掛鈎功能的管理(否則,您必須重新啟動Emacs或跳過幾個箍以向現有的掛鈎中添加一些東西;現在您要做的就是評估新defun
的函數從鈎子調用)。
您可以這樣設置默認值:
(setq-default w3m-lnum-mode t)
對於細粒度的控制,請使用RNAer建議的鈎子。 據我所知,這不是普通的局部變量,而是次要模式變量。 您實際上可能想做(w3m-lnum-mode 1)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.