【问题标题】:Emacs auto-complete: don't trigger on RET in inline suggestionEmacs 自动完成:不要在内联建议中触发 RET
【发布时间】:2012-09-21 13:03:11
【问题描述】:

我对自动完成非常满意,但有一件事让我很头疼:

我设置为立即显示内联建议,但菜单延迟 0.9 秒。我输入前几个字母,例如"del" 会立即自动完成内联到 "delete"。如果我想输入“删除”,我点击TAB,这没关系。但是,如果我想实际输入“del”和换行符怎么办 - 这里再次点击 RET 会自动完成“删除”。

如果只显示内联建议,我如何强制 RET 换行?显示自动完成菜单后,我希望它像往常一样再次成为触发键。

谢谢!

【问题讨论】:

  • 试试del Ctrl-d。我不在可以检查的计算机旁。

标签: emacs autocomplete


【解决方案1】:

通过在auto-complete模式的其他设置之后添加以下行,您可以仅在显示完成菜单时启用RET完成:

(define-key ac-completing-map "\C-m" nil)
(setq ac-use-menu-map t)
(define-key ac-menu-map "\C-m" 'ac-complete)

ac-completing-map 是一个键盘映射,其中 RET 默认绑定到 ac-completeac-menu-map 是一个用于完成菜单的键盘映射。当ac-use-menu-map 变量为t 时,ac-menu-map 键盘映射被启用。

仅供参考,可以随时按 C-g 停止完成。因此,您还可以按 C-gRET 输入一个换行符,而 RET 的绑定不变。此外,当您想输入换行符时,可以使用 C-j 而不是 RETC-j 默认不绑定ac-complete

【讨论】:

  • 谢谢!这行得通!我知道 C-g(我也将 ESC 绑定到此功能),但这破坏了流畅的流程。
猜你喜欢
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 2012-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-22
相关资源
最近更新 更多