428
|
1 @comment node-name, next, previous, up
|
|
2 @node Modes, Files, Help, Top
|
|
3 @chapter Major and Minor Modes
|
|
4 @cindex modes
|
|
5
|
|
6 XEmacs is @dfn{language sensitive}. It has several @dfn{major} and
|
|
7 @dfn{minor} modes. The major modes customize Emacs to edit text of a
|
|
8 particular sort. There are major modes for C, Lisp, Emacs Lisp, LaTeX,
|
|
9 English etc. Within each major mode, certain functions and keys are
|
|
10 redefined to "suit" that particular sort of text. The minor modes
|
|
11 provide certain features which can be turned off or on at any
|
|
12 time. Emacs can only be in one major mode at any time, but it can turn
|
|
13 on several minor modes at the same time. After you have selected any
|
|
14 major or minor mode, you can select @b{Describe Mode} from the @b{Help}
|
|
15 menu and you will get documentation about those modes.
|
|
16
|
|
17 @comment node-name, next, previous, up
|
|
18 @menu
|
|
19 * Major Modes:: Choosing Major Modes
|
|
20 * Minor Modes:: Auto-Fill, Abbrev and other minor modes
|
|
21 @end menu
|
|
22
|
|
23 @node Major Modes, Minor Modes, Modes, Modes
|
|
24 @section Major Modes
|
|
25 @cindex major modes
|
|
26
|
|
27 Emacs has several major modes which customize Emacs to edit text of
|
|
28 various sorts. You can have only one major mode at any time. Within each
|
|
29 major mode, Emacs redefines certain functions (like cursor movement,
|
|
30 indentation and text killing) to suit the needs of the text being
|
|
31 edited. When you are editing a specific type of text you should switch
|
|
32 to the appropriate mode. If you are working with C code, you should
|
|
33 switch to C mode; if you are working with Lisp code, then switch to lisp
|
|
34 mode and if you are working with English text switch to Text mode.
|
|
35
|
|
36 When you open a file to work on, Emacs usually selects the
|
|
37 appropriate mode. For example, if you open a file called @file{guide.c}
|
|
38 then Emacs will select the C mode because of the ".c" extension of the
|
|
39 file. To explicitly select a mode type the following command:
|
|
40
|
|
41 @example
|
|
42 ;;; selects lisp mode
|
|
43 M-x lisp-mode
|
|
44
|
|
45 ;;; selects C mode
|
|
46 M-x c-mode
|
|
47 @end example
|
|
48
|
|
49 @noindent
|
|
50 To select any other mode, just add the major mode name before the
|
|
51 '-mode'. The current mode in which you are in will be displayed in
|
|
52 parenthesis in the mode-line at the bottom of the frame. All major
|
|
53 modes have some special keybindings and you can get a listing of those
|
|
54 keybindings by selecting @b{List Keybindings} from the @b{Help} menu on
|
|
55 the menu bar.
|
|
56
|
|
57 Some of the available modes in XEmacs are :
|
|
58
|
|
59 @table @b
|
|
60 @item fundamental-mode
|
|
61 @cindex fundamental-mode
|
|
62 When you start XEmacs, usually you start with the default "Fundamental"
|
|
63 mode. This mode has no special definitions or settings.
|
|
64
|
|
65 @item nroff-mode
|
|
66 @cindex nroff-mode
|
|
67 Use this mode when you have to format a text with nroff before it can be
|
|
68 available in readable form. It redefines some indentation
|
|
69 commands. @xref{Nroff Mode,,,xemacs,XEmacs User's Manual}, for information
|
|
70 on this mode.
|
|
71
|
|
72 @item tex-mode
|
|
73 @cindex tex-mode
|
|
74 Use this mode if you are using the LaTeX text-formatter. It provides
|
|
75 commands for insertion of quotes, braces and other characters. It also
|
|
76 allows you to format the buffer for printing. @xref{TeX
|
|
77 Mode,,,xemacs,XEmacs User's Manual}, for information on this mode.
|
|
78
|
|
79 @item texinfo-mode
|
|
80 @cindex texinfo-mode
|
|
81 Texinfo is a documentation system that uses a single source file to
|
|
82 produce both printed output and on-line documentation. When you use this
|
|
83 mode, there will be some special keybindings for inserting some
|
|
84 characters and executing some commands.
|
|
85
|
|
86 @ifinfo
|
|
87 This info file which you are reading right now is produced by 'Texinfo'
|
|
88 @end ifinfo
|
|
89 @iftex
|
|
90 This manual itself is produced by 'Texinfo'
|
|
91 @end iftex
|
|
92
|
|
93 @item outline-mode
|
|
94 @cindex outline-mode
|
|
95 Use this mode for editing outlines. When you enable this mode, you can
|
|
96 make part of the text temporarily invisible so that you can see the
|
|
97 overall structure of the outline. @xref{Outline Mode,,,xemacs,XEmacs User's
|
|
98 Manual}, for information on this mode.
|
|
99
|
|
100 @item c-mode
|
|
101 @cindex c-mode
|
|
102 Use this mode for C programs. It will redefine some indentation
|
|
103 commands. @xref{C Indent,,,xemacs,XEmacs User's Manual}.
|
|
104
|
|
105 @item lisp-mode
|
|
106 @cindex lisp-mode
|
|
107 Use this mode for Lisp programs. Look at the XEmacs User's Manual for
|
|
108 more information.
|
|
109
|
|
110 @item fortran-mode
|
|
111 @cindex fortran-mode
|
|
112 Use this mode for Fortran programs. This mode provides special commands
|
|
113 to move around and some other indentation commands. For more
|
|
114 information on this mode, @xref{Fortran,,,xemacs,XEmacs User's Manual}.
|
|
115
|
|
116 @item edit-picture
|
|
117 @cindex edit-picture
|
|
118 This is the picture mode which you can use to create a picture out of
|
|
119 text characters. @xref{Picture,,,xemacs,XEmacs User's Manual}, for more
|
|
120 information.
|
|
121
|
|
122 @item asm-mode
|
|
123 @cindex asm-mode
|
|
124 Use asm-mode for editing files of assembler code. Look at the file
|
462
|
125 @file{ /usr/local/lib/xemacs-VERSION/lisp/modes/asm.el} for more
|
428
|
126 information.
|
|
127
|
|
128 @end table
|
|
129
|
|
130 There are some other modes and commands for working with other kinds of
|
|
131 text or programs. Emacs also provides commands for reading and sending
|
|
132 Mail. For more information on these features look at the XEmacs
|
|
133 Manual. Emacs also provides the functions of a desk calendar, with a
|
|
134 diary of past or planned events. For more information on the calendar
|
|
135 mode look at the manual for Calendar Mode and Diary.
|
|
136
|
|
137 @comment node-name, next, previous, up
|
|
138 @node Minor Modes, , Major Modes, Modes
|
|
139 @section Minor Modes
|
|
140 @cindex minor modes
|
|
141
|
|
142 The minor modes in Emacs provide some optional features which you can
|
|
143 turn on or off. Any number of minor modes can be active at the same time
|
|
144 with any major mode. You can enable a minor mode in one buffer and
|
|
145 disable it in other mode. To enable a minor mode, for example the
|
|
146 font-lock mode type the following command:
|
|
147
|
|
148 @example
|
|
149 M-x font-lock-mode
|
|
150 @end example
|
|
151 @noindent
|
|
152 To enable the other minor modes, replace the "font-lock" with the
|
|
153 name of the minor mode. To disable the mode type the command again. A
|
|
154 positive argument will always turn the mode on. Whenever you type this
|
|
155 command, it will turn the mode on if it was off, OR it will turn it off
|
|
156 if it was on i.e. it toggles. Look at the mode-line at the bottom of the
|
|
157 frame. If it says FLock in parentheses, then it means that this
|
|
158 mode is on, otherwise it is off.
|
|
159
|
|
160 The following are some of the minor modes available in XEmacs. To enable
|
|
161 any one of them type "M-x" in front of them.
|
|
162
|
|
163 @table @b
|
|
164 @item font-lock-mode
|
|
165 @cindex font-lock-mode
|
|
166
|
|
167 You can also choose this mode by selecting the @b{Syntax Highlighting}
|
|
168 menu item from the @b{Options} menu on the menu-bar at the
|
|
169 top. If you wish to have this mode enabled permanently, choose
|
|
170 @b{Save Options} from the @b{Options} menu. @xref{Options Menu}, for
|
|
171 more information on the Options menu. You can also add statements in
|
462
|
172 your @file{init.el} file. For each major mode in which you wish to
|
|
173 enable this minor mode, you need a statement in your @file{init.el}
|
428
|
174 file. The following example shows how to enable the font-lock mode when
|
|
175 the major mode is c-mode.
|
|
176
|
|
177 @example
|
440
|
178 (add-hook 'c-mode-hook 'turn-on-font-lock)
|
428
|
179 @end example
|
|
180
|
|
181 @noindent
|
|
182 @xref{Other Customizations}.
|
|
183
|
|
184 When you enable this mode, the text will be displayed in
|
|
185 different colors and fonts depending on the type of the text. This makes
|
|
186 the text very easy to read and understand. For example, comments might
|
|
187 be displayed in red, variables in black, functions in blue and other
|
|
188 keywords in different colors and fonts. When you select @b{More} from
|
|
189 the @b{Syntax Highlighting} option, you get very detailed display of
|
|
190 colors and fonts; function names within comments themselves might appear
|
|
191 in a different font and color.
|
|
192
|
|
193 @item auto-fill-mode
|
|
194 @findex auto-fill-mode
|
|
195 Enabling this mode will provide automatic word-wrapping. The @key{SPC}
|
|
196 key will break lines i.e. insert newlines as you type to prevent lines
|
|
197 from becoming too long.
|
|
198
|
|
199 @item overwrite-mode
|
|
200 @cindex overwrite-mode
|
|
201 When you enable this mode, the text that you type will replace the
|
|
202 existing text rather than moving it to the right (the default case). You
|
|
203 can enable this mode by selecting @b{Overstrike} menu-item from the
|
|
204 @b{Options} menu from the menu-bar.
|
|
205
|
|
206 @item abbrev-mode
|
|
207 @cindex abbrev-mode
|
|
208 After you enable this mode, you can define words which will expand into
|
|
209 some different text i.e. you can define abbreviations. For example, you
|
|
210 might define "expand" to "expand will eventually expand to this
|
|
211 text". After this definition you will be able to get "expand will
|
|
212 eventually expand to this text" simply by typing
|
|
213
|
|
214 @example
|
|
215 expand @key{SPC}
|
|
216 @end example
|
|
217
|
|
218 @noindent
|
|
219 @xref{Abbrevs,,,xemacs,XEmacs User's Manual}, for more information on this
|
|
220 mode and on defining abbreviations.
|
|
221
|
|
222 @item auto-save-mode
|
|
223 @cindex auto-save-mode
|
|
224 After you enable this mode in a buffer, the contents of that buffer will
|
|
225 be saved periodically. This will reduce the amount you might lose in
|
|
226 case of a system crash.
|
|
227
|
|
228 @item line-number-mode
|
|
229 @cindex line-number-mode
|
|
230 After you enable this mode, the line number at which your cursor is
|
442
|
231 present will be displayed continuously in the mode line.
|
428
|
232
|
|
233 @item blink-paren
|
|
234 @cindex blink-paren
|
|
235 To enable this command, just type
|
|
236 @example
|
|
237 M-x blink-paren
|
|
238 @end example
|
|
239
|
|
240 @noindent
|
|
241 Do not add the "-mode" to it. You can also select the @b{Paren
|
|
242 Highlighting} option from the @b{Options} menu. After you enable this
|
|
243 command, put your cursor on one of the left parenthesis. The other
|
|
244 matching parenthesis will start blinking. @xref{Options Menu}, for more
|
|
245 information on the @b{Paren Highlighting} option.
|
|
246 @end table
|
|
247
|
|
248 For information on some other modes, look at the XEmacs User's Manual
|
|
249 and the associated files.
|
|
250
|