入門 Emacs

> この投稿は、 [Emacs Advent Calendar 2020](https://qiita.com/advent-calendar/2020/emacs) の 22日目の記事です。

時を戻そう。

これから述べる出来事は確か 1999 年か 2000 年だったはず。
「次の Emacs21 では画像が表示できるようになるんだ」と、そのリリースを心待ちにしながら Windows NT 4.0 SP4 の上で Emacs20 を使い始めたことを覚えている。

## 入門 perl

ある日、一通の E-Mail が届いた。その内容は全く覚えていないので、たぶんスパムのようなメールだったはずだ。ただ、そのメールの本文の一部分が、罫線がぐしゃっと入り乱れて表示されていた様子は、いまでもうっすら脳裏に焼き付いている。

メール送信者は、おそらく罫線を上手に使って案内地図を描いたのであろう、ぱっと見で地図であることは容易に想像でき、案の定、その部分を notepad.exe へコピペしたら罫線を駆使した現地案内地図が目の前に現われた。

当時の私が使っていたメーラーは、IE4 のインストール時に勝手にインストールされた [Outlook Express](https://ja.wikipedia.org/wiki/Outlook_Express) だ。そして、罫線がぐしゃっと表示された原因は Outlook Express の表示フォントが <b>プロポーショナルフォントだった</b> からだ。
でも、その程度なら私にだって簡単に解決できる。なぜなら、表示フォントを MS P ゴシックから MS ゴシックへ変更するだけだからだ。脳内で思考を反復。その方法で間違いない。次の瞬間には右手を [IntelliMouse](https://ja.wikipedia.org/wiki/Microsoft_IntelliMouse) へ伸ばしてメニューの中から設定項目を探っていた。

... ない。
フォントを変更する設定箇所が見当たらない。IE4 を駆使して Yahoo! や [AltaVista](https://ja.wikipedia.org/wiki/AltaVista) で「outlook express フォント 変更」といったキーワードで検索してみたが、やはり該当する記事が出てこない。

    この記事を書きながら google 検索してみたところ、
    Outlook Express でフォントを変更する記事が出てきました。
    たぶん当時の私の検索キーワードが不適切だったのでしょう。
    まあ、いまとなっては Outlook Express が使えないので試すこともきませんが。

フォント変更が無理なら他のメーラーに乗り換えるか、早々に Outlook Express に見切りをつけたのは悪い判断ではないはずだ。ただ、その頃に流行っていたメーラーはどれも商用製品で、その場ですぐにインストールできるものはなかったと記憶している。

ふと、「メールっつったって、単なるテキストデータだよな」とひとりごちてcmd.exe を起動。 社内 POP サーバに telnet。情シス部門に怒られるかな、いや怒られたっていい。私は等幅フォントでメール閲覧したいのだから。

数秒後、cmd.exe には notepad.exe と寸分変わらない案内地図が再現表示された。
この一件から、私は [biff](https://ja.wikipedia.org/wiki/Biff) が着信を知らせてくれたら cmd.exe を起動して自作 perl スクリプトを実行するようになった。社内 POP サーバから新着メールを取得して less.exe で表示する一連の動作を perl スクリプトで構築したのだ。
私にとってこの perl スクリプトはとても快適なメール閲覧環境だった。なんたって等幅フォントだからだ。

    なお、perl はこの目的のためだけに学習し、
    それから現在まで perl を書いたことはありません。

## 入門 vi

サラリーマンである以上、ビジネス相手のメールに返信して応える必要｛が｜も｝あるが、送信するには依然として Outlook Express を使っていた。当時の私は SMTP を知らなかったからだ。
しかし、日が経つにつれて <b>送信や返信も cmd.exe 環境で完結したい</b> 、その想いが強くなり、自作 perl スクリプトに送信機能を追加することを決断。
本格的に perl スクリプトと CPAN を相手に格闘することとなったのだが、まだこの時点では notepad.exe でコーディングしていた私は、テスト実行とデバッグのたびに ALT + TAB で切り替えることが次第に苦痛に感じ始めていた。

<b>スクリプト編集も cmd.exe 環境で完結できないものか</b>。そんな私の願いを vi が満たしてくれたのだ。Windows NT 4.0 SP4 の cmd.exe 内で動く vi はとても快適であり、私は ALT + TAB 操作から開放されたのであった。

## 入門 日本語入力方法

それからは自作 perl スクリプトは順調に開発が進み、私のメール環境は送信、受信、返信ができるようになった。
加えて、vi から perl スクリプトを実行できるようにしたことで、メール環境の開発と実用は cmd.exe 環境で完結できた。

... はずだった。
メールを日本語で書くときは、やはり notepad.exe を必要としたのだ。
当時の vi は日本語入力環境が全く整備されていなかったからだ。そう記憶している。notepad.exe で MS-IME と格闘しながらメールを書いて foo.txt として保存。vi で :r foo.txt で読み込んでた。
まだ ALT + TAB 操作から解放されてはいないのであった。

## 入門 Emacs

日本語入力以外にもいろいろと問題が目立ち始めていた。
vi のちょっと特殊な操作を理由として私のディスプレイ周りにはカラフルな [ポスト・イット](https://www.post-it.jp/3M/ja_JP/post-it-jp/) が増えていった。また、複数のプログラミング言語が混在する（foo.bat と bar.pl）ことで、一方の変更が他方の思いもよらぬ箇所へ影響するようになってきていたからだ。

ちょうどそのときだ。私は次のように思ったのだ。

    はぁ、普通にカーソル移動ができて、日本語のテキスト編集ができて、
    各種スクリプト編集も容易にできて、そのうえメールの送受信もできちゃう、
    そのすべてがひとつのプログラミング言語で自由に拡張できるような、
    そんなテキストエディタって無いのかな...

こうして私は Emacs20 と出会った。悪くないだろう。

## 入門 Wanderlust、ddskk

Emacs を使い始めた最初の頃はとにかく苦労したことを覚えている。操作体系が複雑すぎて指キーンなるわ！ってね。

でも、そうこうしているうちに Emacs にも慣れ、メール環境は [Wanderlust](https://github.com/wanderlust) に移行した。APEL, FLIM, SEMI, WL の順に環境構築することが大変だった記憶がある。

等幅な BDF フォントもインストールしたので、もちろん罫線地図の表示も崩れない。

日本語入力には skk をインストールした。skk 10.62a だったはずだ。

昼休み、同僚はマインスイーパーに夢中だったが、私は M-x tetris に夢中になった。過ごし方は人それぞれだ。

## おわりに

時を戻そう。

私が Emacs を使い始めて 20 年以上が過ぎましたが、この間も絶え間なく Emacs は開発が継続されており、私といえば最近では追い掛ける（git pull && make）だけで精一杯です。

2000 年当時とは仕事内容も役職も変わっており、現在はコーディングする機会は減りましたが、その一方で管理ドキュメントを作る機会が増えいるので Markdown 書式を習得しているところです。いまも Emacs27 は [強い味方](https://qiita.com/kitamoto/items/217fa81b6efb3679c794) となってくれています。

こんな駄文に最後までお付き合いいただいてありがとうございます。

Emacs ユーザの役に立つ情報は皆無ですので [Emacs Advent Calender](https://qiita.com/advent-calendar/2020/emacs) の趣旨にそぐわない内容かもしれませんが、せっかく書いちゃったのでこのまま投稿することにしました。