5.5 テキスト・エディタ mule の使い方

情報処理実習用手引き(システム解説編)
第5章 インターネットの利用
5.5 テキスト・エディタ mule の使い方
                                       電子・情報工学系
                                       新城 靖
                                       <yas@is.tsukuba.ac.jp>

このページは、次の URL にあります。
http://www.hlla.is.tsukuba.ac.jp/~yas/ipe/tebiki-1997/5-inet/5-mule.html
http://www.ipe.tsukuba.ac.jp/~yshinjo/tebiki-1997/5-inet/5-mule.html
あるいは、次のページから手繰っていくこともできます。
http://www.ipe.tsukuba.ac.jp/~yshinjo/
http://www.hlla.is.tsukuba.ac.jp/~yas/ipe/
http://www.hlla.is.tsukuba.ac.jp/~yas/index-j.html
http://www.ipe.tsukuba.ac.jp/

■emacs と mule

テキスト・エディタ、あるいは単にエディタ(editor)とは、テキスト・ファイ ルを作ったり内容を書き替えたりするためのコマンド(プログラム)である。 mnews で電子メールの本文を書く時には、標準では、エディタとして mule (ミュール)が実行される。mule は、emacs(イーマックス)というエディタ の機能が進化して、多国語対応(multilingual)になったものである。mule の 前には、emacs を日本語対応にした nemacs がよく使われていた。

■実行

mule は、電子メールやネットワーク・ニュースの記事を書く時に自動的に実 行される。ファイルを作ったり、ファイルの内容を書き替えたい時には、次の ように打つ。

% mule ファイル名 [←]

このように、引数として、作成したいファイルや書き換えたいファイルの名前 を与える。

Xウィンドウが使える状態で mule を実行すると、実行したウィンドウではな く、新たに別にウィンドウを開く。

図5.5.1 X Window 上に開かれた mule の画面

図5.5.1 X Window 上に開かれた mule の画面

この場合、いくつかの機能を、キーボードからコントロール・キーを打つので はなく、メニューからマウスで選択することで利用することができる。スクロー ル・バーを使って、長いデータの表示位置を変えることができる。さらに、マ ウスでカーソルの移動やコピー&ペーストを行うこともできる。

Xウィンドウ上に mule の画面を表示させると、このようにより使い安くなる。 しかし、場合によっては、Telnet 同じように、同じウィンドウの中で mule を実行したいことがある。その時には、mule を実行する時に「-nw」(no windowの意味)というオプションを付けて実行する。

% mule -nw ファイル名 [←]

■保存と終了

mule を終了するには、「C-x C-c」と打つ。「C-x」とは、 コントロール・キー(control, ctrl)を押しながら、x キー を押すという意味である。「C-c」は、コントロール・キーを押しな がら、c キーを押すという意味である。「C-x C-c」と打 つ時には、左の小指でまずコントロール・キーを押し続けながら、 x キーを一度押して離し、c キーを押して離し、 コントロール・キーを離すとよい。

普通、終了の前に C-x C-s で編集中の内容をファイルへ保存する。 しかし、時には修正した結果を保存しないで終了したいことがある。その時に は、mule 、次のように聞いてくる。

----------------------------------------------------------------------
Save file /home1/s976543/dir1/file1? (y or n)
----------------------------------------------------------------------

保存(save)する時には、「y」を1文字、保存しない時には、 「n」を押す。もし、ここで n を押した場合、mule は、 さらに次のように聞いてくる。

----------------------------------------------------------------------
Modified buffers exist; exit anyway? (yes or no)
----------------------------------------------------------------------

終了したい時には、今度は「yes [←] 」と打つ。

ここで、バッファ(buffer)とは、mule (emacs)の独自の用語であ る。バッファとは、mule を終了すると消えてしまうメモリと考えるとよい。 mule は、保存しないで終了する時には、念には念を入れて確認してくるわけ である。しかも、保存するかしないかの時には、y, n と 1文字だけ打てば良かったのが、保存しないで終了する時には、 yes, no と、複数文字を打ち、さらにリターン・キーまで 打たなければならないようになっている。

