==============================
日本語 GNUEMACS(Mule) 入門編
==============================
注意: この入門編は、「習うより慣れろ」をモットーに作成されていま
す。">>" から始まる行は、その時何をすべきかを指示しています。
Mule のコマンドを入力するときには、一般的にコントロール・キー(キー・
トップに、CTRL あるいは、CTL と書いてある)やメタ・キー(普通、エスケープ・
キーを使う)が使われます。そこで、CONTROL とか META とか書く代わりに、次の
ような記号を使うことにします。
C-<文字> コントロール・キーを押したまま、<文字>キーを押します。例えば、
C-f は、コントロール・キーを押しながら f のキーを押すことを
意味します。
<<Blank lines inserted here by startup of help-with-tutorial>>
>> それでは、C-v(View Next Screen; 次の画面を見る)をタイプして
みて下さい。次の画面に進むことができます。
以降、一画面を読み終えるたびに同様にして次の画面に読み進んで
下さい。
ESC <文字> エスケープ・キーを押してから離し、それから<文字>キーを押しま
す。
注意: <文字>は、大文字でも小文字でもコマンドとしては同じ意味になり
ます。メタキーが使えるならば ESC <文字> の代わりに M-<文字>
(メタキーを押したまま<文字>キーを押す) が使えます。
重要です: Emacsを終了させたい時は、C-x C-c をタイプします。Emacsをcsh
から起動している場合、サスペンドする(一時的に止める)ことが
出来ます。Emacsをサスペンドするには、C-zをタイプします。
さて、これからは、一画面分読み終えたら、C-v を入力して行って下さい。
前の画面と次の画面とでは、表示される内容に何行文かの重なりがあります。
これは、表示されている内容が連続していることがすぐ判るようにするためです。
まずは、ファイルの中を移動して行く方法を知る必要があります。C-v によ
って先に進むことはもう判りました。元に戻るには、ESC v をタイプします。
>> ESC v と C-v を使って、前後に移動することを何回か試してみなさい。
要約
====
ファイルを画面毎に見て行くには、次のコマンドを使います。
C-v 前に一画面分進む
ESC v 後ろに一画面分戻る
C-l 画面を書き直す。このとき、元カーソルのあった行が
画面の中央にくるようにする
>> 今カーソルがどこにあるか、その近くにどんなテキストが書かれている
かを覚えなさい。C-l をタイプし、カーソルがどこに移動したか、その
近くのテキストはどうなったかを調べてみなさい。
基本的なカーソルの制御
======================
画面毎の移動はできるようになりました。今度は、画面の中で、特定の場所に
移動するための方法を憶えましょう。これにはいくつかのやり方があります。一つ
の方法は、前(previous)次(next)先(forward)後(backward)に移動するコマンドを使
うことです。これらのコマンドはそれぞれ、C-p, C-n, C-f,C-b に割り当てられて
おり、現在の場所から新しい場所にカーソルを移動させます。図で書けば、
前の行,C-p
:
:
後の文字,C-b .... 現在のカーソル位置 .... 先の文字,C-f
:
:
次の行,C-n
これらは、それぞれ、Previous, Next, Backward, Forward の頭文字になって
いるので、憶えやすいでしょう。これらは、基本的なカーソル移動コマンドであり、
いつでも使うものです。
>> C-n を何回かタイプし、(今、あなたが読んでいる)この行までカーソ
ルを移動させなさい。
>> C-f を使って行の中ほどに移動し、C-p で何行か上に移動してみなさ
い。カーソルの位置の変化に注意しなさい。
>> 行の先頭で C-b をタイプしてみなさい。カーソルはどこに移動しますか
?さらにもう少し C-b をタイプし、今度は C-f で行末の方に戻りなさ
い。カーソルが行末を越えるとどうなりますか?
画面の先頭や末尾を越えてカーソルを移動させようとすると、その方向にある
テキストが移動して来て、カーソルは常に画面内にあるようにされます。
>> C-n を使って、カーソルを画面の下端より下に移動させてみなさい。何
が起こりましたか?カーソルの位置はどう変りましたか?
一文字単位の移動ではまどろっこしいと思うなら、単語単位で移動することも
できます。ESC f で一単語分先に進み、ESC b で一単語分前に戻ります。
注意: 日本語については、単語の切れ目を認識することはできませんが、
疑似的な文節を単語の切れ目としています。
>> ESC f や ESC b を何回かタイプしてみなさい。C-f や C-b と併用して
みなさい。
C-f や C-b に対する、ESC f や ESC b の類似性に注目しましょう。多くの
場合、ESC <文字>は文書関係の処理に使われ、一方C-<文字>はそれよりももっと基
本的な対象(文字とか行とか)に対する操作に使われます。
C-a と C-e も知っていて便利なコマンドです。C-a はカーソルを行の先頭に
移動させ、C-e は行の末尾に移動させます。
>> C-a を2回、それから C-e を2回入力してみなさい。これらのコマンド
を2回以上繰返しても、カーソルはそれ以上移動しないことに注意。
あと二つ、簡単なカーソル移動コマンドがあります。ファイルの先頭に移動す
る ESC < と、ファイルの末尾に移動する ESC > です。
テキスト中でカーソルの存在する位置を「ポイント」と呼びます。言いかえれ
ば、カーソルは、テキストのどこにポイントがあるかを画面上で示しているのです。
以下に単純な移動操作について要約します。このなかには、単語や行単位での
移動コマンドも含まれています。
C-f 一文字先に進む
C-b 一文字後に戻る
ESC f 一単語先に進む
ESC b 一単語後に戻る
C-n 次の行に移動
C-p 前の行に移動
ESC ] 段落の終わりに移動
ESC [ 段落の先頭に移動
C-a 行の最初に移動
C-e 行の最後に移動
ESC < ファイルの最初に移動
ESC > ファイルの最後に移動
>> 各々のコマンドを試してみなさい。これらのコマンドは、最もしばしば
使われるものです。最後の二つでは、この場所とは離れたところに移動
するので、 C-v や ESC v を使ってここに戻って来るようにしなさい。
Emacsの他のコマンドと同様に、これらのコマンドには、繰り返しの回数を指
定する引数 を与えることができます。そのためには、コマンドを入力する前に、
C-uに続いて繰り返す回数を入力します。
例えば、C-u 8 C-f とすると、8文字分先に移動します。
>> C-n あるいは C-p に適当な引数を指定して、一回の移動でなるべくこ
の行の近くに来るようにしてみなさい。
C-v や ESC v については少し違います。この場合、指定された数の行だけ画
面を移動することになります。
>> C-u 3 C-v と入力してみなさい。
元に戻るには、C-u 3 ESC v を使えばよいのです。
中止コマンド
============
C-g というコマンドで、入力を必要とするようなコマンドを中止することが
できます。例えば、引数を入力している途中や、2つ以上のキー入力を必要とする
コマンドを入力している最中に、それをやめたくなったら、C-g を使えば良いので
す。
>> C-u 100 をタイプして引数を100に設定し、C-g をタイプしなさい。
そのあとで C-f をタイプしてみなさい。何文字移動しましたか?もし
間違って ESC を入力してしまった時も、C-g を入力すれば取り消せま
す。
エラー
======
時には、Emacsで許されていない操作をしてしまうことがあります。例えば、
コマンドの定義されていないコントロール・キーを入力してしまった時には、Emacs
はベルを鳴らし、さらに、画面の一番下に、何が悪かったかを表示します。
Emacsのバージョンによっては、この入門編に書かれていることを実行できな
い場合があり得ます。その様な場合には、エラーメッセージが表示されますから、
何かカーソル移動キーを押して、その次の部分に進んで下さい。
ウィンドウ
==========
Emacsは幾つものウィンドウを持つことと、そのそれぞれに対してテキストを
表示することができます。ヘルプや、幾つかのコマンドからの出力を表示するため
に現れた余分なウィンドウを消すために、次のコマンドを知る必要があります。
C-x 1 ウィンドウを1つにする。
C-x 1 は、他のウィンドウを消して、カーソルのあるウィンドウを、画面全体
に広げます。
>> カーソルをこの行に持ってきて、C-u 0 C-l とタイプします。
>> C-h k C-f とタイプしなさい。新しいウィンドウが C-f コマンドのドキ
ュメントを表示するために現れると同時に、このウィンドウがどのよう
に縮むかを観察しなさい。
>> C-x 1とタイプして、ドキュメントの現われていたウィンドウを消しなさ
い。
挿入と削除
==========
テキストをタイプしたければ、単にそれをタイプするだけで構いません。目に
見える文字('A','7','*','あ'など)はEmacsによってテキストであるとみなされ、
そのまま挿入されます。行の終わりは改行文字で表され、これを入力するには
<Return> をタイプします。
直前に入力した文字を削除するには、<Delete> を入力します。<Delete> は、
キーボードで「Delete」と書いてあるキーを押して入力します。「Delete」のかわ
りに「Rubout」と書いてあるかも知れません。より一般的には、<Delete> は、現在
カーソルのある位置の直前の文字を削除します。
>> 文字をいくつかタイプし、それからそれらを <Delete> を使って削除し
なさい。
>> 右マージンを越えるまでテキストをタイプしなさい。テキストが一行の
幅以上に長くなると、その行は画面からはみ出して「継続」されます。
右端にある'\'記号は、その行が継続されていることを表しています。
Emacsは、現在編集中の位置が見えるように行をスクロールします。画面
の右あるいは左の端にある'\'記号は、その方向に行がまだ続いているこ
とを表しています。
これは、文章で説明するより実際にやった方がよく判るでしょう。
>> 先ほど入力した、継続された行の上にカーソルをもっていき、C-d でテ
キストを削除して、テキストが一行に収まるようにしてみなさい。継続
を表す'\'記号は消えましたね。
>> カーソルを行の先頭に移動し、<Delete> を入力しなさい。これはその行
の直前の行句切りを削除するので、その行が前の行とつながってしまい
ます。つながった行が画面の幅より長くなると、継続の表示がされるで
しょう。
>> <Return> を押して、もう一度行句切りを挿入しなさい。
Emacsのほとんどのコマンドは、繰り返しの回数を与えることができます。こ
のことは、文字の挿入についても当てはまります。
>> C-u 8 * と入力してみなさい。どうなりましたか。
二つの行の間に空白行を作りたい場合には、二番目の行の先頭に行き、C-o を
入力します。
>> 適当な行の先頭に行き、そこで C-o を入力してみなさい。
これで、Emacsで、テキストを入力し、また間違いを修正するもっとも基本的
な方法を学んだことになります。文字と同じ様に、単語や行も削除することができ
ます。削除操作について要約すると次のようになります。
<Delete> カーソルの直前の文字を削除
C-d カーソルのある文字を削除
ESC <Delete> カーソルの直前の単語を削除
ESC d カーソル位置以降にある単語を削除
C-k カーソル位置から行末までを削除
何かを削除した後で、それを元に戻したくなることがあります。Emacsは、一
文字よりも大きい単位で削除を行った時には、削除した内容を保存しておきます。
元に戻すには、C-y を使います。注意したいのは、C-y を削除を行った場所だけで
はなく、どこにでも出来ることです。C-y は、保存されたテキストを現在カーソル
のある場所に挿入するためのコマンドですから、これを使ってテキストの移動を行
うことができます。
削除を行うコマンドには、"Delete" コマンドと、"Kill" コマンドとがありま
す。"Kill" コマンドでは削除されたものは保存されますが、"Delete" コマンドで
は保存されません。ただし、繰り返し回数が与えられると、保存されます。
>> C-n を2回ほどタイプして、画面の適当な場所に移動しなさい。そして、
C-k で、その行を削除しなさい。
一回目の C-k でその行の内容が削除され、もう一度 C-k を入力すると、その
行自身が削除されます。もし、C-k に繰り返し回数を指定した場合には、その回数
だけの行が(内容と行自身とが同時に)削除されます。
今削除されたテキストは、保存されているので、それを取り出すことができま
す。そのためには、C-y をタイプします。
>> C-y を試してみなさい。
C-k を何度も続けて行うと、削除されるテキストは、まとめて保存され、C-y
で、その全てが取り出されます。
>> C-k を何度もタイプしてみなさい。
>> テキストを取り出すには、C-y です。カーソルを数行下に移動させ、も
う一度 C-y をタイプしてみなさい。これでテキストのコピーができるわ
けです。
現在何かのテキストが保存されていて、さらに他のテキストを削除するとどう
なるでしょうか。C-y は、もっとも最近削除されたものを取り出します。
>> 行を削除し、カーソルを移動させ、別の行を削除しなさい。C-y を行う
と、2番目の行が得られます。
取り消し(UNDO)
==============
いつでも、テキストを変更したけれども、それをもとに戻したいときはC-x u
で直ります。普通は間違えたコマンドを無効にする働きをします。繰り返してUNDO
を行なおうとする時は、何度もそのコマンドを行なえば出来るようになっています。
>> この行をC-kで消して下さい。そして、C-x uで戻して下さい。
C-_は、UNDOを行なう、もう一つのコマンドです。機能は、C-x uと同じです。
C-_やC-x uにUNDOの回数を、与えることが出来ます。
ファイル
========
テキストへの変更を永久的にするためには、それをファイルに保存しなければ
なりません。保存されないと、ほどこした変更は、Emacsを終了すると同時に失われ
てしまいます。
いま見ているファイルに対して、あなたの編集を行ったものを書き込みます。
いま見ているファイルとは、簡単にいえば編集しているファイル自体のことです。
あなたがファイルをセーブ(保存する)するまで、今までの変更は編集してい
るファイルに書き込まれる事はありません。それは、あなたがそのように行いたく
ないのに、途中まで変更を加えたものが勝手に書き込まれるような事がないように
です。
セーブを行った後でさえ変更したものが間違っていた時のためにEmacsは名前
を変えてオリジナルのファイルを残します。
備考: また、Emacsは不測の事態に対し、一定のタイミングごとに自動的
に編集しているファイルの内容を名前を変えたファイルにセーブし
ます。これによって、万一の場合は行ったの変更に対し最小限の被
害で済むようになっています。
画面の下の方を見ると、このような感じでモードラインが表示されていると思
います。
(例) [--]J:--**-Mule: MULE.tut (Fundamental) ---55%--------------
このEmacsチュートリアルのコピーはMULE.tutと呼ばれています。ファイルを
ファインド(ファイルを見つけてバッファに読み込むこと)すると、MULE.tutの部
分に表示されます。例えば、new-fileという名前のファイルをファインドしたなら
ば、"Mule: new-file"というモードラインになるでしょう。
注意: モードラインについては後ほど説明します。少しお待ちを。
ファイルをファインドしたり、セーブしたりするコマンドは、これまでのもの
とは違い、2つの文字からなっています。C-x に続いて入力する文字が、ファイル
に対して行う操作を表します。
もう一つこれまでのものと違う点は、ファインドの時、ファイル名をEmacsに
問われます。このことを、端末から引数を読み込んでくるコマンドと言っています。
注意: この場合はファイル名です。
C-x C-f ファイルを見つける(ファインドする)
Emacsはファイル名を聞いてきます。それは、画面の下の行に現れます。ファ
イル名を指定している部分は、ミニバッファと呼ばれるものです。ミニバッファは
この様な使われ方をします。ファイル名に続いて、リターンキーを押すと、ミニバ
ッファに表示されていた内容はもう必要ではなくなるので消えてしまいます。
>> C-x C-fとタイプした後にC-gとタイプして下さい。ミニバッファの内容
を取り消し、また、C-x C-fコマンドも取り消します。と言う訳で、何も
ファイルを見つけるようなことはしません。
今度はファイルをセーブしてみましょう。今までの変更を保存するためには次
のようなコマンドを使います。
C-x C-s ファイルをセーブする
Emacsの内容はファイルに書き出されます。セーブする時、オリジナルの
ファイルは新しい名前をつけられて残されているので内容は失われません。そ
の新しい名前はオリジナルのファイルの名前に'~'をつけたものです。
セーブが終わると、Emacsはセーブしたファイルの名前を表示します。
>> C-x C-sとタイプしてチュートリアルのコピーをセーブして下さい。その
時、画面の下の方に"Wrote ...../MULE.tut"と表示されます。
新しいファイルを作る時、あたかも以前からあったファイルをファインドする
ようなフリをします。そうして、そのファインドしたファイルにタイプしていきま
す。
ファイルをセーブしようとした時に初めて、Emacsは今まで編集していた内容
をファイルの中に書き込みます。
バッファ
========
もし、2番目のファイルを C-x C-f で取り出すと、1番目のファイルはEmacs
内部に残ります。Emacs内部にあるファイルからテキストを読み込んで保存している
ものはバッファと呼ばれます。ファイルの取り出しは、Emacs内部に新しいバッファ
を作ります。
Emacsの中に保存しているバッファのリストを見るには、次のようにタイプし
ます。
C-x C-b
>> C-x C-b とタイプしなさい。それぞれのバッファがどのように名前を持
っているか、そして、どのようなファイル名をつけているのか観察しな
さい。
バッファにはファイルと一致ないものもあります。たとえば、
"*Buffer List*" というファイルはありません。これは C-x C-b によって作られ
たバッファリストに対してのバッファです。
あなたが見ているEmacsウィンドウ内にある、どんなテキストでも、いずれか
のバッファ内にあります。
>> バッファリストを消すため C-x 1 とタイプしなさい。
もし、あるファイルのテキストに変更を行なってから、他のファイルを取り出
したとしたら、最初のファイルはセーブされていません。その変更はEmacs内部のフ
ァイルと対応するバッファの中だけに行なわれています。
2番目のファイルに対応するバッファを作ったり、エディットしたりしても、
1番目のファイルに対応するバッファには何も影響を与えません。これはとても使
い易く、また、1番目のファイルに対応するバッファを取っておくために役に立つ
方法です。
C-x C-s でバッファをセーブするために C-x C-f でバッファを切り替えるの
は厄介です。そこで次のコマンドを使います。
C-x s 現在あるバッファをセーブする。
C-x s は内容を変えたバッファ全てをファイルにセーブします。この時、ひと
つひとつの(セーブされるべき)バッファに対して、セーブするか、しないかをyかn
で問われます。この表示は画面の下の行に表示されます。例えば、このようにです。
Save file /usr/private/yours/MULE.tut? (y or n)
コマンドの拡張
==============
エディタには、コントロール・キーやメタ・キーで入力できるものよりもずっ
と多くのコマンドがあります。これらを扱うために、拡張(eXtend)コマンドを
使います。それには、以下の2つの種類があります。
C-x 文字による拡張。続けて一文字を入力します。
ESC x 名前による拡張。続けてコマンドの名前を入力します。
これらは一般に、便利だけれども、これまで見てきたものほど頻繁には用いら
れないコマンドのためのものです。C-x C-f (ファインド)や C-x C-s(セーブ)
はこの仲間です。他に、C-x C-c(エディタの終了)もそうです。
C-zはEmacsを抜けるのに良く使われる方法です。Emacsを終了することなく、
一旦、cshのレベルに戻るには一番良い方法と言えるでしょう。C-zを行なわれても
Emacsはストップしているだけで、内容が破壊されるということはありません。
注意: ただしX-windowで行なっている場合、もしくは使用しているシェル
がshの時は、この限りではありません。
C-x コマンドは、たくさんあります。すでに学んだものは以下のものです。
C-x C-f ファイルの編集(Find)
C-x C-s ファイルの保存(Save)
C-x C-b バッファリストの表示
C-x C-c エディタを終了する。ファイルの保存は、自動的には行われませ
ん。しかし、もしファイルが変更されていれば、ファイルの保存
をするのかどうかを聞いてきます。保存して終了する普通の方法
は、C-x C-s C-x C-c とすることです。
名前による拡張コマンドには、あまり使われないものや、特定のモードでしか
使わないものなどがあります。例として、"command-apropos" をとりあげます。こ
のコマンドはキーワードを入力させ、それにマッチする全てのコマンドの名前を表
示します。ESC x とタイプすると、スクリーンの下に "M-x" が表示されます。これ
に対して、実行するコマンドの名前(今の場合、"command-apropos")を入力します。
"command-a" まで入力した後スペースを入れれば、後の部分は自動的に補われます。
この後、キーワードを聞かれますから、知りたい文字列をタイプします。なお、キー
ワードを入れないと、全てのコマンドが表示されます。
>> ESC x をタイプし、続けて、"command-apropos<Return>" あるいは
"command-a<Space><Return>" とタイプします。次に、"kanji<Return>"
とタイプします。
現れた「ウィンドウ」を消すには、C-x 1 とタイプします。
モードライン
============
もしゆっくりとコマンドを打ったならば、画面の下底のエコーエリアと呼ばれ
る場所に打ったものが表示されます。エコーエリアは画面の1ばん下の行です。その
すぐ上の行は、モードラインと呼ばれています。モードラインはこんな風に表示さ
れているでしょう。
[--]J:--**-Mule: MULE.tut (Fundamental) ---NN%--------------
注意: NN%のNNは数字が入っています。あなたが使っているEmacsのモー
ドラインと違うかも知れないけど、慌てないように。例えば、時間
やuptimeが表示されているのは、display-timeという機能が動いて
いるからです。
この行によって多くの有用な情報が得られます。
今、あなたが見ているファイル名を表示しています。NN%は現在スクリーン上
にファイルの一番上から何パーセント目が表示されているかを示しています。ファ
イルの一番最初を表示しているならば、--Top--と表示されてます。ファイルの一番
最後を表示しているならば、--Bot--と表示されます。画面の中にファイルの全てが
表示されているならば、--All--と表示されます。
モードラインの小括弧の中は、今どんなモードに入っているかを示しています。
現在は、デフォルトのFundamentalに入っています。これもメジャーモードの一例で
す。
EmacsはLisp modeやText modeのようなことなるプログラム言語やテキストに
対してエディットを行うための幾つかのメジャーモードを持っています。どんな時
でも必ずいずれかのメジャーモードの状態になっています。
それぞれのメジャーモードは幾つかのコマンドを全く違う振る舞いにしてしま
います。例を上げてみましょう。プログラムの中にコメントを作るコマンドがあり
ます。コメントをどの様な形式にするかは、各プログラム言語によって違いますが、
それぞれのメジャーモードは、きちんと入れてくれます。
それぞれのメジャーモードに入るためのコマンドはモード名の拡張されたもの
になっています。例えば、M-x fundamental-modeはFundamentalに入るためのもので
す。
もし、英語をエディットするならば、Text modeに入ります。
>> M-x text-mode <Retuen>とタイプしなさい。
現在のメジャーモードについてのドキュメントを見たい時は、C-h mとタイプ
します。
>> C-h m を使ってText modeとFundamental modeの違いを調べなさい。
>> C-x 1でドキュメントを画面から消しなさい。
左端の '[--]' は現在のキー入力のモードを示しています。[--] の時には
英語アルファベットがそのまま入力できます。入力モードについての詳しい説明は
「たまご」のマニュアルを調べて下さい。
そのすぐ右にはコード体系 (coding-system) に関するフラグの状態が表
示されています。Mule は、ファイル入出力、入力、画面出力について、それぞれ独
立にコード体系を指定させることが出来ますが、通常はファイル用のコード体系の
ニーモニックのみ表示しています。
>> モードライン上に"J:","S:",もしくは "E:"が表示されているかどうか確
認しなさい。
最初の一文字がコード体系のニーモニック、次の ':' が現在英語以外の文字
(日本語、中国語など)もちゃんと表示するということを示しています。JはJUNET
で使われている JIS コード、S は Shift-JIS、E は日本語EUC を示しています。
多国語の表示の有無は C-x C-k t で ON/OFFのトグルができます。
次の例は、一度多国語表示をOFFしてから、もう一度ONを行ってみます。
>> C-x C-k tを2度行いなさい。
入力モードがJISコードの設定となっている時、もしあなたの使っている端末
にメタ・キーが付いているなら、エスケープ・キーの代わりにそれを使うことが出
来ます。その時、メタ・キーの使い方はコントロール・キーと同様に押しながら文
字をタイプします。ESC <文字>もM-<文字>も同じ働きをします。今までの説明でESC
<文字>と行なっていたところが、M-<文字>となります。注意しなければならないの
は、シフトJISやEUCコードの時は使用できません。
コード体系のの切り替えは、各々のバッファに対してのみ有効です。それぞれ
の、コード体系指定については、C-h a coding-system <Return>で見ること
が出来ます。
>> C-h a coding-system <Return>で出てくるドキュメント中の、
set-display-coding-system, set-file-coding-system,
set-process-coding-system の説明を読みなさい。
検索
=====
文字列を、ファイル内で、前方又は後方に、探す事ができます。検索を始める
コマンドは、カーソル位置以降を検索するならば C-s、カーソル位置以前ならば
C-r です。C-s をタイプすると、エコーエリアに "I-search:"という文字列がプロ
ンプトとして表示されます。ESCを押すと、終了できます。
>> C-sで検索が始まります。それから、ゆっくりと1文字ずつ"cursor"とい
う単語を入力します。1文字入力するごとに、カーソルは、どんな動き
をしますか?
>> もう1度 C-s をタイプすると、次の"cursor"を見つけられます。
>> <Delete>を4回入力して、カーソルの動きを見なさい。
>> ESCを押して、終了します。
探したい文字列をタイプ中でも、タイプした文字部分だけで、検索を始めます。
次の文字を探すには、再びC-sをタイプします。もし、文字列が存在しなかったら、
メッセージが表示されます。C-g でも終了できます。
検索実行中に<Delete>を入力すると、検索文字列の1番後ろの文字が消えます。
そして、カーソルは、前回の位置に戻ります。たとえば、"cu"とタイプして、最初
の"cu"の位置にカーソルが動いたとします。ここで<Delete>を入力すると、サーチ
ラインの'u'が消え、カーソルは、'u'をタイプする前に、カーソルがあった'c'の位
置に、移動します。
検索実行中に、C-s や C-r 以外のコントロール文字をタイプすると、検索は
終了します。
C-s は、現在のカーソル位置以降に出てくる検索文字列を探します。もし、前
の方を探したかったら、C-r をタイプすることで、逆方向検索ができます。C-s と
C-r は、検索の方向が反対なだけで、全て同じ働きをします。
リカーシブ エディティング レベル
ときどき、(不本意に)リカーシブ エディティング レベルと呼ばれる状態に
入ることがあります。メジャーモードの小括弧'()'の回りを中括弧'[]'で囲んだも
のがモードライン上に表示されます。例えば、(Fundamental)と表示される代わりに
[(Fundamental)]のようになります。
注意: ここではリカーシブ エディティング レベル自体については説明し
ません。
リカーシブ エディティング レベルから抜けでるためには、M-x top-level
<Return>とタイプします。
>> 試してみて下さい。スクリーンの底に"Back to top level"と表示されま
す。
本当は、この試みが行われた時は、すでにトップレベルにいたのです。M-x
top-levelは、何も影響を与えていません。
リカーシブ エディティング レベルから抜け出るのに対してはC-gは効きませ
ん。
ヘルプ
======
Emacsには、たくさんの役に立つ機能があり、ここで、すべてを説明すること
は、不可能です。しかし、まだ知らない多くの機能を学ぶためには、<HELP>と呼ば
れる C-h をタイプすることで、たくさんの情報を手に入れることができます。
使い方は、C-h をタイプし、続いて必要なオプションを1文字タイプします。
わからなければ、C-h ? とタイプすると、どんなオプションがあるのか表示されま
す。もし、C-h をタイプしてから気が変わったら、C-g をタイプすれば、取り消す
ことができます。
最も基本的なものは、C-h c です。これに続いてキーを入力すると、そのコマ
ンドについての短い説明を表示します。
>> C-h c C-p とタイプしてみなさい。"C-p runs the command previous-
line"のようなメッセージが表示されるはずです。
見たことはあるが、覚えてはいないコマンドも思い出せるのです。C-x C-s の
ような複数で1つのコマンドもC-h c の後ろに続けられます。
もっと詳しく知りたかったら、c の代わりに k を指定します。
>> C-h k C-p とタイプしてみなさい。
Emacsのウィンドウに、コマンドの名前と機能が表示されます。読み終えたら、
C-x 1 とタイプすると、抜けられます。
他にも役に立つオプションがあります。
C-h f ファンクション名を入力すると、ファンクションを表示します。
>> C-h f previous-line をタイプし、<Return> を押しなさい。C-p コマン
ドを実行するファンクションについての情報を表示します。
C-h a キーワードを入力すると、名前にそのキーワードを含む、全てのコ
マンドを表示します。これらのコマンドはすべてESC x で実行でき
ます。
>> C-h a file とタイプし、<Return>を押しなさい。名前に"file"という文
字を持つ全てのコマンドを表示します。また、find-file や write-file
という名の C-x C-f や C-x C-w のようなコマンドも表示されます。
おわりに
========
忘れずに: 終了するには、C-x C-c とします。
この入門編は、まったくの初心者にもわかりやすいようにと意図しています。
ですから、もし何かわかりにくい点があったなら、一人で愚痴を言うのではなく、
文句をつけて下さい。
もし、EMACS を何日かでも使ってみれば、それをやめてしまうことなどできな
くなるでしょう。最初は戸惑うかも知れません。しかし、それはどんなエディタで
も同様です。EMACS のように、非常に多くのことができる場合には特にそうでしょ
う。そして、EMACS では、実際、何でもできるのですから。
謝辞
=====
この文書は、JUNETで流された"日本語 MicroEMACS (kemacs) 入門編" をGNUE-
macs (Nemacs)のTutorial用に書き換えたものです。
Jonathan Payne による "JOVE Tutorial" (19 January 86) を変更したもので
あり、それはもともとは、CCA-UNIXのSteve Zimmerman によって変更された、
MIT の "Teach-Emacs" 入門編 (31 October 85) を(さらに)変更したもので
した。
Update - February 1986 by Dana Hoggatt.
Update - December 1986 by Kim Leburg.
Update/Translate - July 1987 by SANETO Takanori
特別な謝辞
==========
最初にこれの日本語訳を作られた、SANETO Takanoriさん。この文章はGMW +
Wnn + Nemacsを使って書きました。そのような素晴らしいプログラムを作った方々
へ感謝の意を表したいと思います。翻訳とか、入力とかを色々と手伝ってくれた、
藤原祥子さん、どうもありがとう。
誤訳、嘘、その他、の文責は、以下の者にあります。
鈴木裕信 hironobu@sra.co.jp
Update/Add - December 1987 by Hironobu Suzuki
Update/Add - November 1989 by Ken'ichi Handa
Update/Add - January 1990 by Shigeki Yoshida
Update/Add - March 1992 by Kenichi HANDA