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

36.6.1 構文解析に基づくモーションコマンド

この節では、構文解析式に基づいて動作する単純な点・運動関数について説明します。

関数: scan-lists from count depth

この関数は、位置 from から count 個のバランスの取れた括弧グループを前方にスキャンします。スキャンが停止した位置を返します。count が負の場合、スキャンは後方に移動します。

depth が 0 でない場合、開始位置は depth 層分深いものとみなされます。スキャナは、深さが 0 になるまでバッファ内を前後に移動します count 回。したがって、depth に正の値を指定すると開始位置から depth 層分外側へ移動し、負の depth を指定すると -depth 層分深く移動することになります。

parse-sexp-ignore-comments が nil でない場合、スキャンはコメントを無視します。

スキャンがcount個の括弧グループを走査する前にバッファのアクセス可能な領域の先頭または末尾に達した場合、その時点での深度が0であれば戻り値はnilとなり、深度が0以外であればscan-errorエラーが通知されます。

関数: scan-sexps from count

この関数は、位置 from から前方に count 個の sexp をスキャンします。スキャンが停止した位置を返します。count が負の場合、スキャンは後方に移動します。

parse-sexp-ignore-comments が nil でない場合、スキャンはコメントを無視します。

括弧によるグループ化の途中で、スキャンがバッファ(アクセス可能な部分)の先頭または末尾に達した場合、エラーが通知されます。グループ化の間で先頭または末尾に達したものの、カウントを使い切る前であれば、nil が返されます。

関数: forward-comment count

この関数は、count 個の完全なコメント(つまり、開始デリミタと、あれば終了デリミタを含む)と、その間に出現する任意の空白文字をまたいでポイントを前方に移動させます。count が負の値の場合は後方に移動します。コメントや空白文字以外のものを検出した場合はそこで停止し、停止した位置にポイントを残します。これには(例えば)、前方に移動してコメントの開始を期待している際に、コメントの末尾を検出する場合などが含まれます。また、この関数は指定された数の完全なコメントをまたいだ直後にも停止します。期待通りに count 個のコメントが検出され、その間に空白文字以外のものが何も含まれていない場合は t を、そうでない場合は nil を返します。

この関数は、走査するコメントが文字列内に埋め込まれているかどうかを判別できません。コメントのように見えれば、コメントとして扱います。

ポイント以降のすべてのコメントと空白をスキップするには、(forward-comment (buffer-size)) を使用します。バッファ内のコメント数がそれを超えることはないため、(buffer-size) が適切な引数となります。