Mule(ng,emacs)の使い方(2)

共通科目情報処理(実習)、国際総合学類対象、1997年01月24日

                                       電子・情報工学系
                                       新城 靖
                                       <yas@is.tsukuba.ac.jp>

このページは、次の URL にあります。
http://www.hlla.is.tsukuba.ac.jp/~yas/ipe/kokusai2-enshu-1996/1997-01-24 /mule-2.html
あるいは、次のページから手繰っていくこともできます。
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/~yshinjo
http://www.ipe.tsukuba.ac.jp

■Muleのバッファ

Mule (emacs, ng) では、ファイルを編集(修正)する時には、直接ファイル の内容(ディスクの内容)を書き換えているのではありません。そうではなく、 一度、「バッファ(buffer)」と呼ばれるメモリに読み込み、その内容を書き 換えることになります。

バッファとは、一般には、速度が違う装置の間でデータを転送する時に、速度 の調整をするために一時的にデータを蓄えるためのメモリです。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)
現在のウィンドウを、別のバッファの表示のために切り替えます。 このキーを押すとバッファ名を要求してきます。
----------------------------------------------------------------------
Switch to buffer: (default バッファ名) [←]
----------------------------------------------------------------------
表示されている候補(default,省略時)でよければ、単にリターンを打ちます。 他のバッファにしたい時には、バッファの名前(C-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の補完機能

注意:この部分は、Mule と emacs で有効です。ng については、画面の表示 の方法に若干の違いがあります。後で説明します。

Mule (emacs) では、いろいろな場所で補完機能を使うことができます。 たとえば、C-x C-f (find-file)で試して見ます。 C-x C-f と打つと、ファイル名を打ち込んで、リターンを打つと、 そのファイルを編集することができます。ここでは、ファイル名を全部手で打 つのではなく、補完機能を使って打ち込むことをしてみます。

ここでは、~/News/ipe.question.kokusa-2 というファイルを探す (find-file)してみることにします。 まず、ホーム・ディレクトリで引数を与えないで ng を実行します。(注意: cd コマンド を使った場合、動きが違うことがあります。)

% mule [←]
C-x C-f と打ちます。すると、一番下の行が次のようになります。
Find file: ~/[]
ここで、まず N と一文字だけ打ってみます。
Find file: ~/N[]
次に、スペース・キーを打ちます。すると、次のように残りの esを補ってくれます。
Find file: ~/News/[]
次に、またスペース・キーを打ちます。今度は、ファイルの一覧を表示してく れます。
----------------------------------------------------------------------



 [--]E:-----Mule: *scratch*           (Lisp Interaction)--All------------------
 Possible completions are:
 ../                                ./
 ipe.question.kokusa-2




 [--]E:-----Mule:  *Completions*      (Fundamental)--All-----------------------
 Find file: ~/News/
----------------------------------------------------------------------
このように、スペース・キーを打った時に複数の補完候補があった場合には、 候補のリストを表示してくれます。ここで、iと打ってスペース・キー を打つと、1単語だけ補完してくれます。
Find file: ~/News/ipe.[]
さらにスペース・キーを打つたびに、どんどん補完してくれます。
Find file: ~/News/ipe.question.[]
最後まで補完された場合には、スペース・キーを打っても変化しなくなります。
Find file: ~/News/ipe.question.kokusa-2[]
結果として、このように長いファイル名も、わずかに N, i, スペース・キーだけで指定できます。

C-x C-fでは、スペース・キーの代りに、タブ・ キー(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) C-x bでも使えます。他にも Mule では、いた るところで使えます。

■ngの補完機能

ng の補完機能は、Mule のものとほとんど同じです。違いは、C-x C-f (find-file) などで、~/ が表示されない所です。

Mule:

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

ng:

-----Ng: *scratch*                        (-EE:fundamental)-------------------
 Find file:
(注意:cd コマンド を使った場合、動きが違うことがあります。)

★練習問題

C-x C-f (find-file)で、~/www/index.html というファイルを編集するには、どうすればいいか。

■mnewsの補完機能

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

■cshの補完機能

コマンドモードで「% 」と表示して、コマンド名が打ち込まれ るのを待っているプログラムは、csh (C Shell) というプログラムです。csh にも補完機能があります。それを使うには、まず、次のような呪文を唱えます。

% set filec [←]
% []
これで、補完が使える状態になります。補完を行わせるには、スペース・キー ではなく、ESCキーを使います。補完の候補を表示させるには、普通 は、^D (control-D)です。(まれに、^Dではなく、別のキー に割り当てられていることもあります。)


[Netscape] [HTML] [HTML Ref] [Netscapeしおり] [WWW検索] [WWW/links]
[Mule(1)] [Mule(2)] [Mule/egg] [cwd-home] [file-dir]
↑[国際2班] ←[1月17日] ・[1月24日] →[1月31日] [課題一覧]
Last updated: 1997/01/23 21:55:10
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>