Emacs は Richard Stallman が MIT に在籍していた 1974 年当時に存在していた TECO エディタを改造するところからその開発が始まったテキストエディタです。
現在でも開発は継続されており、X window system 対応、多言語化など積極的に新機能が取り込まれ続けています。
Emacs 最大の特徴は、その動作の多くが Lisp によって書かれており、これがユーザに自由に改変できる形で提供されている点でしょう。
そのため多くの機能追加(例えばエディット中に英文の綴りミスを調べるスペル・チェッカーなど)が従来から行われています。
同じ理由で利用者ごとのカスタマイズ(例えばよく使う機能を特定のキーに割り当てるなど)もよく行われています。
この文書は Emacs を使ったファイルの編集が最低限できる利用者を対象に書かれています。
つまりもう一歩 Emacs についての理解を深め、より Emacs を使いこなすためのチュートリアルです。
以下にこの文書を読む時に押さえるべき点について説明します。
Emacs でよく使われるキー操作として、Control キーや ESC (Escape) キーと併用するものがあります。
Emacs の世界では伝統的にこれらの操作を以下のように表記しており、この文書でもこれに倣うことにします。
ESC キーのことを M で表記していますが、これは Emacs の世界では Meta キーと呼ばれているためです。
逆にあなたが使う Emacs 環境では Emacs で言う Meta キーが ESC キーに割り当てられていると考えて下さい。
Emacs 内部で働いている Lisp 、つまり Emacs Lisp の機能をもっと積極的に使った一人前のアプリケーションソフトが幾つも存在します。
例えば MHE はメイルの読み書きをするアプリケーションですが、これが Emacs というテキストエディタに読み込まれて動作するのですから面白い。
つまり本来テキストエディタであったはずの Emacs ですが、こうした場面ではテキストを読み書きする機能とプログラムを実行する機能の主従関係が逆転しているわけです。
それ故、Emacs はもはやエディタとして捉えるべきでない、と表現されることがしばしばあります。
あらためてここに記しますが、
「Emacs はファイルを編集するものではなくバッファを編集するもの」
です。つまりメモリ上のデータを編集するのであって、ファイルの中身を直接変更するものではありません。
これは Emacs に限らず一般的なテキストエディタに共通の性質です。
今日の標準的なコンピュータシステムでは、編集したい文書データは恐らく初めはディスクにあるでしょう。
ところがエディタはこれを直接修正せず、いったんメモリの中に内容の複製をとってから、その複製を修正するように振る舞います。
その後、メモリ中の複製をディスクに書き戻すことで修正を完了させるわけです。