2

我正在为 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 时,它会在 minibuffer 中显示“Nothing to complete”。

4

1 回答 1

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)
于 2010-02-13T15:44:17.257 回答