■文字の打ち込みと操作のためのキー

mule では、キーボードから打込んだ普通の文字(アルファベット、数字、記 号、漢字)は、そのまま画面(バッファ)に書き込まれる。(これに対して、 vi というエディタでは、「これから文字を打つ」という命令を打った後で文 字を打つ。)

文字の打ち込み以外の操作をしたいときには、コントール・キーESC キー(Escape,エスケープ)を使う。操作には、既に説明したよう に、保存、終了がある。その他に、カーソルの移動、文字の消去、カット&ペー スト、文字列の検索、文字列の置き換えがある。

mule で、文字の打ち込み以外の操作をするためのキーには、次のようなもの がある。

C-〜
コントロール・キーを押しながら、何か他のキー(アルファベットや空白、@ など)を打つ。
M-〜 あるいは、ESC 〜
ESC キーを打った後に、何か他のキー(アルファベットや空白、@ 、コントロー ル・キーを押しながらも含む)を打つ。全部で普通2回キーを打つ(もっと多 くなることもある)。
C-x 〜
コントロール-xを打った後に何か他のキー何か他のキー(アルファベットや 空白、@ 、コントロール・キーを押しながらも含む)を打つ。全部で普通2回 キーを打つ(もっと多くなることもある)。
ESC x 機能名 (表記は、M-x 機能名)
機能に付いている名前でその機能を呼び出す。

■困った時には C-g

何か mule がおかしな状態になった時には、C-g を数回押す。

たとえば、間違って文字を消した時のように、間違って操作ををした時には、 undo 機能を使って、取り消すことができる。undo 機能を使うには、 C-_ または、C-x u と打つ。操作には、文字を消す以外に、 文字を打ち込むということも含まれる。

■インクリメンタル・サーチ

mule では、C-s を推すと、バッファの中の文字列を検索して、見つ かった場所にカーソルを移動する。このとき、キーを押す度に、そこまで打た れた文字を探してカーソルの位置が変わる。この機能は、打つ度に検索をする ことから、インクリメンタル・サーチ(incremental search,isearch)と呼ばれている。

インクリメンタル・サーチを始める時には、C-s と打つ。インクリ メンタル・サーチの途中で、見つけたい文字列が見つかった時には、リターン・ キーを押す。(muleの古い版や、nemacs では、インクリメンタル・サーチを やめたい時には、ESCキーを押す。) 今まで打ち込んだ文字列と同 じ文字列で、次の文字列を探して移動したい時には、C-s を押す。 C-r と打つと、文書の下から上の方向にインクリメンタル・サーチ を行う。途中でインクリメンタル・サーチを中止したくなった時には、 C-gを打つ。すると、カーソルは、インクリメンタル・サーチを始め る前の位置に戻る。

■カット-アンド-ペースト

エディタやワープロでは、カット・アンド・ペースト(cut & paste)という操作がよく使われる。カットとは、文書の一部 を表面上削除し、内部的なメモリに保存することである。ペーストとは、カッ ト操作で保存したものを、文書に挿入することである。カット・アンド・ペー ストとよくにたもので、コピー・アンド・ペースト(copy & paste)というものもある。コピー・アンド・ペーストでは、 操作対象の文書の一部は、内部的なメモリにコピーされ、文書の表面上は、削 除されずに残る。

カット・アンド・ペーストを使うと、次のようなことが可能となる。

mule で、カット・アンド・ペーストを使うには、領域(region) という考え方を使う。領域とは、目に見えないマーク(mark)とカー ソルの間のことである。マークを付けるには、マークを付けたい場所にカーソ ルを移動させ、C-SPC (コントロール-SPACE)C-@ を押 す。その後、カーソルを移動させると、前にマークを付けた所と、カーソルの 間が領域(region)になる。

領域をカットする操作は、C-w である。領域をコピーする操作は、 ESC w である。ペーストは、C-y である。

■自動行折返し

