emacs の使い方

Menu Menu

もう古いです。 (2006/6)


emacsってなに?

Emacsとは、英語や日本語、あるいは中国語やフランス語などの文章をを編集することができるアプリケーションです。多言語エディタともいいます。

レポートを書いたり、プログラムを書いたりする場合は、このエディタを使うことになります。


emacsの起動の仕方

これには4通りの起動の仕方があります。
	1. アイコンボタンを使う
	2. コマンドラインからX-Window上に起動する
	3. コマンドラインからxterm上に起動する
	4. emacsclinetを使う


1. アイコンボタンを使う

X-Windowの下の方に四角いボタンが並んでいます。ここにEmacsというのがあります。ここを「一回」クリックすることによりEmacsのウィンドウが開きます。ダブルクリックすると二つ開いてしまいますので気を付けましょう。


2. コマンドラインからX-Window上に起動する

xterm上で、
	% emacs filename

とするとfilenameを編集することができます。この時に、新しいemacsのウィンドウが開いてしまいます。しかも、そのコマンドラインは使えなくなってしまいます。したがって、
	% emacs filename &

とするか、アイコンボタンを使う方が合理的です。


3. コマンドラインからxterm上に起動する

xtermを使うなら、
	% emacs -w filename

とすることにより新しいウィンドウを開くことなくemacsを使うことができます。


4. emacsclinetを使う

既に開いているemacsがあるのに、新しく
	% emacs filename

とするのは、ちょっと変ですよね。この場合は、emacsclient という機能を使うこともできます。emacs のウィンドウで、
	ESC-X server SPC start Enter

とします。(エスケープキーとX、serverとスペース、start と順に入力する)

それから、

	% emacsclinet filename

とすると、server-start したemacs上にfilename を開くことができます。編集し終ったら C-X # とします。


emacsの終了の方法

C-X C-C (コントロールを押しながらX、そして、コントロールを押しながらC)とします。いろいろ聞いているかも知れませんが、だいたいはyesと入力すれば良いはずです。


emacs はなるべく落さない

Emacs と呼ばれるエディタは複数のファイルを同時に編集したり、複数の画面を一度に扱ったりする機能があります。なので、一度、立ち上げたら、あまり落さないのが普通。C-X C-F で新しいファイルを開けたり、C-X C-B でいま開けているファイルの一覧を見ることができます。


他のホストから使うには?

pw005 から pw017 を使いたいとかありますよね。その時は、

	%pw005 ssh pw017 -X emacs


基本的な使い方を勉強するには...

まあ、マウスとカーソルキーを使って、文字を入力します。文字を消すには、Delete を使えば良いのです。ファイルを開く時には、

	C-X C-F filename

書き出す時には、
	C-X C-S filename

とします。

しかし、一度、チュートリアルを試して見て下さい。Emacs/Emacsの持つ機能に驚くはずです。英語のチュートリアルを試すには、

	C-X help SPC for SPC help Enter t

日本語のチュートリアルを試すには、
	C-X help-with-tutorial-for-emacs

そして、Language: に
	Japanese

とします。


日本語 GNUEMACS(Emacs) 入門編

注意: この入門編は、「習うより慣れろ」をモットーに作成されています。">>" から始まる行は、その時何をすべきかを指示しています。

Emacs のコマンドを入力するときには、一般的にコントロール・キー(キー・トップに、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によってテキストであるとみなされ、そのまま挿入されます。行の終わりは改行文字で表され、これを入力するには をタイプします。

直前に入力した文字を削除するには、<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:--**-Emacs: MULE.tut     (Fundamental) ---55%--------------

このEmacsチュートリアルのコピーはMULE.tutと呼ばれています。ファイルをファインド(ファイルを見つけてバッファに読み込むこと)すると、MULE.tutの部分に表示されます。例えば、new-fileという名前のファイルをファインドしたならば、"Emacs: 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:--**-Emacs: 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) に関するフラグの状態が表示されています。Emacs は、ファイル入出力、入力、画面出力について、それぞれ独立にコード体系を指定させることが出来ますが、通常はファイル用のコード体系のニーモニックのみ表示しています。

       >> モードライン上に"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 とタイプします。

       >> 試してみて下さい。スクリーンの底に"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は琉大では使えません。M-X help-for-help とします)

最も基本的なものは、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

Shinji KONO / Tue May 28 08:30:36 2013