如何在 Emacs 中实现自动补全以在按下按钮时自动开始补全
我正在使用 emacs 的自动完成 elisp。 我目前通过按 M-TAB 使用它,但我希望它也能在 4 个字符后自动完成。
我使用 yasnippet 作为自动完成的源,因此如果我将其设置为在 4 个字符后自动完成,它将不会显示像 if、for、inc、main 这样的完成。
如果我将其设置为立即开始自动完成,那么它会妨碍我的打字。
如果我设置一个键绑定并告诉它在 4 个字符后开始自动完成,它会忽略键绑定,并且不会开始完成
(setq ac-auto-start 4)
(define-key ac-mode-map (kbd "M-TAB") 'auto-complete)
我希望它在我按 M-TAB 或在 4 个字符后完成。
编辑: 试过了
(setq ac-auto-start 4)
(global-set-key (kbd "M-TAB") 'ac-start)
我也
(global-auto-complete-mode t)
还是不行。 当我点击 M-TAB 时,它在迷你缓冲区中显示“Nothing to Complete”。
I am using the auto-completion elisp for emacs.
I am currently using it by pressing M-TAB but I would like it to also auto-complete after 4 characters.
I use yasnippet as a source for auto-complete so if I set it to auto-complete after 4 characters it won't show completions like if, for, inc, main.
If I set it to start auto-completion immediately then it gets in the way of my typing.
If I set a key binding and tell it start auto-completion after 4 characters, it ignores the key-bindings, and doesn't start completion
(setq ac-auto-start 4)
(define-key ac-mode-map (kbd "M-TAB") 'auto-complete)
I would like for it to complete when I press M-TAB or after 4 characters.
EDIT:
I tried
(setq ac-auto-start 4)
(global-set-key (kbd "M-TAB") 'ac-start)
I also have
(global-auto-complete-mode t)
It still didn't work.
when I hit M-TAB it displays "Nothing to complete" in the minibuffer.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
“ac-mode-map”仅在自动完成弹出窗口可见时才定义,因此上面的“define-key”将不起作用。也许可以使用“global-set-key”来代替。
另外,我相信您需要将其绑定到“ac-start”,而不是“auto-complete”。
总之,请尝试以下操作:
"ac-mode-map" is only defined when the auto-complete popup is visible, so your "define-key" above won't work. Maybe use "global-set-key" instead.
Also, I believe you need to bind it to "ac-start", not "auto-complete".
In summary, try the following: