Запустить goimports при сохранении в Sublime Text?

В Sublime Text 3, с плагинами GoSublime а также 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).

2 ответа

Решение
  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 (Mac: ⌘. Windows5 Windows: Ctrl+. Ctrl+5). Убедитесь, что вы удерживаете командную кнопку нажатой для всей последовательности ярлыков.
  5. Сделайте так, чтобы это выглядело так:{"fmt_cmd": ["goimports"]}

Источник

Итак, где я ошибся:

Я установил GoImports из Sublime, используя Package control > Install package > GoImports, Это установило это в папке Sublime Packages, которая не была на моем $PATH

Что я должен был сделать вместо этого:

Установите его с помощью команды go get -u golang.org/x/tools/cmd/goimports, Это установит его в ваш $GOPATH (а $GOPATH/bin должен быть в вашем $PATH).

ctrl+. , ctrl+x открыть margo.go файл. Затем раскомментируйте один из golang.GoFmt & golang.GoImports. перезапустите возвышенный текст и попробуйте снова.

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

Я использую ubuntu + sublime text 3207 + Go-1.10 + Gosublime + Goimports-release-1.10, И это работает после того, как я раскомментирую golang.GoImports.

Другие вопросы по тегам