我面临着一种非常离奇的行为。无论我如何设置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
后仍然会发生这种情况。变量将无法设置。我搜索了各种自动完成定时器,这些定时器可能会设置一些内容,但到目前为止还没有运气。
答案 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
选项现已生效)