无论如何,ac-auto-start(自动完成模式)都不会被设置

时间:2013-08-27 14:08:40

标签: emacs autocomplete

我面临着一种非常离奇的行为。无论我如何设置ac-auto-start,都可以通过自定义,在我执行此操作后立即评估(setq ac-auto-start 2)(setq-default ac-auto-start 2)(setq-local ac-auto-start 2),将变量设置为{{1} }。

在我的案例中,我查看了nil模式和auto-complete的来源,但这些变量都没有做任何事情。我对如何解决这个问题感到很茫然。

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

修改

这似乎与最新的Emacs有关。现在它无法修改变量值,无论它是什么变量。因此,在使用auto-complete运行它之后,我现在发现我无法评估使用-Q表单的代码,因为它没有任何效果。 :/所以,请等一下,我会试着调查一下......

这是由于错字,但最初的问题仍然存在。

大约一周前,Emacs版本是从主干中拉出来的。


(setq ...)是从MELPA安装的1.4版本。

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

EDIT2

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

EDIT3

在REPL缓冲区中运行enzyme后仍然会发生这种情况。变量将无法设置。我搜索了各种自动完成定时器,这些定时器可能会设置一些内容,但到目前为止还没有运气。

1 个答案:

答案 0 :(得分:0)

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,您将在迷你缓冲区中获得[no match]权限。只有在您尝试M-x auto-complete之后,您才能"auto-complete-mode is not enabled"奇怪的错误,您能够M-x auto-complete-mode(但没有完成命令... Hm)然后处于模式中。

如果你把它放在你的init文件(.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选项现已生效)