diff man/xemacs/m-x.texi @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children ac2d302a0011
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/xemacs/m-x.texi	Mon Aug 13 08:45:50 2007 +0200
@@ -0,0 +1,145 @@
+
+@node M-x, Help, Minibuffer, Top
+@chapter Running Commands by Name
+
+  The Emacs commands that are used often or that must be quick to type are
+bound to keys---short sequences of characters---for convenient use.  Other
+Emacs commands that are used more rarely are not bound to keys; to run
+them, you must refer to them by name.
+
+  A command name consists, by convention, of one or more words,
+separated by hyphens: for example, @code{auto-fill-mode} or
+@code{manual-entry}.  The use of English words makes the command name
+easier to remember than a key made up of obscure characters, even though
+it results in more characters to type.  You can run any command by name,
+even if it can be run by keys as well. 
+
+@kindex M-x
+@cindex minibuffer
+ To run a command by name, start with @kbd{M-x}, then type the
+command name, and finish with @key{RET}.  @kbd{M-x} uses the minibuffer
+to read the command name.  @key{RET} exits the minibuffer and runs the
+command.
+
+  Emacs uses the minibuffer for reading input for many different purposes;
+on this occasion, the string @samp{M-x} is displayed at the beginning of
+the minibuffer as a @dfn{prompt} to remind you that your input should be
+the name of a command to be run.  @xref{Minibuffer}, for full information
+on the features of the minibuffer.
+
+  You can use completion to enter a command name.  For example, to
+invoke the command @code{forward-char}, type:
+
+@example
+M-x forward-char @key{RET}
+@end example
+or
+@example
+M-x fo @key{TAB} c @key{RET}
+@end example
+
+@noindent
+After you type in @code{M-x fo TAB} emacs will give you a possible list of 
+completions from which you can choose. Note that @code{forward-char} is the 
+same command that you invoke with the key @kbd{C-f}.  You can call any 
+command (interactively callable function) defined in Emacs by its name 
+using @kbd{M-x} regardless of whether or not any keys are bound to it.
+
+  If you type @kbd{C-g} while Emacs reads the command name, you cancel
+the @kbd{M-x} command and get out of the minibuffer, ending up at top level.
+
+  To pass a numeric argument to a command you are invoking with
+@kbd{M-x}, specify the numeric argument before the @kbd{M-x}.  @kbd{M-x}
+passes the argument along to the function that it calls.  The argument
+value appears in the prompt while the command name is being read.
+
+@findex interactive
+You can use the command @code{M-x interactive} to specify a way of
+parsing arguments for interactive use of a function.  For example, write:
+
+@example
+  (defun foo (arg) "Doc string" (interactive "p") ...use arg...)
+@end example
+
+to make @code{arg} be the prefix argument when @code{foo} is called as a
+command.  The call to @code{interactive} is actually a declaration
+rather than a function; it tells @code{call-interactively} how to read
+arguments to pass to the function.  When actually called, @code{interactive}
+returns @code{nil}.
+
+The argument of @var{interactive} is usually a string containing a code
+letter followed by a prompt.  Some code letters do not use I/O to get
+the argument and do not need prompts.  To prompt for multiple arguments,
+you must provide a code letter, its prompt, a newline, and another code
+letter, and so forth.  If the argument is not a string, it is evaluated 
+to get a list of arguments to pass to the function.  If you do not provide an
+argument to @code{interactive}, no arguments are passed when calling
+interactively.
+
+Available code letters are:
+
+@table @code
+@item a
+Function name: symbol with a function definition
+@item b
+Name of existing buffer
+@item B
+Name of buffer, possibly nonexistent
+@item c
+Character
+@item C
+Command name: symbol with interactive function definition
+@item d
+Value of point as number (does not do I/O)
+@item D
+Directory name
+@item e
+Last mouse event
+@item f
+Existing file name
+@item F
+Possibly nonexistent file name
+@item k
+Key sequence (string)
+@item m
+Value of mark as number (does not do I/O)
+@item n
+Number read using minibuffer
+@item N
+Prefix arg converted to number, or if none, do like code @code{n}
+@item p
+Prefix arg converted to number (does not do I/O)
+@item P
+Prefix arg in raw form (does not do I/O)
+@item r
+Region: point and mark as two numeric arguments, smallest first (does
+not do I/O)
+@item s
+Any string
+@item S
+Any symbol
+@item v
+Variable name: symbol that is @code{user-variable-p}
+@item x
+Lisp expression read but not evaluated
+@item X
+Lisp expression read and evaluated
+@end table
+
+In addition, if the string begins with @samp{*}, an error is
+signaled if the buffer is read-only.  This happens before reading any
+arguments.  If the string begins with @samp{@@}, the window the mouse is
+over is selected before anything else is done.  You may use both
+@samp{@@} and @samp{*}; they are processed in the order that they appear.
+
+Normally, when describing a command that is run by name, we omit the
+@key{RET} that is needed to terminate the name.  Thus we may refer to
+@kbd{M-x auto-fill-mode} rather than @kbd{M-x auto-fill-mode} @key{RET}.
+We mention the @key{RET} only when it it necessary to emphasize its
+presence, for example, when describing a sequence of input that contains
+a command name and arguments that follow it.
+
+@findex execute-extended-command
+  @kbd{M-x} is defined to run the command @code{execute-extended-command},
+which is responsible for reading the name of another command and invoking
+it.