Emacs自动完成不显示结果

时间:2013-03-14 15:17:59

标签: emacs autocomplete

我在auto-complete中使用Linux中新版本的Emacs(24.3)运行最新版本的elpa。我在我的Emacs init文件中进行了以下设置。

(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

但它没有显示任何内容。其他文件也会发生同样的事情。

有时我执行会看到建议和/或弹出菜单显示,但有时则不会。

有什么想法?

1 个答案:

答案 0 :(得分:4)

ac-config-default设置不包含ac-source-filename的源列表。通过在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)

将其改编为python-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设置的来源,而不是相反。