每当通过go-mode加载.go文件时,我都会尝试启用自动完成模式。如果我为Go源文件手动调用自动完成模式,它会起作用,但当我尝试将它添加到.emacs时,如下所示,它不起作用:
(add-hook 'go-mode-hook auto-complete-mode)
我尝试了一些变体,但似乎都没有效果。以下是我的.emacs中的Go-Mode代码段:
;; Load Go Mode
(require 'go-mode-load)
(add-hook 'go-mode-hook 'auto-complete-mode)
我尝试创建我自己的钩子函数:
;; Load Go Mode
(require 'go-mode-load)
(defun auto-complete-for-go ()
(auto-complete-mode 1))
(add-hook 'go-mode-hook 'auto-complete-for-go)
我也尝试在go-mode-load.el
和go-mode.el
中添加钩子,并像这样调用auto-complete-mode
:
(auto-complete-mode t)
(provide 'go-mode)
两种方式都不起作用。我还将go-mode-hook
添加到auto-complete-default
函数,如下所示:
(defun ac-config-default ()
(setq-default ac-sources '(ac-source-abbrev ac-source-dictionary ac-source-words-in-same-mode-buffers))
(add-hook 'go-mode-hook 'ac-common-setup)
;; Other hooks
(global-auto-complete-mode t))
这也不起作用。在为缓冲区启用主模式后触发命令的最佳方法是什么?
答案 0 :(得分:5)
现在是解决方法:
(add-to-list 'ac-modes 'go-mode)
我使用以下提交修复了v1.4分支中的问题。
答案 1 :(得分:3)