2013-03-31 33 views
2

我想在Emacs中使用預測模式在LaTeX文檔中自動完成。當按下TAB時,我希望它能夠執行以下操作:Emacs預測模式和循環TAB

  • 如果只有一種可能性,請填寫該單詞。 (這通常不會發生,其餘部分以藍色突出顯示,我必須按[Ctrl] - Enter才能完成。)

  • 如果有很多選項,則循環切換。 (我不知道如何使它做到這一點。)

回答

3

你需要檢查多少補全候選存在,並調用completion-acceptcompletion-cycle相應。抽出時間來寫這個

(define-key completion-overlay-map "\t" 'completion-accept-or-cycle) 
+1

感謝:

後續應該做的伎倆:

(defun completion-accept-or-cycle (&optional n) "Accept current completion if there's only one possible candidate. Otherwise, cycle the completion candidates. A numerical prefix argument N specifies the number of candidates to cycle forwards (or backwards if N is negative)." (interactive) (let ((overlay (completion-ui-overlay-at-point))) (when overlay (if (= (length (overlay-get overlay 'completions)) 1) (completion-accept) (completion-cycle n))))) 

現在綁定TAB這一新completion-accept-or-cycle命令在completion-overlay-map鍵盤映射在你的.emacs。 – passerby51