goimports从emacs调用时表现不同

时间:2014-10-15 10:02:10

标签: emacs go

我正在观察从emacs调用的goimports命令的令人费解的行为。我使用的是svgo go软件包,以及doc导入中的最小程序示例"github.com/ajstarks/svgo"

代码工作正常。 goimports命令是一个"工具,用于自动修复(添加,删除)Go导入"。由于需要"github.com/ajstarks/svgo",因此我不希望goimports将其删除。当我从终端呼叫它时它是真的:

$ head gg.go 

package main

import (
    "os"
    "github.com/ajstarks/svgo"
)


func main() {

然后:

$ goimports gg.go | head

package main

import (
    "os"

    "github.com/ajstarks/svgo"
)

func main() {

正如预期的那样,它只是在"首先是标准库,然后是外部包"之后重新排列导入。现在有趣的是:当我从emacs调用goimports时,它会删除"github.com/ajstarks/svgo"行!(并且程序不再编译)。

这是我的.init文件中的相关部分:

(setq exec-path (cons "/usr/local/go/bin" exec-path))
(add-to-list 'exec-path "~/go/bin")

(defun my-go-mode-hook ()
  (setq gofmt-command "goimports")  ; Use goimports instead of go-fmt
  (add-hook 'before-save-hook 'gofmt-before-save))

(add-hook 'go-mode-hook 'my-go-mode-hook)

如果我对(setq gofmt-command "goimports")行发表评论,则svgo导入不会被删除。

这怎么可能?

0 个答案:

没有答案