やっとこさはじめました。

まずはインストール

brew install
%which go
/usr/local/bin/go
%go version
go version go1.2.1 darwin/amd64

こんな感じ。 さて vim 環境整えて何か書いてみよう

以下、はじめての Go

%cat first.go
package main
import "fmt"

func main() {
  fmt.Print("Hello go world !!\n")
}
%go run first.go
Hello go world !!
%

とりあえず、こんな設定をした。

.zshrc

# for go lang
if [ -x "`which go`" ]; then
  export GOROOT=`go env GOROOT`
  export GOPATH=$HOME/go
  export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
fi
# Go completion
# if [ -f $GOROOT/misc/zsh/go ]; then
#     source $GOROOT/misc/zsh/go
# fi

.vimrc

" golang
if $GOROOT != ''
  set rtp+=$GOROOT/misc/vim
  "gocode
  exe "set rtp+=".globpath($GOPATH, "src/github.com/nsf/gocode/vim")
  "golint
  exe "set rtp+=".globpath($GOPATH, "src/github.com/golang/lint/misc/vim")
endif

install gocode

mkdir -p $GOPATH/bin
go get github.com/nsf/gocode
$GOPATH/src/github.com/nsf/gocode/vim/update.sh
go get github.com/golang/lint

lint はなんだか動いていない。また今度見てみる。

:Import fmt とかすると、勝手にファイル上の方に

import (
  "fmt"
)

とか追加される。便利そう。C-x C-o の omni 補完も上手く活用していきたい。

:Godoc net/http とかするとドキュメントが見られるそうだが動いていないのでこれもまた今度。

:Fmt で、コードが整形される。これはいい。.vimrc に以下でファイル保存時に勝手にフォーマットしてくれるようにもなる。

auto BufWritePre *.go Fmt