インクリメンタル探索では,探索する文字列の最初の文字を入力すると直ちに 探索を開始します.探索する文字列を入力するたびに,それまでに入力した文字 列がどこにあるかを表示していきます.目的の位置を特定するのに十分なだけの 文字を入力してしまえば,それで終りです.次に何をするかにもよりますが,と もかく探索を終了するときはそこでESCキーを最初に押します.
isearch-forward
).
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は,次に入力したい コマンドが,印字可能文字,DEL,ESCや,探索において特別な意味 をもつ制御文字(C-q,C-w,C-r,C-s,C-y)の ときのみ必要です.
見つかった`FOO'が求めていたものではなかったとします.これは,探し ていたものの前に,他の`FOO'があったということです.このような場合に は,C-sを入力すれば探索している文字列がその次に現われる位置に移動 できます.この操作は何回でも繰り返せます.行き過ぎてしまったときには, DELでC-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-s,DEL,ESCなどの制御文字を探索するには,はじめに C-qを入力してから制御文字を入力します.このC-qの機能は, Emacsコマンドとしての意味と同じです.C-qは,その後に入力された文字 を,グラフィック文字として扱います.
C-rで逆方向に探索できます.ファイルの後半から探索をはじめたため に探索が失敗したなら,この操作を行なうべきです.C-rを繰り返し入力 すれば逆方向に続けて探索します.C-sで再び順方向へ探索をします.探 索中のC-rはDELで取り消せます.
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-yは C-wに似ていますが,現在行の残り部分をすべて探索文字列にコピーしま す.
インクリメンタル探索で特別な意味を持つ文字は,以下の変数の設定で変えら れます.
search-delete-char
search-exit-char
search-quote-char
search-repeat-char
search-reverse-char
search-yank-line-char
search-yank-word-char
速度の遅い端末でインクリメンタル探索をする場合には,表示の時間が少なく なるようにした表示になります.これは見つけた位置でバッファを再表示する代 わりに,新たに1行分のウィンドウを作り,ここに見つけた行を表示します.こ の1行分のウィンドウは,ポイントがそれまで画面に表示されていたテキストの 外側に出てしまったら使用されます.
探索が終了したら,1行分のウィンドウは消え,ここではじめてポイントの新 しい値を示すために探索が行なわれたウィンドウを再表示します.
通常は,探索が続行中であることを示すために探索文字列の末尾に3つの点を 表示しますが,速度の遅い端末では表示されません.
速度の遅い端末の表示形式は,端末のボーレイトが変数
search-clow-speed
の値以下である場合に用いられます.デフォルトは
1200です.
速度の遅い端末での探索で使われる表示の行数は変数
search-slow-window-lines
できまります.通常この値は1です.