2014-10-17 102 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))) 
相關問題