• 検索結果がありません。

さらに 1 を入力して ( この時点での入力は、 sum1 です ) TAB を入力します。

C- s を 2 回押します。

C-s

は現在のカーソル位置からファイル終りに向かってインクリメンタル探索をする編 集コマンドです。一方

C-r

は、現在のカーソル位置からファイル始めに向かって

(C-s

とは

逆方向に

)

インクリメンタル探索をする編集コマンド です。

M-x search-formard, M-x search-backword

も探索をする編集コマンドですが 、探索文字列 を一括して与えて探索する編集コマンド です。これを実行するには、エコー領域で探索文 字列を一度に与えないといけません。

Search:

ここで探索文字列を入力し 、 最後に

RET

を押します。

Search: define

RET

すると探索が行なわれ 、見つかればその場所にカーソルが移動します。もし見つからな ければエラーとなり、 エコー領域に

Search failed: "define"

と表示されます。

重要

:

探索や置換を途中で中断するには、

C-g

を入力します。

置換とは、バッファ内のある文字列を他の文字列に置き換える編集コマンドです。文字列 の置換をするには

M-%

を使います。例として、バッファ中の Eeyore という語を Rabbit に置き換える方法を示します。

M-%

を押すと、 エコー領域は Query replace:

となります。ここで置き換えようとする文字列Eeyoreを入力し 、

RET

を押します。す

るとエコー領域は

Query replace: Eeyore with:

となります。ここで置き換える文字列Rabbitを入力して

RET

を押します。これにより 置換が始まります。

置き換えるべき候補の文字列にカーソルが移動し 、候補を置き換えるかど うかが尋ねら れます。

Query replaceing Eeyore with Rabbit:

ここでの入力は以下の通りです。

SPC

その候補を置き換え、さらに次の候補を探します。

DEL

その候補は置き換えず、さらに次の候補を探します。

!

それ以降、置き換えをするかを尋ねずに、候補をすべて置換えします。

ESC

置換命令を終了します。

Mule

エディタの場合は以下の通りです。

y

で置き換えをします。

n

で置き換えをしません。

!

NGSCM

の場合と同じで、

q

で置換命令を終了します。

MR Buffer Size File

-- --- ----

----*help* 3571

*Buffer List* 0

.* *scheme* 529

% qwe.scm 143 /tmp_mnt/condor/home1/kakugawa/qwe.scm

*scratch* 0

---NGSCM: *Buffer List*

(-EE:fundamental)---図

7.4:

バッファの一覧

7.1.8 マルチバッファ

前にも説明したように、ファイルはいったんバッファに入れられて編集されます。複数 のバッファを使って、複数のファイルを同時に編集してゆくことができます。

バッファの一覧を見るには、次の編集コマンド を使います。

C-x C-b

新たに *Buffer List* という名前のバッファを作り、現在のバッファの一覧を表示

します。

7.4

に例を示します。この図での各行は、左から次の意味を持ちます。.のついている バッファが現在選択されている

(

カーソルのある

)

バッファです。* の付いているものは変

更が加えられたことを示しています。% の付いているバッファは書き込み禁止のバッファ

です。

(C-x C-r

でファイルを読み込んだときなどに、このようなバッファが作られます。

)

それらのつぎの欄はバッファ名で、その右がそのバッファの大きさを表しています。一番 右の欄はバッファに対応したファイル名を表しています。

バッファの選択と作成には、次の編集コマンドがあります。

C-x b

他のバッファを選択します。

C-x b

を実行すると、 エコー領域で

Switch to buffer: (default

buer

)

と、切替えるバッファ名が尋ねられます。括弧で囲まれているバッファ名は、バッファ名 を指定せずに

RET

だけを入力したときに切替えられるバッファ名です。もし選択したい バッファが

buer

なら、

RET

を押すだけでそのバッファに切替わります。

それ以外のバッファを選択する場合は、バッファ名を入力して最後に

RET

を押します。

するとそのバッファに切替り、表示されます。もし指定したバッファがない場合は、その 名前のバッファが新しく作成されます。

たとえば

Switch to buffer: (default *scratch*) f.scm

RET

とすれば 、f.scm バッファが選択されます。

バッファ名の指定には補完機能が使えるので、バッファ名を完全に覚えておいたり、バッ ファ名をすべて入力しなくて済みます。

