使用vim,我可以通过在插入模式下点击C-p来自动完成并获取缓冲区中任何单词的列表。
emacs中是否有类似的命令?
答案 0 :(得分:7)
您可以使用hippie-expand
命令完成。要将其绑定到 Alt + / ,请使用
(global-set-key "\M-/" 'hippie-expand)
答案 1 :(得分:7)
除了@choroba提到的hippie-expand
之外,还有另外两种标准的Emacs字完成方法:
M-/
或C-M-/
- 动态缩写扩展(又名dabbrev
)。请参阅Emacs手册,节点Dynamic Abbrev Expansion
。
M-RET
或C-RET
dynamic-completion-mode
- 标准Emacs库completion.el
。
图书馆 completion.el
很老,显然鲜为人知,但效果很好。您不仅可以完成相同缓冲区中的单词,还可以填写过去中使用的单词(程序符号等),包括过去的Emacs会话。
您最常用的完成次数优先。 dynamic-completion-mode
打开时的操作记录在"数据库"在磁盘上:您键入或遍历的单词等。要充分利用库completion.el
,请阅读文件中的Commentary
。没有其他文档,但Commentary
非常清楚(如果不是完全最新的)。
图书馆Icicles增强了上述两种词语完成方法dabbrev
和complete
的使用。当有多个可能的完成时,它允许您使用更好的匹配可能性选择一个(例如,子串,正则表达式,而不仅仅是前缀)。