|
|
1.1 root 1: Info file emacs, produced by texinfo-format-buffer -*-Text-*-
2: from file emacs.tex
3:
4: This file documents the GNU Emacs editor.
5:
6: Copyright (C) 1985, 1986 Richard M. Stallman.
7:
8: Permission is granted to make and distribute verbatim copies of
9: this manual provided the copyright notice and this permission notice
10: are preserved on all copies.
11:
12: Permission is granted to copy and distribute modified versions of this
13: manual under the conditions for verbatim copying, provided also that the
14: sections entitled "The GNU Manifesto", "Distribution" and "GNU Emacs
15: General Public License" are included exactly as in the original, and
16: provided that the entire resulting derived work is distributed under the
17: terms of a permission notice identical to this one.
18:
19: Permission is granted to copy and distribute translations of this manual
20: into another language, under the above conditions for modified versions,
21: except that the sections entitled "The GNU Manifesto", "Distribution"
22: and "GNU Emacs General Public License" may be included in a translation
23: approved by the author instead of in the original English.
24:
25:
26: File: emacs Node: Shell, Prev: Sorting, Up: Top, Next: Hardcopy
27:
28: Running Shell Commands from Emacs
29: =================================
30:
31: Emacs has commands for passing single command lines to inferior shell
32: processes; it can also run a shell interactively with input and output to
33: an Emacs buffer `*shell*'.
34:
35: `M-!'
36: Run a specified shell command line and display the output
37: (`shell-command').
38: `M-|'
39: Run a specified shell command line with region contents as input;
40: optionally replace the region with the output
41: (`shell-command-on-region').
42: `M-x shell'
43: Run a subshell with input and output through an Emacs buffer.
44: You can then give commands interactively.
45:
46: * Menu:
47:
48: * Single Shell:: How to run one shell command and return.
49: * Interactive Shell:: Permanent shell taking input via Emacs.
50: * Shell Mode:: Special Emacs commands used with permanent shell.
51:
52:
53: File: emacs Node: Single Shell, Prev: Shell, Up: Shell, Next: Interactive Shell
54:
55: Single Shell Commands
56: ---------------------
57:
58: `M-!' (`shell-command') reads a line of text using the
59: minibuffer and creates an inferior shell to execute the line as a command.
60: Standard input from the command comes from the null device. If the shell
61: command produces any output, the output goes into an Emacs buffer named
62: `*Shell Command Output*', which is displayed in another window but not
63: selected. A numeric argument, as in `M-1 M-!', directs this command to
64: insert any output into the current buffer. In that case, point is left
65: before the output and the mark is set after the output.
66:
67: `M-|' (`shell-command-on-region') is like `M-!' but passes the contents
68: of the region as input to the shell command, instead of no input. If a
69: numeric argument is used, meaning insert output in the current buffer, then
70: the old region is deleted first and the output replaces it as the contents
71: of the region.
72:
73: Both `M-!' and `M-|' use `shell-file-name' to specify the shell to use.
74: This variable is initialized based on your `SHELL' environment variable
75: when Emacs is started. If the file name does not specify a directory, the
76: directories in the list `exec-path' are searched; this list is initialized
77: based on the environment variable `PATH' when Emacs is started. Your
78: `.emacs' file can override either or both of these default initializations.
79:
80: With `M-!' and `M-|', Emacs has to wait until the shell command
81: completes. You can quit with `C-g'; that terminates the shell command.
82:
83:
84: File: emacs Node: Interactive Shell, Prev: Single Shell, Up: Shell, Next: Shell Mode
85:
86: Interactive Inferior Shell
87: --------------------------
88:
89: To run a subshell interactively, putting its typescript in an Emacs
90: buffer, use `M-x shell'. This creates (or reuses) a buffer named
91: `*shell*' and runs a subshell with input coming from and output going
92: to that buffer. That is to say, any "terminal output" from the subshell
93: will go into the buffer, advancing point, and any "terminal input" for
94: the subshell comes from text in the buffer. To give input to the subshell,
95: go to the end of the buffer and type the input, terminated by RET.
96:
97: Emacs does not wait for the subshell to do anything. You can switch
98: windows or buffers and edit them while the shell is waiting, or while it is
99: running a command. Output from the subshell waits until Emacs has time to
100: process it; this happens whenever Emacs is waiting for keyboard input or
101: for time to elapse.
102:
103: If you would like multiple subshells, change the name of buffer
104: `*shell*' to something different by using `M-x rename-buffer'. The
105: next use of `M-x shell' will create a new buffer `*shell*' with
106: its own subshell. By renaming this buffer as well you can create a third
107: one, and so on. All the subshells run independently and in parallel.
108:
109: The file name used to load the subshell is the value of the variable
110: `explicit-shell-file-name', if that is non-`nil'. Otherwise, the
111: environment variable `ESHELL' is used, or the environment variable `SHELL'
112: if there is no `ESHELL'. If the file name specified is relative, the
113: directories in the list `exec-path' are searched (*Note Single Shell
114: Commands: Single Shell.).
115:
116: As soon as the subshell is started, it is sent as input the contents of
117: the file `~/.emacs_SHELLNAME', if that file exists, where SHELLNAME is the
118: name of the file that the shell was loaded from. For example, if you use
119: `csh', the file sent to it is `~/.emacs_csh'.
120:
121: `cd', `pushd' and `popd' commands given to the inferior shell are watched
122: by Emacs so it can keep the `*shell*' buffer's default directory the same
123: as the shell's working directory. These commands are recognized
124: syntactically by examining lines of input that are sent. If you use
125: aliases for these commands, you can tell Emacs to recognize them also. For
126: example, if the value of the variable `shell-pushd-regexp' matches the
127: beginning of a shell command line, that line is regarded as a `pushd'
128: command. Change this variable when you add aliases for `pushd'. Likewise,
129: `shell-popd-regexp' and `shell-cd-regexp' are used to recognize commands
130: with the meaning of `popd' and `cd'. These commands are recognized only at
131: the beginning of a shell command line.
132:
133: If Emacs gets an error while trying to handle what it believes is a `cd',
134: `pushd' or `popd' command, and the value of
135: `shell-set-directory-error-hook' is non-`nil', that value is called as a
136: function with no arguments.
137:
138:
139: File: emacs Node: Shell Mode, Prev: Interactive Shell, Up: Shell
140:
141: Shell Mode
142: ----------
143:
144: The shell buffer uses Shell mode, which defines several special keys
145: attached to the `C-c' prefix. They are chosen to resemble the usual
146: editing and job control characters present in shells that are not under
147: Emacs, except that you must type `C-c' first. Here is a complete list
148: of the special key bindings of Shell mode:
149:
150: `RET'
151: At end of buffer send line as input; otherwise, copy current line to end of
152: buffer and send it (`send-shell-input'). When a line is copied, any
153: text at the beginning of the line that matches the variable
154: `shell-prompt-pattern' is left out; this variable's value should be a
155: regexp string that matches the prompts that you use in your subshell.
156: `C-c C-d'
157: Send end-of-file as input, probably causing the shell or its current
158: subjob to finish (`shell-send-eof').
159: `C-c C-u'
160: Kill all text that has yet to be sent as input (`kill-shell-input').
161: `C-c C-w'
162: Kill a word before point (`backward-kill-word').
163: `C-c C-c'
164: Interrupt the shell or its current subjob if any
165: (`interrupt-shell-subjob').
166: `C-c C-z'
167: Stop the shell or its current subjob if any (`stop-shell-subjob').
168: `C-c C-\'
169: Send quit signal to the shell or its current subjob if any
170: (`quit-shell-subjob').
171: `C-c C-o'
172: Delete last batch of output from shell (`kill-output-from-shell').
173: `C-c C-r'
174: Scroll top of last batch of output to top of window
175: (`show-output-from-shell').
176: `C-c C-y'
177: Copy the previous bunch of shell input, and insert it into the
178: buffer before point (`copy-last-shell-input'). No final newline
179: is inserted, and the input copied is not resubmitted until you type
180: RET.
181:
182:
183: File: emacs Node: Hardcopy, Prev: Shell, Up: Top, Next: Dissociated Press
184:
185: Hardcopy Output
186: ===============
187:
188: The Emacs commands for making hardcopy derive their names from the
189: Unix commands `print' and `lpr'.
190:
191: `M-x print-buffer'
192: Print hardcopy of current buffer using Unix command `print'
193: (`lpr -p'). This makes page headings containing the file name
194: and page number.
195: `M-x lpr-buffer'
196: Print hardcopy of current buffer using Unix command `lpr'.
197: This makes no page headings.
198: `M-x print-region'
199: Like `print-buffer' but prints only the current region.
200: `M-x lpr-region'
201: Like `lpr-buffer' but prints only the current region.
202:
203: All the hardcopy commands pass extra switches to the `lpr' program
204: based on the value of the variable `lpr-switches'. Its value should
205: be a list of strings, each string a switch starting with `-'. For
206: example, the value could be `("-Pfoo")' to print on printer
207: `foo'.
208:
209:
210: File: emacs Node: Dissociated Press, Prev: Hardcopy, Up: Top, Next: Amusements
211:
212: Dissociated Press
213: =================
214:
215: `M-x dissociated-press' is a command for scrambling a file of text
216: either word by word or character by character. Starting from a buffer of
217: straight English, it produces extremely amusing output. The input comes
218: from the current Emacs buffer. Dissociated Press writes its output in a
219: buffer named `*Dissociation*', and redisplays that buffer after every
220: couple of lines (approximately) to facilitate reading it.
221:
222: `dissociated-press' asks every so often whether to continue
223: operating. Answer `n' to stop it. You can also stop at any time by
224: typing `C-g'. The dissociation output remains in the `*Dissociation*'
225: buffer for you to copy elsewhere if you wish.
226:
227: Dissociated Press operates by jumping at random from one point in the
228: buffer to another. In order to produce plausible output rather than
229: gibberish, it insists on a certain amount of overlap between the end of one
230: run of consecutive words or characters and the start of the next. That is,
231: if it has just printed out `president' and then decides to jump to a
232: different point in the file, it might spot the `ent' in `pentagon' and
233: continue from there, producing `presidentagon'. Long sample texts produce
234: the best results.
235:
236: A positive argument to `M-x dissociated-press' tells it to operate
237: character by character, and specifies the number of overlap characters. A
238: negative argument tells it to operate word by word and specifies the number
239: of overlap words. In this mode, whole words are treated as the elements to
240: be permuted, rather than characters. No argument is equivalent to an
241: argument of two. For your againformation, the output goes only into the
242: buffer `*Dissociation*'. The buffer you start with is not changed.
243:
244: Dissociated Press produces nearly the same results as a Markov chain
245: based on a frequency table constructed from the sample text. It is,
246: however, an independent, ignoriginal invention. Dissociated Press
247: techniquitously copies several consecutive characters from the sample
248: between random choices, whereas a Markov chain would choose randomly for
249: each word or character. This makes for more plausible sounding results,
250: and runs faster.
251:
252: It is a mustatement that too much use of Dissociated Press can be a
253: developediment to your real work. Sometimes to the point of outragedy.
254: And keep dissociwords out of your documentation, if you want it to be well
255: userenced and properbose. Have fun. Your buggestions are welcome.
256:
257:
258: File: emacs Node: Amusements, Prev: Dissociated Press, Up: Top, Next: Emulation
259:
260: Other Amusements
261: ================
262:
263: If you are a little bit bored, you can try `M-x hanoi'. If you are
264: considerably bored, give it a numeric argument. If you are very very
265: bored, try an argument of 9. Sit back and watch.
266:
267: When you are frustrated, try the famous Eliza program. Just do
268: `M-x doctor'. End each input by typing `RET' twice.
269:
270: When you are feeling strange, type `M-x yow'.
271:
272:
273: File: emacs Node: Emulation, Prev: Amusements, Up: Top, Next: Customization
274:
275: Emulation
276: =========
277:
278: GNU Emacs can be programmed to emulate (more or less) most other
279: editors. Standard facilities can emulate these:
280:
281: EDT (DEC VMS editor)
282: Turn on EDT emulation with `M-x edt-emulation-on'. `M-x
283: edt-emulation-off' restores normal Emacs command bindings.
284:
285: Most of the EDT emulation commands are keypad keys, and most standard Emacs
286: key bindings are still available. The EDT emulation rebindings are done in
287: the global keymap, so there is no problem switching buffers or major modes
288: while in EDT emulation.
289:
290: Gosling Emacs
291: Turn on emulation of Gosling Emacs (aka Unipress Emacs) with `M-x
292: set-gosmacs-bindings'. This redefines many keys, mostly on the
293: `C-x' and `ESC' prefixes, to work as they do in Gosmacs.
294: `M-x set-gnu-bindings' returns to normal GNU Emacs by rebinding
295: the same keys to the definitions they had at the time `M-x
296: set-gosmacs-bindings' was done.
297:
298: It is also possible to run Mocklisp code written for Gosling Emacs.
299: *Note Mocklisp::.
300:
301: vi (Berkeley Unix editor)
302: Turn on vi emulation with `M-x vi-mode'. This is a major mode
303: that replaces the previously established major mode. All of the
304: vi commands that, in real vi, enter "input" mode are programmed
305: in the Emacs emulator to return to the previous major mode. Thus,
306: ordinary Emacs serves as vi's "input" mode.
307:
308: Because vi emulation works through major modes, it does not work
309: to switch buffers during emulation. Return to normal Emacs first.
310:
311: If you plan to use vi emulation much, you probably want to bind a key
312: to the `vi-mode' command.
313:
314: vi (alternate emulator)
315: Another vi emulator said to resemble real vi more thoroughly is
316: invoked by `M-x vip-mode'. "Input" mode in this emulator is
317: changed from ordinary Emacs so you can use ESC to go back to
318: emulated vi command mode. To get from emulated vi command mode back
319: to ordinary Emacs, type `C-z'.
320:
321: This emulation does not work through major modes, and it is possible
322: to switch buffers in various ways within the emulator. It is not
323: so necessary to assign a key to the command `vip-mode' as
324: it is with `vi-mode' because terminating insert mode does
325: not use it.
326:
327: For full information, see the long comment at the beginning of the
328: source file, which is `lisp/vip.el' in the Emacs distribution.
329:
330: I am interested in hearing which vi emulator users prefer, as well as in
331: receiving more complete user documentation for either or both emulators.
332: Warning: loading both at once may cause name conficts; no one has checked.
333:
334:
335: File: emacs Node: Customization, Prev: Emulation, Up: Top, Next: Quitting
336:
337: Customization
338: *************
339:
340: This chapter talks about various topics relevant to adapting the
341: behavior of Emacs in minor ways.
342:
343: All kinds of customization affect only the particular Emacs job that you
344: do them in. They are completely lost when you kill the Emacs job, and have
345: no effect on other Emacs jobs you may run at the same time or later. The
346: only way an Emacs job can affect anything outside of it is by writing a
347: file; in particular, the only way to make a customization `permanent' is to
348: put something in your `.emacs' file or other appropriate file to do the
349: customization in each session. *Note Init File::.
350:
351: * Menu:
352:
353: * Minor Modes:: Each minor mode is one feature you can turn on
354: independently of any others.
355: * Variables:: Many Emacs commands examine Emacs variables
356: to decide what to do; by setting variables,
357: you can control their functioning.
358: * Keyboard Macros:: A keyboard macro records a sequence of keystrokes
359: to be replayed with a single command.
360: * Key Bindings:: The keymaps say what command each key runs.
361: By changing them, you can "redefine keys".
362: * Syntax:: The syntax table controls how words and expressions
363: are parsed.
364: * Init File:: How to write common customizations in the `.emacs' file.
365:
366:
367: File: emacs Node: Minor Modes, Prev: Customization, Up: Customization, Next: Variables
368:
369: Minor Modes
370: ===========
371:
372: Minor modes are options which you can use or not. For example, Auto Fill
373: mode is a minor mode in which SPC breaks lines between words as you
374: type. All the minor modes are independent of each other and of the
375: selected major mode. Most minor modes say in the mode line when they are
376: on; for example, `Fill' in the mode line means that Auto Fill mode is
377: on.
378:
379: Append `-mode' to the name of a minor mode to get the name of a
380: command function that turns the mode on or off. Thus, the command to
381: enable or disable Auto Fill mode is called `M-x auto-fill-mode'. These
382: commands are usually invoked with `M-x', but you can bind keys to them
383: if you wish. With no argument, the function turns the mode on if it was
384: off and off if it was on. This is known as "toggling". A positive
385: argument always turns the mode on, and an explicit zero argument or a
386: negative argument always turns it off.
387:
388: Auto Fill mode allows you to enter filled text without breaking lines
389: explicitly. Emacs inserts newlines as necessary to prevent lines from
390: becoming too long. *Note Filling::.
391:
392: Overwrite mode causes ordinary printing characters to replace existing
393: text instead of shoving it over. For example, if the point is in front of
394: the `B' in `FOOBAR', then in Overwrite mode typing a `G' changes it to
395: `FOOGAR', instead of making it `FOOGBAR' as usual.
396:
397: Abbrev mode allows you to define abbreviations that automatically expand
398: as you type them. For example, `amd' might expand to `abbrev
399: mode'. *Note Abbrevs::, for full information.
400:
401:
402: File: emacs Node: Variables, Prev: Minor Modes, Up: Customization, Next: Keyboard Macros
403:
404: Variables
405: =========
406:
407: A "variable" is a Lisp symbol which has a value. The symbol's name
408: is also called the name of the variable. Variable names can contain any
409: characters, but conventionally they are chosen to be words separated by
410: hyphens. A variable can have a documentation string which describes what
411: kind of value it should have and how the value will be used.
412:
413: Lisp allows any variable to have any kind of value, but most variables
414: that Emacs uses require a value of a certain type. Often the value should
415: always be a string, or should always be a number. Sometimes we say that a
416: certain feature is turned on if a variable is "non-`nil'," meaning
417: that if the variable's value is `nil', the feature is off, but the
418: feature is on for any other value. The conventional value to use to
419: turn on the feature---since you have to pick one particular value when you
420: set the variable---is `t'.
421:
422: Emacs uses many Lisp variables for internal recordkeeping, as any Lisp
423: program must, but the most interesting variables for you are the ones that
424: exist for the sake of customization. Emacs does not (usually) change the
425: values of these variables; instead, you set the values, and thereby alter
426: and control the behavior of certain Emacs commands. These variables are
427: called "options". Most options are documented in this manual, and
428: appear in the Variable Index (*Note Variable Index::).
429:
430: One example of a variable which is an option is `fill-column', which
431: specifies the position of the right margin (as a number of characters from
432: the left margin) to be used by the fill commands (*Note Filling::).
433:
434: * Menu:
435:
436: * Examining:: Examining or setting one variable's value.
437: * Edit Options:: Examining or editing list of all variables' values.
438: * Locals:: Per-buffer values of variables.
439: * File Variables:: How files can specify variable values.
440:
441:
442: File: emacs Node: Examining, Prev: Variables, Up: Variables, Next: Edit Options
443:
444: Examining and Setting Variables
445: -------------------------------
446:
447: `C-h v'
448: `M-x describe-variable'
449: Print the value and documentation of a variable.
450: `M-x set-variable'
451: Change the value of a variable.
452:
453: To examine the value of a single variable, use `C-h v'
454: (`describe-variable'), which reads a variable name using the
455: minibuffer, with completion. It prints both the value and the
456: documentation of the variable.
457:
458: C-h v fill-column RET
459: prints something like
460: fill-column's value is 75
461:
462: Documentation:
463: *Column beyond which automatic line-wrapping should happen.
464: Automatically becomes local when set in any fashion.
465:
466: The star at the beginning of the documentation indicates that this variable
467: is an option. `C-h v' is not restricted to options; it allows any
468: variable name.
469:
470: If you know which option you want to set, you can set it using `M-x
471: set-variable'. This reads the variable name with the minibuffer (with
472: completion), and then reads a Lisp expression for the new value using the
473: minibuffer a second time. For example,
474:
475: M-x set-variable RET fill-column RET 75 RET
476:
477: sets `fill-column' to 75, like executing the Lisp expression
478:
479: (setq fill-column 75)
480:
481: Setting variables in this way, like all means of customizing Emacs
482: except where explicitly stated, affects only the current Emacs session.
483:
484:
485: File: emacs Node: Edit Options, Prev: Examining, Up: Variables, Next: Locals
486:
487: Editing Variable Values
488: -----------------------
489:
490: `M-x list-options'
491: Display a buffer listing names, values and documentation of all options.
492: `M-x edit-options'
493: Change option values by editing a list of options.
494:
495: `M-x list-options' displays a list of all Emacs option variables, in
496: an Emacs buffer named `*List Options*'. Each option is shown with its
497: documentation and its current value. Here is what a portion of it might
498: look like:
499:
500: ;; exec-path:
501: ("." "/usr/local/bin" "/usr/ucb" "/bin" "/usr/bin" "/u2/emacs/etc")
502: *List of directories to search programs to run in subprocesses.
503: Each element is a string (directory name)
504: or nil (try the default directory).
505: ;;
506: ;; fill-column:
507: 75
508: *Column beyond which automatic line-wrapping should happen.
509: Automatically becomes local when set in any fashion.
510: ;;
511:
512: `M-x edit-options' goes one step further and immediately selects the
513: `*List Options*' buffer; this buffer uses the major mode Options mode,
514: which provides commands that allow you to point at an option and change its
515: value:
516:
517: `s'
518: Set the variable point is in or near to a new value read using the
519: minibuffer.
520: `x'
521: Toggle the variable point is in or near: if the value was `nil',
522: it becomes `t'; otherwise it becomes `nil'.
523: `1'
524: Set the variable point is in or near to `t'.
525: `0'
526: Set the variable point is in or near to `nil'.
527: `n'
528: `p'
529: Move to the next or previous variable.
530:
531:
532: File: emacs Node: Locals, Prev: Edit Options, Up: Variables, Next: File Variables
533:
534: Local Variables
535: ---------------
536:
537: `M-x make-local-variable'
538: Make a variable have a local value in the current buffer.
539: `M-x kill-local-variable'
540: Make a variable use its global value in the current buffer.
541: `M-x make-variable-buffer-local'
542: Mark a variable so that setting it will make it local to the
543: buffer that is current at that time.
544:
545: Any variable can be made "local" to a specific Emacs buffer. This
546: means that its value in that buffer is independent of its value in other
547: buffers. A few variables are always local in every buffer. Every other
548: Emacs variable has a "global" value which is in effect in all buffers
549: that have not made the variable local.
550:
551: Major modes always make the variables they set local to the buffer.
552: This is why changing major modes in one buffer has no effect on other
553: buffers.
554:
555: `M-x make-local-variable' reads the name of a variable and makes it
556: local to the current buffer. Further changes in this buffer will not
557: affect others, and further changes in the global value will not affect this
558: buffer.
559:
560: `M-x make-variable-buffer-local' reads the name of a variable and
561: changes the future behavior of the variable so that it will become local
562: automatically when it is set. More precisely, once a variable has been
563: marked in this way, the usual ways of setting the variable will
564: automatically do `make-local-variable' first. We call such variables
565: "per-buffer" variables.
566:
567: Some important variables have been marked per-buffer already. These
568: include `abbrev-mode', `auto-fill-hook', `case-fold-search',
569: `comment-column', `ctl-arrow', `fill-column', `fill-prefix',
570: `indent-tabs-mode', `left-margin', `mode-line-format', `overwrite-mode',
571: `selective-display-ellipses', `selective-display', `tab-width', and
572: `truncate-lines'. Some other variables are always local in every buffer,
573: but they are used for internal purposes.
574:
575: `M-x kill-local-variable' reads the name of a variable and makes it
576: cease to be local to the current buffer. The global value of the variable
577: henceforth is in effect in this buffer. Setting the major mode kills all
578: the local variables of the buffer.
579:
580: To set the global value of a variable, regardless of whether the
581: variable has a local value in the current buffer, you can use the
582: Lisp function `setq-default'. It works like `setq'.
583: If there is a local value in the current buffer, the local value is
584: not affected by `setq-default'; thus, the new global value may
585: not be visible until you switch to another buffer. For example,
586:
587: (setq-default fill-column 75)
588:
589: `setq-default' is the only way to set the global value of a variable
590: that has been marked with `make-variable-buffer-local'.
591:
592: Programs can look at a variable's default value with `default-value'.
593: This function takes a symbol as argument and returns its default value.
594: The argument is evaluated; usually you must quote it explicitly. For
595: example,
596:
597: (default-value 'fill-column)
598:
599:
600: File: emacs Node: File Variables, Prev: Locals, Up: Variables
601:
602: Local Variables in Files
603: ------------------------
604:
605: A file can contain a "local variables list", which specifies the
606: values to use for certain Emacs variables when that file is edited.
607: Visiting the file checks for a local variables list and makes each variable
608: in the list local to the buffer in which the file is visited, with the
609: value specified in the file.
610:
611: A local variables list goes near the end of the file, in the last page.
612: (It is often best to put it on a page by itself.) The local variables list
613: starts with a line containing the string `Local Variables:', and ends
614: with a line containing the string `End:'. In between come the
615: variable names and values, one set per line, as `VARIABLE:
616: VALUE'. The VALUEs are not evaluated; they are used literally.
617:
618: The line which starts the local variables list does not have to say just
619: `Local Variables:'. If there is other text before `Local Variables:', that
620: text is called the "prefix", and if there is other text after, that is
621: called the "suffix". If these are present, each entry in the local
622: variables list should have the prefix before it and the suffix after it.
623: This includes the `End:' line. The prefix and suffix are included to
624: disguise the local variables list as a comment so that the compiler or text
625: formatter will not be perplexed by it. If you do not need to disguise the
626: local variables list as a comment in this way, do not bother with a prefix
627: or a suffix.
628:
629: Two "variable" names are special in a local variables list: a value for
630: the variable `mode' really sets the major mode, and a value for the
631: variable `eval' is simply evaluated as an expression and the value is
632: ignored. These are not real variables; setting such variables in any other
633: context has no such effect. If `mode' is used in a local variables
634: list, it should be the first entry in the list.
635:
636: Here is an example of a local variables list:
637: ;;; Local Variables: ***
638: ;;; mode:lisp ***
639: ;;; comment-column:0 ***
640: ;;; comment-start: ";;; " ***
641: ;;; comment-end:"***" ***
642: ;;; End: ***
643:
644: Note that the prefix is `;;; ' and the suffix is ` ***'. Note also
645: that comments in the file begin with and end with the same strings.
646: Presumably the file contains code in a language which is like Lisp
647: (like it enough for Lisp mode to be useful) but in which comments start
648: and end in that way. The prefix and suffix are used in the local
649: variables list to make the list appear as comments when the file is read
650: by the compiler or interpreter for that language.
651:
652: The start of the local variables list must be no more than 3000
653: characters from the end of the file, and must be in the last page if the
654: file is divided into pages. Otherwise, Emacs will not notice it is there.
655: The purpose of this is so that a stray `Local Variables:' not in the
656: last page does not confuse Emacs, and so that visiting a long file that is
657: all one page and has no local variables list need not take the time to
658: search the whole file.
659:
660: You may be tempted to try to turn on Auto Fill mode with a local variable
661: list. That is a mistake. The choice of Auto Fill mode or not is a matter
662: of individual taste, not a matter of the contents of particular files.
663: If you want to use Auto Fill, set up major mode hooks with your `.emacs'
664: file to turn it on (when appropriate) for you alone (*Note Init File::).
665: Don't try to use a local variable list that would impose your taste on
666: everyone.
667:
668:
669: File: emacs Node: Keyboard Macros, Prev: Variables, Up: Customization, Next: Key Bindings
670:
671: Keyboard Macros
672: ===============
673:
674: A "keyboard macro" is a command defined by the user to abbreviate a
675: sequence of keys. For example, if you discover that you are about to type
676: `C-n C-d' forty times, you can speed your work by defining a keyboard
677: macro to do `C-n C-d' and calling it with a repeat count of forty.
678:
679: `C-x ('
680: Start defining a keyboard macro (`start-kbd-macro').
681: `C-x )'
682: End the definition of a keyboard macro (`end-kbd-macro').
683: `C-x e'
684: Execute the most recent keyboard macro (`call-last-kbd-macro').
685: `C-u C-x ('
686: Re-execute last keyboard macro, then add more keys to its definition.
687: `C-x q'
688: When this point is reached during macro execution, ask for confirmation
689: (`kbd-macro-query').
690: `M-x name-last-kbd-macro'
691: Give a command name (for the duration of the session) to the most
692: recently defined keyboard macro.
693: `M-x insert-kbd-macro'
694: Insert in the buffer a keyboard macro's definition, as Lisp code.
695:
696: Keyboard macros differ from ordinary Emacs commands in that they are
697: written in the Emacs command language rather than in Lisp. This makes it
698: easier for the novice to write them, and makes them more convenient as
699: temporary hacks. However, the Emacs command language is not powerful
700: enough as a programming language to be useful for writing anything
701: intelligent or general. For such things, Lisp must be used.
702:
703: You define a keyboard macro while executing the commands which are the
704: definition. Put differently, as you are defining a keyboard macro, the
705: definition is being executed for the first time. This way, you can see
706: what the effects of your commands are, so that you don't have to figure
707: them out in your head. When you are finished, the keyboard macro is
708: defined and also has been, in effect, executed once. You can then do the
709: whole thing over again by invoking the macro.
710:
711: * Menu:
712:
713: * Basic Kbd Macro:: Defining and running keyboard macros.
714: * Save Kbd Macro:: Giving keyboard macros names; saving them in files.
715: * Kbd Macro Query:: Keyboard macros that do different things each use.
716:
717:
718: File: emacs Node: Basic Kbd Macro, Prev: Keyboard Macros, Up: Keyboard Macros, Next: Save Kbd Macro
719:
720: Basic Use
721: ---------
722:
723: To start defining a keyboard macro, type the `C-x (' command
724: (`start-kbd-macro'). From then on, your keys continue to be
725: executed, but also become part of the definition of the macro. `Def'
726: appears in the mode line to remind you of what is going on. When you are
727: finished, the `C-x )' command (`end-kbd-macro') terminates the
728: definition (without becoming part of it!). For example
729:
730: C-x ( M-F foo C-x )
731:
732: defines a macro to move forward a word and then insert `foo'.
733:
734: The macro thus defined can be invoked again with the `C-x e' command
735: (`call-last-kbd-macro'), which may be given a repeat count as a
736: numeric argument to execute the macro many times. `C-x )' can also be
737: given a repeat count as an argument, in which case it repeats the macro
738: that many times right after defining it, but defining the macro counts as
739: the first repetition (since it is executed as you define it). So, giving
740: `C-x )' an argument of 4 executes the macro immediately 3 additional
741: times. An argument of zero to `C-x e' or `C-x )' means repeat the
742: macro indefinitely (until it gets an error or you type `C-g').
743:
744: If you wish to repeat an operation at regularly spaced places in the
745: text, define a macro and include as part of the macro the commands to move
746: to the next place you want to use it. For example, if you want to change
747: each line, you should position point at the start of a line, and define a
748: macro to change that line and leave point at the start of the next line.
749: Then repeating the macro will operate on successive lines.
750:
751: After you have terminated the definition of a keyboard macro, you can add
752: to the end of its definition by typing `C-u C-x ('. This is equivalent
753: to plain `C-x (' followed by retyping the whole definition so far. As
754: a consequence it re-executes the macro as previously defined.
755:
756:
757: File: emacs Node: Save Kbd Macro, Prev: Basic Kbd Macro, Up: Keyboard Macros, Next: Kbd Macro Query
758:
759: Naming and Saving Keyboard Macros
760: ---------------------------------
761:
762: If you wish to save a keyboard macro for longer than until you define the
763: next one, you must give it a name using `M-x name-last-kbd-macro'.
764: This reads a name as an argument using the minibuffer and defines that name
765: to execute the macro. The macro name is a Lisp symbol, and defining it in
766: this way makes it a valid command name for calling with `M-x' or for
767: binding a key to with `global-set-key' (*Note Keymaps::). If you
768: specify a name that has a prior definition other than another keyboard
769: macro, an error message is printed and nothing is changed.
770:
771: Once a macro has a command name, you can save its definition in a file.
772: Then it can be used in another editing session. First visit the file
773: you want to save the definition in. Then use the command
774:
775: M-x insert-kbd-macro RET MACRONAME RET
776:
777: This inserts some Lisp code that, when executed later, will define the same
778: macro with the same definition it has now. You need not understand Lisp
779: code to do this, because `insert-kbd-macro' writes the Lisp code for you.
780: Then save the file. The file can be loaded with `load-file'
781: (*Note Lisp Libraries::). If the file you save in is your init file
782: `~/.emacs' (*Note Init File::) then the macro will be defined each
783: time you run Emacs.
784:
785: If you give `insert-kbd-macro' a prefix argument, it makes
786: additional Lisp code to record the keys (if any) that you have bound to the
787: keyboard macro, so that the macro will be reassigned the same keys when you
788: load the file.
789:
790:
791: File: emacs Node: Kbd Macro Query, Prev: Save Kbd Macro, Up: Keyboard Macros
792:
793: Executing Macros with Variations
794: --------------------------------
795:
796: Using `C-x q' (`kbd-macro-query'), you can get an effect similar
797: to that of `query-replace', where the macro asks you each time around
798: whether to make a change. When you are defining the macro, type `C-x
799: q' at the point where you want the query to occur. During macro
800: definition, the `C-x q' does nothing, but when the macro is invoked the
801: `C-x q' reads a character from the terminal to decide whether to
802: continue.
803:
804: The special answers are SPC, DEL, `C-d', `C-l' and `C-r'. Any other
805: character terminates execution of the keyboard macro and is then read as a
806: command. SPC means to continue. DEL means to skip the remainder of this
807: repetition of the macro, starting again from the beginning in the next
808: repetition. `C-d' means to skip the remainder of this repetition and
809: cancel further repetition. `C-l' redraws the screen and asks you again for
810: a character to say what to do. `C-r' enters a recursive editing level, in
811: which you can perform editing which is not part of the macro. When you
812: exit the recursive edit using `C-M-c', you are asked again how to continue
813: with the keyboard macro. If you type a SPC at this time, the rest of the
814: macro definition is executed. It is up to you to leave point and the text
815: in a state such that the rest of the macro will do what you want.
816:
817: `C-u C-x q', which is `C-x q' with a numeric argument, performs a
818: different function. It enters a recursive edit reading input from the
819: keyboard, both when you type it during the definition of the macro, and
820: when it is executed from the macro. During definition, the editing you do
821: inside the recursive edit does not become part of the macro. During macro
822: execution, the recursive edit gives you a chance to do some particularized
823: editing. *Note Recursive Edit::.
824:
825:
826: File: emacs Node: Key Bindings, Prev: Keyboard Macros, Up: Customization, Next: Syntax
827:
828: Customizing Key Bindings
829: ========================
830:
831: This section deals with the "keymaps" which define the bindings
832: between keys and functions, and shows how you can customize these bindings.
833:
834: A command is a Lisp function whose definition provides for interactive
835: use. Like every Lisp function, a command has a function name, a Lisp
836: symbol whose name usually consists of lower case letters and hyphens.
837:
838: * Menu:
839:
840: * Keymaps:: Definition of the keymap data structure.
841: Names of Emacs's standard keymaps.
842: * Rebinding:: How to redefine one key's meaning conveniently.
843: * Disabling:: Disabling a command means confirmation is required
844: before it can be executed. This is done to protect
845: beginners from surprises.
846:
847:
848: File: emacs Node: Keymaps, Prev: Key Bindings, Up: Key Bindings, Next: Rebinding
849:
850: Keymaps
851: -------
852:
853: The bindings between characters and command functions are recorded in
854: data structures called "keymaps". Emacs has many of these. One, the
855: "global" keymap, defines the meanings of the single-character keys that
856: are defined regardless of major mode. It is the value of the variable
857: `global-map'.
858:
859: Each major mode has another keymap, its "local keymap", which
860: contains overriding definitions for the single-character keys that are to
861: be redefined in that mode. Each buffer records which local keymap is
862: installed for it at any time, and the current buffer's local keymap is the
863: only one that directly affects command execution. The local keymaps for
864: Lisp mode, C mode, and many other major modes always exist even when not in
865: use. They are the values of the variables `lisp-mode-map',
866: `c-mode-map', and so on. For major modes less often used, the local
867: keymap is sometimes constructed only when the mode is used for the first
868: time in a session. This is to save space.
869:
870: There are local keymaps for the minibuffer too; they contain various
871: completion and exit commands.
872:
873: * `minibuffer-local-map' is used for ordinary input (no completion).
874: * `minibuffer-local-ns-map' is similar, except that SPC exits
875: just like RET. This is used mainly for Mocklisp compatibility.
876: * `minibuffer-local-completion-map' is for permissive completion.
877: * `minibuffer-local-must-match-map' is for strict completion and
878: for cautious completion.
879: * `repeat-complex-command-map' is for use in `C-x ESC'.
880:
881: Finally, each prefix key has a keymap which defines the key sequences
882: that start with it. For example, `ctl-x-map' is the keymap used for
883: characters following a `C-x'.
884:
885: * `ctl-x-map' is the variable name for the map used for characters that
886: follow `C-x'.
887: * `help-map' is used for characters that follow `C-h'.
888: * `esc-map' is for characters that follow ESC. Thus, all Meta
889: characters are actually defined by this map.
890: * `ctl-x-4-map' is for characters that follow `C-x 4'.
891: * `mode-specific-map' is for characters that follow `C-c'.
892:
893: The definition of a prefix key is just the keymap to use for looking up
894: the following character. Actually, the definition is sometimes a Lisp
895: symbol whose function definition is the following character keymap. The
896: effect is the same, but it provides a command name for the prefix key that
897: can be used as a description of what the prefix key is for. Thus, the
898: binding of `C-x' is the symbol `Ctl-X-Prefix', whose function definition is
899: the keymap for `C-x' commands, the value of `ctl-x-map'.
900:
901: Prefix key definitions of this sort can appear in either the global map
902: or a local map. The definitions of `C-c', `C-x', `C-h' and ESC as prefix
903: keys appear in the global map, so these prefix keys are always available.
904: Major modes can locally redefine a key as a prefix by putting a prefix key
905: definition for it in the local map.
906:
907: A mode can also put a prefix definition of a global prefix character such
908: as `C-x' into its local map. This is how major modes override the
909: definitions of certain keys that start with `C-x'. This case is special,
910: because the local definition does not entirely replace the global one.
911: When both the global and local definitions of a key are other keymaps, the
912: next character is looked up in both keymaps, with the local definition
913: overriding the global one as usual. So, the character after the `C-x' is
914: looked up in both the major mode's own keymap for redefined `C-x' commands
915: and in `ctl-x-map'. If the major mode's own keymap for `C-x' commands
916: contains `nil', the definition from the global keymap for `C-x' commands is
917: used.
918:
919: A keymap is actually a Lisp object. The simplest form of keymap is a
920: Lisp vector of length 128. The binding for a character in such a keymap is
921: found by indexing into the vector with the character as an index. A keymap
922: can also be a Lisp list whose car is the symbol `keymap' and whose
923: remaining elements are pairs of the form `(CHAR . BINDING)'.
924: Such lists are called "sparse keymaps" because they are used when most
925: of the characters' entries will be `nil'. Sparse keymaps are used
926: mainly for prefix characters.
927:
928: Keymaps are only of length 128, so what about Meta characters, whose
929: codes are from 128 to 255? A key that contains a Meta character actually
930: represents it as a sequence of two characters, the first of which is ESC.
931: So the key `M-a' is really represented as `ESC a', and its binding is found
932: at the slot for `a' in `esc-map'.
933:
934:
935: File: emacs Node: Rebinding, Prev: Keymaps, Up: Key Bindings, Next: Disabling
936:
937: Changing Key Bindings Interactively
938: -----------------------------------
939:
940: The way to redefine an Emacs key is to change its entry in a keymap.
941: You can change the global keymap, in which case the change is effective in
942: all major modes (except those that have their own overriding local
943: definitions for the same key). Or you can change the current buffer's
944: local map, which affects all buffers using the same major mode.
945:
946: `M-x global-set-key RET KEY CMD RET'
947: Defines KEY globally to run CMD.
948: `M-x local-set-key RET KEY CMD RET'
949: Defines KEY locally (in the major mode now in effect) to run
950: CMD.
951:
952: For example,
953:
954: M-x global-set-key RET C-f next-line RET
955:
956: would redefine `C-f' to move down a line. The fact that CMD is
957: read second makes it serve as a kind of confirmation for KEY.
958:
959: These functions offer no way to specify a particular prefix keymap as the
960: one to redefine in, but that is not necessary, as you can include prefixes
961: in KEY. KEY is read by reading characters one by one until they amount to
962: a complete key (that is, not a prefix key). Thus, if you type `C-f' for
963: KEY, that's the end; the minibuffer is entered immediately to read CMD.
964: But if you type `C-x', another character is read; if that is `4', another
965: character is read, and so on. For example,
966:
967: M-x global-set-key RET C-x 4 $ spell-other-window RET
968:
969: would redefine `C-x 4 $' to run the (fictitious) command
970: `spell-other-window'.
971:
972: The most general way to modify a keymap is the function `define-key',
973: used in Lisp code (such as your `.emacs' file). `define-key'
974: takes three arguments: the keymap, the key to modify in it, and the new
975: definition. *Note Init File::, for an example. `substitute-key-definition'
976: is used similarly; it takes three arguments, an old definition, a new
977: definition and a keymap, and redefines in that keymap all keys that were
978: previously defined with the old definition to have the new definition
979: instead.
980:
981:
982: File: emacs Node: Disabling, Prev: Rebinding, Up: Key Bindings
983:
984: Disabling Commands
985: ------------------
986:
987: Disabling a command marks the command as requiring confirmation before it
988: can be executed. The purpose of disabling a command is to prevent
989: beginning users from executing it by accident and being confused.
990:
991: The direct mechanism for disabling a command is to have a non-`nil'
992: `disabled' property on the Lisp symbol for the command. These
993: properties are normally set up by the user's `.emacs' file with
994: Lisp expressions such as
995:
996: (put 'delete-region 'disabled t)
997:
998: If the value of the `disabled' property is a string, that string
999: is included in the message printed when the command is used:
1000:
1001: (put 'delete-region 'disabled
1002: "Text deleted this way cannot be yanked back!\n")
1003:
1004: You can make a command disabled either by editing the `.emacs' file
1005: directly or with the command `M-x disable-command', which edits the
1006: `.emacs' file for you. *Note Init File::.
1007:
1008: Attempting to invoke a disabled command interactively in Emacs causes the
1009: display of a window containing the command's name, its documentation, and
1010: some instructions on what to do immediately; then Emacs asks for input
1011: saying whether to execute the command as requested, enable it and execute,
1012: or cancel it. If you decide to enable the command, you are asked whether to
1013: do this permanently or just for the current session. Enabling permanently
1014: works by automatically editing your `.emacs' file. You can use
1015: `M-x enable-command' at any time to enable any command permanently.
1016:
1017: Whether a command is disabled is independent of what key is used to
1018: invoke it; it also applies if the command is invoked using `M-x'.
1019: Disabling a command has no effect on calling it as a function from Lisp
1020: programs.
1021:
1022:
1023: File: emacs Node: Syntax, Prev: Key Bindings, Up: Customization, Next: Init File
1024:
1025: The Syntax Table
1026: ================
1027:
1028: All the Emacs commands which parse words or balance parentheses are
1029: controlled by the "syntax table". The syntax table says which
1030: characters are opening delimiters, which are parts of words, which are
1031: string quotes, and so on. Actually, each major mode has its own syntax
1032: table (though sometimes related major modes use the same one) which it
1033: installs in each buffer that uses that major mode. The syntax table
1034: installed in the current buffer is the one that all commands use, so we
1035: call it "the" syntax table. A syntax table is a Lisp object, a vector of
1036: length 256 whose elements are numbers.
1037:
1038: * Menu:
1039:
1040: * Entry: Syntax Entry. What the syntax table records for each character.
1041: * Change: Syntax Change. How to change the information.
1042:
1043:
1044: File: emacs Node: Syntax Entry, Prev: Syntax, Up: Syntax, Next: Syntax Change
1045:
1046: Information about Each Character
1047: --------------------------------
1048:
1049: The syntax table entry for a character is a number that encodes six
1050: pieces of information:
1051:
1052: * The syntactic class of the character, represented as a small integer.
1053: * The matching delimiter, for delimiter characters only.
1054: The matching delimiter of `(' is `)', and vice versa.
1055: * A flag saying whether the character is the first character of a
1056: two-character comment starting sequence.
1057: * A flag saying whether the character is the second character of a
1058: two-character comment starting sequence.
1059: * A flag saying whether the character is the first character of a
1060: two-character comment ending sequence.
1061: * A flag saying whether the character is the second character of a
1062: two-character comment ending sequence.
1063:
1064: The syntactic classes are stored internally as small integers, but are
1065: usually described to or by the user with characters. For example, `('
1066: is used to specify the syntactic class of opening delimiters. Here is a
1067: table of syntactic classes, with the characters that specify them.
1068:
1069: ` '
1070: The class of whitespace characters.
1071: `w'
1072: The class of word-constituent characters.
1073: `_'
1074: The class of characters that are part of symbol names but not words.
1075: This class is represented by `_' because the character `_'
1076: has this class in both C and Lisp.
1077: `.'
1078: The class of punctuation characters that do not fit into any other
1079: special class.
1080: `('
1081: The class of opening delimiters.
1082: `)'
1083: The class of closing delimiters.
1084: `''
1085: The class of expression-adhering characters. These characters are
1086: part of a symbol if found within or adjacent to one, and are part
1087: of a following expression if immediately preceding one, but are like
1088: whitespace if surrounded by whitespace.
1089: `"'
1090: The class of string-quote characters. They match each other in pairs,
1091: and the characters within the pair all lose their syntactic
1092: significance except for the `\' and `/' classes of escape
1093: characters, which can be used to include a string-quote inside the
1094: string.
1095: `$'
1096: The class of self-matching delimiters. This is intended for TeX's
1097: `$', which is used both to enter and leave math mode. Thus,
1098: a pair of matching `$' characters surround each piece of math mode
1099: TeX input. A pair of adjacent `$' characters act like a single
1100: one for purposes of matching
1101:
1102: `/'
1103: The class of escape characters that always just deny the following
1104: character its special syntactic significance. The character after one
1105: of these escapes is always treated as alphabetic.
1106: `\'
1107: The class of C-style escape characters. In practice, these are
1108: treated just like `/'-class characters, because the extra
1109: possibilities for C escapes (such as being followed by digits) have no
1110: effect on where the containing expression ends.
1111: `<'
1112: The class of comment-starting characters. Only single-character
1113: comment starters (such as `;' in Lisp mode) are represented this
1114: way.
1115: `>'
1116: The class of comment-ending characters. Newline has this syntax in
1117: Lisp mode.
1118:
1119: The characters flagged as part of two-character comment delimiters can
1120: have other syntactic functions most of the time. For example, `/' and
1121: `*' in C code, when found separately, have nothing to do with
1122: comments. The comment-delimiter significance overrides when the pair of
1123: characters occur together in the proper order. Only the list and sexp
1124: commands use the syntax table to find comments; the commands specifically
1125: for comments have other variables that tell them where to find comments.
1126: And the list and sexp commands notice comments only if
1127: `parse-sexp-ignore-comments' is non-`nil'. This variable is set
1128: to `nil' in modes where comment-terminator sequences are liable to
1129: appear where there is no comment; for example, in Lisp mode where the
1130: comment terminator is a newline but not every newline ends a comment.
1131:
1132:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.