使用go-mode自动完成

cod*_*ial 4 emacs go

我试图通过go-mode加载.go文件时启用自动完成模式.如果我为Go源文件手动调用自动完成模式,它会起作用,但当我尝试将它添加到.emacs时,如下所示,它不起作用:

(add-hook 'go-mode-hook auto-complete-mode)
Run Code Online (Sandbox Code Playgroud)

我尝试了一些变化,但似乎都没有.以下是我的.emacs中Go-Mode代码段的样子:

;; Load Go Mode
(require 'go-mode-load)
(add-hook 'go-mode-hook 'auto-complete-mode)
Run Code Online (Sandbox Code Playgroud)

我尝试创建自己的钩子函数,如下所示:

;; 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)
Run Code Online (Sandbox Code Playgroud)

我也试过把钩子包括在里面,go-mode-load.el并且像这样go-mode.el调用auto-complete-mode:

(auto-complete-mode t)
(provide 'go-mode)
Run Code Online (Sandbox Code Playgroud)

两种方式都不起作用.我也像这样添加了go-mode-hookto 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))
Run Code Online (Sandbox Code Playgroud)

这也行不通.在为缓冲区启用主模式后触发命令的最佳方法是什么?

m2y*_*2ym 5

现在是解决方法:

(add-to-list 'ac-modes 'go-mode)
Run Code Online (Sandbox Code Playgroud)

我使用以下提交修复了v1.4分支中的问题.