2014-10-17 42 views
1

我希望以编程方式设置缓冲区的主要模式。我已经深入了解文档,并且函数set-buffer-major-mode仅占用一个缓冲区对象。我基本上正在寻找一个采用缓冲区对象和模式名称的函数。使用emacs lisp以编程方式设置缓冲区的主要模式

另外,我也尝试使用auto-mode-alist强制缓冲区有一个文件扩展名,但即使我调用set-buffer-major-mode函数也不起作用。

感谢您的帮助!

回答

6

基本的是,如果你想切换到my模式,你所要做的就是致电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))) 
相关问题