Annotation of 43BSDReno/contrib/emacs-18.55/info/emacs-10, revision 1.1.1.1

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: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.