簡體   English   中英

使用go-mode自動完成

[英]Auto-complete with go-mode

我試圖通過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.elgo-mode.el ,以及像這樣調用auto-complete-mode

(auto-complete-mode t)
(provide 'go-mode)

兩種方式都不起作用。 我還將go-mode-hookauto-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))

這也行不通。 在為緩沖區啟用主模式后觸發命令的最佳方法是什么?

現在是解決方法:

(add-to-list 'ac-modes 'go-mode)

我使用以下提交修復了v1.4分支中的問題。

您嘗試了哪些變體? 如果您在auto-complete-mode前添加單引號,它應該可以工作:

(add-hook 'go-mode-hook 'auto-complete-mode)

如果沒有此引號,則auto-complete-mode被解釋為變量,並且該變量的值將添加到go-mode-hook 為此,有意義的是,這樣的變量應該包含一個函數引用作為其值。 最有可能的是,沒有名為auto-complete-mode變量,Emacs會抱怨。

通過添加引號,您可以告訴Emacs這不是變量,而是您希望鈎子調用的實際函數。 另見這里這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM