FC2ブログ

PCで: 宗教戦争

 いつものように作家の水無瀬さんごさんのブログをチェックしていたら、こんなエントリがありました。
「GHOST IN THE SHELL 2.0」を見たり

 タイトルの通り、映画のレビューなんですが、後ろの方にこんな記述が。

こういうややトリッキーなことをしているのはMacがUNIXだからです。
Terminalでgccやらg++やらが走らない環境では本業の方(けんきゅーとかじっけんとか)がままなりません。
あとVimerなのでvimがネイティブで走らないとイラッとするとか、かっこいいとかそういう色々。

……なるほどそうですか。水無瀬さんはvi派ですか。
 まあ、正確にはviとVimは別物ですけど、一応系統というものがありますからね。

 ちなみに私はEmacs派です。

 これは一体何の話かというと、テキストエディタの名前ですね。Windowsで言えばメモ帳とか秀丸エディタとか? よく知りませんけど。
 UNIXの世界では、とにかくテキストの編集が重要です。OSの各種設定ファイルもまず全部テキストファイルですし、アプリでもそうなってるのが殆んど。
 昔はWYSIWYG(ウィジウィグ)という言葉がありました。"What You See Is What You Get"の略で、一番典型的な例は、ワープロとかが画面の表示通りに印刷する機能を持ってる場合とかに使われました。今では当たり前ですが、ということはそうでないものもあったわけで、画面表示にそんなに自由度がなかった頃はそんなことはできなかったわけです。
 そういう時代は、やはりテキストで書いて特殊な処理をして整形する、という手順を踏んだものです。例として、TeXというのがあります(ほんとは真ん中の'E'をちょっと下げて表記するんですけど)。そう言えば、私はX68000で論文書いたんですけど、TeXと似たような方式の(文法は全然違いますけど)アプリがあって、それで数式とか表記したものです。
 ちょっと寄り道すると、昔のMacはWYSIWYGに関しては徹底していて、画面の解像度もその方針で作っていました。どういうことかというと、印刷されたときの大きさを画面で表示・確認することができた、ということです。

 とまあ、とにかくテキストが重要な世界なんで、テキストエディタというのはとても重要なソフトなわけです。
 で、そのエディタに大きな流派が二つあります。それが、viとEmacsです。

 この二つは、操作方法、要するにUIがまるっきり違うので、両方を充分に使いこなすのはなかなか難しいのです。例えば、カーソルの動かし方からして違います。
 え? カーソルキー?
 この世界の人達は、カーソルを動かすためにそんなとーくまで手を動かすなんて無駄なことを嫌うものです。手を極力ホームポジションに置いたままで全てをやりたいと思っています。
 大体、カーソルキーなんてないとかまだ対応してないなんて状況もありますしね。

 というわけで、二つの大きな流派の間には、よく「宗教戦争」と言われるくらいの断絶(笑)があったりします。

 viは、かなり初期からあって歴史がありますし、何より軽い。それに、まずどんな環境でもUNIX系なら動く。
 対してEmacsは、その強力なカスタマイズ機能と、複数のファイルを複数のウィンドウ(一つの端末画面を分割する)を使って同時に編集できることで人気を博しました。
 例えば、カーソルを動かすときどうするか? こういうキーを使います。
 
vihjkl
EmacsC-BC-NC-PC-F
 viは、カーソルを動かすときと文字を入力するときでモードを切り替えるのです。
 Emacsは、色んなことをControlキーを押しながらとかで実行します。表の"C-"というのはControlキーを押しながら、という意味です。
 カーソルの動かし方の違いだけでも、それぞれの文化の違いがわかると思います。

 私は元々パソコン使いでしたが、そっちの世界では、文字入力モードと切り替えて、とかいう考え方がなかったせいか、vi的なエディタは見たことありませんね。
 で、そもそも最初の頃からEmacs的なエディタを使っていたので、UNIXを使うようになっても自然にEmacs派になりました。
 就職したのが90年でしたが、当時の先輩方は皆viを使っていました。で、私が一人でEmacsを使っていました。
 実を言うと、たまたまそのときSunが大量に導入されたからそういうことができたのです。その前まではミニコンにRS-232Cでつないだ端末を使ってたんですけど、端末の性能の関係でよくフローコントロールが動いてました。
 何かというと、送られてくるデータを端末が受け止めきれなくなったとき、「ちょっと待って!」という意味で、Control-Sに相当するコードを送るわけです。
 ところが、上記のようにEmacsはControl+なんとかで色んな機能を呼び出すので、このControl-Sもそれなりの挙動を示してしまいます。
 つまり、画面を書き換えるだけでその機能が起動してしまったりするわけです。
 これでは使えませんね。まあ、カスタマイズ機能が強力なんでその気になれば回避できたんですけど、やっぱりviとかと比べて画面制御も複雑なんで、遅い。そうすると、viの方がいい、ということになります。

 でも、Sunの導入。
 特に布教とかしませんでしたが、いつの間にか周り中Emacs使いになってしまいました(笑)。
 彼等の声では、やはり、複数のファイルを同時に扱って、コピーとか自由自在にできるのが魅力だったようです。

 ところで、上記のようにviというのは大体どこでも動きます。
 私がいたところはカーネル部隊だったので、まだ動き始めたばかりで画面もちゃんと制御できない状態のマシンを色々設定したりしなければいけません(この場合、viどころかラインエディタのedを使うとか、標準入力からのリダイレクトでファイル作るとかいう段階もあります)。
 そういう状況でなくても、Emacsというのはカスタマイズして使うのが普通、みたいなエディタなので、やっぱり素のままのマシンでは使いづらい。
 そんなわけで、Emacs派の人間も、viの最低限の操作というのはできるものです。
 私も、設定ファイルとかをいじるときはviですからね。

 そのviですが、前述のように、実は水無瀬さんの言われたVimとviは別物です。
 Vimというのは、viに似せて作られた、素性の異るものなのですが、あるところでかなり進歩して、例えばEmacsのように画面分割したりできるようになったそうです。カスタマイズでも、viとは違ってかなり自由度が高いですね。
 まあ、Vimに関してはあまりよく知らないのでこれ以上は調べないと書けませんが。

 で、私は今もUNIXに似たOSであるLinuxをうちのメインのマシンにしているため、Emacsを日常的に使っています。
 EmacsのカスタマイズにはEmacs Lispという言語を使うのですが、これは要するにプログラミング言語で、もう、カスタマイズというよりもプログラムが書けます。例えば、私はEmacs Lispで記述されたMewというメールリーダを使っています。つまり、通信とかもできるわけです。
 Emacsは、エディタではなく環境だという人もいます。

 というわけで、UNIXの世界では、こんな勢力図があったりするのでした。

tag : エディタ Emacs vi

コメント

非公開コメント

プロフィール

水響俊二

Author:水響俊二
水響 俊二 [MIZUKI Shunji]

暫定的に、18禁作品の感想などは裏サイトで書いています。
   

最新記事
最新コメント
カテゴリ
検索フォーム
リンク
RSSリンクの表示
月別アーカイブ
アクセス解析中