共通科目情報処理(実習)、国際総合学類対象、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 (emacs, ng) では、ファイルを編集(修正)する時には、直接ファイル の内容(ディスクの内容)を書き換えているのではありません。そうではなく、 一度、「バッファ(buffer)」と呼ばれるメモリに読み込み、その内容を書き 換えることになります。
バッファとは、一般には、速度が違う装置の間でデータを転送する時に、速度 の調整をするために一時的にデータを蓄えるためのメモリです。Mule では、 バッファを特殊な意味で使っています。Mule のバッファは、次のような性質 があります。
表示されている候補(default,省略時)でよければ、単にリターンを打ちます。 他のバッファにしたい時には、バッファの名前(C-x C-bで表示され たもの)を打ちます。---------------------------------------------------------------------- Switch to buffer: (default バッファ名)----------------------------------------------------------------------
カット&ペーストや コピー&ペーストの機能 は、複数のバッファの間でも有効です。この機能と、バッファの切り替えの機 能を使えば、ファイル全体ではなく、ファイルの中のある部分を別のファイル にコピーしたり移動したりすることができます。
補完(completion)とは、ファイル名や機能名の一部を与えただけで、残りの部 分を人間の代りにプログラムが自動的に補ってくれることです。 補完機能を持っているプログラムには、次のようなものがあります。
注意:この部分は、Mule と emacs で有効です。ng については、画面の表示 の方法に若干の違いがあります。後で説明します。
Mule (emacs) では、いろいろな場所で補完機能を使うことができます。
たとえば、C-x C-f (find-file
)で試して見ます。
C-x C-f と打つと、ファイル名を打ち込んで、リターンを打つと、
そのファイルを編集することができます。ここでは、ファイル名を全部手で打
つのではなく、補完機能を使って打ち込むことをしてみます。
ここでは、~/News/ipe.question.kokusa-2
というファイルを探す
(find-file)してみることにします。
まず、ホーム・ディレクトリで引数を与えないで ng を実行します。(注意:
cd
コマンド
を使った場合、動きが違うことがあります。)
C-x C-f と打ちます。すると、一番下の行が次のようになります。% mule![]()
ここで、まず N と一文字だけ打ってみます。Find file: ~/![]()
次に、スペース・キーを打ちます。すると、次のように残りのFind file: ~/N![]()
es
を補ってくれます。
次に、またスペース・キーを打ちます。今度は、ファイルの一覧を表示してく れます。Find file: ~/News/![]()
このように、スペース・キーを打った時に複数の補完候補があった場合には、 候補のリストを表示してくれます。ここで、iと打ってスペース・キー を打つと、1単語だけ補完してくれます。---------------------------------------------------------------------- [--]E:-----Mule: *scratch* (Lisp Interaction)--All------------------ Possible completions are: ../ ./ ipe.question.kokusa-2 [--]E:-----Mule: *Completions* (Fundamental)--All----------------------- Find file: ~/News/ ----------------------------------------------------------------------
さらにスペース・キーを打つたびに、どんどん補完してくれます。Find file: ~/News/ipe.![]()
最後まで補完された場合には、スペース・キーを打っても変化しなくなります。Find file: ~/News/ipe.question.![]()
結果として、このように長いファイル名も、わずかに N, i, スペース・キーだけで指定できます。Find file: ~/News/ipe.question.kokusa-2![]()
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 では、いた るところで使えます。
~/
が表示されない所です。
Mule:
[--]E:-----Mule: *scratch* (Lisp Interaction)--All------------------ Find file: ~/![]()
ng:
(注意:-----Ng: *scratch* (-EE:fundamental)------------------- Find file:
cd
コマンド
を使った場合、動きが違うことがあります。)
find-file
)で、~/www/index.html
というファイルを編集するには、どうすればいいか。
mnews でも、記事を保存する時に、既に存在するファイルに追加(アペンド) して保存する時に補完機能を使うことができます。但し、複数の候補がある時 には、スペース・キーを押す度に候補が入れ替わります。
コマンドモードで「%
」と表示して、コマンド名が打ち込まれ
るのを待っているプログラムは、csh (C Shell) というプログラムです。csh
にも補完機能があります。それを使うには、まず、次のような呪文を唱えます。
これで、補完が使える状態になります。補完を行わせるには、スペース・キー ではなく、ESCキーを使います。補完の候補を表示させるには、普通 は、^D (control-D)です。(まれに、^Dではなく、別のキー に割り当てられていることもあります。)% set filec%
![]()