我希望以编程方式设置缓冲区的主要模式。我已经深入研究了文档和函数 set-buffer-major-mode
只需要一个缓冲区对象。我本质上是在寻找一个接受缓冲区对象和模式名称的函数。
或者,我也尝试使用 auto-mode-alist
通过强制缓冲区具有文件扩展名,但即使我调用 set-buffer-major-mode
也不起作用功能。
感谢所有的帮助!
最佳答案
基础是,如果你想切换到 my
模式,您只需调用my-mode
, 例如:
(with-current-buffer buffer
(my-mode))
如果您有一个缓冲区和一个绑定(bind)到主要模式的变量,您可以使用以下内容:
(with-current-buffer buffer
(funcall the-mode-i-want))
同样,如果您有一个绑定(bind)到字符串的变量,您必须使用
intern
将其转换为符号。 :(with-current-buffer buffer
(funcall (intern the-name-of-the-mode-i-want)))
关于emacs - 使用 emacs lisp 以编程方式设置缓冲区的主要模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26419164/