You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何在Emacs的auto-complete模式下按回车不自动换行?

解决Auto-Complete中回车同时补全换行的问题

这个问题我之前也碰到过,确实有点烦——明明只想补全单词,结果直接换行了。好在auto-complete的灵活性很强,通过简单的按键绑定配置就能解决:

;; 重新绑定回车键,在auto-complete菜单激活时仅完成补全,不换行
(define-key ac-completing-map (kbd "RET") 'ac-complete)

;; 确保未激活补全菜单时,回车键正常换行
(define-key ac-mode-map (kbd "RET")
  (lambda ()
    (interactive)
    (if (null ac-completing)
        (newline)
      (ac-complete))))

配置解释:

  • 第一行代码针对补全菜单激活时的按键映射,将回车键绑定到ac-complete函数——这个函数只会完成当前选中的补全项,不会触发换行操作。
  • 第二部分是全局的ac-mode按键映射,定义了一个条件判断:如果当前没有激活补全菜单(ac-completing变量为空),就执行正常的换行命令;如果菜单处于激活状态,则执行补全操作。

这样配置后,当你输入"abc"看到补全菜单时,按回车只会选中"abc"完成补全,再次按回车才会正常换行,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Dennis

火山引擎 最新活动