2010-11-04 110 views
12

因为我不能让CEDET工作自动代码完成(也就是MS世界中的智能感),尝试多次后(不,它不工作!),我已经决定使用auto-complete,这对我来说工作“相当好”。Emacs自动完成

不幸的是,auto-complete在退出imenu时出现了一个恼人的行为。

  1. auto-complete开始imenu,不管它有多少建议。所以,如果只有一个建议,菜单就会出现。 1.
  2. 要退出imenu,我必须使用LEFTRIGHT键才能使菜单消失。 ESC-ESC-ESC没有任何影响。

有什么办法可以修改这两种行为吗?

这是我的.emacs文件显示auto-complete相关的东西的摘录:可以通过添加以下到您的.emacs设定

 
(require 'auto-complete-config) 
(add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict") 
(ac-config-default) 
(setq ac-delay 0.5) ;; eclipse uses 500ms 

亲切的问候, mefiX

回答

5

“停止自动填充”:

可以使用Cg作为默认的Emacs StopSomething命令:)

至于只显示一个候选人在菜单中的完成情况,我不确定你想要其他的行为吗?

+0

我认为当只有一个候选人时,理想的行为就是插入候选人。有些自动完成引擎即使在选择候选人时也会这样做;他们将通过连续的热键激活循环所有可用的候选人。 – Cheeso 2010-11-07 14:55:29

+0

谢谢大卫米勒。不幸的是,关键任务不适用于我的情况,我不知道为什么。例如,我正在编辑我的.emacs文件,其中ac工作得很好。所以我输入“(def”和imenu弹出(1+)建议(包括“(defun”)。当我点击“ESC”时,没有任何反应。当然,我已经评估过“define-key”。我做错了什么? – mefiX 2010-11-08 09:55:20

+3

好的,经过一番尝试之后,我发现按下并按住escape就是“\ ESC /”所代表的,这不是我想要的。经过一番调查,我发现'(define-关键交流完成地图“\ e”'ac-stop)'诀窍! – mefiX 2010-11-08 10:27:34