Emacs 自动完成 : don't trigger on RET in inline suggestion

标签 emacs autocomplete

我对自动完成功能非常满意,但有一件事让我烦恼:

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

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

谢谢!

最佳答案

通过在自动完成模式的其他设置后添加以下行,您可以仅在显示完成菜单时启用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 默认绑定(bind)到 ac-completeac-menu -map 是完成菜单上完成的键盘映射。当 ac-use-menu-map 变量为 t 时,将启用 ac-menu-map 键映射。

仅供引用,可以随时按 C-g 停止完成。因此,您还可以按 C-gRET 来输入换行符,并且 RET 的绑定(bind)完好无损。另外,当您想输入换行符时,可以使用 C-j 而不是 RETC-j 默认情况下不绑定(bind)到 ac-complete

关于Emacs 自动完成 : don't trigger on RET in inline suggestion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12660428/

相关文章:

vim - 在 Vim 插入模式下,有没有办法添加文件路径自动补全?

autocomplete - rlwrap 可以使用包装命令自己的 TAB 补全吗?

javascript - 如何在 ctrl 空格键上调用 jquery 自动完成功能?

emacs - Emacs 会让我成为更好的程序员吗?

使用 vim 自动完成 php

regex - Emacs:正则表达式替换以更改大小写(在脚本中)

emacs - symbol-plist 返回具有值的 elisp 符号的列表

python - vim中如何计算当前文件位置? (扩展值 ('%:p' ))

Emacs C 模式自动缩进在预处理器宏后失败

python - Emacs - Python LSP setup.cfg 不受支持