2013-03-14 39 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,而不是周围的其他方式设置的来源。