运行 goimports 保存在 Sublime Text 中?

Run goimports on save in Sublime Text?

在 Sublime Text 3 中,安装了插件 GoSublimeGoImports

我无法在每次保存时自动在我的文件上添加 goimports 运行。

这是我的尝试:

我的 GoSublime 设置为:

{
    "env": {"GOPATH": "/home/nicolas/.go", "PATH": "$GOPATH/bin:$PATH" },
    //"fmt_cmd": ["goimports"]
}

当我使用这些设置保存时,代码被格式化但没有添加导入。到目前为止没有什么令人惊讶的。

如果我按 ctrl+shift+P 然后按 GoImports,导入会按预期添加。

现在我的问题是,当我取消注释前一行以进行这些设置时:

{
    "env": {"GOPATH": "/home/nicolas/.go", "PATH": "$GOPATH/bin:$PATH" },
    "fmt_cmd": ["goimports"]
}

它不仅不添加导入,而且也不再进行其他格式化。

知道我哪里出错了吗?

我正在使用 Linux (Ubuntu)。

那么,我错在哪里了:

我使用 Package control > Install package > GoImports 从 Sublime 内部安装了 GoImports。将它安装在 Sublime Packages 文件夹中,该文件夹不在我的 $PATH

我应该做的:

使用命令 go get -u golang.org/x/tools/cmd/goimports 安装它。这会将它安装在您的 $GOPATH 中($GOPATH/bin 应该在您的 $PATH 中)。

  1. 确保 $GOPATH/bin 在您的 $PATH 中(Windows:%GOPATH%\bin 在你的 %PATH%).
  2. 运行 go get -u golang.org/x/tools/cmd/goimports(您可能需要 安装 mercurial).
  3. 安装 Sublime Text 和 GoSublime(或者确保你有 最新更新(如果已安装)。
  4. 打开GoSublime用户config/preference文件(Mac:⌘. ⌘5Windows: Ctrl+. Ctrl+5)。确保按下命令按钮 整个快捷序列。
  5. 让它看起来像这样: {"fmt_cmd": ["goimports"]}

Source

ctrl+. , ctrl+x 打开 margo.go 文件。 然后取消注释 golang.GoFmt 和 golang.GoImports 之一。重新启动 sublime text 并重试。

// golang.GoFmt,
// or
// golang.GoImports,

我正在使用 ubuntu + sublime text 3207 + Go-1.10 + Gosublime + Goimports-release-1.10。它适用于我取消注释 golang.GoImports.