LoginSignup
18

More than 5 years have passed since last update.

go getできるGoのemacs環境作った #emacs #golang

Posted at

Go Advent Calendar 2014 8日目の投稿です。

go getでセットアップできるemacs上のGoの開発環境を作ってみました。

github.com/go-emacs/gomacs

これがあればちょっとGoを書きたいんだけどemacsの環境セットアップ面倒だし。。というのを解決できます。
もともとは、ペアプロや開発環境としての仮想マシン内でちょっとemacs使いたいんだけどセットアップ面倒だしvimでいいやなんてことが多々あって簡単にセットアップできたらいいなと思って作ってみました。

インストール

$ go get github.com/go-emacs/gomacs
$ gomacs main.go

これだけです。gomacsの初回起動時に関連パッケージをダウンロードします。

できること

  • 補完機能 (auto-complete, gocode)
  • 定義へジャンプ: C-c C-j (godef) 戻るときは M-*
  • テスト実行: C-c c でテスト実行 (Compilation)
  • エラー箇所へジャンプ: 上の続き。テストエラー時はC-x `でジャンプ
  • スニペット入力 (yasnippet-golang)
  • 保存時に自動で整形 (goimports)
  • リネーム: M-x go-rename (gorename)
  • 解析: C-c hでヘルプ見てね。 (oracle)
  • lint: M-x golint (golint)

動いてる様子: https://asciinema.org/a/14494 ← 色が見にくいのはasciinemaの色設定のせいです

gomacs-ss.png

flymakeとかその他の様々なモードは少しずつ入れていこうと思います。

設定

emacsへPATHが通っていれば特に必要ないと思います。

emacsを指定して起動したい場合は ~/.config/gomacs/setting.jsonに:

{
    "emacs" : "/usr/local/Cellar/emacs/24.3/Emacs.app/Contents/MacOS/Emacs",
    "args" : ["-q"]
}

とか書いておくといいと思います。
argsはemacsに対する引数です。-qを指定しているのは、既存の~/.emacsなどの設定を読み込まないようにして、gomacsの設定のみで起動するようにしています。自分の設定も使えるようにする場合は外してしまっても構いません。

vagrant

ついでにvagrant上で試せるようにしておきました:

$ go get github.com/go-emacs/gomacs
$ cd $GOPATH/src/github.com/go-emacs/gomacs
$ vagrant up
$ vagrant ssh
$ gomacs main.go

仮想環境を開発環境として使う例として見ていただければと思います。

まとめ

go get一発でemacsでgolangを書ける環境をセットアップできるようになりました。

まだ荒削りなので自分でも使いながら今後整理していこうと思います。

ちら裏

emacsの関連パッケージをgo getしています。つまり$GOPATH上にemacsの関連パッケージをダウンロードしています。GOPATH=$HOMEとすると便利なので、Go以外のパッケージも全部そこに入れる思想にしてしまっています。
あとGoに任せることで簡単にプロキシを突破できるメリットがあります。

emacsのバージョンは24以降が推奨ですが、23系でも動いてるみたいです。
goのバージョン指定はありません。1.4rc2でテスト済みです。

参考資料

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
18