我正在使用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时,它会在迷你缓冲区中显示“无法完成”。
答案 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)