是否在保存为升华文本时运行goimports?

是否在保存为升华文本时运行goimports?,go,sublimetext3,gofmt,Go,Sublimetext3,Gofmt,在升华文本3中,安装了插件gopublime和GoImports 每次保存时,我都无法在文件上自动运行goimports 以下是我尝试过的: 我的GoSublime设置设置为: { "env": {"GOPATH": "/home/nicolas/.go", "PATH": "$GOPATH/bin:$PATH" }, //"fmt_cmd": ["goimports"] } 使用这些设置保存时,代码会格式化,但不会添加导入。到目前为止没有什么令人惊讶的 如果我按ctrl+sh

在升华文本3中,安装了插件
gopublime
GoImports

每次保存时,我都无法在文件上自动运行
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中)

  • 确保$GOPATH/bin在您的$PATH中(窗口:%GOPATH%\bin运行 在您的%PATH%中
  • 运行go-get-u golang.org/x/tools/cmd/goimports(您可能需要 安装mercurial)
  • 安装升华文本和GoSublime(或确保您已获得 最新更新(如果已安装)
  • 打开gosublime用户配置/首选项文件(Mac:⌘. ⌘5个窗口: Ctrl+5)。请确保您将命令按钮保持在按下状态,以便 整个捷径序列
  • 让它看起来像这样:
    {“fmt_cmd”:[“goimports”]}

  • ctrl+,ctrl+x
    打开
    margo.go
    文件。 然后取消对golang.GoFmt和golang.GoImports之一的注释。重新启动升华文本,然后重试

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

    我使用的是
    ubuntu+sublime text 3207+Go-1.10+gopublime+Goimports-release-1.10
    。在我取消注释golang.GoImports之后,它可以工作。

    GoImports
    可能不在您的
    $PATH
    上,或者不可执行。您是否可以验证是否已完成了列表中列出的所有操作。问题是,我使用
    Package control>Install plugin>GoImports
    通过sublime安装了GoImports,而不是通过
    $go get命令。当然,它确实把它放在了sublime packages文件夹中,而不是$GOPATH/bin,它在我的$PATH上。我会马上回答我的问题。