根据 mod 设置变量值

Set variable value depending on mod

我想设置 browse-url-browser-funciton,具体取决于哪个 mod 对缓冲区有效。这特别意味着 pylookup 使用 w3m 打开文档和 org-mode 使用 firefox 打开链接(在 X11 上)。

目前我的 .emacs 中只有这个:

(setq browse-url-browser-function 'w3m-browse-url)

您可以根据主要模式为该变量设置一个本地值,方法是向模式挂钩添加一个函数。类似于:

(defun use-firefox ()
  (set (make-local-variable 'browse-url-browser-function) 'browse-url-firefox))
(add-hook 'org-mode-hook 'use-firefox)

这将使用 Firefox 用于在组织模式缓冲区中打开的链接,以及所有其他缓冲区的默认值。 (注意它只适用于新打开的缓冲区。)