Emacs启动时自动启用auto-complete-mode

32

我刚刚安装了auto-complete-mode,但每次启动Emacs时都需要输入M-x auto-complete-mode。有没有办法让它自动加载?

我的.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)

感谢


我认为Emacs Wiki中提供了一个解决方案。搜索"real-global-auto-complete-mode",看看这是否适用于您。 - alexurba
2个回答

52
我认为您可以用多种方式来实现。要全局启用它,您应该使用

(global-auto-complete-mode t)

但它使用了自动补全模式(可能是auto-complete-mode),只在ac-modes中列出的模式上启用AC。您可以像这样手动添加它们。

(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)之前的某个地方加上(require 'auto-complete) - William Everett
我发现(setq ac-modes '(c++-mode sql-mode))是实现我想要的功能最简单(且最不含糊)的方法。 - Mike Vella
在我的Ubuntu x86上,Emacs 24.3.1中没有一个选项适用于我。我看到模式行上的状态(AC),但是没有一个自动补全功能可用,尽管我知道它们确实存在,因为我曾经使用M-x auto-complete-mode手动打开过。对我有用的是https://emacs.stackexchange.com/questions/18982/how-do-i-make-auto-complete-enabled-by-default中提到的方法。 - Sonny
我该如何为auto-complete-mode-maybe分配一个键绑定?@desudesudesu - alper

21
我只需要这个:
(require 'auto-complete)
(global-auto-complete-mode t)

我将其添加到了我的 .emacs.d/init.el 文件中。

我使用软件包管理器安装了 auto-complete。我正在使用 Emacs 24。


1
即使使用此设置,AC模式也不会在每种模式下都开启。例如,在没有像接受的答案那样重写“auto-complete-mode-maybe()”的ReST模式下,AC模式将无法工作。 - xxks-kkk
我应该按TAB键吗?@Frank Henard - alper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接