[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Text lines are portions of the buffer delimited by newline characters, which are regarded as part of the previous line. The first text line begins at the beginning of the buffer, and the last text line ends at the end of the buffer whether or not the last character is a newline. The division of the buffer into text lines is not affected by the width of the window, by line continuation in display, or by how tabs and control characters are displayed.
goto-line
does not
necessarily move to the beginning of a line.
If narrowing is in effect, then line still counts from the
beginning of the buffer, but point cannot go outside the accessible
portion. So goto-line
moves point to the beginning or end of the
accessible portion, if the line number specifies an inaccessible
position.
The return value of goto-line
is the difference between
line and the line number of the line to which point actually was
able to move (in the full buffer, before taking account of narrowing).
Thus, the value is positive if the scan encounters the real end of the
buffer before finding the specified line. The value is zero if scan
encounters the end of the accessible portion but not the real end of the
buffer.
In an interactive call, line is the numeric prefix argument if one has been provided. Otherwise line is read in the minibuffer.
nil
or 1, it moves forward
count-1 lines and then to the beginning of the line.
This function does not move point across a field boundary
(see section 32.19.10 Defining and Using Fields) unless doing so would move beyond there to a
different line; therefore, if count is nil
or 1, and
point starts at a field boundary, point does not move. To ignore
field boundaries, either bind inhibit-field-text-motion
to
t
, or use the forward-line
function instead. For
instance, (forward-line 0)
does the same thing as
(beginning-of-line)
, except that it ignores field boundaries.
If this function reaches the end of the buffer (or of the accessible portion, if narrowing is in effect), it positions point there. No error is signaled.
(beginning-of-line count)
would move to.
nil
or 1, it moves forward
count-1 lines and then to the end of the line.
This function does not move point across a field boundary
(see section 32.19.10 Defining and Using Fields) unless doing so would move beyond there to a
different line; therefore, if count is nil
or 1, and
point starts at a field boundary, point does not move. To ignore
field boundaries, bind inhibit-field-text-motion
to t
.
If this function reaches the end of the buffer (or of the accessible portion, if narrowing is in effect), it positions point there. No error is signaled.
(end-of-line count)
would move to.
If forward-line
encounters the beginning or end of the buffer (or
of the accessible portion) before finding that many lines, it sets point
there. No error is signaled.
forward-line
returns the difference between count and the
number of lines actually moved. If you attempt to move down five lines
from the beginning of a buffer that has only three lines, point stops at
the end of the last line, and the value will be 2.
In an interactive call, count is the numeric prefix argument.
Here is an example of using count-lines
:
(defun current-line () "Return the vertical position of point..." (+ (count-lines (window-start) (point)) (if (= (current-column) 0) 1 0) -1)) |
Also see the functions bolp
and eolp
in 32.1 Examining Text Near Point.
These functions do not move point, but test whether it is already at the
beginning or end of a line.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |