Goはじめました
以前から興味はあったけど手を出していなかったGo言語ですが、Go 1.1のリリースで、64bit整数も使えるようになったことだし、そろそろやってみる事にします。当面の目標は今までC++で書いていたネットワークサーバ・プログラムをGoで書くことです。
環境構築
普段使っているOSXにGo言語の環境を作ります。
Go言語のインストール
Homebrewであれば以下のコマンドで一発です。
$ brew install go $ cat hello.go package main import "fmt" func main() { fmt.Printf("hello, world\n") } $ go run hello.go hello, world
環境変数
Go関連の環境変数を設定します。
brew upgrade したらGOROOTの設定も変わるようにしています。
program_exists () { type "$1" &> /dev/null ; } if program_exists go; then function setupGOROOT() { local GOPATH=`which go` local GODIR=`dirname $GOPATH` local GOPATH_BREW_RELATIVE=`readlink $GOPATH` local GOPATH_BREW=`dirname $GOPATH_BREW_RELATIVE` export GOROOT=`cd $GODIR; cd $GOPATH_BREW/..; pwd` } setupGOROOT fi export GOPATH=$HOME/.go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
Vimの設定
基本的にVim使いなのでVimにGo関連の設定を追加します。*1
まず、Goに付属のVim設定をftpluginとして追加します。
$ ln -s $GOROOT/misc/vim $HOME/.vim/ftbundle/go/vim-go
$GOROOTが変更された場合にvimのプラグインも追従するように以下をbashの設定に加えます。
function setup_go_vim() { local GO_VIM_PATH=$HOME/.vim/ftbundle/go/vim-go if [ -e $GO_VIM_PATH ]; then local CURRENT=`readlink $GO_VIM_PATH` local NEW=$GOROOT/misc/vim if [ "${CURRENT}" != "${NEW}" ]; then rm $GO_VIM_PATH ln -s $NEW $GO_VIM_PATH fi fi } setup_go_vim
さらに、補完を便利にするためにgocodeを追加します。
go get -u github.com/nsf/gocode ln -s $GOPATH/src/github.com/nsf/gocode/vim $HOME/.vim/ftbundle/go/gocode
さらに、neocomplcacheと連携して自動で補完を起動する設定を行います。
if !exists('g:neocomplcache_omni_patterns') let g:neocomplcache_omni_patterns = {} endif let g:neocomplcache_omni_patterns.go = '\h\w*\.\?'
*1:unbundleの場合の設定です