GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/eintr/search_002dforward.html ・ emacs-doc.conao3.com

8.1.3 search-forward 関数

search-forward 関数は、zap-to-char 内で文字として置換された箇所を特定するために使用されます。検索に成功した場合、search-forward は対象文字列の最後の文字の直後にポイントを移動させます。(zap-to-char では、対象文字列はわずか1文字です。zap-to-char は char-to-string 関数を使用して、コンピュータがその文字を文字列として扱うようにします。)検索が逆順だった場合、search-forward は対象文字列の最初の文字の直前にポイントを移動させます。また、search-forward は true に対して t を返します。(したがって、ポイントの移動は副作用となります。)

zap-to-char では、search-forward 関数は次のようになります。

(search-forward (char-to-string char) nil nil arg)

search-forward 関数は4つの引数を取ります:

  1. 第1引数はターゲット、つまり検索対象です。これは ‘"z"’ のような文字列である必要があります。

    実は、zap-to-char に渡される引数は単一の文字です。コンピュータの構造上、Lispインタプリタは単一の文字を、文字の文字列とは異なるものとして扱う場合があります。コンピュータ内部では、単一の文字は1文字の文字列とは異なる電子形式を持っています。(単一の文字は、多くの場合ちょうど1バイトでコンピュータに記録できますが、文字列はそれより長くなる可能性があり、コンピュータはそれに対応しておく必要があります。)search-forward 関数は文字列を検索するため、zap-to-char 関数が引数として受け取る文字は、コンピュータ内部で一方の形式からもう一方の形式へと変換されなければなりません。そうしないと、search-forward 関数は失敗します。char-to-string 関数は、この変換を行うために使用されます。

  2. 第2引数は検索範囲を制限するもので、バッファ内の位置として指定されます。この場合、検索はバッファの末尾まで及ぶ可能性があるため、制限は設定されず、第2引数は nil となります。
  3. 第3引数は、検索に失敗した際に関数がどう動作すべきかを指定します。エラーを通知(およびメッセージを出力)することも、nilを返すことも可能です。第3引数にnilを指定すると、検索失敗時に関数がエラーを通知するようになります。
  4. search-forward の第4引数は繰り返し回数—文字列を何回検索するかです。この引数は省略可能で、繰り返し回数を指定せずに関数を呼び出した場合は、この引数に 1 が渡されます。この引数が負の値の場合、検索は逆方向に行われます。

テンプレート形式では、search-forward 式は次のようになります。

(search-forward "target-string"
                limit-of-search
                what-to-do-if-search-fails
                repeat-count)

次はprognを見ていきます。