Life goes on

何かJavaScriptとかVimとかMacとかに関係してそうな深淵から覗かれる者

60km以下に速度が落ちると爆発するとかすると必死になるはず

今よりコーディングのスピードを上げるには|CSS HappyLife
今現在家でも職場でもWindowsとMacの両頭政治のLayzieです。しかも仮想マシンではなく2台あるという。(家はEeePCですけども)

家ではMacがメインですが、仕事場ではウィンドウズがメインになっています。色々と理由があるのですが、職場のマックのOSが古いというのが最大の理由ですね。10.3は厳しいですわ。

で、こっからが本題ですが。主にソフトとハードでコーディングスピードを速める俺なりの工夫を。Windowsと言う事で話を進めます。

  • 何はともあれキーボードとマウス

これは一番大事になるんじゃないかと思ってます。何せ自分とPCをつなぐデバイスですしね。ということで、俺が使っているのはHHKB Lite2(英語版)とケンジントントラックボールOrbit Elite使ってます。

キーボードの方はご存じの方が多いと思いますが、上位のHHKB Proは買えませんのでLiteで妥協。いきなり妥協で泣けます。でも、慣れるとなかなか使いやすいと思いますよ。

キーボードに関してはCtrlが左小指で押せる位置にあることとASCII配列であることが一番重要です。Ctrlに関しては後述しますが、この位置にあるとJIS配列より格段にショートカットが押しやすいと思います。

ASCII配列は、昔から使っていて慣れているというのもありますけども一番のメリットはやっぱり記号が押しやすい位置にあるという点です。<>辺りは同じですが、「」とか”’とか;:とか-_とか。横並びに配列してるか、シフトを押して同じキーになっているのでHTMLとか書いてるときにストレスが格段に少ないです。

プログラマーの人に英語配列愛好者の人が多いというのもこの理由が大きいかと思います。(ソース:俺)また、HHKBはテンキーレスにしても格段にコンパクトなんで万一マウスを使う事になっても移動距離が少なくてすみます。

で、トラックボールです。前まではMSのIE3を使ってましたが、肩凝りがひどくなったのでトラックボールに換えました。これはスピードアップと言うよりもストレスを減らすみたいな感じですね。大きい動きなどもマウスを置きなおしたりしないで、人さし指一本ですっとカーソル動くので非常に気持ちいいです。あんまりスピードアップには関係ないかも知れませんけども。

こっちは慣れるまでが大変ですが。俺は一回コーディングに入ると上で紹介した割には、殆どトラックボールを使わないでキーボードでほぼ全ての作業をやってしまいます。これができるのは使ってるエディタがEmacsと言うのが非常にでかいです。vimでも良いんですが、最初に慣れたのがEmacsなのでそのままと言うだけでどっちもイイエディタだと思ってます。使えないけど。

Emacsプログラマーさんが良く使っててあんまりコーダーの人が使ってるのを聞かないのですが、(使ってる人すいません)かなりキーバインドが良いのです。行頭行末、上下左右の移動や、ディレクトリの移動やらFTPのアップまで殆どマウスを使わなくてすみます。このお陰でスピードはかなり上がってると思います。また、コピーした履歴なども選べるのでポイント高いです。

主に使うモードはSGMLモードとCSSモードとかdiredとかですか。あとこないだから使わせてもらってるauto-complete-modeで、DWのタグの自動補完のような事も出来ます。日本語の文章を書く時のIMEにはskkを使ってます。これはMeadowだけじゃなくて全体のIMEもそうです。skkの何が良いって文節を自分で決めて単語変換するので、日本語変換のスピードが格段に速い事です。普通のIMEだと文節が違って全然文章の意味が通らなかったりしてイライラしますけども、それが無いですね。

ちなみにMacだとほとんどのCocoa用のエディタならEmacsバインドが使えるので、家ではEmacs使ってなかったりします。バインドが使えれば何でもいいと言う話もあります。

  • WndowsのシステムでもEmacsバインド

このようにEmacsバインドに慣れると何の作業でも使ってみたくなるもの。てな訳でOSや他のアプリでもこのバインドが使えるようにxkeymacsと言うソフトを使ってます。あとフォルダやファイルの選択なども基本的にEmacs使ってるのですが、たまにexplorを使わなくてはいけないのでMigemo Explorと言うソフトで日本語も英語もファイル名を数文字入れるだけで選択ができるようにしてます。これもかなり時間短縮になってます。

まあ、こんな工夫をしてます。特にコーディングが速いかと言うとあんまり速くない気がするけど、僕は元気です。