2012-05-17 30 views
1

我有一個emacs的配置文件whatever.el爲什麼模式沒有啓用?

(abbrev-mode +1) 
(provide 'whatever) 

,並在我的​​:

(require 'whatever) 

但是當我啓動Emacs,未啓用abbrev-mode。爲什麼?

謝謝

+0

我不認爲我曾經見過這樣使用'',但我看到它是有效的(如果多餘:) – phils

+0

我知道它從http://github.com/bbatsov/prelude讀取代碼發現它非常具有可讀性,用'+ 1'激活並用'-1'去激活 – jney

回答

3

http://emacswiki.org/emacs/AbbrevMode報價:

你也可以把你的〜/ .emacs文件下面,如果你想它 總是:

(setq default-abbrev-mode t) 

如果你只希望它在文本和派生模式,你可以做 這樣的事情:

​​3210

F或多種模式,使用類似以下內容:

(dolist (hook '(erc-mode-hook 
       emacs-lisp-mode-hook 
       text-mode-hook)) 
    (add-hook hook (lambda() (abbrev-mode 1)))) 
2

按緩衝區啓用縮寫模式。

一種方法是創建一個鉤子函數,你可以添加到你想用它在

例如主要模式鉤子:

(defun my-enable-abbrev-mode() 
    (abbrev-mode 1)) 
(add-hook 'c-mode-hook 'my-enable-abbrev-hook) 
(add-hook 'java-mode-hook 'my-enable-abbrev-hook) 

另一種方法是使用change-major-mode-hook

1

當別人解釋如何得到你想大概,我只想指出,WRT您的實際問題(「爲什麼?」)時,原因很簡單:abbrev-mode是一個緩衝區本地次要模式,所以當你在啓動時運行(abbrev-mode + 1),它只會在緩衝區中啓用abbrev-mode,在評估~/.emacs通常爲劃傷),但不在隨後的緩衝區中。

相關問題