Emacs中的上下文不敏感完成弹出窗口?

时间:2013-07-29 14:56:16

标签: emacs autocomplete

我正在尝试从Vim到Emacs的过渡,而我真正想念的Vim功能之一是上下文不敏感完成弹出窗口(CTRL-nCTRL-p)。例如,在下面的缓冲区中,如果我输入he然后CTRL-n,我会弹出一个:

vim context insensitive completion menu

如何在Emacs中获得类似的上下文不敏感的完成菜单?

注意:我特别希望上下文不敏感,因为在不同的上下文中进行引用通常很有帮助(例如,从重构文本文档中引用Python类) - 某些上下文相关的“omnicomplete”不能这样做。

此外,我知道M-/将触发自动完成,但它只会循环匹配;我想要一个显示匹配的弹出列表。

2 个答案:

答案 0 :(得分:5)

Auto Complete Mode应该做你想要的。

它通常不是由热键触发的,而是类似于:

(setq ac-auto-start nil)
(global-set-key "\M-/" 'auto-complete)

应该做你想做的事。

答案 1 :(得分:1)

自动完成模式会显示一个包含匹配项的下拉菜单:http://cx4a.org/software/auto-complete/manual.html#Basic_Usage

您可以通过Marmalade存储库安装它:http://marmalade-repo.org/,按照说明设置Marmalade,然后安装M-x package-install auto-complete。您必须激活自动完成模式,然后在输入任何内容时它会显示匹配项(默认情况下,您也可以通过按TAB强制它)。