acmeでGoプログラミング

@repeatedlyさんがGoってacmeで書くんじゃないかとつぶやいていたなぁ。ということで、Plan9portのacmeでGoプログラミングしてみようという話。Goのコーディング規約がどうなっているのか読んだことないけど、ハードタブっぽいし、acmeで困ることは特にないよな。

下のスクリーンショットを見ると、ウィンドウの上から三行メニュバーのようなものがあるけど、これはタグと言って上からacme全体、カラム、パネル(バッファ)に対する操作メニュになる。New、Cut、Paste、Lookなどなどは組込みコマンドになる。コマンドは中央クリックで実行できる。タグは自由に書き換え可能で、例えば、下のスクリーンショットのようにmakeとか書いておけば、クリック一発でコンパイルされるので便利。

makeじゃなくて、Plan 9 mkじゃなきゃ嫌だという人もOK。mkfileはこんな感じかな。Makefileが読めればわかるだろう。環境変数を括弧で囲む必要はない。

<$GOROOT/src/Make.$GOARCH

TARG=\
	hello

OFILES=\
	hello.$O

$TARG: $OFILES
	$LD -o $TARG $prereq

%.$O: %.go
	$GC $stem.go

clean:
	rm -f $TARG *.$O

コンパイル時にエラーがあると、右下の+Errorとか書かれたパネルに表示される。例えば、"hello.go:4: imported and not used: os"とか表示された場合に、hello.go:4を右クリックすれば、エラー行にジャンプできる。

また、ソースを選択状態にして、タグに|gofmtと書いて実行すればソースが整形される。

まぁ、Plan9portを使うのが一番よいけど、一応代替案としてWilyも紹介しておこう。でも、UTF-8はフォントの設定のせいで豆腐になっちゃうな。Wilyacmeのクローンというか、インスパイアされたエディタでUNIX/X11上で動く。Eric RaymondのTAUPでも紹介されていたっけ。もちろんMac OS Xでも動く。

$ ./configure --x-libraries=/usr/x11/lib
$ make

golang-nutsにはPlan 9への移植始めましたというメールが流れているなぁ。