LoginSignup
3
5

More than 5 years have passed since last update.

Emacs でGo lang を利用する方法

Last updated at Posted at 2018-08-19

Emacs にGo lang 環境を設定する方法はいくつかあるのですが、Goの環境変数やその他設定の漏れがあったりと、まともな記事がなかったので完全保存版を作ってみました。

前提

  • ubuntu (Linux Mint)
  • zshを利用していること
  • emacsがインストール済みであること

Go langのインストール

Go langをインストールします。

sudo apt install golang
rehash

または最新版や特定のバージョンをインストールしたい場合は下記を実行します。

# 1.15.5をインストールする場合
# インストールページ: https://golang.org/dl/
wget https://dl.google.com/go/go1.15.5.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.11.5.linux-amd64.tar.gz
ls /usr/local/go/bin/go

Go langの環境変数を確認

ここでGo langの go env で表示されるパラメータと環境変数は異なることため、注意が必要です。

/usr/bin/go env

最新版や特定のバージョンをインストールした場合は下記を実行します。

/usr/local/bin/go env

Go langのパス設定

Go langを扱うために必要なパスを設定します。

mkdir ~/go
vi .zshrc
# 以下の内容を書き込み
# Go lang
# 最新版や特定のバージョンをインストールした場合のみ
export PATH=/usr/local/go/bin:$PATH
# 以下は共通の設定
[ -d "$HOME/go" ] && export GOPATH=$HOME/go && export PATH=$GOPATH/bin:$PATH
# ここまで

zshrcを読み込みます。

source ~/.zshrc

パッケージのインストール

ここでは私的にインストールしておくべきパッケージをインストールします。

go get github.com/rogpeppe/godef
go get github.com/mdempsky/gocode
# Go lang 1.11 で登場したmodulesを利用したい場合はこちら
# go get github.com/mdempsky/gocode
go get github.com/golang/lint/golint
go get github.com/kisielk/errcheck

Emacs へのパッケージインストール

Emacsに Go lang関連パッケージをインストールします。
Emacsを起動して以下のコマンドを入力します。

M-x package-install go-mode
M-x package-install flycheck
M-x package-install exec-path-from-shell
M-x package-install auto-complete
M-x package-install go-autocomplete

Emacs の設定

以下の設定 ~/.emacs.el または ~/.emas.d/init.el に記載します。

;; --- exec path from shell ---
(exec-path-from-shell-initialize)

;; --- go mode
(require 'auto-complete)
(require 'go-autocomplete)
(require 'auto-complete-config)
(ac-config-default)
(add-hook 'go-mode-hook 'flycheck-mode)

Emacsを再起動して確認してみて下さい。

最後に

ランチャ等からEmacsを起動させる場合は、Go langを利用するためには、Go langが使用する環境変数をEmacsにきちんと認識させる必要があります。
そこで、今回はexec-path-from-shellを利用しましたが、個別に add-to-list にてGo lang周りのパスを設定してもOKかと思います。

参考

https://tecadmin.net/install-go-on-ubuntu/
https://golang.org/doc/install?download=go1.11.5.linux-amd64.tar.gz

3
5
2

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
5