forward-paragraph: 関数の宝庫
¶forward-paragraph 関数は、ポイントを段落の末尾まで進めます。通常は M-} にバインドされており、let*、match-beginning、looking-at
など、それ自体が重要な複数の関数を利用します。
forward-paragraph の関数定義が forward-sentence
の関数定義よりもかなり長いのは、これが段落を対象としており、各行がフィルプレフィックスで始まる可能性があるためです。
フィルプレフィックスとは、各行の先頭に繰り返し記述される文字列のことです。例えば、Lispコードでは、段落形式のコメントの各行を ‘;;; ’ で始めるのが慣習となっています。テキストモードでは、4つの空白文字がもう一つの一般的なフィルプレフィックスとなり、インデントされた段落を作成します。(フィルプレフィックスの詳細については、The GNU Emacs Manual の Fill Prefix を参照してください。)
フィルプレフィックスが存在するということは、forward-paragraph
関数が、行が最左列から始まる段落の末尾を特定できるだけでなく、バッファ内のすべての行、あるいは多くの行がフィルプレフィックスで始まる場合に、その段落の末尾を特定できなければならないことを意味します。
さらに、特に空行で段落が区切られている場合には、存在するフィルプレフィックスを無視するのが実用的なこともある。これはさらなる複雑さをもたらす。