記事は非常にわかりやすく、A Tour of Go の途中で挫折した私でも大丈夫でした。GOとCは結構似ているので、C経験者にもオススメです。
GOは必要最小限の機能しか用意されていない点が好きです。最近Rubyの高機能さにゲップが出るので。 ちょっとGOで何か作ってみようかな。
そういえば一度この記事のコードも試したのですよね。良い復習になりました。
「今日から始める Go言語 と appengine」というテーマで社内勉強会をしました|feedforce Engineers’ blog
Emacsの開発環境は「Goプログラミングの環境構築 - Emacs JP 」を参考にgo-mode, go-autocomplete, go-eldocを入れたところ、非常に快適になりました。機能としてはIDEと遜色ないんじゃないかな?
- C-c C-aでパッケージのimport文を簡単に追加できる。補完も効く
- importしたパッケージに含まれる関数名の動的補完
- 補完した関数の型情報をミニバッファに表示
- M-.でfmt.Println等の組み込み関数の定義元にジャンプ
- ファイルの保存時に、自動的にgofmtコマンドで整形
加えて、open-junk-fileで書き捨てのファイルを作ってコードを書き、quickrunで即時実行する感じで進めていきました(意外にボリュームがあり、時間はかかりましたが..)。
init.elはこんな設定にしました。タブ幅はEmacsデフォルトの8だと見づらいので4に変更。
(with-eval-after-load "go-mode"
(require 'go-autocomplete)
(defun go-mode-hook-func ()
(setq tab-width 4)
(go-eldoc-setup))
(add-hook 'go-mode-hook 'go-mode-hook-func)
(define-key go-mode-map (kbd "M-.") 'godef-jump)
(define-key go-mode-map (kbd "M-,") 'pop-tag-mark))
(add-hook 'before-save-hook 'gofmt-before-save)
GO++