Golangの環境をつくった(goenv+ghq+peco)
goの開発環境を整えた際のメモです。
goenvでgoをインストール
golangのバージョンを管理するためにgoenvを導入しました。direnvと併用してプロジェクトごとに環境を分けることも可能ですが今回はgoenvのみをセットアップします。
GOPATHを設定する
goのワークスペースとなるGOPATHを設定します。デフォルトでは$HOME/goが設定されているようですが、go以外の作業もこちらで行う場合は他の名前にしておいた方が良さそうです。なぜgo以外の作業を考慮するかですが、後述するリポジトリ管理方法はgo開発に限らず有用であるためです。
ghq
goではgo get
で依存ライブラリなどを取得するのが主流となっていますが、その場合GOPATH以下にgitのリポジトリがどんどん増えていくことになります。そこでリポジトリの管理を簡単にするためにghqを導入します。ghqはgo製のツールでgo get
した時と同じ形でリポジトリを管理できます。デフォルトでは.ghq/
以下で管理されているため管理するパスをGOPATHに合わせましょう。ghqの管理するパスを変更するには.gitconfig
に以下のように設定を追加します。
[ghq] root = /Users/username/go/src
peco
ci上でテキストをインタラクティブにフィルタリングすることができます。前述のghqと連携させることで快適にリポジトリ間を行き来することができます。ghq list
の結果をpecoに渡し、pecoで選択したリポジトリにcdするようにaliasを設定します。
alias g='cd $(ghq root)/$(ghq list | peco)'
エディタ
JetBrain製のGoLandを使用しています。IDE自体は割りと新しいのですがIntelliJプラットフォーム向けのPluginが使用できるため使用できるPluginの品質が高いのが魅力です。
余談ですが元々の名前はGogLandなので情報を検索する場合はGogLandで検索すると多少マシになるかもしれません。
GoLand: Capable and Ergonomic Go IDE by JetBrains