【问题标题】:Emacs auto-complete not displaying resultsEmacs 自动完成不显示结果
【发布时间】:2013-03-03 00:47:52
【问题描述】:

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

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

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

有什么想法吗?

【问题讨论】:

  • 你在哪里输入/home/james/.em?我不认为自动完成在 minibuffer 中起作用。也许您正在寻找M-x ido-mode
  • 谢谢@Ista。它位于 python 缓冲区上(尽管我尝试了其他缓冲区,例如带有.emacs 的缓冲区)。我更新了 OP
  • 你找过ido-mode吗?
  • @ArpitRawat 我改用helm(以前称为任何东西)。但这有什么关系呢?

标签: emacs autocomplete


【解决方案1】:

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 模式应该很容易。或者,您可以通过首先调用 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 设置的源,而不是相反。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 2011-10-12
    • 1970-01-01
    相关资源
    最近更新 更多