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