Go to the first, previous, next, last section, table of contents.

インクリメンタル探索

インクリメンタル探索では,探索する文字列の最初の文字を入力すると直ちに 探索を開始します.探索する文字列を入力するたびに,それまでに入力した文字 列がどこにあるかを表示していきます.目的の位置を特定するのに十分なだけの 文字を入力してしまえば,それで終りです.次に何をするかにもよりますが,と もかく探索を終了するときはそこでESCキーを最初に押します.

C-s
順方向へインクリメンタル探索します(isearch-forward).
C-r
逆方向へインクリメンタル探索します(isearch-backward).

C-sで,インクリメンタル探索が始まります.C-sは,キーボード から文字を読み込み,カーソルを入力した文字が最初に現われる位置に移動しま す.C-sに続いてFを入力した場合には,カーソルは最初の`F' の右に移動します.続いてOを入力するとカーソルは最初の`FO'の後 ろに移動します.もう1つOを打つと,カーソルは,探索を開始した場所以 降に最初に現われる`FOO'の右に移動します.この間,探索する文字列 `FOO'はエコー領域に表示されています.

実際の探索中には,エコー領域の最後に3つの点が表示されています.入力し たところまでの探索が終って次の入力を待っているときには,3つの点は消えて います.(速度の遅い端末では,この3つの点は表示されません.)

探索する文字列を誤って入力したら,DELキーで文字を消去できます. DELキーを1回押すごとに探索する文字列の最後の文字が消去されます.し かし,Emacsが次の入力を受け付けるときまで,すなわちその文字を含めて探索 したときか,または探索が失敗するまで,この消去はおきません.もしそれまで 待てないなら以下に述べるようにC-gを使ってください.

目的の場所まで移動できたら,ESCキーを押します.探索は終了し,カー ソルはその位置にとどまります.また,探索用でないコマンドを入力すると,探 索は終了しそのコマンドが実行されます.たとえば,C-aを入力すると探 索をやめて,カーソルを行の最初に移動します.ESCは,次に入力したい コマンドが,印字可能文字,DELESCや,探索において特別な意味 をもつ制御文字(C-qC-wC-rC-sC-y)の ときのみ必要です.

見つかった`FOO'が求めていたものではなかったとします.これは,探し ていたものの前に,他の`FOO'があったということです.このような場合に は,C-sを入力すれば探索している文字列がその次に現われる位置に移動 できます.この操作は何回でも繰り返せます.行き過ぎてしまったときには, DELC-sの操作を取り消せます.

探索を終了したあとでも,C-s C-sと入力すれば再び同じ文字列を探索 できます.最初のC-sはインクリメンタル探索の開始で,次のC-sが 再探索を指示します.

探している文字列が見つからなかった場合は,エコー領域に`Failing I-Search'と表示されます.カーソルは可能な限り探索した位置の後ろにありま す.たとえば,`FOOT'を探索しようとしたけれど`FOOT'がなければ, カーソルが`FOOL'の中の`FOO'の後ろにあったりします.この時点で できることはいくつかあります.ミス入力したのなら,それを消去し訂正できま す.その位置でよいなら,ESCキーか他のEmacsコマンドを入力します.あ るいは,C-gを入力し,探索している文字列から見つけることのできなかっ た文字(`FOOT'`T')を取り除き,見つけたところ(`FOOT'`FOO')はそのままにしておくこともできます.ここで,さらにC-gを 入力すると探索をすべてやめて,探索を開始した位置に戻ります.

探索に失敗したときに,さらにC-sを入力して探索を繰り返し求めると, もう一度バッファの先頭から探索します.逆方向探索に失敗したあと, C-rを入力すると,バッファの最後から探索を再開します.これは, 巻きなおし(Wrapping around)と呼ばれます.一度これが起きると,探索 のプロンプトに`Wrapped'が現われます.

探索中では,C-gコマンドは特別な機能を持ちます.この機能は,探索 の状態によって変わります.指定した文字列を見つけて,入力待ちの状態である なら,C-gはすべての探索を取り消します.カーソルは探索を開始した位 置に戻ります.Emacsが探索中か,あるいは見つけることができなくて,入力し た文字列に未発見の文字があるときにC-gと入力すると,文字列から未発 見の文字を消去します.見つけていない文字が取り消されたので探索は成功した ことになり,入力待ちになります.ここでC-gを入力すると探索をすべて とりやめます.

C-sDELESCなどの制御文字を探索するには,はじめに C-qを入力してから制御文字を入力します.このC-qの機能は, Emacsコマンドとしての意味と同じです.C-qは,その後に入力された文字 を,グラフィック文字として扱います.

C-rで逆方向に探索できます.ファイルの後半から探索をはじめたため に探索が失敗したなら,この操作を行なうべきです.C-rを繰り返し入力 すれば逆方向に続けて探索します.C-sで再び順方向へ探索をします.探 索中のC-rDELで取り消せます.

If you know initially that you want to search backwards, you can use C-r instead of C-s to start the search, because C-r is also a key running a command (isearch-backward) to search backward.

探索中,C-yおよびC-wキーを用いると,バッファから探索文字列 へテキストを取り入れることができます.これによってポイントの位置にある文 字列を探すのが容易になります.C-wはポイント以降の単語を,探索文字 列の一部としてコピーします.ポイントはその単語の次に移動します.ここで C-sを入力すると単語を含んだ文字列を探索します.C-yC-wに似ていますが,現在行の残り部分をすべて探索文字列にコピーしま す.

インクリメンタル探索で特別な意味を持つ文字は,以下の変数の設定で変えら れます.

search-delete-char
インクリメンタル探索の文字列を消去する文字(通常DEL).
search-exit-char
インクリメンタル探索を終了する文字(通常ESC).
search-quote-char
インクリメンタル探索において文字の特別な意味を取る文字(通常C-q).
search-repeat-char
順方向のインクリメンタル探索を繰り返す文字(通常C-s).
search-reverse-char
逆方向のインクリメンタル探索を繰り返す文字(通常C-r).
search-yank-line-char
バッファの行の残りの部分を探索文字列へ取り入れる文字(通常C-y).
search-yank-word-char
バッファの次の単語を探索文字列へ取り入れる文字(通常C-w).

速度の遅い端末でのインクリメンタル探索

速度の遅い端末でインクリメンタル探索をする場合には,表示の時間が少なく なるようにした表示になります.これは見つけた位置でバッファを再表示する代 わりに,新たに1行分のウィンドウを作り,ここに見つけた行を表示します.こ の1行分のウィンドウは,ポイントがそれまで画面に表示されていたテキストの 外側に出てしまったら使用されます.

探索が終了したら,1行分のウィンドウは消え,ここではじめてポイントの新 しい値を示すために探索が行なわれたウィンドウを再表示します.

通常は,探索が続行中であることを示すために探索文字列の末尾に3つの点を 表示しますが,速度の遅い端末では表示されません.

速度の遅い端末の表示形式は,端末のボーレイトが変数 search-clow-speedの値以下である場合に用いられます.デフォルトは 1200です.

速度の遅い端末での探索で使われる表示の行数は変数 search-slow-window-linesできまります.通常この値は1です.


Go to the first, previous, next, last section, table of contents.