gpt4 book ai didi

emacs - Emacs 中的模式局部变量

转载 作者:行者123 更新时间:2023-12-04 03:49:35 24 4
gpt4 key购买 nike

我想要一个显示变量值的全局键盘快捷键。但是,变量的值可能会根据当前缓冲区中的当前主要模式而改变。

我尝试将以下内容添加到我的 ~/.emacs :

(defun my-elisp-mode-setup ()
(defvar-local *current-mode-var* "elisp-mode")
)
(defun my-sh-mode-setup ()
(defvar-local *current-mode-var* "sh-mode")
)
(add-hook 'emacs-lisp-mode-hook 'my-elisp-mode-setup)
(add-hook 'sh-mode-hook 'my-sh-mode-setup)

如果我现在用 emacs test.sh 启动 Emacs然后输入 M-x describe-variable *current-mode-var*test.sh缓冲,我得到
*current-mode-var*'s value is "elisp-mode"

Automatically becomes buffer-local when set.

Documentation:
Not documented as a variable.

而我预计会得到 *current-mode-var*'s value is "sh-mode"

最佳答案

变量仅在第一次声明时进行评估。跳过所有进一步的声明。
您需要一个 setq反而。

关于emacs - Emacs 中的模式局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20937882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com