]> code.delx.au - gnu-emacs/blobdiff - lispref/positions.texi
Condense Tramp entries.
[gnu-emacs] / lispref / positions.texi
index 378134e30c2bb6cb62ea8b434c24428644a15629..ac5efda9bc9dcf62c441ba5359e650e0f687480d 100644 (file)
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000
-@c  Free Software Foundation, Inc. 
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001
+@c  Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/positions
 @node Positions, Markers, Frames, Top
@@ -21,7 +21,7 @@ automatically when text is inserted or deleted so they stay with the
 surrounding characters.  @xref{Markers}.
 
   See also the ``field'' feature (@pxref{Fields}), which provides
-functions that are used by many cursur-motion commands.
+functions that are used by many cursor-motion commands.
 
 @menu
 * Point::         The special position where editing takes place.
@@ -190,7 +190,7 @@ This function moves point forward @var{count} words (or backward if
 @var{count} is negative).  ``Moving one word'' means moving until point
 crosses a word-constituent character and then encounters a
 word-separator character.  However, this function cannot move point past
-the boundary of the accessible part of the buffer, or across a field
+the boundary of the accessible portion of the buffer, or across a field
 boundary (@pxref{Fields}).  The most common case of a field boundary is
 the end of the prompt in the minibuffer.
 
@@ -213,8 +213,9 @@ backward until encountering the front of a word, rather than forward.
 In an interactive call, @var{count} is set to the numeric prefix
 argument.
 
-This function is rarely used in programs, as it is more efficient to
-call @code{forward-word} with a negative argument.
+@c [Now optimized by compiler.]
+@c This function is rarely used in programs, as it is more efficient to
+@c call @code{forward-word} with a negative argument.
 @end deffn
 
 @defvar words-include-escapes
@@ -326,6 +327,15 @@ This function moves point to the beginning of the current line.  With an
 argument @var{count} not @code{nil} or 1, it moves forward
 @var{count}@minus{}1 lines and then to the beginning of the line.
 
+This function does not move point across a field boundary
+(@pxref{Fields}) unless doing so would move beyond there to a
+different line; therefore, if @var{count} is @code{nil} or 1, and
+point starts at a field boundary, point does not move.  To ignore
+field boundaries, either bind @code{inhibit-field-text-motion} to
+@code{t}, or use the @code{forward-line} function instead.  For
+instance, @code{(forward-line 0)} does the same thing as
+@code{(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.
@@ -342,6 +352,12 @@ This function moves point to the end of the current line.  With an
 argument @var{count} not @code{nil} or 1, it moves forward
 @var{count}@minus{}1 lines and then to the end of the line.
 
+This function does not move point across a field boundary
+(@pxref{Fields}) unless doing so would move beyond there to a
+different line; therefore, if @var{count} is @code{nil} or 1, and
+point starts at a field boundary, point does not move.  To ignore
+field boundaries, bind @code{inhibit-field-text-motion} to @code{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.
@@ -490,7 +506,6 @@ thus take time proportional to the distance scanned.  If you intend to
 use them heavily, Emacs provides caches which may improve the
 performance of your code.  @xref{Truncation, cache-long-line-scans}.
 
-
 @defun vertical-motion count &optional window
 This function moves point to the start of the screen line @var{count}
 screen lines down from the screen line containing point.  If @var{count}
@@ -506,6 +521,27 @@ width, the horizontal scrolling, and the display table.  But
 @var{window} currently displays some other buffer.
 @end defun
 
+@defun count-screen-lines &optional beg end count-final-newline window
+This function returns the number of screen lines in the text from
+@var{beg} to @var{end}.  The number of screen lines may be different
+from the number of actual lines, due to line continuation, the display
+table, etc.  If @var{beg} and @var{end} are @code{nil} or omitted,
+they default to the beginning and end of the accessible portion of the
+buffer.
+
+If the region ends with a newline, that is ignored unless the optional
+third argument @var{count-final-newline} is non-@code{nil}.
+
+The optional fourth argument @var{window} specifies the window for
+obtaining parameters such as width, horizontal scrolling, and so on.
+The default is to use the selected window's parameters.
+
+Like @code{vertical-motion}, @code{count-screen-lines} always uses the
+current buffer, regardless of which buffer is displayed in
+@var{window}.  This makes possible to use @code{count-screen-lines} in
+any buffer, whether or not it is currently displayed in some window.
+@end defun
+
 @deffn Command move-to-window-line count
 This function moves point with respect to the text currently displayed
 in the selected window.  It moves point to the beginning of the screen
@@ -558,7 +594,7 @@ regardless of what buffer is displayed in @var{window}.
 The return value is a list of five elements:
 
 @example
-(@var{pos} @var{vpos} @var{hpos} @var{prevhpos} @var{contin})
+(@var{pos} @var{hpos} @var{vpos} @var{prevhpos} @var{contin})
 @end example
 
 @noindent
@@ -595,7 +631,7 @@ beginning of the first screen line.  @xref{Minibuffer Misc}.
 
 @node List Motion
 @comment  node-name,  next,  previous,  up
-@subsection Moving over Balanced Expressions 
+@subsection Moving over Balanced Expressions
 @cindex sexp motion
 @cindex Lisp expression motion
 @cindex list motion
@@ -634,7 +670,8 @@ deeper in parentheses (@minus{}@var{arg} levels).
 @deffn Command forward-sexp &optional arg
 This function moves forward across @var{arg} (default 1) balanced expressions.
 Balanced expressions include both those delimited by parentheses and
-other kinds, such as words and string constants.  For example,
+other kinds, such as words and string constants
+@xref{Parsing Expressions}.  For example,
 
 @example
 @group
@@ -678,6 +715,13 @@ match for this regular expression, followed by a character with
 open-parenthesis syntax.
 @end defopt
 
+@defopt open-paren-in-column-0-is-defun-start
+If this variable's value is non-@code{nil}, an open parenthesis in
+column 0 is considered to be the start of a defun.  If it is
+@code{nil}, an open parenthesis in column 0 has no special meaning.
+The default is @code{t}.
+@end defopt
+
 @defvar beginning-of-defun-function
 @tindex beginning-of-defun-function
 If non-@code{nil}, this variable holds a function for finding the
@@ -701,6 +745,10 @@ of using its normal method.
 characters.  For example, they are often used to skip whitespace.  For
 related functions, see @ref{Motion and Syntax}.
 
+These functions convert the set string to multibyte if the buffer is
+multibyte, and they convert it to unibyte if the buffer is unibyte, as
+the search functions do (@pxref{Searching and Matching}).
+
 @defun skip-chars-forward character-set &optional limit
 This function moves point in the current buffer forward, skipping over a
 given set of characters.  It examines the character following point,
@@ -742,6 +790,15 @@ comes back" twice.
 ---------- Buffer: foo ----------
 @end group
 @end example
+
+Note that char classes are not currently supported in
+@var{character-set}; they will be treated as literals.  Thus you
+cannot use @code{"[:alpha:]"} instead of @code{"a-zA-Z"} to include
+non-ASCII letters.  A way to skip forward over all letters is:
+
+@example
+(re-search-forward "\\=[[:alpha:]]*" nil t)
+@end example
 @end defun
 
 @defun skip-chars-backward character-set &optional limit