Go言語のセットアップの覚書 for Windows & nyagos

今更だけど、PCがクラッシュしたら忘れるかもしれないので

アーカイブの展開

MSIインストーラーが意外と遅いので、アーカイブは *.zip ファイルを使う。

% cd /
% ren go go.bak
% unzip ~/go1.12.7.windows-amd64.zip

vim の設定

*.go を開いた時、デフォルトで UTF8、インデントはタブ1文字単位とする

au! BufRead,BufNewFile *.go set ts=4 sw=4 noet ai notextmode fenc=utf-8
if $GOROOT != ''
  set rtp+=$GOROOT/misc/vim
endif

.nyagos の設定

C:\go\bin を %PATH% に追加する

  • 既に追加済みの時は二重に追加しないようにする
  • フォルダーが存在しない場合も追加しない
  • セミコロン; が連続で2つ入ってしまったら、1つにする
  • 前は _nyagos の方に書いていたが、設定ファイルを増やした結果ユーザを混乱させただけなので、もう .nyagos 一本で行こうかなと
local function addpath(s)
    if  nyagos.stat(s) and
        not string.find(string.upper(nyagos.env.path),string.upper(s))
    then
        nyagos.env.path = string.gsub(nyagos.env.path..";"..s,";;",";")
    end
end
addpath "C:\\go\\bin"

go コマンドのサブコマンドを補完できるようにする。最近は、こんなにお手軽になりました。

nyagos.complete_for.go = function(args)
    if #args == 2 then
        return {
            "build", "clean", "doc", "env", "fix", "fmt", "generate",
            "get", "install", "list", "mod", "run", "test", "tool", "version",
            "vet"
        }
    end
    return nil
end

32bit ビルド用の go エイリアスもあった

nyagos.alias.go32=function(args)
    local save=nyagos.env.goarch
    nyagos.env.goarch = "386"
    nyagos.exec{"go",(table.unpack or unpack)(args)}
    nyagos.env.goarch = save
end

GOPATH とか GOROOT とか

両方ともデフォルト( %USERPROFILE%\go , c:\go ) をそのまま使うので、敢えて設定しない方向で

たぶん、以上