如何在Emacs中自动完成以自动开始完成并按下按钮

时间:2010-02-13 03:30:04

标签: emacs code-completion tab-completion autocomplete

我正在使用emacs的自动完成功能。 我目前正在按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时,它会在迷你缓冲区中显示“无法完成”。

1 个答案:

答案 0 :(得分:1)

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

另外,我认为你需要将它绑定到“ac-start”,而不是“自动完成”。

总之,请尝试以下方法:

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