Emacs 启动时自动完成模式

Posted

技术标签:

【中文标题】Emacs 启动时自动完成模式【英文标题】:Emacs auto-complete-mode at startup 【发布时间】:2011-12-27 02:22:34 【问题描述】:

我只是安装自动完成模式,但是每次我启动 emacs 时,我都必须 M-x 自动完成模式。反正有没有自动加载?

我的.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 看看这是否适合您。 【参考方案1】:

我认为您可以通过多种方式做到这一点。要全局启用它,您应该使用

(global-auto-complete-mode t)

但它使用自动完成模式-maybe,它只打开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)))

【讨论】:

在执行(global-auto-complete-mode t) 之前指出您需要(require 'auto-complete) 可能会有所帮助。 我发现(setq ac-modes '(c++-mode sql-mode)) 是实现我想要的最简单的方法(并且最不模糊)。 这些选项都不适用于我在 Ubuntu x86 上的 emacs 24.3.1 上。我看到模式行 (AC) 上的状态,但没有任何 AC 功能起作用,我知道它们可以工作,因为我曾经使用 M-x auto-complete-mode 手动打开它。对我有用的是emacs.stackexchange.com/questions/18982/… 如何为 auto-complete-mode-maybe 分配键绑定? @desudesudesu【参考方案2】:

我只需要这个:

(require 'auto-complete)
(global-auto-complete-mode t)

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

我使用包管理器安装了自动完成功能。我正在使用 Emacs 24。

【讨论】:

请注意即使使用此设置,AC 模式也不会在每种模式下都打开。例如,如果没有像接受的答案那样重写auto-complete-mode-maybe (),AC 模式将无法在 ReST 模式下工作。 我应该按 TAB 吗? @弗兰克·赫纳德

以上是关于Emacs 启动时自动完成模式的主要内容,如果未能解决你的问题,请参考以下文章

Emacs shell 模式中的 Bash 自动完成

理解 Emacs 完成模式选择

使自动完成和 yasnippet 模式协同工作以在 GNU/Emacs 中编辑特定文件

Emacs 补全:自动补全还是公司? [关闭]

如何在 Emacs 启动时显示 Org 模式议程?

使用 go-mode 自动完成