電子メールでは、漢字で1行も30文字から35文字(英数字の場合は、60文 字〜70文字)で折り返す習慣がある。mule には fill-paragraph と呼ばれる折り返し操作機能がある。この機 能を使うには、次のように打つ。

ESC q

これにより、mule は、 空行で区切られた範囲を段落(パラグラフ)としてみ なして、カーソルがある段落について、1行が漢字で35文字になるように、 折り返す。

折り返す時の1行の文字数を変えることもできる。たとえば、漢字で30文字 (英数字の場合は、60文字)にしたい時には、次のように打つ。

C-u 60 C-x f

その他に、折り返したい位置にカーソルを移動させい、C-x fと打つ 方法もある。

mule の自動折り返しの機能を使うには、次の点に注意して文書を書くとよい。

■Deleteキー

mule で1文字削除は、delete キー(削除キー)を使う。 delete キーとしては、リターン・キー([←])の上に あるもの(backspace)が打ちやすい。このキーは、Telnet の設定によっては、 delete キーとして働く。

図5.5.2  telnetのdeleteキーの扱い(muleの1文字削除のため)

図5.5.2  telnetのdeleteキーの扱い(muleの1文字削除のため)

図5.5.2 は、TelnetSetup メニューで Keyboard setup のウィンドウを開いた様子を示している。ここで、 DEL を選ぶとリターン・キーの上にある削除のためのキー (backspace)が delete として働く。逆に、BS を選ぶと、delete キーが Control-H として働く。

なお、どうしても左の1文字削除がうまくいかない時には、次のようにする。

  1. 左にカーソルを移動させる(←かC-b)
  2. カーソル上の1文字削除のための C-d を打つ。

■自習機能(tutorial)

mule には、自習機能(tutorial)が付いている。それを利用するには、まず、 次のように、 mule を引数なしで実行する。

% mule [←]

すると、画面に、どのような操作をすれば、自習機能(tutorial) が使えるかが表示される。

図5.5.3  muleの自習機能(引数なしで実行した直後の画面)

図5.5.3 muleの自習機能(引数なしで実行した直後の画面)

この図の例では、C-h t で英語の自習機能を、C-h T で日 本語の自習機能を使うことができることがわかる。どのようなキー操作でチュー トリアルが実行できるかは、設定によって異なる。

自習機能には、英語と日本語の2種類がある。案外、英語の方がわかりやすい かもしれない。というのも、mule の操作、得に、コントロール・キーを使う ものは、英単語を元に名前が付けられているからである。

■info機能

mule では、「info」と呼ばれている機能を使うと、さまざまな説明を読むこ とができる。「info」を使う方法も、自習機能と同様に、mule を引数無しで 実行すると、最初の画面に表示される。標準では、C-h i である。あるいは、 次のように打つ。

ESC x info

info は、WWW と同じく、一種のハイパーテキストになっている。infoの画面 では、「::」の項目に、詳しい情報が埋め込まれている。読みたい 項目にカーソルを合わせて、「m [←] 」と打つと、その項目が 読める。(カーソルを合わせないで「m 項目名 [←] 」 でもよい。)

以後、同様に m で項目を選んだり、n,p,u で別の項目 に移動したりして説明が読める。infoの画面で使えるキーをまとめる。

n
次の項目へ
p
前の項目へ
u
上のレベルへ
m
下のレベルへ(メニューの選択)
q
infoの終了

■muleのバッファ

mule では、ファイルを編集(修正)する時には、直接ファイルの内容(ディ スクに保存されている)を書き換えているのではない。そうではなく、一度、 「バッファ(buffer)」と呼ばれるメモリにコピーし、バッファ の内容を書き換えることをしている。

バッファとは、一般には、速度が違うハードウェアの間でデータを転送する時 に、速度の調整をするために一時的にデータを蓄えるためのメモリである。 mule では、バッファという単語を特殊な意味で使っている。mule のバッファ は、次のような性質がある。

ファイルと対応関係を持たせることができる。(ファイルと対応関係がないバッ ファもある。)

