emacs相当于使用ctrl P完成vim的单词

dag*_*da1 5 emacs

使用vim,我可以通过在插入模式下按Cp来自动完成并获取缓冲区中任何单词的列表.

在emacs中有类似的命令吗?

cho*_*oba 7

您可以使用该hippie-expand命令完成.要绑定它Alt + /,请使用

(global-set-key "\M-/" 'hippie-expand)
Run Code Online (Sandbox Code Playgroud)

  • 更好的是kbd宏(函数?) - `(global-set-key(kbd"M- /")'hippie-expand)` (3认同)

Dre*_*rew 7

除了hippie-expand@choroba提到之外,还有另外两个标准的Emacs字完成方法:

  • M-/C-M-/- 动态缩写扩展(aka dabbrev).请参阅Emacs手册节点Dynamic Abbrev Expansion.

  • M-RETC-RETdynamic-completion-mode-标准的Emacs库completion.el.

图书馆completion.el很古老,显然鲜为人知,但它很有效.您不仅可以完成相同缓冲区中的单词,还可以填写过去使用过的单词(程序符号等),包括过去的Emacs会话.

您最常用的完成是优先考虑的.打开时dynamic-completion-mode所执行的操作记录在磁盘上的"数据库"中:您键入或遍历的单词等.要充分利用库completion.el,请阅读Commentary文件中的内容.没有其他的文档,但Commentary很明显(如果不是完全最新的).

Library Icicles增强了上述两种单词完成方法的使用,dabbrev以及complete.当存在多个可能的完成时,它允许您使用更好的匹配可能性来选择一个(例如,子串,正则表达式,而不仅仅是前缀).