]> code.delx.au - gnu-emacs/blobdiff - lispref/positions.texi
(inferior-octave-prompt): Recognize version number in prompt.
[gnu-emacs] / lispref / positions.texi
index 5e9abd359c69291ce67c001af7f3bc9318224696..1397445766f1cb1e93a9b77de52e66c4f9af8d9c 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.
@@ -185,12 +185,12 @@ In an interactive call, @var{count} is the numeric prefix argument.
   These functions for parsing words use the syntax table to decide
 whether a given character is part of a word.  @xref{Syntax Tables}.
 
-@deffn Command forward-word count
+@deffn Command forward-word &optional count
 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.
 
@@ -203,19 +203,12 @@ If @code{inhibit-field-text-motion} is non-@code{nil},
 this function ignores field boundaries.
 
 In an interactive call, @var{count} is specified by the numeric prefix
-argument.
+argument.  If @var{count} is omitted or @code{nil}, it defaults to 1.
 @end deffn
 
-@deffn Command backward-word count
+@deffn Command backward-word &optional count
 This function is just like @code{forward-word}, except that it moves
 backward until encountering the front of a word, rather than forward.
-
-In an interactive call, @var{count} is set to the numeric prefix
-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
@@ -327,6 +320,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.
@@ -343,6 +345,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.
@@ -491,7 +499,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}
@@ -507,6 +514,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
@@ -528,24 +556,6 @@ The value returned is the window line number point has moved to, with
 the top line in the window numbered 0.
 @end deffn
 
-@defun count-screen-lines &optional beg end count-final-newline window
-This function returns the number of the screen lines occupied by the
-text between positions @var{beg} and @var{end}.  These arguments default
-to the beginning and end of the accessible portion of the buffer.
-
-If region ends with a newline, it is significant if
-@var{count-final-newline} is non-@code{nil}.  Otherwise it is ignored.
-
-The argument @var{window} specifies the window used for obtaining
-parameters such as width, horizontal scrolling, and so on.  The default
-is the selected window.
-
-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
-
 @defun compute-motion from frompos to topos width offsets window
 This function scans the current buffer, calculating screen positions.
 It scans the buffer forward from position @var{from}, assuming that is
@@ -577,7 +587,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
@@ -614,7 +624,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
@@ -624,8 +634,8 @@ expressions (also called @dfn{sexps} in connection with moving across
 them in Emacs).  The syntax table controls how these functions interpret
 various characters; see @ref{Syntax Tables}.  @xref{Parsing
 Expressions}, for lower-level primitives for scanning sexps or parts of
-sexps.  For user-level commands, see @ref{Lists Commands,,, emacs, The GNU
-Emacs Manual}.
+sexps.  For user-level commands, see @ref{Parentheses,, Commands for
+Editing with Parentheses, emacs, The GNU Emacs Manual}.
 
 @deffn Command forward-list &optional arg
 This function moves forward across @var{arg} (default 1) balanced groups of
@@ -653,7 +663,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
@@ -697,6 +708,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
@@ -720,6 +738,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,
@@ -761,6 +783,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
@@ -958,3 +989,7 @@ This is the contents of foo@point{}
 @end group
 @end example
 @end defspec
+
+@ignore
+   arch-tag: 56e8ff26-4ffe-4832-a141-7e991a2d0f87
+@end ignore