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