Function: forward-sentence-default-function
forward-sentence-default-function is a byte-compiled function defined
in paragraphs.el.gz.
Signature
(forward-sentence-default-function &optional ARG)
Documentation
Move forward to next end of sentence. With argument, repeat.
When ARG is negative, move backward repeatedly to start of sentence.
The variable sentence-end(var)/sentence-end(fun) is a regular expression that matches ends of
sentences. Also, every paragraph boundary terminates sentences as well.
Probably introduced at or before Emacs version 30.1.
Source Code
;; Defined in /usr/src/emacs/lisp/textmodes/paragraphs.el.gz
(defun forward-sentence-default-function (&optional arg)
"Move forward to next end of sentence. With argument, repeat.
When ARG is negative, move backward repeatedly to start of sentence.
The variable `sentence-end' is a regular expression that matches ends of
sentences. Also, every paragraph boundary terminates sentences as well."
(or arg (setq arg 1))
(let ((opoint (point))
(sentence-end (sentence-end)))
(while (< arg 0)
(let ((pos (point))
par-beg par-text-beg)
(save-excursion
(start-of-paragraph-text)
;; Start of real text in the paragraph.
;; We move back to here if we don't see a sentence-end.
(setq par-text-beg (point))
;; Start of the first line of the paragraph.
;; We use this as the search limit
;; to allow sentence-end to match if it is anchored at
;; BOL and the paragraph starts indented.
(beginning-of-line)
(setq par-beg (point)))
(if (and (re-search-backward sentence-end par-beg t)
(or (< (match-end 0) pos)
(re-search-backward sentence-end par-beg t)))
(goto-char (match-end 0))
(goto-char par-text-beg)))
(setq arg (1+ arg)))
(while (> arg 0)
(let ((par-end (save-excursion (end-of-paragraph-text) (point))))
(if (re-search-forward sentence-end par-end t)
(skip-chars-backward " \t\n")
(goto-char par-end)))
(setq arg (1- arg)))
(constrain-to-field nil opoint t)))