このほかバッファに対する編集コマンド には、次のものがあります。

C-x k

バッファを削除します。

C-x C-q

選択されているバッファの変更禁止

/

変更可能を、交互に切替えます。

C-x k

を実行すると、 エコー領域で

Kill buffer: (default

buer

)

と表示されます。もし削除したいバッファが

buer

なら 、単に

RET

を入力することで

buer

が削除されます。それ以外のバッファを削除するのなら、そのバッファ名を入力し て最後に

RET

を押します。

(

この編集コマンド でも、 バッファ名の指定に補間機能が使 えます。

)

たとえば

Kill buffer: (default *scheme*) f.scm

RET

とすれば 、f.scmが削除されます。もしバッファに変更

(

書き込み

)

が加えられた後にセー

ブがされていなければ 、本当にバッファを削除して良いかど うかをエコー領域で尋ねられ ます

:

Buffer modifed; kill anyway? (yes or no)

これはファイルに修正を加えたけれども、うっかりセーブを忘れてバッファを削除して しまうのを防止するためのものです。というのも、セーブしなければバッファの書き換え はファイルに反映されないからです。ですがバッファが削除されても、ディスク上のファイ ル自体は残ります。もちろんそのファイルの内容は、編集作業を始める前のものです。も し編集操作を誤ってど うしようもなくなったときは、セーブせずにバッファを削除するこ とで、編集前のファイルのままにできます。

C-x C-q

を実行すると、 バッファのモード 行の左の部分--**-NGSCM が --%%-NGSCM に なります。もう一度

C-x C-q

を実行すると元通りになります。表示が --%%-NGSCM になっ ているときはバッファは変更禁止になっていて、文字の削除や追加などはできません。

選択するバッファを切替えることで、 複数のファイルを同時に編集できます。ヤンク機 能と組み合わせれば 、あるファイルの一部を他のファイルに移動させることができ、編集 作業が大変楽になります。

7.1.9 マルチウインド ウ

画面をいくつかに分割し 、複数のバッファを同時に表示する機能をマルチウインド ウ

(multiple windows)

といいます。たとえば図

4.3

では 、画面を

2

分割して

2

つのバッファ

qwe.scm と *scheme* を表示しています。このような表示窓をウインド ウ

(window)

と呼

んでいます。ウインド ウは

2

つだけでなく、いくつも作ることができます。

カーソルのあるウインド ウが選択されたウインド ウです。また、選択されたウインド ウ に対応しているバッファが 、選択されているバッファとなります。編集作業は選択された バッファに対して適用されます。

ウインド ウにはひとつのバッファが対応していて、対応するバッファがそのウインド ウ に表示されます。

(

表示されていないバッファには、どのウインド ウも対応していないこと になります。

)

ひとつのバッファを複数のウインド ウに対応付けることもできます。この 場合では、ひとつのバッファが複数のウインド ウで表示されることになります。各ウイン ド ウはそれぞれのカーソル位置を記憶しています。このため同一のバッファでもウインド

ウが違えば 、違う部分を表示することが可能となります。

ウインド ウの作成と消去に関する編集コマンド には、次のものがあります。

C-x 2

選択しているウインド ウを

2

つに分割します。

C-x 0

選択しているウインド ウを消去します。

C-x 1

選択しているウインド ウだけを残し 、他のウインド ウを消去します。

7.5

は、ひとつのウインド ウだけの画面を示しています。ここで

C-x 2

を実行すると、

7.6

のようにウインド ウが

2

分割されます。この図から分かるように、分割されたウイン ド ウはそれぞれ同じバッファに対応しています。ここでファイルを選択したり、他のバッ

ファの選択をすることで、他のファイルや他のバッファが表示されます。こうすることで、

別のファイルを参照しながらプログラムの編集をすることができます。たとえば図

7.6

状態でファイル fact.scm を選択した場合を、図

7.7

に示します。

その他のウインド ウ関連の編集コマンド には、次のものがあります。

(define (sum n) (if (= n 1)

1(+ (sum (- n 1)) n)))

---NGSCM: sum.scm

(-EE:fundamental-Scheme)---図

7.5:

ウインド ウが

1

つの状態

C-x o

他のウインド ウを選択します。

C-x^

選択されたウインド ウを大きくします。