我正在尝试从Vim到Emacs的过渡,而我真正想念的Vim功能之一是上下文不敏感完成弹出窗口(CTRL-n
和CTRL-p
)。例如,在下面的缓冲区中,如果我输入he
然后CTRL-n
,我会弹出一个:
如何在Emacs中获得类似的上下文不敏感的完成菜单?
注意:我特别希望上下文不敏感,因为在不同的上下文中进行引用通常很有帮助(例如,从重构文本文档中引用Python类) - 某些上下文相关的“omnicomplete”不能这样做。
此外,我知道M-/
将触发自动完成,但它只会循环匹配;我想要一个显示匹配的弹出列表。
答案 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强制它)。