Function: move-end-of-line
move-end-of-line is an interactive and byte-compiled function defined
in simple.el.gz.
Signature
(move-end-of-line ARG)
Documentation
Move point to end of current line as displayed.
With argument ARG not nil or 1, move forward ARG - 1 lines first. If point reaches the beginning or end of buffer, it stops there.
To ignore the effects of the intangible text or overlay
property, bind inhibit-point-motion-hooks to t.
If there is an image in the current line, this function
disregards newlines that are part of the text on which the image
rests.
Probably introduced at or before Emacs version 28.1.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/simple.el.gz
(defun move-end-of-line (arg)
"Move point to end of current line as displayed.
With argument ARG not nil or 1, move forward ARG - 1 lines first.
If point reaches the beginning or end of buffer, it stops there.
To ignore the effects of the `intangible' text or overlay
property, bind `inhibit-point-motion-hooks' to t.
If there is an image in the current line, this function
disregards newlines that are part of the text on which the image
rests."
(interactive "^p")
(or arg (setq arg 1))
(let (done)
(while (not done)
(let ((newpos
(save-excursion
(let ((goal-column 0)
(line-move-visual nil)
;; Always move to eol when invoking `C-e' from
;; within the minibuffer's prompt string (see
;; bug#65980).
(inhibit-field-text-motion (minibufferp)))
(and (line-move arg t)
;; With bidi reordering, we may not be at bol,
;; so make sure we are.
(skip-chars-backward "^\n")
(not (bobp))
(progn
(while (and (not (bobp)) (invisible-p (1- (point))))
(goto-char (previous-single-char-property-change
(point) 'invisible)))
(backward-char 1)))
(point)))))
(goto-char newpos)
(if (and (> (point) newpos)
(eq (preceding-char) ?\n))
(backward-char 1)
(if (and (> (point) newpos) (not (eobp))
(not (eq (following-char) ?\n)))
;; If we skipped something intangible and now we're not
;; really at eol, keep going.
(setq arg 1)
(setq done t)))))))