2014-07-10 137 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