【问题标题】:ac-auto-start (auto-complete mode) would not get set no matter whatac-auto-start(自动完成模式)无论如何都不会设置
【发布时间】:2013-08-30 08:08:31
【问题描述】:

我正面临一种非常奇怪的行为。无论我如何设置ac-auto-start,无论是通过自定义,还是在我完成后立即评估(setq ac-auto-start 2)(setq-default ac-auto-start 2)(setq-local ac-auto-start 2),变量都会设置为nil

我查看了auto-complete 模式和ac-slime 的来源,但这些都对这个变量没有任何作用。我不知道如何处理这个问题。

此故障的有效后果是完成组合框不会自行出现,除非我通过执行 M-x 自动完成 强制它出现。在启用了auto-complete 次要模式的所有模式中,此行为都是一致的。

编辑

这似乎是最新 Emacs 的问题。现在它无法修改变量值,无论它是什么变量。所以,比如说,在使用-Q 运行它之后,我现在发现我无法评估使用(setq ...) 表单的代码,因为它没有任何效果。 :/ 所以,请稍等,我会尝试调查这个...

这是由于打字错误,但原来的问题仍然存在。

Emacs 版本是 24.3.50.1 大约一周前从主干中提取的。


auto-complete 是从 MELPA 安装的 1.4 版。

我通过将点移动到 REPL 缓冲区来设置变量,然后是 M-:。我用同样的方法检查它的值。

EDIT2

好的,我终于找到了原因:我安装了enzyme 包,其中包含auto-complete 的早期版本,出于某种原因,部分auto-complete 代码是从那里加载的,其他部分从 MELPA 安装的那个。禁用enzyme 后,现在一切正常。

EDIT3

我在 REPL 缓冲区中运行 (auto-complete-mode 1) 后仍然会发生这种情况。变量将变得无法设置。我已经搜索了各种可能正在设置某些东西的自动完成计时器,但到目前为止还没有运气。

【问题讨论】:

  • The documentation 暗示,尽管是间接的,只有 tnil 作为该变量的值才有意义。您是否尝试将其设置为t
  • 也许发布一些代码或解释您如何检查值等?如果从emacs -Q 开始会发生什么(ac-auto-start 的默认值无论如何都是 2,IIUC)?如果您从emacs -Q 开始没有看到问题,请将您的初始化文件一分为二,直到您看到导致问题的原因。
  • @AaronMiller:autocomplete.el 的最新稳定版本说整数值也可以,默认值实际上是 2。所以也许 wvxvw 应该澄清使用的版本等。
  • @Drew 这似乎是setq 的问题,我正试图找出到底出了什么问题。
  • ...这就是我在升级之前等待稳定版本的原因;处于流血边缘的问题是你往往会流血。

标签: emacs autocomplete


【解决方案1】:

auto-complete-mode 的设置确实有些奇怪。

(我在 GNU Emacs 24.3.1 中使用 ELPA 版本)

这是customize-group RET auto-complete设置的:

 '(ac-auto-show-menu t)
 '(ac-auto-start t)

此时,如果您M-x auto-complete-mode,您将在 minibuffer 中获得一个 [no match]。只有在您尝试M-x auto-complete 并大喊"auto-complete-mode is not enabled" 奇怪的错误之后,您才能M-x auto-complete-mode(但没有命令完成......嗯)然后进入模式。

如果你把它放在你的初始化文件(.emacs)中

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

只有在启动后重新评估它才会生效(?!?)。

类似的东西也一样

(if (auto-complete)
    (auto-complete-mode t))

我发现auto-complete-mode 在启动时加载唯一方法是:

(eval-and-compile
  (require 'auto-complete nil 'noerror))

(以上customize选项现已生效)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-23
    • 2016-07-13
    • 2016-09-07
    • 2012-06-29
    • 1970-01-01
    • 2015-08-20
    • 2020-08-13
    • 1970-01-01
    相关资源
    最近更新 更多