📝

Ed, man! !man ed

2021/08/04に公開

ボーレートが 110 のテレタイプで Xenix システムにログインすると、vi も Emacs もクソ遅くて話にならない[1][2]。どいつもこいつも無駄なことばっかり表示してくる。‘C-h for help’ だとか ‘“foo” File is read only’ だとか。だから私は貴重な価値のある時間を無駄にしないようなエディタを使うことにしたんだ。

ed だ! ほらマニュアル見ろ!

ED(1)               Unix Programmer's Manual                ED(1)

NAME(名称)
     ed - text editor(テキスト・エディタ)

SYNOPSIS(構文)
     ed [ - ] [ -x ] [ name ]
DESCRIPTION(説明)
     Ed is the standard text editor.(ed は標準のテキスト・エディタです)

コンピュータ・サイエンティスト達が ed を愛してやまないのは、ed がアルファベット順で最初に来るからではない。ed が標準であるからだ。他の奴等が ed を愛してやまないのは勃起不全に仲間意識を感じているからだ。

「ed は標準のテキスト・エディタです。」

さらに、ed は私の使っている Timex Sinclair の容量を無駄遣いしていない[3]。ほらご覧よ。

-rwxr-xr-x  1 root          24 Oct 29  1929 /bin/ed
-rwxr-xr-t  4 root     1310720 Jan  1  1970 /usr/ucb/vi
-rwxr-xr-x  1 root  5.89824e37 Oct 22  1990 /usr/bin/emacs

当然のことだが、私の管理しているシステムでは vi は ed にシンボリック・リンクしてある。一方、Emacs の方はこんなシェル・スクリプトに置き換えてある。

  1. LOG_EMERG 程度のシステム・ログを発生させ[4]
  2. ユーザの利用可能なディスクの割り当てを 100 kB 減らし[5]
  3. そして ed を起動するのだ。

「ed が標準のテキスト・エディタです。」

ここで、初心者と偉大なる ed のよくあるやり取りを見てみよう[6]

golem$ ed

?
help
?
?
?
quit
?
exit
?
bye
?
hello?
?
eat flaming death
?
^C
?
^C
?
^D

ここで注目したいのは、一貫したユーザ・インタフェースとエラー報告である。ed はエラーをエラーであると気付かせてやるには充分な寛大さと共に、読む気を失せさせる程の長ったらしいエラー文を表示して初心者の心を挫くことのないような慎重さをも持ち合わせているのだ。

「ed こそ標準のテキスト・エディタです。」

WYIGIWYG なエディタの最高峰、ed[7]

ed こそが涅槃への真の道である。ed は何世紀にも渡って賢人と白痴の何れにも選ばれてきた。edは決して汝の血を汚すまい。ed こそが標準のテキスト・エディタなのだ。ed が陽の光は、鳥の唄を、茂る緑を照らし出さん。

エディタを使うときには、RAM を 8 kB も食い散らかすヘルプ画面だったりカーソル位置の制御なんてものは望んじゃいない。望んでいるのは EDitor だ。“viitor” じゃない。“emacsitor” でもない。こいつらは最早言葉の体を成しちゃいないじゃないか! ed が標準なんだ!

テキスト・エディタ。

全知全能たる IBM が edlin エディタを Unix 標準に準拠させる必要があったが[8]、vi の真似をしたか? いいや、しなかった。じゃあ Emacs だったか? 冗談じゃない。IBM は最も深い業を背負ったエディタを選んだのだ。標準という業を。

ed は自分が何をしているのかを覚えていられる人向けのエディタだ。君が馬鹿なら Emacs を使った方が良いし、君が Emacs なら vi にはならない方が良い。もし君が ed を使っているなら、君は救済の道の途中にいる。所謂ビジュアル・エディタは、信仰心の無い奴等を炙り出すために ed によってこの地に置かれたのだ。屈する勿れ。嗚呼、偉大なる ed が仰せだ!

?

脚注
  1. (ボーレートが 110) 毎秒 10 文字程度を表示するくらいの速度。 ↩︎

  2. (Xenix) 大昔の Microsoft による Unix 実装。 ↩︎

  3. (Timex Sinclair) 太古のホーム・コンピュータ。 ↩︎

  4. (LOG_EMERG) システムが利用不可能であるレベル。 ↩︎

  5. (100 kB) 当時にしてはぼちぼち結構な大きさである。 ↩︎

  6. (?) ed は不明なコマンドを受け取ると ? のみのエラー・メッセージを表示する。 ↩︎

  7. (WYIGIWYG) What You Give Is What You Get. ↩︎

  8. (IBM) 全知全能 (当時)。 ↩︎

Discussion