自分の開発環境


というかWindowsで開発していてeclipseとか使わない人はバージョン管理とかそういったのどうしてるんだろう?

という発言がTwitterで流れていたので、Windowsで開発していてEclipseとか使わない自分の開発環境を書いてみるてすつ。


ちなみに自分はWebシステムの受託開発が主な仕事で、使用言語はほぼPHP、希にJavaという感じ。
昔はほぼJava、希にPerlという時期もあって、その頃はEclipseばっかり使っていた時期もあった。

エディタ

エディタはKaoriYa版のvimを使用。使用っていうか愛用。
各種vimスクリプトによってIDEにも劣らぬ環境を築き上げている……というと言い過ぎかもしれないけど、だいぶカスタマイズしている。


3年ほど前までは秀丸を使い続けていたけど、Linux系の会社に転職するときに「会社で使うPCはLinuxだぞ」と言われて、退職日までの比較的暇な期間に、Windowsで愛用していたソフト群に近い環境をVMwareで構築して勉強した。
仕事柄vim自体はサーバで作業するときに使ってはいたので基本的な操作はできた。
好みに合わせてカスタマイズしたりvimスクリプトの存在を知ったのは勉強を始めてから。


たぶんこの「PCはLinuxだぞ」事件(違)がなかったら今でも秀丸だったと思う。


しかし、それよりもだいぶ昔にxyzzyを使っていた時期があったのに、なぜemacsではなくvimを選んだんだろう。
IDEを目指すならvimよりもemacsのほうが向いている気がする。

コンパイル

PHPなのでコンパイルはないw
が、vimからシンタックスチェックや実行が出来るようにしてある。
なんでもデバッガを使えるようにするvimスクリプトもあるらしいので暇が出来たら試してみるかも。


まだこの環境になってからJava開発はやってないけど、もしかしたらJavaだけEclipse使うかも。
なんだかんだ言ってもJDTは便利すぎる。
あるいはNetBeansか(実は使ったことがない)。


仮に使わなかったとしてもJava用のサポートvimスクリプトを探してきたり、キー一発でAnt実行ぐらいはやる。

デバッグ

PHPなので標準出力やログに出して調べるという安直なデバッグ方式\(^o^)/
仕組みがそんなに複雑じゃないので大変というほどでもない。これで十分いける。
まぁ、たまにブレークポイント仕掛けてトレースしたいときもある*1けど、頑張ればなんとかなる。
その「たまに」のためにデバッガの設定してEclipse立ち上げるよりは標準出力で頑張った方が自分の場合は早い。

バージョン管理

基本的にコマンドラインコマンドプロンプト)でWindows版のSubversionを使う。
差分のエクスポートとか、ツリーを見たいとか、コマンドだと難しいことだけTortoiseSVNを使う。TortoiseSVN使いやすいよね。


そしてここでもvimが連携している。
コミットコメントのエディタにvimが指定してあって、svn-diff.vimというスクリプトによって、自動的にコミット対象のdiffが表示されるようになっている。超便利。
あと、VCSCommand.vimというスクリプトも入れてあって、vim上でもCVSSubversionの操作ができるようになっている。

その他

GnuWin32というGNUコマンド群をWindowsに移植したものを入れてある。
さすがに素でパスを通すとfindとかsortがかち合って何かのバッチファイルが動かなくなるかもしれないので、gnuと打つとパスが通るようにしてある。
GnuWin32はなんか知名度低いようだけどかなり便利なのでおすすめ。いつかエントリ書こうと思いつつなかなか書けないでいる。


あとCで遊ぶとき用にMinGWも入れてある。
Cygwinは昔は愛用していたけど今はなんかロケール設定とかマルチバイトとかで悩むので使ってない*2
本格的にやるなら仮想マシン動かすし、日常的なコマンドならGnuWin32で十分という感じで、自分にとっては中途半端な環境。


というわけで、Windowsで出来ないことやLinuxのほうが便利なことはVMwareUbuntuCentOSを動かして使っている。


ブラウザとかそういうことまで書き出すとキリがないので、とりあえずこんなもんかな?
Eclipseでやることをvim(やその他のツール)でどうやってやってるのか、という視点で書いた方がよかったのかな。

*1:フレームワークの奥底で、何がどうなってんだこれ、とか。

*2:UTF-8版とかもあるけど本家に拒否され続けてるし。残念なことだ。