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