2010-11-04 105 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