LoginSignup
3
4

More than 5 years have passed since last update.

Sublime Text(Atom)で快適なgolangの開発環境

Last updated at Posted at 2016-09-26

追記

Atomに移行したら go-plusというプラグインで全て達成されました
本当にありがとうございました


静的型付け系は環境整備を丁寧にやるとのちのち幸せになれるそうなので備忘録として書きます。
特にデファクトスタンダードなIDEもないっぽいので自分の好きなSublime textで。

インストール

Mac

MacならHomebrewでいける
brew install golang

Linux

自分でインストールディレクトリを決めれるのとバージョンを最新に保てるので、
Ubuntuにはなんとなくバイナリを突っ込んでみた

公式からバイナリ取得したあと、
sudo tar -C /path/to -xzf go1.x.x.linux-amd64.tar.gz

Windows

適当にやる

環境変数

$GOROOT(パッケージ管理ソフトを使った人は飛ばしてください)

\$GOROOTはgolangの本体のあるディレクトリを指す
上記のUbuntuの時みたいにカスタムインストールした時はその場所を指定しなきゃいけない
~/.profile とか ~/.bash_profileに追記

~/.bash_profile
...
export GOROOT=/path/to

$GOPATH

golangはすべての開発において開発用の一つのディレクトリ使用することを強く推奨している(らしい)
そのための基盤となるディレクトリを\$GOPATHに指定する
自分は~/Workってディレクトリで作業しているので、

~/.bash_profile
...
export GOPATH=$HOME/Work/go

としています

ちなみに\$GOPATH以下は、
bin (buildされた後の実行ファイルが生成される)
pkg (パッケージが生成される)
src (全てのソースコードが管理される)
の3つのディレクトリに分かれる(go getとかしてると勝手に作られてる)

$PATH

~/.profile とか ~/.bash_profileに追記
\$GOROOTを設定したときは、\$GOROOT/binも追加しとく

~/.bash_profile
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

Packages

事前に依存パッケージたちを入れる

  • golang.org/x/tools/cmd/goimports (import周りを整理してくれる)
  • github.com/golang/lint/golint (goのlinter)
go get golang.org/x/tools/cmd/goimports
go get github.com/golang/lint/golint

Sublime Text

やりたいこと

  • シンタックスチェック
  • オートコンプリート
  • 保存時に
    1. フォーマットの訂正
    2. ビルド
    3. テスト
    4. 静的解析

GoSublime

基本的にこいつ頼み
Package Installからいれる

Package Settings -> GoSublime -> Segttings-Userを開き設定

GoSublime.sublime-settings
{
  "fmt_cmd": ["goimports"],
  "comp_lint_enabled": false,
  "on_save": [
    {
      "cmd": "gs9o_open",
      "args": {
        "run": ["sh", "go build . errors && go test -i & go test && go vet && golint"],
        "focus_view": false
      }
    }]
}

これで、保存する(Command+s, Ctrl+s)ごとに、フォーマットが修正されたあと、
ビルド~テスト~解析が走りウィンドウ下のプロンプトでそれぞれ文句を言われるようになる

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4