ぷらこのきろく

メモとかテストとか備忘録とか

エディタあれこれ

プログラムを書こうとすると、何かしらエディタが必要なわけで。。メモ帳ではちょっとしんどい。

とーごーかいはつかんきょうっていうものらしい。
まず、ここからダウンロード。僕の環境はWindows 64bitなのでそれを。
で、javaをダウンロード。普通のjava(というか、ブラウザのプラグインのやつ)じゃなくて、JDKとかいうもの。ここから
eclipseを起動し、help→Install New Softwareを選択、Work withにhttp://goclipse.googlecode.com/svn/trunk/goclipse-update-site/といれてAdd。Add RepositoryにGoClipseといれてOK。
チェックボックスに印をつけ、Next→Next。使用条件のところをよく読んで(読まないけど)accept。Warningが一回でるので気にせずOK。再起動促されるのでOK。
Window→PreferenceからGoを選び、GOROOTを入力。僕の場合はC:\Users\prizeout\bin\go。GOPATHはいれなくても動いた気がするけど、あとでWalkインストールしたついでにいれた。C:\Users\prizeout\bin\go。ディレクトリ構成失敗したかも。。

オートコンプリート機能とかいうのもあるみたい。
gitをインストールして(これは前書いた。若干間インストール間違えたみたいだけど動けばもう獣)

go get -u github.com/nsf/gocode

でよかったと思う。ただこれ非常に重い。僕はいらんのでアンインストールしたいんだけど、どうするのか知らないから放置。

やっぱりemacsだよなぁと思いつつ、当時(一か月前くらい)はemacsがWindowsで動くとは知らなかったので、入れてみた。
たぶんこのへんから落としてきたと思う。解凍する。環境変数XYZZYHOMEに、インストールした(xyzzy.exeがある)ディレクトリを指定。僕の場合C:\Users\prizeout\bin\xyzzy
環境変数を有効にするためには、一度ログアウトしないといけないっぽい。いい方法ないもんか。
ここからgo-modeのファイルをとってくる。右下あたりにDownload ZIPって書いてあるのでそのへんから。解凍すると、etcとsite-lispというディレクトリがあるので、その中身をそのままxyzzyディレクトリのetcとsite-lispにコピー。
XYZZYHOMEのディレクトリに.xyzzyという名前のファイルを作成。中身に

(load-library "go-mode")
(push '("\\.go$" . go-mode) *auto-mode-alist*)

と書いておく。
xyzzyを起動し、M-X byte-compile-file →site-lisp/go-mode.lを指定。やらなくても動いたのでおまじないみたいなものか。

で、*.goというファイルを開くとgo-modeができる。ただこのgo-mode、たまにバグった感じになる。

xyzzyでだいたい不満なかったんだけど、go-modeがたまにバグるし、xmlモードを探してたら、公開をやめてしまってるっぽい。
そんなこんなでmeadowなんかなぁとか思いながら検索したら、emacsがWindowsで使えるじゃないか。
まあこっちの方が拡張機能とか充実してるだろうし、入れてみることにする。
このへんからダウンロード。zipを展開。
環境変数HOMEを設定。ここに.emacs.dというディレクトリが作成されて、設定ファイルとかが入るっぽい。僕はC:\Users\prizeout\homeにした。
ちなみに、これを設定しないと、.emacs.dはC:\Users\prizeout\AppData\Roamingにできる。別にこれでもいいんだけど。。
GOをインストールしたディレクトリのmisc/emacsのふたつのファイルを、emacsをインストールしたディレクトリのsite-lispにコピー。
.emacs.dの下にinit.elというファイルを作成。

(add-to-list 'load-path "PATH CONTAINING go-mode-load.el" t)
(require 'go-mode-load)

の二行を書く。
僕は他に

(set-language-environment "japanese")
(global-set-key "\C-h" 'backward-delete-char)
(setq inhibit-startup-message t)

とりあえずこれだけ書いてる。

まだemacsはそんなに実戦投入してるわけではない。なんだかんだでxyzzyは優秀かもしれない。

今のところこれだけ。viとかは使う予定なし。

追記

9/16 20:04ごろ追記
emacsで改行したあとTABキーを押す、というのが面倒なので、

(add-hook 'go-mode-hook 
	  '(lambda()
	     (define-key go-mode-map "\C-m" 'newline-and-indent)
))

というのを追加してみた。少し幸せになれた。