forward-paragraph 函数定义 ¶我们不完整打印 forward-paragraph 函数,只展示部分内容。未经梳理直接阅读,该函数会令人望而生畏!
从结构上看,该函数如下:
(defun forward-paragraph (&optional arg)
"documentation..."
(interactive "p")
(or arg (setq arg 1))
(let*
varlist
(while (and (< arg 0) (not (bobp))) ; backward-moving-code
...
(while (and (> arg 0) (not (eobp))) ; forward-moving-code
...
函数的前几部分是常规结构:参数列表包含一个可选参数,随后是文档字符串。
interactive 声明中的小写 ‘p’ 表示处理后的前缀参数(若有)会传递给函数。该参数为数字,表示光标需要移动的段落重复次数。下一行的 or 表达式处理函数未接收参数的常见情况(即从其他代码而非交互方式调用时)。这种情况前面已经介绍过。(See The forward-sentence function。)至此,函数中熟悉的部分结束。