vi/ vim へのあこがれ
emacs は、すばらしいソフトです。
安定性や拡張性の高さは、すばらしいですし、
文字化け率の低さや windows、MacOS といったOSによって異なる
改行コードの解釈など、文字を読んで入力するための基礎体力をみても
賞賛に値します。
Carbon Emacs について欠点をいえば、起動が遅いことと、
GUIでのカスタマイズが難しいことでしょうか?
Windowsでの xyzzy と比較すると、
印刷のサポートもGUIで欲しくなってしまいますが、
これは、エディターの本業ではないと思っています。
さて、Emacsと双璧をなすといわれる vi/ vim エディターについてです。
vi/ vim とはなにかについては、Wikipedia を
みていただく方がわかると思います。
今回は、あくまで個人的な vi/ vim へのあこがれを書きます。
MacVim というソフトが、MacOS X 10.4以降を使用している
初心者には、最も、敷居の低い vi/ vim だと思います。
あえて、インストールしなくても、
MacOS X 10.5 では、ターミナルを立ち上げて、
vi
と、入力しても vim が立ち上がります。
ターミナルを立ち上げてすぐに、
vi .emacs
と入力すれば、.emacs の編集ができるはずです。
vim のすごいところは、何も知らないと、
文字の入力すらできないことです。
emacs のつもりで、control-f などと押すと、
画面が1画面スクロールします。
カーソルの移動は、h, j, k, l 等のキーで行い、
文字を入力したり、変更するのに、
i, a, o 等の入力が必要であるという、
なんとも、windowsやMacOSの「常識」の通用しにくいエディターです。
ところが、見方を変えると、control キーを押さなくても、
カーソルの移動等の操作ができるわけです。
MacBook の日本語キーボードは、control キーは、
左シフトの上に、ひとつだけです。
これでは、あまりに Windows と異なりすぎることもあり、
私は、OSレベルで、control キーと option キーを入れ替えています。
この設定は、コントロールパネル >キーボードとマウス> キーボードの
「修飾キー」というボタンからできます。
それでも、control キーと一緒にというのは、
押しやすいかといわれると、微妙です。
これだけの理由でも、vi/ vim系のエディターを推薦する人は、
きっと、たくさんいらっしゃると思います。
労力が半分というのは、単純に考えるとすごいことです。
vi/ vimについてもう少し述べると、
コピーやペーストなどといった操作も、
基本的には、controlとの同時押しはなく、
undo は、「u」だけでOKです。
行の移動も、「50G」で50行目に移動したり、
「gg」でバッファーの先頭「G」でバッファーの終わりに移動し、
「w」でなど、単語単位または日本語なら次の句読点等へ移動します。
なんとも、使える人が使うと、恐ろしいエディターです。
代償として、文字入力の前に「i」などの操作が必要で、
文字入力が終わったら、「esc」キーを押す必要があります。
私個人としては、禅問答を思い浮かべるところがあり、
単純ですが奥深いという、あこがれを感じてしまいます。
#
ところが、あこがれの vi/ vim ですが、
3000字程度の textedit と emacs で書いた日本語textを読ませたら、
MacVim だけでなく、インラインの vim まで挙動がおかしく、
「オーバーフロー」状態になってしまいました。
これが、wikipedia の vim に記載されていた、
「1行が長いと処理が非常に遅くなる」
という欠点なのだろうと思います。
indesign や word に貼り付けることを前提とした場合、
特に後者では、いわゆる auto-fill などで80字程度で、
自動的に改行を入れていくやり方は、できればやりたくないので、
つまるところ、私の使用方法には、残念ながら向かないようです。
また、MacVim では、ヒラギノ角ゴ などだけではなく、
Arial や Helvetica でも上図に表示してくれません。
と、いうわけで、現在は、carbon emacs で viper-mode を、
試用しているところです。
長所であり短所は、emacs の操作と vim の操作が
同居しているところです。ちなみに mode 3 で使用しています。
長所という意味で言えば、挿入モードで、
emacs に近い入力が可能ということです。
欠点は、重くなるというのと、
キー操作で混乱することがあるの2点です。
emacs + Viper-mode + flyspell + 日本語入力
だと、かなり重く感じます。
ただ、flyspell と日本語入力を同時に走らせることは、
希でしょう。
しばらく、Viper-mode で走らせてみて、
やっぱり、複雑すぎるようなら、
素の emacs に戻そうかと考えています。