12.4 forward-paragraph:函数宝库

forward-paragraph 函数将光标向前移动到段落结尾。它通常绑定到按键 M-},并使用了多个本身就很重要的函数,包括 let*match-beginninglooking-at

forward-paragraph 的函数定义比 forward-sentence 长得多,因为它需要处理段落,而段落的每一行都可能以填充前缀开头。

填充前缀是一段在每行开头重复出现的字符。例如,在 Lisp 代码中,惯例是在段落级注释的每行开头使用 ‘;;; ’。在文本模式中,四个空格是另一种常见的填充前缀,用于创建缩进段落。(关于填充前缀的更多信息,参见 Fill Prefix in The GNU Emacs Manual。)

填充前缀的存在意味着,forward-paragraph 函数不仅要能找到所有行均从最左列开始的段落结尾,还要能处理缓冲区中大部分或所有行以填充前缀开头的段落结尾。

此外,有时忽略已存在的填充前缀更实用,尤其是在段落之间以空行分隔时。这增加了实现的复杂度。