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
...
この関数の冒頭部分は定型的なものです。引数リストは、1つの省略可能な引数で構成されています。以下にドキュメントを記載します。
interactive 宣言内の小文字 ‘p’
は、処理済みの接頭辞引数(もしあれば)が関数に渡されることを意味します。これは数値となり、point
が移動する段落数の繰り返し回数となります。次の行にある or
式は、関数が対話的にではなく他のコードから呼び出された場合など、引数が関数に渡されない一般的なケースを処理します。このケースについては前述の通りです。(forward-sentence
関数を参照してください。)これで、この関数の馴染み深い部分の最後まで到達しました。