仕事中に 2000 行オーバーのメソッドなどというものを目にして大変驚いているのだが、上司曰く「やっぱりコピペが問題」なのだと。やはりそうなのね。
そこで俺は提案したい。初学者には vi を使わせるべきだ。何故なら、 vi はあの冗談のようなインターフェースのせいで絶対にプログラミング初学者ならコピペの方法がわからない。そして慣れるまではコードを書くこともままらならないので、とりあえず考えずに書いて動いたらラッキーというのも減るのでは無いか? いや、減るに違いない。
などと言ったら、「絶対にそいつらは必死こいてコピペのキーバインドだけ覚えるよ」と切り返された。確かにそうかも。
他にもコピペ禁止プラグインだとか、コピペできないエディタを作れば良いだとか、あと少し話が違うけどインデントが狂っている限りはビルドできないプラグインだとかアホなアイディアがいくつか出たが、どれもこれも作っているうちに虚しくなりそうなので俺は作らない。
ところで俺の出身大学では最初のうちは emacs でコードを書かせてターミナルからコンパイルさせているが、エディタとターミナルという環境に関してはそれで良いと今でも思ってる (いきなり IDE 何かを使いこなせるはず無いだろ。あといきなり Java から入るのも禁止。あれは二番め以降の言語だ)。でもなあ。 emacs はなあ。プログラミング演習の手伝いやってて、何回 emacs の問題 (日本語入力とか) にぶち当たったことやら。あとメールも最初は emacs 上で動く mew を使わされるのだけど、あれも良くないよな。
QWERTY 配列に依存しないキーボードショートカットを考えると、絶対に Ctrl + Z でアンドゥってのはまずいよな。やっぱ Ctrl + U が意味的には一番しっくり来る (vi はコマンドモードで u がアンドゥなのだが、リドゥがコマンドモードで Ctrl + r というのはどういうことなんだ)。というかだな、ZXCSAV に普段よく使うキーボードショートカットをかためたのは歴史的な大失敗だと俺は思うね。
実はそういう意味論的な所では、俺は vi は結構気に入っている部分がある。検索に使う / は正規表現のあれだし、行頭行末はやはり正規表現の物と同じ。 d はデリートで p はペースト、 > でインデントなどなど。確かに vi は全体的にはとんでもない代物だけどさ、こういうところは見習っても良かったんじゃないか?
あとあれだ、キー配列の物理的な位置に依存したアプリケーションていうのは、そのキー配列にユーザをロックインしてしまうからキー配列の進化を確実に阻害していると思う。 Opera とかね。 Opera は戻る/進むに z と x がデフォルトで割り当てられているのだが、 < と > じゃダメだったのか? この二つは隣同士にくることが明らかに自然な形なのだから、それで良かったような。
まあ、 Opera はそれ以外のキーボードショートカットは割りと錯乱しているのだけど (何回かデフォルトの設定が変わってるし) 、ブラウザのキーボードショートカットで一番重要なところを QWERTY に売り渡しているのってどうよ。
ちなみに現在 Dvorak 配列にしようか迷っている。会社のマシンと家のマシンでキー配列が違うと混乱しそうなので踏ん切りが付かないが、むしろここまで違っていれば頭の切替えが楽かもしれない。とりあえず今週末にでも試してみよう。
追記: というかだな、日本語配列と US 配列の違いでも割りと混乱してるんだから、 Dvorak にしない理由が無いな。あとどうでもいいけど MS IME は明らかに終わってる思うよ。普段 SCIM + Anthy を使ってると本当にそう思う。