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

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children e45d5e7c476e
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/xemacs/major.texi	Mon Aug 13 08:45:50 2007 +0200
@@ -0,0 +1,113 @@
+
+@node Major Modes, Indentation, Windows, Top
+@chapter Major Modes
+@cindex major modes
+@kindex TAB
+@kindex DEL
+@kindex LFD
+
+  Emacs has many different @dfn{major modes}, each of which customizes
+Emacs for editing text of a particular sort.  The major modes are mutually
+exclusive;  at any time, each buffer has one major mode.  The mode line
+normally contains the name of the current major mode in parentheses.
+@xref{Mode Line}.
+
+  The least specialized major mode is called @dfn{Fundamental mode}.  This
+mode has no mode-specific redefinitions or variable settings.  Each
+Emacs command behaves in its most general manner, and each option is in its
+default state.  For editing any specific type of text, such as Lisp code or
+English text, you should switch to the appropriate major mode, such as Lisp
+mode or Text mode.
+
+  Selecting a major mode changes the meanings of a few keys to become
+more specifically adapted to the language being edited.  @key{TAB},
+@key{DEL}, and @key{LFD} are changed frequently.  In addition, commands
+which handle comments use the mode to determine how to delimit comments.
+Many major modes redefine the syntactical properties of characters
+appearing in the buffer.  @xref{Syntax}.
+
+  The major modes fall into three major groups.  Lisp mode (which has
+several variants), C mode, and Muddle mode are for specific programming
+languages.  Text mode, Nroff mode, @TeX{} mode, and Outline mode are for
+editing English text.  The remaining major modes are not intended for use
+on users' files; they are used in buffers created by Emacs for specific
+purposes and include Dired mode for buffers made by Dired (@pxref{Dired}),
+Mail mode for buffers made by @kbd{C-x m} (@pxref{Sending Mail}), and Shell
+mode for buffers used for communicating with an inferior shell process
+(@pxref{Interactive Shell}).
+
+  Most programming language major modes specify that only blank lines
+separate paragraphs.  This is so that the paragraph commands remain useful.
+@xref{Paragraphs}.  They also cause Auto Fill mode to use the definition of
+@key{TAB} to indent the new lines it creates.  This is because most lines
+in a program are usually indented.  @xref{Indentation}.
+
+@menu
+* Choosing Modes::     How major modes are specified or chosen.
+@end menu
+
+@node Choosing Modes,,Major Modes,Major Modes
+@section Choosing Major Modes
+
+  You can select a major mode explicitly for the current buffer, but
+most of the time Emacs determines which mode to use based on the file
+name or some text in the file.
+
+  Use a @kbd{M-x} command to explicitly select a new major mode.  Add
+@code{-mode} to the name of a major mode to get the name of a command to
+select that mode.  For example, to enter Lisp mode, execute @kbd{M-x
+lisp-mode}.
+
+@vindex auto-mode-alist
+  When you visit a file, Emacs usually chooses the right major mode
+based on the file's name.  For example, files whose names end in
+@code{.c} are edited in C mode.  The variable @code{auto-mode-alist}
+controls the correspondence between file names and major mode.  Its value
+is a list in which each element has the form:
+
+@example
+(@var{regexp} . @var{mode-function})
+@end example
+
+@noindent
+For example, one element normally found in the list has the form
+@code{(@t{"\\.c$"} . c-mode)}. It is responsible for selecting C mode
+for files whose names end in @file{.c}.  (Note that @samp{\\} is needed in
+Lisp syntax to include a @samp{\} in the string, which is needed to
+suppress the special meaning of @samp{.} in regexps.)  The only practical
+way to change this variable is with Lisp code.
+
+  You can specify which major mode should be used for editing a certain
+file by a special sort of text in the first non-blank line of the file.
+The mode name should appear in this line both preceded and followed by
+@samp{-*-}.  Other text may appear on the line as well.  For example,
+
+@example
+;-*-Lisp-*-
+@end example
+
+@noindent
+tells Emacs to use Lisp mode.  Note how the semicolon is used to make Lisp
+treat this line as a comment.  Such an explicit specification overrides any
+default mode based on the file name.
+
+  Another format of mode specification is:
+
+@example
+-*-Mode: @var{modename};-*-
+@end example
+
+@noindent
+which allows other things besides the major mode name to be specified.
+However, Emacs does not look for anything except the mode name.
+
+The major mode can also be specified in a local variables list.
+@xref{File Variables}.
+
+@vindex default-major-mode
+  When you visit a file that does not specify a major mode to use, or
+when you create a new buffer with @kbd{C-x b}, Emacs uses the major mode
+specified by the variable @code{default-major-mode}.  Normally this
+value is the symbol @code{fundamental-mode}, which specifies Fundamental
+mode.  If @code{default-major-mode} is @code{nil}, the major mode is
+taken from the previously selected buffer.