2004年のEmacs学習メモとMeadow導入記録から、キー表記・保存・検索・選択範囲を覚える入口を振り返ります。鹿のメイザーが、道具と指が知り合う時間を少しユーモラスに語ります。
この回を動画で見る
同じテーマを、鹿のメイザーが図解と字幕付きで語ります。
2004年、エディターを選ぶ
どうも、鹿のメイザーです。今日は二千四年のエディター学習メモを開きます。主役はEmacs。いーまっくす、と読みます。文字を書く道具を選んだはずなのに、まずキーの読み方から勉強が始まる。入口に小さな教室が付いていたような道具じゃ。
九月二十六日の記録には、Unix上のエディターを使いこなしたい、そこでEmacsを選ぶという方針が残っています。どれだけ上達したかは書かれていません。でも、何を覚えようとしたかは分かる。道具選びの宣言と、練習帳が並んでいるんじゃね。
このメモには、参照した資料の説明も混ざっています。本人が残した方針や導入記録と、調べて整理した操作を分けて読みます。すべて自分で発明した操作、という話にはしません。古いファイルは思い出の箱じゃが、箱の中には借りた地図もある。
今回は、キーの記号、保存と終了、検索、選択範囲、そしてWindowsで触れようとしたMeadowをたどります。仕事を一晩で片付けた伝説より、道具の入口を一つずつ開けるお話です。鹿の角で同時に押すのは難しいから、指のある皆さんに任せよう。
CとM、まず記号を読む
操作一覧に現れるCは、Controlを表す記号です。たとえばC-aなら、Controlとaを組み合わせる。文字のシーを先に入力するわけではありません。記号の約束を知らないと、説明を丁寧に写したつもりで、本文に謎の文字列が増えてしまうんじゃ。
もう一つのMはMetaです。メモではAltやEscapeを使う方法を整理しています。実際にどのキーがMetaとして働くかは、端末や設定に左右される。Mという印字のキーを探すより、手元の環境でどう入力するかを確認する方が近道ですね。
保存のC-x C-sは、Controlとx、その後Controlとsというキー列です。xとsを同時に押す競技ではありません。短い表記の中に順番が入っている。わしの目には最初、暗号のようにも見えるが、読み方が分かると説明書として読めるんじゃ。
今日の図は、この約束を説明するために新しく作ったものです。当時の実画面ではありません。キーの意味と順番を分けて描くと、暗記する前に構造が見える。操作表を増やす前に、操作表の読み方を一行残す。それも役に立つメモになります。
保存と終了、帰り道を先に覚える
メモの早い位置には、終了と保存が書かれています。保存はC-x C-s、終了はC-x C-c。現在の公式資料でも基本のキー列として説明されています。設定を変えた環境では違う場合もあるので、ここでは標準の操作を見取り図として紹介しましょう。
終了するとき、未保存の変更があれば保存の確認が出ることがあります。画面に質問が出たら、どの内容について聞かれているかを読む。早く帰りたいから全部同じ返事、というわけにはいかんね。出口の近くにも、小さな判断の仕事が残っているんじゃ。
ここで覚えておきたいのが、バッファという編集する内容の入れ物です。ファイルを開いた内容を画面で変えることと、ディスクのファイルへ保存することは別の段階。画面の文字が変わっただけで、保存まで済んだとは限らない。この区別は道具が変わっても大切です。
初めての道具なら、練習用の短い文章で開く、少し変える、保存する、終える、と一周してみる。豪華な拡張より先に帰り道を知る考え方じゃ。これは今の振り返りとしての提案で、当時わしがこの練習を実施したという記録を足しているわけではありません。
検索すると文字の途中で動き出す
検索の欄にはC-sとC-rが残っています。前へ探す操作と、後ろへ探す操作です。インクリメンタル検索では、探す文字を入力している途中から一致を探します。全部の文字を入れて検索ボタンを押す、という順番だけが検索ではないんじゃね。
まず短い文字を入れ、続けて入力すると探す文字列が長くなる。その変化を見ながら目的の場所へ近づける。文章を頭から全部見直すより、手掛かりを少しずつ増やす操作です。鹿が足跡を探すように、と言いたいが、文字なら雨で流れにくいのが助かるね。
ただし、検索中にどのキーで確定や中断をするか、入力した文字が何を意味するかは確認したいところです。古いメモの短い一覧を、どの環境でも完全な操作手順と考えません。基本の方向を知り、細部は使っている版の公式説明へ戻る、という読み方にします。
検索ができると、長い文章との付き合い方も変わります。読む順番を紙の端からだけに固定しなくてよい。保存、終了に加えて、戻りたい場所を探す方法が一つ増える。小さなキー列でも、道具を使うときの安心につながる入口になるんじゃ。
リージョンは二点の間
コピーの前には、どこを対象にするかを決める必要があります。Emacsの説明で登場するのがpointとmark。現在の位置と、もう一つの印です。その間の範囲をリージョンと呼びます。名前は難しそうじゃが、始まりと終わりを決める話として眺めてみよう。
メモには、C-SPCで印を付けてから移動する方法が整理されています。これはControlとスペースの組み合わせです。二つの位置が決まると、操作する範囲が決まる。選択範囲をマウスで塗る感覚と、別の入口から同じ課題へ近づいているわけじゃね。
古い説明には、選択しても見た目が変わらないという記述もあります。それを今のEmacs全体の特徴としては扱いません。範囲の強調表示や動作は設定に関係します。メモの見え方は当時の説明として保存し、現在の操作は手元の環境に合わせて確認します。
この回では、実ファイルを選択した画面を見せる代わりに、二点とその間の範囲だけを図にしました。何が選ばれているかを理解するための図です。角の左右を測るのにも端が二つ必要じゃろう。対象を決めてから操作する、という順序は同じなんですね。
コピー、kill、yankという呼び名
メモのコピー欄にはM-w、切り取りにはC-w、貼り付けにはC-yが並びます。標準の説明では、選んだ範囲を削除して保持する操作をkill、保持した内容を挿入する操作をyankと呼びます。突然、英文の動詞が道具箱の仕切りになるんじゃ。
ここでのkillは、前回のプロセスへ信号を送る話とは文脈が違います。エディター内のテキストの操作です。同じ単語を見て、画面の外の処理まで止まると思わないようにしたいね。用語は、今どの道具の何を操作しているかと一緒に読むものです。
M-wは、対象の文字を残して保持するコピーの操作。C-yは、保持している内容を挿入する基本の操作です。Emacsにはkill ringという履歴の仕組みもあります。今回の古いメモを越える補足なので、細かな使い方は現在の公式マニュアルへつなぎます。
他のアプリとのクリップボード連携まで、ここで全部同じ動きだと約束はしません。環境や設定が関係するからです。まず範囲、次にコピーか切り取り、最後に挿入先。短い操作名に急いで飛びつくより、対象と目的を先に言葉にしておくと整理しやすいんじゃ。
Windowsでも触りたい、Meadow
九月二十九日になると、メモにはMeadowをインストールした記録が登場します。Windows上でもEmacsの操作を体感できる環境を作る、という目的が書かれています。別の環境の道具を、普段の机にも連れてきたい。その関心が残った一行じゃ。
当時の資料には、セットアップの実行ファイルや、フォント、設定を含む案内への参照もあります。今回はそれを現在の導入手順として勧めません。昔どんな入口を探したかを振り返るための記録です。二十年以上前の地図で、今日の入口が開いているとは限らんからね。
この記録から分かるのは、導入した日と、その目的です。業務で何年使ったか、どんな成果を出したかは分かりません。そこは空白のままにしておきます。短いメモにも十分な話題がある。Windowsで操作を体感したいという動機だけで、当時の学習の向きが見えるんじゃ。
Emacs自体は現在も公式のマニュアルが公開されている道具です。昔のメモを紹介するからといって、過去だけの技術と決めつけません。昔のMeadow導入記録と、今のEmacsの説明を分ける。その区別が、回顧録を現在の手順書と取り違えないための道しるべになります。
2020年の雑誌で道具選びを振り返る
関連資料として、ソフトウェアデザイン、二千二十年八月号を開きました。第1特集はVimとVisual Studio Codeを比べる構成です。Emacsの特集ではありません。自分好みの設定、コードを書く操作、リファクタリングという三つのテーマで道具を見る特集じゃ。
この号を二千四年に読んだという話ではなく、今回確認した後年の関連資料です。エディターの名前だけで決めるのではなく、何をしやすくしたいかを比べる視点が、昔のメモを読み返す助けになります。見た目の好みと、作業の目的も分けて考えられるね。
誌面の図や本文は貼り付けず、特集の入口を短く紹介します。記事の参考資料には、年月号、出版社、特集名、確認した扉のページと公式目次を残します。気になった人が元の資料へ戻れるようにする。鹿の説明だけで、雑誌一冊を読んだ代わりにはしません。
昔のわしのメモは、まず操作を覚えたいという出発点。後年の特集は、作業ごとの道具の使い方を比べる入口です。どちらが上という採点をする必要はない。学び始めるときと、日々の使い方を見直すときで、問いが少し変わることを楽しみたいんじゃ。
少しずつ、指と道具が知り合う
今日のメモは、二千四年のEmacs学習とMeadow導入の記録でした。保存と終了、検索、選択範囲、コピーと挿入。華やかな機能の一覧に行く前に、文章を扱う小さな動作が並んでいます。道具と指が、少しずつ知り合うための名刺交換のようじゃね。
一度に全部を覚えようとすると、短いキー列でも荷物が多くなる。まず記号を読む、保存して終える、目的の場所を探す。振り返ると、練習する範囲を小さく区切る考え方が持ち帰れます。これは記録から今考えた学びで、当時の上達を保証する話ではありません。
メモには、何を選んだかだけでなく、いつ、どんな環境で、何のために触れたかも残したい。参考にした説明も出どころを残す。年月がたつと、細かな手順より、その前提が役に立つことがあります。古い操作を丸写しする前に、昔の目的を読んでみよう。
皆さんにも、最初は記号の意味から覚えた道具があるでしょうか。使い込んだ道具にも、まだ触っていない道具にも、入口のお話があります。今日は二千四年の小さな練習帳から、その入口を眺めました。それではまた、次の技術メモでお会いしましょう。
参考資料
- 筆者保管のEmacs学習・Meadow導入メモ(2004年9月26日・29日。参照説明を含むため、本人記録と区別し独立して再構成)。
- GNU Emacs Manual:キー表記、保存、終了、検索、Mark、Killing、Yanking、Buffersの各節 https://www.gnu.org/software/emacs/manual/html_mono/emacs.html
- GNU Emacs Manual:Setting Mark https://www.gnu.org/s/emacs/manual/html_node/emacs/Setting-Mark.html
- GNU Emacs Manual:Yanking https://www.gnu.org/software/emacs/manual/html_node/emacs/Yanking.html
- 『Software Design』2020年8月号、技術評論社、第1特集「Vim vs. Visual Studio Code テキストエディタ3本勝負」、扉p.17。後年の関連資料として短く紹介。誌面・本文・図版の転載なし。公式目次 https://gihyo.jp/magazine/SD/archive/2020/202008