【问题标题】:How to get auto-completion in Emacs to start completion automatically and on press of button如何在 Emacs 中自动完成以自动开始完成并按下按钮
【发布时间】:2010-07-03 18:00:11
【问题描述】:

我正在使用 emacs 的自动完成 elisp。 我目前通过按 M-TAB 来使用它,但我希望它也能在 4 个字符后自动完成。

我使用 yasn-p 作为自动完成的来源,所以如果我将其设置为在 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 时,它会在 minibuffer 中显示“Nothing to complete”。

【问题讨论】:

    标签: emacs code-completion tab-completion autocomplete


    【解决方案1】:

    “ac-mode-map”仅在自动完成弹出窗口可见时定义,因此您上面的“define-key”将不起作用。也许改用“global-set-key”。

    另外,我相信您需要将其绑定到“ac-start”,而不是“auto-complete”。

    总之,尝试以下方法:

    (setq ac-auto-start 4)
    (global-set-key (kbd "M-TAB") 'ac-start)
    

    【讨论】:

    • 我认为这不是真的。 ac-complete-mode-map 是仅在弹出窗口可见时可用的地图。 ac-mode-map 是启用自动完成模式后可用的地图。如果您像这样启用它,那么您在问题中编写的代码将可以正常工作:(global-auto-complete-mode t)
    • 我已更正。模式映射。不知道为什么我们的建议都不适用于 hazyarc。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 2011-05-04
    • 1970-01-01
    • 2012-05-17
    • 2017-09-29
    • 2013-11-01
    相关资源
    最近更新 更多