我希望以编程方式设置缓冲区的主要模式。我已经深入研究了文档,函数set-buffer-major-mode
只接受了一个缓冲区对象。我本质上是在寻找一个带缓冲区对象和模式名称的函数。
或者,我也尝试使用auto-mode-alist
强制缓冲区具有文件扩展名,但即使我调用set-buffer-major-mode
函数也不起作用。
感谢您的帮助!
答案 0 :(得分:8)
基础是,如果您想切换到my
模式,您只需拨打my-mode
,例如:
(with-current-buffer buffer
(my-mode))
如果您有一个缓冲区和一个绑定到主模式的变量,您可以使用以下内容:
(with-current-buffer buffer
(funcall the-mode-i-want))
同样,如果您有一个绑定到字符串的变量,则必须使用intern
将其转换为符号:
(with-current-buffer buffer
(funcall (intern the-name-of-the-mode-i-want)))