名前がある。ファイルと対応しているバッファの場合、ファイル名がバッファ の名前になる。

画面に表示することができる。(mule では、画面に表示されていないバッファ もある。)

◆バッファとファイルの操作

よく使われるバッファとファイルの操作には、次のようなものがある。

C-x C-f (find-file)
ファイルが探され、その内容が新たに作られたバッファにコピーされる。mule を実行する時に、引数としてファイル名を与えると、そのファイルに対して自 動的に find-file が実行される。
C-x C-s (save-buffer)
バッファの内容がファイルにコピーされる。
C-x C-w (write-file)
バッファの内容がファイルにコピーされる。この時、find-file で読み込ん だファイルとは別のファイルに書き込むこともできる。
C-x i (insert-file)
カーソルの位置に、ファイルの内容が挿入される。

◆バッファとウィンドウ

mule では、一度に複数のバッファを画面に表示することができる。これを、 mule ではマルチウィンドウ機能と言っている。

良く使われるウィンドウに関する操作には、次のようなものがある。

C-x 2 (split-window-vertically)
現在カーソルがあるウィンドウを2つに分け、その両方に現在と同じバッファ の内容を表示する。
C-x 1 (delete-other-windows)
現在カーソルがあるウィンドウを残して、他のウィンドウを消する。
C-x 0 (delete-window)
現在カーソルがあるウィンドウを残して、他のウィンドウを消する。
C-x o (other-window)
表示されている複数のウィンドウの間で別のウィンドウにカーソルを移動させ る。
C-x C-b (list-buffers)
バッファの一覧を別のウィンドウに表示する。
C-x b (switch-to-buffer)
現在カーソルがあるウィンドウを画面から見えなくし、代わりに別のバッファ を画面に表示する。このキーを押すと、mule は、次のようにバッファ名を要 求する。

----------------------------------------------------------------------
Switch to buffer: (default バッファ名) []
----------------------------------------------------------------------

表示されている候補(default,省略時)でよければ、単にリターンを打つ。他の バッファにしたい時には、バッファの名前(-x C-bで表示されたも の)を打つ。

◆2つのファイルの同時編集

2つのファイルを比較しながら同時に編集する時には、次のようにすると便利 である。

  1. C-x 2で画面を分割する。)
  2. 片方のウィンドウで、C-x C-f で編集したいファイルを読み込む。
  3. C-x o で、別のウィンドウにカーソルを移動させる
  4. C-x C-fで、もう1つの編集したいファイルを読み込む。
  5. 以後、C-x o で、カーソルを切り替えながら、編集する。

画面に編集中のファイルが見えていなくても平気な人は、次のような方法もあ る。

  1. C-x C-f で、編集したいファイルを読み込む。
  2. C-x C-f で、もう1つの編集したいファイルを読み込む。
  3. 以後、C-x b で、表示されるバッファを切り替えながら、編集する。

この方法では、画面が広く使える。

◆バッファ間のカット&ペーストやコピー &ペーストの機能

カット&ペーストやコピー&ペーストの機能は、異なるバッファの間でも有効 である。この機能と、バッファの切り替えの機能を使えば、ファイル全体では なく、ファイルの中のある部分を別のファイルにコピーしたり移動したりする ことができる。

■補完とは

補完(completion)とは、ファイル名や機能名の一部を与えただけで、残りの部 分を人間の代りにプログラムが自動的に補ってくれることである。補完機能を 持っているプログラムには、次のようなものがある。

mule では、いろいろな場所で補完機能を使うことができる。たとえば、 C-x C-f (find-file) では、ファイル名を打ち込んで、リターンを 打つと、そのファイルを編集することができる。ここでは、次の名前のファイ ルを探すことを例として、補完機能の説明をする。

~/News/tsukuba.living

補完機能を使えば、この時ファイル名をすべてキーボードから打たなくてもよ い。

まず、mule を引数無しで実行する。(注意:cd コマンドを使った場合、動き が違うことがある。)

% mule [←]
C-x C-f と打つ。すると、一番下の行が次のようになる。

