5

我在 Linux 中使用 Emacs (24.3) 的新稳定版本运行最新版本的auto-completein 。elpa我的 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

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

有时我确实看到了建议和/或弹出菜单,但其他时候却没有。

有什么想法为什么?

4

1 回答 1

4

ac-config-default设置不包括 ac-source-filename 的源列表。setq-default ac-sources在将它们重置为默认值后调用此函数。自动完成手册建议设置模式挂钩以设置特定模式所需的源。手册中的示例是

(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 模式应该很容易。或者,您可以通过首先调用它来全局覆盖设置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而不是相反。

于 2013-03-14T18:43:30.420 回答