2013-03-14 121 views
5

我在elpa在Linux中的Emacs的新的穩定版(24.3),運行的是最新的版本auto-complete。我在我的Emacs init文件中有以下設置。Emacs的自動完成不顯示結果

(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t) 
(require 'auto-complete-config) 
(setq-default ac-sources 
      '(
     ac-source-filename 
     ac-source-abbrev 
     ac-source-dictionary 
     ac-source-words-in-same-mode-buffers)) 
(ac-config-default) 

如果我開始打字:/home/james/.em在緩衝區(例如一個Python緩衝區)我希望自動完成建議:

.emacs 
.emacs.d 

,但它並不顯示任何內容。其他文件也會發生同樣的情況。

有時我看到建議和/或彈出菜單顯示,但其他時間沒有。

任何想法爲什麼?

+0

你在哪裏輸入'/家庭/詹姆斯/ .em'?我不認爲自動完成功能在迷你緩衝器中起作用。也許你正在尋找'M-x ido-mode'? – Ista 2013-03-14 15:35:51

+0

謝謝@Ista。它在python緩衝區中(儘管我嘗試了其他緩衝區,例如帶有.emacs的緩衝區)。我更新了OP – 2013-03-14 15:37:42

+0

你找過'ido-mode'嗎? – 2013-03-14 16:29:02

回答

4

ac-config-default套不包括AC-源文件名源列表。通過setq-default ac-sources後調用這個函數要重設回默認值。所述auto-complete manual suggests設定模式鉤設置爲特定模式所需的資源。從手動的例子是

(defun my-ac-emacs-lisp-mode() 
    (setq ac-sources '(ac-source-symbols ac-source-words-in-same-mode-buffers))) 

(add-hook 'emacs-lisp-mode-hook 'my-ac-emacs-lisp-mode) 

適應這蟒模式應該是很容易。另外,您可以通過全球範圍內第一次調用它覆蓋由ac-config-default設定的設置,即

(require 'auto-complete-config) 
(ac-config-default) 
(setq-default ac-sources 
      '(
     ac-source-filename 
     ac-source-abbrev 
     ac-source-dictionary 
     ac-source-words-in-same-mode-buffers)) 

這樣setq-default ac-sources將覆蓋ac-config-default,而不是周圍的其他方式設置的來源。