[--]J_:-----Mule: *scratch* (LispInteraction)--All------------------
Find file: ~/

ここで、まず 「N」 と一文字だけ打つ。 
[--]J_:-----Mule: *scratch* (Lisp Interaction)--All------------------
Find file: ~/N

次に、スペース・キーを打つ。すると、次のように残りの 「es/」を mule が補ってくれる。


[--]J_:-----Mule: *scratch* (Lisp Interaction)--All------------------
Find file: ~/News/

次に、またスペース・キーを打つと、mule は、ファイルの一覧を表示してく れる。


[--]J_:-----Mule: *scratch* (Lisp Interaction)--All------------------
In this buffer, type RET to select the completion near point.
Possible completions are:
../ ./
tsukuba.living

[--]J_:-----Mule: *Completions* (CompletionList)--All------------------
Find file: ~/News/

このように、スペース・キーを打った時に複数の補完候補があった場合には、 候補の候補を表示してくれる。ここで、「t」と打ってスペース・キー を打つと、1単語だけ補完する。


[--]J_:-----Mule: *Completions* (Completion List)--All------------------
Find file: ~/News/tsukuba.

さらにスペース・キーを打つたびに、どんどん補完する。最後まで補完された 場合には、スペース・キーを打っても変化しなくなる。


[--]J_:-----Mule: *Completions* (Completion List)--All------------------
Find file: ~/News/tsukuba.living

結果として、このように長いファイル名も、わずかに N,t, スペース・キーだけで指定できたことにな る。

補完機能には、スペース・キー以外に、タブ・キー(TAB)にもある。 タブ・キーの場合、1単語1単語で止まるのではなく、補完できる所があれば 最後まで補完する。

なお、C-x C-fでは、新しいファイルを作ることもできる。存在しな いファイル名を指定すると、新しいファイルを作るということになる。ここで も補完機能を使って、既にあるファイルの名前の、前半部分は同じで、後半部 分が違う時にも、前半は補完で打ち、後半は補完を使わないで打つという方法 が使える。

補完機能は、C-x C-f (find-file) だけでなく、C-x C-w (write-file) でも、C-x i (insert-file) でも、C-x b (switch-to-buffer)でも使える。他にも mule では、さまざま所で使える。

★練習問題

C-x C-f (find-file)で、~/www/index.htmlというファイル を編集するには、どうすればいいか。うまく補完機能を使うようにしなさい。

◆mnewsの補完機能

mnews でも、記事を保存する時に、既に存在するファイルに追加(アペンド) して保存する時に補完機能を使うことができる。但し、複数の候補がある時に は、スペース・キーを押す度に候補が入れ替わる。

◆tcshの補完機能

サーバにログインした時、「% 」と表示して、コマンド名が打ち込まれるのを 待っているプログラムは、tcsh (T-C Shell, ティ・シー・シェル) というプ ログラムである。tcsh にも補完機能がある。

tcsh の補完を使うには、タブ・キー(tab)、または、^I キー (Control-I)を用いる。補完の候補を表示させるには、^D キー (Control-D)と打つ。

★練習問題

mule の自習機能で mule の使い方を練習しなさい。

★練習問題

ネットワーク・ニュースのフォローアップ(大文字のF)や、電子メー ルによる返事(大文字 R)では、必要最小限の引用をすることが望ま れる。さらに場合によっては、引用する順番を変えることが望まれる。これを、 カット・アンド・ペースト機能を使って行いなさい。

■詳しい情報

この手引きに関して追加情報が、次のWWWページにある。

http://www.ipe.tsukuba.ac.jp/~yshinjo/tebiki/

mule については、次のページにドキュメントがある。

http://selen.c.u-tokyo.ac.jp/FAQ-Mule-jp.html

Muleに関するよくある質問と答え

http://pearl.scphys.kyoto-u.ac.jp/comp-doc/mule/index-j.html

京都大学原子核理論WWWサーバにあるmule に関するドキュメ ント


Last updated: 1998/09/28 04:15:45
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>