2011-11-11 84 views
27

我只是安裝自動完成模式,但每次啓動emacs時我都必須使用M-x自動完成模式。反正有它自動加載?Emacs在啓動時自動完成模式

我的.emacs如下:

;; auto-complete 
(add-to-list 'load-path "~/.emacs.d/") 
(require 'auto-complete-config) 
(add-to-list 'ac-dictionary-directories "~/.emacs.d//ac-dict") 
(ac-config-default) 

感謝

+0

我認爲在[Emacs Wiki](http://www.emacswiki.org/emacs/AutoComplete)中提出了一個解決方案。搜索真正的全球自動完成模式,看看它是否適合你。 – alexurba

回答

42

我認爲你可以以不同的方式做到這一點。要啓用全局,你應該使用

(global-auto-complete-mode t) 

但它採用自動完成模式,也許,它把AC上只有那些在ac-modes上市。您可以手動添加他們就這樣

(add-to-list 'ac-modes 'sql-mode) 

你可以讓自己的列表,如果你想AC只爲少數模式

(setq ac-modes '(c++-mode sql-mode)) 

或重寫它有AC到處是活躍的。

(defun auto-complete-mode-maybe() 
    "No maybe for you. Only AC!" 
    (auto-complete-mode 1)) 

編輯:

自動完成在迷你緩衝區是壞的。我認爲這會更好。

(defun auto-complete-mode-maybe() 
    "No maybe for you. Only AC!" 
    (unless (minibufferp (current-buffer)) 
    (auto-complete-mode 1))) 
+2

在執行'(global-auto-complete-mode t)'之前的某個地方,指出你需要一個'(需要'自動完成')可能是有幫助的。 –

+0

我發現'(setq ac-modes'(C++ - mode sql-mode))'是最簡單的方法(也是最不明確的)來完成我想要的。 –

+0

這些選項都不適用於Ubuntu x86上的emacs 24.3.1。我發現模式線('AC')的狀態,但沒有一個AC功能可以工作,而且我知道它們的確如此,因爲我曾經使用'M-x auto-complete-mode'手動打開它。什麼對我來說是在https://emacs.stackexchange.com/questions/18982/how-do-i-make-auto-complete-enabled-by-default – Sonny

19

我只是需要這樣的:

(require 'auto-complete) 
(global-auto-complete-mode t) 

添加到我的.emacs.d/init.el文件。

我安裝了包管理器自動完成。我正在使用Emacs 24.

+0

這一個爲我工作,但不是其他。謝謝。 –

+1

即使使用此設置,也請注意,每種模式都不會開啓AC模式。例如,AC模式在ReST模式下不會工作,而不會像接受的答案那樣重寫''auto-complete-mode-maybe()'''。 – zack