gofujita notes

on outline processing, writing, and human activities for nature


Mastering Emacs その2

Emacs というテキストエディタの解説書『Mastering Emacs』をよみ終わりました。

もちろん、これから何度もよみ返す章やページも少なくないと思います。よみ終わって2日たちましたが、今も頭の中が渦まいています。情報過多の状態です。

でも、よい本に出会ったと思っています。

本書の1章にもかかれていますが、初心者が主なターゲットではなく、ある程度 Emacs の経験をつんだけれどもうひと頑張りして Emacs を体系的に理解したいと思っている人、ベテランでさらに Emacs の道を究めたい人などを対象とした本だと理解しました。

その一方で、初心者がよんで得する部分も多々ある本だとも、個人的には考えています。

たとえば2章「The Way of Emacs (Emacs の哲学)」や3章「First Steps (最初にやること)」、そして6章「The Practicals of Emacs (Emacs の実践)」の最初の節「Exploring Emacs (Emacs に教えてもらう)」を Emacs をつかい始めたばかりの人がながめるだけでも、得るものは多い気がします。

これらの章や節では、何をどうすればいいか途方にくれるほど多機能な Emacs と友だちになるための基本情報がまとめられています。また、具体的に Emacs をつかいながら学ぶための情報が Emacs 自体に用意されていること、その情報にアプローチする方法も説明されています。

本書の大きなウリは、何といっても4章「The Theory of Movement (移動のための理論と方法)」と5章「The Theory of Editing (編集のための理論と方法)」のふたつだと思っています。

4章では、ポイント (point、カーソルのことです) 移動のための技術が、なんと100ページにわたって解説されています。

単語単位の移動にパラグラフ単位の移動、ページ単位の移動にバッファ (buffer、ファイルのようなものです) 間の移動などのためのキーバインド (ショートカット) はもちろん、範囲指定や検索、ブックマークやインデックスなどが Emacs をつかって、データからデータへ移動する技術に深く関わっていることを説明した構成が、すばらしいと思いました。

つづく5章では、テキストデータを処理する、つまり編集するための技術がこれまた大量の75ページにわたって解説されています。

ここでさらに Emacs というツールの考え方の基本に出会うことができます。たとえば Emacs ではデータを delete するのではなく kill します。Kill するとは kill したデータを kill ring という容器に移動し記録することを指します。あるいはたとえば Emacs では line が処理の単位になっています。ですから line 単位でデータを呼びだして一か所にまとめて処理し、元に戻すこともできます。

ポイント (カーソル) の前後の文字列を入れ替える、しかもある程度文法を理解して and や or やカンマなどの位置をそのままにしてその前後の名詞だけを入れ替える、という気の利いた機能もひとつやふたつではありません。

ぼくにとっていちばんおもしろかったのは、キーボードマクロの解説でした。Emacs のキーボードマクロはとても強力で、ほとんどの操作を記録してくれます。マクロの中でマクロを呼びだすこともできます。ですから、日々繰り返し行なう操作を小さい断片に分けてそれぞれをマクロ断片として記録し、それらの組み合わせで大きなマクロを組み立てることもできそうです。

ぼくの Emacs に対する主な興味は、Emacs をつくっている Emacs Lisp (elisp と短く呼ばれることも多いようです) をつかって、Emacs をかきながら考えるツールとしてつくり込んで行くことです。

目次をみた段階で予想していましたが、本書には elisp そのものの解説や、elisp で小さな機能をつくるための解説はありません。本書は Emacs がたとえ elisp のコードなどかかなくても考えるためのツールとして豊かな機能を備えていることを教えてくれる本です。本書をとおしてその可能性を知ることができただけでも、大きな収穫だったと思っています。

この本をよみすすめながら、ぼくの Emacs の使い方は変わりました。そしてまだまだ初心者のままですが、Emacs というテキストエディタ以上のテキストエディタの魅力を、ほんの少しですがより広く深く理解できたようにも感じています。

さいごに、この本の翻訳版について少し紹介しておきます。

ぼくは英語が好きなので、著者 Mickey Petersen さんのかいた英語でよみましたが、日本語訳も出版されています。すばらしいですね。

本書の原本を購入した人は無料で日本語版を入手できるそうです。以下のサイトに説明があります。

Mastering Emacs is now available in Japanese