2014-07-10 194 views
0

我很沮喪autocomplete的默認行爲,覆蓋yasnippets使用的密鑰綁定。Emacs密鑰綁定優先

有沒有一種方法來設置優先級,以便選項卡會嘗試在嘗試自動完成單詞之前展開代碼段?

快速披露:我使用邪惡模式。

回答

2

如果它們都是次要模式,則優先級由minor-mode-map-alist中的元素順序決定,除非明確操作,否則這些元素僅由庫加載的順序決定。

確保autocompleteyasnippet之前加載,並且yasnippet的次要模式映射將具有優先權。

你也可以使用eval-after-load裝載autocomplete後調整minor-mode-map-alist,以檢查yasnippet項,並在必要時重新排序列表。

autocomplete可以使用其他方法,雖然。臨時壓倒一切的鍵盤映射仍然優先於未成年人模式地圖,例如。)

+0

你能提供如何重新排序列表中的一個例子嗎?我嘗試刪除yasnippet,然後追加(希望在列表的末尾)yasnippet與自動完成加載eval後,但我的刪除操作與下面的代碼:(setq minor-mode-alist(delete'(yasnippet keymap )minor-mode-alist)),但yasnippet的鍵盤映射未被刪除。 –

+1

(1)'minor-mode-map-alist',而不是'minor-mode-alist'。 (2)請參閱https://stackoverflow.com/a/5340797上的示例 – phils