簡體   English   中英

如何在Emacs中更改主要模式的緩沖區局部變量?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM