home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 3 / goldfish_volume_3.bin / files / util / edit / jade / man / jade.info-2 < prev    next >
Encoding:
GNU Info File  |  1994-10-16  |  48.8 KB  |  1,505 lines

  1. This is Info file jade.info, produced by Makeinfo-1.55 from the input
  2. file jade.texi.
  3.  
  4. START-INFO-DIR-ENTRY
  5. * Jade: (jade).            An editor for X11 and AmigaDOS
  6. END-INFO-DIR-ENTRY
  7.  
  8.    This is Edition 1.3, last updated 7 October 1994, of `The Jade
  9. Manual', for Jade, Version 3.2.
  10.  
  11.    Jade is a text editor for X11 (on Unix) and the Amiga.
  12.  
  13.    Copyright 1993, 1994 John Harper.
  14.  
  15.    Permission is granted to make and distribute verbatim copies of this
  16. manual provided the copyright notice and this permission notice are
  17. preserved on all copies.
  18.  
  19.    Permission is granted to copy and distribute modified versions of
  20. this manual under the conditions for verbatim copying, provided that
  21. the entire resulting derived work is distributed under the terms of a
  22. permission notice identical to this one.
  23.  
  24. 
  25. File: jade.info,  Node: Editing Words,  Next: Editing Expressions,  Prev: Editing Characters,  Up: Editing Units
  26.  
  27. Editing Words
  28. -------------
  29.  
  30.    The following commands operate on words. When given a prefix argument
  31. they operate on that number of words all in one go.
  32.  
  33.    The syntax of a word depends largely on the major mode being used to
  34. edit the buffer with, see *Note Editing Modes::.
  35.  
  36. `Meta-f'
  37. `Meta-Right'
  38.      Move forward one word.
  39.  
  40. `Meta-b'
  41. `Meta-Left'
  42.      Move back one word.
  43.  
  44. `Meta-d'
  45. `Meta-DEL'
  46.      Kills characters from the cursor to the start of the next word.
  47.      *Note Killing::.
  48.  
  49. `Meta-Backspace'
  50.      Kills characters from the start of the previous word to the cursor
  51.      position.
  52.  
  53. `Meta-t'
  54.      Transpose words: the word before the cursor is dragged over the
  55.      following word. An argument means to drag the word over that
  56.      number of words.
  57.  
  58. `Meta-u'
  59.      Convert the characters from the cursor to the start of the next
  60.      word to upper-case.
  61.  
  62. `Meta-l'
  63.      Similar to `Meta-u' but converts to lower-case.
  64.  
  65. `Meta-c'
  66.      Capitalise the word beginning at the cursor position. What happens
  67.      is that the next alphabetic character is converted to upper-case
  68.      then the rest of the word is converted to lower-case. Note that an
  69.      argument to this command currently has no effect.
  70.  
  71. 
  72. File: jade.info,  Node: Editing Expressions,  Next: Editing Lines,  Prev: Editing Words,  Up: Editing Units
  73.  
  74. Editing Expressions
  75. -------------------
  76.  
  77.    Expressions are used when editing programming languages; the editing
  78. mode for a particular programming language defines the syntax of an
  79. expression element in that language. In other editing modes an
  80. expression is defined as a single word.
  81.  
  82.    These commands use prefix arguments in the normal manner.
  83.  
  84. `Ctrl-Meta-f'
  85.      Move forward over one expression element.
  86.  
  87. `Ctrl-Meta-b'
  88.      Move backwards over one expression.
  89.  
  90. `Ctrl-Meta-k'
  91.      Kills the following expression, starting from the current cursor
  92.      position.  A negative argument means kill backwards. *Note
  93.      Killing::.
  94.  
  95. `Ctrl-Meta-t'
  96.      Transpose the previous expression with the following one. An
  97.      argument means to drag the previous one over that many expressions.
  98.  
  99. 
  100. File: jade.info,  Node: Editing Lines,  Prev: Editing Expressions,  Up: Editing Units
  101.  
  102. Editing Lines
  103. -------------
  104.  
  105.    These commands all operate on one or more lines of text. Most use a
  106. prefix argument (if entered) to define how many lines to move or operate
  107. on.
  108.  
  109. `Ctrl-n'
  110. `Down'
  111.      Move down one line.
  112.  
  113. `Ctrl-p'
  114. `Up'
  115.      Move to the previous line.
  116.  
  117. `Ctrl-a'
  118. `Shift-Left'
  119.      Move to the beginning of the current line.
  120.  
  121. `Ctrl-e'
  122. `Shift-Right'
  123.      Move to the end of the current line.
  124.  
  125. `Meta-j'
  126.      Prompts for the number of a line to jump to. If a prefix argument
  127.      was entered that defines the line number.
  128.  
  129. `Ctrl-DEL'
  130.      Kill the current line. *Note Killing::.
  131.  
  132. `Shift-DEL'
  133.      Kill from the cursor to the end of the current line.
  134.  
  135. `Shift-Backspace'
  136.      Kill from the cursor to the beginning of the line.
  137.  
  138. `Ctrl-k'
  139.      If the cursor is not at the end of the line kill the text from the
  140.      cursor to the end of the line, else kill from the end of the line
  141.      to the start of the next line.
  142.  
  143.      If this command is given an argument it kills that number of
  144.      *whole* lines, either backwards or forwards from the cursor,
  145.      depending on whether or not the argument is negative or positive.
  146.      An argument of zero kills from the cursor to the start of the
  147.      current line.
  148.  
  149. `Ctrl-o'
  150.      Create a blank new line, leaving the cursor in its original
  151.      position. A prefix argument says to create that many blank lines.
  152.  
  153. 
  154. File: jade.info,  Node: Cutting And Pasting,  Next: Using Blocks,  Prev: Editing Units,  Up: Using Jade
  155.  
  156. Cutting And Pasting
  157. ===================
  158.  
  159.    One of the main functions of any editor is to allow you to move
  160. around chunks of text, Jade makes this very easy.
  161.  
  162.    Generally, to paste down some text you have to get the text to be
  163. inserted into the window-system's clipboard (1). If the text you wish
  164. to paste is in one of the editor's buffers Jade has a number of
  165. commands for doing this, this is sometimes referred to as "killing" the
  166. text. For details of how to kill a piece of text see *Note Killing::.
  167.  
  168.    If the text to be pasted is in the same buffer as the position to
  169. which you want to copy it there is an easier way than putting it into
  170. the clipboard. For more details see *Note Commands on Blocks:: and the
  171. command `Ctrl-i'.
  172.  
  173.    Once the text to be pasted is in the clipboard there are two
  174. commands which can be used to insert it into the buffer before the
  175. cursor,
  176.  
  177. `Ctrl-y'
  178.      Inserts text into the buffer before the cursor. The text inserted
  179.      is either the current contents of the kill buffer, or the block
  180.      marked in this window, if one exists.
  181.  
  182. `Ctrl-Y'
  183.      This is a variant of `Ctrl-y', it treats the string that it is
  184.      pasting as a "rectangle" of text. That is, each successive line in
  185.      the string (each separated by a newline character) is inserted on
  186.      successive lines in the buffer but at the same column position.
  187.      For more details see *Note Rectangular Blocks:: and the function
  188.      `insert-rect'.
  189.  
  190.    ---------- Footnotes ----------
  191.  
  192.    (1)  When using an Amiga, unit zero of the `clipboard.device' is
  193. used. For X11, the first cut-buffer.
  194.  
  195. 
  196. File: jade.info,  Node: Using Blocks,  Next: Killing,  Prev: Cutting And Pasting,  Up: Using Jade
  197.  
  198. Using Blocks
  199. ============
  200.  
  201.    A "block" is a section of a buffer, you mark it by specifying its
  202. edges (i.e. the first and last characters). This part of the buffer can
  203. then have various things done to it, for example insert it somewhere
  204. else.
  205.  
  206.    Each window can only have a single block marked at any one time, it
  207. will be displayed in the reverse of normal text (i.e. white on black,
  208. not black on white).
  209.  
  210. * Menu:
  211.  
  212. * Marking Blocks::              Commands to define the current block
  213. * Commands on Blocks::          How to work with blocks
  214. * Rectangular Blocks::          Columns of text as blocks
  215.  
  216. 
  217. File: jade.info,  Node: Marking Blocks,  Next: Commands on Blocks,  Up: Using Blocks
  218.  
  219. Marking Blocks
  220. --------------
  221.  
  222.    To mark a block you must specify its outermost points, note that the
  223. text marked by the block ends one character before the marked position
  224. (this is so that it easy to mark whole lines).
  225.  
  226.    Rectangular blocks are a bit different for more information, see
  227. *Note Rectangular Blocks::.
  228.  
  229.    Note also that block marks shrink and grow as text is deleted and
  230. inserted inside them, similar to what normal marks do.
  231.  
  232.    These are the commands used to mark a block,
  233.  
  234. `Ctrl-m'
  235. `Ctrl-SPC'
  236.      If a block is currently marked in this window it will unmark it.
  237.      Otherwise it will either mark the beginning or end of the block
  238.      depending on whether or not a block has previously been partially
  239.      marked.
  240.  
  241.      The normal method for marking a few characters is to first make
  242.      sure that no block is currently marked (the status line displays
  243.      the status of the block marks, a `b' means that one end of a block
  244.      has been marked and a `B' means that both ends of a block are
  245.      marked in which case it will be highlighted somewhere in the
  246.      buffer) then press `Ctrl-m' at one end, move the cursor to the
  247.      opposite end and press `Ctrl-m' again.
  248.  
  249. `Ctrl-x h'
  250.      Mark the whole of the buffer.
  251.  
  252. `Meta-@'
  253.      Mark the current word.
  254.  
  255. `Meta-h'
  256.      Mark the current paragraph.
  257.  
  258.    Another method for marking a block is to use the mouse, double
  259. clicking the left mouse button on a character has the same effect as
  260. moving to that character and typing `Ctrl-m'. Similarly, clicking the
  261. left mouse button while pressing the SHIFT key clears a marked block.
  262.  
  263. 
  264. File: jade.info,  Node: Commands on Blocks,  Next: Rectangular Blocks,  Prev: Marking Blocks,  Up: Using Blocks
  265.  
  266. Commands on Blocks
  267. ------------------
  268.  
  269. `Ctrl-i'
  270.      Inserts the block marked in this window, at the cursor position,
  271.      then unmarks the block.
  272.  
  273. `Ctrl-w'
  274.      Kills the contents of the marked block, for information about
  275.      killing see *Note Killing::.
  276.  
  277. `Meta-w'
  278.      Similar to `Ctrl-w' except that the text is not actually deleted,
  279.      just stored for later recall.
  280.  
  281. `Ctrl-W'
  282.      Deletes the text in the currently marked block.
  283.  
  284. `Ctrl-x Ctrl-l'
  285.      Makes all alpha characters in the current block lower case.
  286.  
  287. `Ctrl-x Ctrl-u'
  288.      Makes all characters in the block upper case.
  289.  
  290. 
  291. File: jade.info,  Node: Rectangular Blocks,  Prev: Commands on Blocks,  Up: Using Blocks
  292.  
  293. Rectangular Blocks
  294. ------------------
  295.  
  296.    Normally blocks are thought of sequentially from their first to last
  297. characters. It is also possible to mark rectangular blocks, the block
  298. marks being thought of as the opposite corners of the rectangle.
  299.  
  300.    The commands which operate on blocks automatically check whether the
  301. current block is a rectangle; if so they change their function
  302. accordingly.  For example, the `Ctrl-i' command (`insert-block')
  303. understands that rectangular blocks have to be inserted in a different
  304. manner to normal, sequential, blocks.
  305.  
  306. `Ctrl-M'
  307.      Toggle between marking sequential and rectangular blocks, each
  308.      window has its own value of this attribute (i.e. one window can be
  309.      marking rectangles while the rest don't).
  310.  
  311. `Ctrl-Y'
  312.      Similar to `Ctrl-y' except that the string inserted is treated as a
  313.      rectangle -- newline characters don't get inserted, instead the
  314.      next line is inserted in the next line in the buffer at the same
  315.      column as that inserted into the previous line. For more details
  316.      see the function `insert-rect'.
  317.  
  318.    At present there is a problem with changing the case of a
  319. rectangular block with `Ctrl-x Ctrl-l' or `Ctrl-x Ctrl-u', they treat
  320. it as a sequential block. This will be fixed soon.
  321.  
  322. 
  323. File: jade.info,  Node: Killing,  Next: Searching and Replacing,  Prev: Using Blocks,  Up: Using Jade
  324.  
  325. Killing
  326. =======
  327.  
  328.    "Killing" is the general method for deleting a piece of text so that
  329. it can later be re-inserted into a buffer. Each time you kill some text
  330. it is stored in the window-system's clipboard (see *note Cutting And
  331. Pasting::.) where it can be accessed by Jade or other programs.
  332.  
  333.    The text copied by successive kill commands are concatenated
  334. together, this makes it easy to incrementally save text a piece at a
  335. time.
  336.  
  337.    The main commands for killing are as follows, they are only described
  338. in brief since their full descriptions are in other parts of the manual.
  339.  
  340. `Ctrl-w'
  341.      Kill the current block. *Note Using Blocks::.
  342.  
  343. `Meta-w'
  344.      Kill the current block without actually deleting it from the
  345.      buffer.
  346.  
  347. `Ctrl-k'
  348.      Kills the current line. *Note Editing Lines::.
  349.  
  350. `Meta-d'
  351.      Kill the word starting from the cursor. *Note Editing Words::.
  352.  
  353. `Meta-Backspace'
  354.      Kills from the cursor to the beginning of the current word.
  355.  
  356. `Ctrl-Meta-k'
  357.      Kill the expression following the cursor. *Note Editing
  358.      Expressions::.
  359.  
  360. 
  361. File: jade.info,  Node: Searching and Replacing,  Next: Editing Modes,  Prev: Killing,  Up: Using Jade
  362.  
  363. Searching and Replacing
  364. =======================
  365.  
  366.    It is very easy to search any of Jade's buffers for a specific
  367. string, the standard search command will search the current buffer for
  368. a specified regular expression.
  369.  
  370.    Once you have found an occurrence of the string you are looking for
  371. it is then possible to replace it with something else.
  372.  
  373. * Menu:
  374.  
  375. * Regular Expressions::         The syntax of regular expressions
  376. * Incremental Search::          How to search for regexps
  377. * Global Replace::              Replacing all occurrences of a regexp
  378. * Query Replace::               Interactively replacing regexps
  379.  
  380. 
  381. File: jade.info,  Node: Regular Expressions,  Next: Incremental Search,  Up: Searching and Replacing
  382.  
  383. Regular Expressions
  384. -------------------
  385.  
  386.    Jade uses the regexp(3) package by Henry Spencer, with some
  387. modifications that I have added. It comes with this heading:
  388.  
  389.      Copyright (c) 1986 by University of Toronto.
  390.      Written by Henry Spencer.  Not derived from licensed software.
  391.  
  392.      Permission is granted to anyone to use this software for any
  393.      purpose on any computer system, and to redistribute it freely,
  394.      subject to the following restrictions:
  395.  
  396.        1. The author is not responsible for the consequences of use of
  397.           this software, no matter how awful, even if they arise from
  398.           defects in it.
  399.  
  400.        2. The origin of this software must not be misrepresented, either
  401.           by explicit claim or by omission.
  402.  
  403.        3. Altered versions must be plainly marked as such, and must not
  404.           be misrepresented as being the original software.
  405.  
  406.    The syntax of a regular expression (or regexp) is as follows (this
  407. is quoted from the regexp(3) manual page):
  408.  
  409.      A regular expression is zero or more "branches", separated by `|'.
  410.      It matches anything that matches one of the branches.
  411.  
  412.      A branch is zero or more "pieces", concatenated. It matches a
  413.      match for the first, followed by a match for the second, etc.
  414.  
  415.      A piece is an "atom" possibly followed by `*', `+', or `?'.  An
  416.      atom followed by `*' matches a sequence of 0 or more matches of
  417.      the atom. An atom followed by `+' matches a sequence of 1 or more
  418.      matches of the atom. An atom followed by `?' matches a match of
  419.      the atom, or the null string.
  420.  
  421.      An atom is a regular expression in parentheses (matching a match
  422.      for the regular expression), a "range" (see below), `.' (matching
  423.      any single character), `^' (matching the null string at the
  424.      beginning of the input string), `$' (matching the null string at
  425.      the end of the input string), a `\' followed by a single character
  426.      (matching that character), or a single character with no other
  427.      significance (matching that character).
  428.  
  429.      A "range" is a sequence of characters enclosed in `[]'. It
  430.      normally matches any single character from the sequence. If the
  431.      sequence begins with `^', it matches any single character *not*
  432.      from the rest of the sequence. If two characters in the sequence
  433.      are separated by `-', this is shorthand for the full list of ASCII
  434.      characters between them (e.g. `[0-9]' matches any decimal digit).
  435.      To include a literal `]' in the sequence, make it the first
  436.      character (following a possible `^'). To include a literal `-',
  437.      make it the first or last character.
  438.  
  439.    Some example legal regular expressions could be:
  440.  
  441. `ab*a+b'
  442.      Matches an `a' followed by zero or more `b' characters, followed by
  443.      one or more `a' characters, followed by a `b'. For example,
  444.      `aaab', `abbbab', etc...
  445.  
  446. `(one|two)_three'
  447.      Matches `one_three' or `two_three'.
  448.  
  449. `^cmd_[0-9]+'
  450.      Matches `cmd_' followed by one or more digits, it must start at the
  451.      beginning of the line.
  452.  
  453.    As well as being matched against, regexps also provide a means of
  454. "remembering" portions of the string that they match. The first nine
  455. parenthesised expressions that are matched and the whole match are
  456. recorded so that they can be used later.
  457.  
  458.    The main use for this is in the command to replace a previously
  459. found regexp with the Lisp functions `regexp-expand',
  460. `regexp-expand-line' and `replace-regexp'. The string which is given as
  461. the template (i.e. the string that replaces the matched string) is
  462. expanded inserting these recorded strings where asked to.
  463.  
  464.    Each occurrence of `\C' in the template is a candidate for
  465. expansion. C can be one of:
  466.  
  467. `&'
  468. `0'
  469.      Replaces the whole substring matched by the regular expression.
  470.  
  471. `1' to `9'
  472.      The numbered parenthesised expression.
  473.  
  474. `\'
  475.      The character `\'.
  476.  
  477.    For example, if a regexp of `:([0-9]+):' matches a line
  478. `foo:123:bar', the expansion template `x_\1' would produce `x_123'.
  479.  
  480. 
  481. File: jade.info,  Node: Incremental Search,  Next: Global Replace,  Prev: Regular Expressions,  Up: Searching and Replacing
  482.  
  483. Incremental Search
  484. ------------------
  485.  
  486.    Jade's main command for searching buffers is an Emacs-style
  487. incremental search (or "isearch"). This is a subsystem of the editor
  488. which lets you interactively search for regular expressions in a buffer.
  489.  
  490. `Ctrl-s'
  491.      Start an incremental search, initially searching forwards through
  492.      the buffer.
  493.  
  494. `Ctrl-r'
  495.      Similar to `Ctrl-s' except that searching is initially in the
  496.      backwards direction.
  497.  
  498.    When you are in an isearch the general idea is to type in a regular
  499. expression and see what it matches in the buffer. As more characters are
  500. added to the string being searched for the cursor indicates strings
  501. which match. To backtrack your steps (i.e. the characters you have
  502. typed) the backspace key is used.
  503.  
  504.    The special commands which are available when isearching are,
  505.  
  506. `Ctrl-s'
  507.      Search forwards for another occurrence of the search regexp. This
  508.      can also be used to wrap around to the start of the buffer if no
  509.      more matches exist between the cursor and the end of the buffer.
  510.  
  511. `Ctrl-r'
  512.      Search backwards for the regexp.
  513.  
  514. `Ctrl-g'
  515.      Cancels the isearch. If the search is currently failing (the
  516.      string you've typed doesn't match anything) characters are deleted
  517.      from the regexp until either a match is found or the original
  518.      cursor position is reached. If the search is not failing the
  519.      cursor is returned to its original position and the isearch is
  520.      exited.
  521.  
  522. `Ctrl-w'
  523.      Copies the word under the cursor to the regexp being searched for.
  524.  
  525. `Ctrl-y'
  526.      The rest of the current line is appended to the regexp being
  527.      searched for.
  528.  
  529. `Ctrl-q'
  530.      The next character typed is appended to the regexp no matter what
  531.      it is, this can be used to enter control characters. Note that
  532.      currently you can't search for newline characters.
  533.  
  534. `RET'
  535. `ESC'
  536.      Accept the cursor's current position, the isearch is exited
  537.      leaving the cursor as it is.
  538.  
  539. `Backspace'
  540.      Moves back up the stack which represents the current isearch, i.e.
  541.      deletes characters from the search regexp or moves the cursor
  542.      through the positions it had to reach its current position.
  543.  
  544.    Any other keys are appended to the regular expression being searched
  545. for.
  546.  
  547. 
  548. File: jade.info,  Node: Global Replace,  Next: Query Replace,  Prev: Incremental Search,  Up: Searching and Replacing
  549.  
  550. Global Replace
  551. --------------
  552.  
  553. `Meta-x replace-all RET REGEXP RET TEMPLATE'
  554.      For all occurrences of the regular expression REGEXP replace it
  555.      with the string obtained by expanding TEMPLATE. For details of how
  556.      the TEMPLATE works see *Note Regular Expressions::.
  557.  
  558. 
  559. File: jade.info,  Node: Query Replace,  Prev: Global Replace,  Up: Searching and Replacing
  560.  
  561. Query Replace
  562. -------------
  563.  
  564.    The `query-replace' function provides an interactive method of
  565. replacing strings in a buffer which match a specific regular expression.
  566.  
  567.    For each occurrence found you, the user, have a number of options;
  568. for example, you could replace this occurrence with a prespecified
  569. template.
  570.  
  571. `Meta-% REGEXP RET TEMPLATE RET'
  572.      Invoke a query-replace, for all occurrences of the regular
  573.      expression, REGEXP you will be prompted for what you want to do
  574.      with it. Usually this will be to replace it with the expansion
  575.      provided by the template (see *note Regular Expressions::.)
  576.      TEMPLATE.
  577.  
  578.    Special commands which come into effect each time the query-replace
  579. finds a match are,
  580.  
  581. `SPC'
  582. `y'
  583.      Replace this occurrence with the expansion of TEMPLATE and search
  584.      for the next match.
  585.  
  586. `Backspace'
  587. `n'
  588.      Ignore this match and search for the next.
  589.  
  590. `,'
  591.      Replace this occurrence, then wait for another command.
  592.  
  593. `RET'
  594. `ESC'
  595. `q'
  596.      Exit this query-replace.
  597.  
  598. `.'
  599.      Replace this occurrence then exit.
  600.  
  601. `!'
  602.      Replace the current match and all the rest between here and the
  603.      end of the buffer.
  604.  
  605. `^'
  606.      Retrace your steps through each match which has been found.
  607.  
  608. `Ctrl-r'
  609.      Enter a recursive-edit, this is allows you to edit this match by
  610.      hand. When you exit the recursive-edit (with the `Ctrl-Meta-c'
  611.      command) the next match is searched for.
  612.  
  613. `Ctrl-w'
  614.      Delete the current match, then enter a recursive-edit, as in the
  615.      `Ctrl-r' command.
  616.  
  617. 
  618. File: jade.info,  Node: Editing Modes,  Next: Minor Modes,  Prev: Searching and Replacing,  Up: Using Jade
  619.  
  620. Editing Modes
  621. =============
  622.  
  623.    Modes are used to tailor the editor to the *type* of the file being
  624. edited in a buffer. They are normally a file of Lisp which installs the
  625. buffer-local key bindings and variables which are needed for that type
  626. of file.
  627.  
  628.    For example, C-mode is a mode used to edit C source code, its main
  629. function is to try to indent each line to its correct position
  630. automatically.
  631.  
  632.    The name of the mode active in the current buffer is displayed in the
  633. status line, inside the square brackets.
  634.  
  635.    At present there are only a small number of modes available. It is
  636. fairly straightforward to write a mode for other classes of file though.
  637. *Note Writing Modes::.
  638.  
  639.    Most of the modes for editing programming languages use the command
  640. `Meta-;' to insert a comment place-holder, the cursor is moved to where
  641. you should type the body of the comment.
  642.  
  643. * Menu:
  644.  
  645. * Invoking a Mode::             How editing modes are invoked on a buffer
  646. * Generic mode::                The foundations which all modes build from
  647.  
  648.   -- Modes for editing programming languages --
  649.  
  650. * C mode::                      Mode for C source code
  651. * Lisp mode::                   Mode for Lisp
  652. * Asm mode::                    For generic assembler source
  653.  
  654.   -- Modes for natural language --
  655.  
  656. * Text mode::                   For normal language-based text
  657. * Indented-Text mode::          Variant of Text-mode
  658. * Texinfo mode::                Mode for editing Texinfo source
  659.  
  660. 
  661. File: jade.info,  Node: Invoking a Mode,  Next: Generic mode,  Up: Editing Modes
  662.  
  663. Invoking a Mode
  664. ---------------
  665.  
  666.    When a new file is loaded the function `init-mode' tries to find the
  667. mode that it should be edited with. If it is successful the mode will be
  668. automatically invoked.
  669.  
  670.    It is also possible to install a mode manually, simply invoke the
  671. command which is the name of the mode. For example to install the `C
  672. mode' in a buffer type `Meta-x c-mode'.
  673.  
  674. 
  675. File: jade.info,  Node: Generic mode,  Next: C mode,  Prev: Invoking a Mode,  Up: Editing Modes
  676.  
  677. Generic mode
  678. ------------
  679.  
  680.    This is not a mode as such since there is no Lisp code associated
  681. with it.  When no mode is being used to edit the buffer, it is said to
  682. use the "Generic" mode.
  683.  
  684.    This is the base from which all other modes build, it consists of
  685. all the standard key bindings. Words are defined as one or more
  686. alphanumeric characters, paragraphs are separated by a single blank
  687. line.
  688.  
  689. 
  690. File: jade.info,  Node: C mode,  Next: Lisp mode,  Prev: Generic mode,  Up: Editing Modes
  691.  
  692. C mode
  693. ------
  694.  
  695.    `c-mode' is used for editing C source code files. Any files which
  696. end in `.c' or `.h' are automatically edited in this mode.
  697.  
  698.    It's one and only function is to try and indent lines to their
  699. correct depth, it doesn't always get it right but it works fairly well.
  700. The keys that it rebinds to achieve this are,
  701.  
  702.    It also defines the syntax of an expression in the C language for use
  703. with the expression commands, see *Note Editing Expressions::.
  704.  
  705. `TAB'
  706.      Indents the current line to what the editor thinks is the correct
  707.      position.
  708.  
  709. `{'
  710. `}'
  711. `:'
  712.      These keys are handled specially since the indentation of the line
  713.      that they are inserted on may have to be adjusted.
  714.  
  715. `Ctrl-Meta-\'
  716.      Indents all lines which are marked by the current block.
  717.  
  718.  - Command: c-mode
  719.      Editing mode for C source code. Automatically used for files
  720.      ending in `.c' or `.h'.
  721.  
  722.  - Hook: c-mode-hook
  723.      This hook is called by `c-mode' each time the mode is invoked.
  724.  
  725.  - Variable: c-mode-tab
  726.      Size of tab stops used by `c-mode'.
  727.  
  728.  - Variable: c-mode-auto-indent
  729.      When non-nil `RET' will indent the line after splitting it.
  730.  
  731. 
  732. File: jade.info,  Node: Lisp mode,  Next: Asm mode,  Prev: C mode,  Up: Editing Modes
  733.  
  734. Lisp mode
  735. ---------
  736.  
  737.    `lisp-mode' is used to edit files of Lisp intended to be read by the
  738. editor. Its main function is to manage the indentation of Lisp
  739. expressions for you. Each form is regarded as an expression by the
  740. commands which operate on expressions, see *Note Editing Expressions::.
  741.  
  742.    There is also support for using a buffer as a simple shell-interface
  743. to the editor's Lisp subsystem.
  744.  
  745.    The method used for indenting lines of Lisp is fairly
  746. straightforward, the first symbol in the expression containing this
  747. line is found.  This symbol's `lisp-indent' property is then used to
  748. decide which indentation method to apply to this line. It can be one of
  749. the following,
  750.  
  751. `nil'
  752.      The standard method (also used if the symbol doesn't have a
  753.      `lisp-indent' property).
  754.  
  755.      If the first argument to the function is on the same line as the
  756.      name of the function then subsequent lines are placed under the
  757.      first argument.  Otherwise, the following lines are indented to
  758.      the same depth as the function name.
  759.  
  760.      For example,
  761.  
  762.           (setq foo 20
  763.                 bar 1000)
  764.           
  765.           (setq
  766.            foo 20
  767.            bar 1000)
  768.  
  769. `defun'
  770.      This method is used for all functions (or special-forms, macros)
  771.      whose name begins with `def' and any lambda-expressions.
  772.  
  773.      All arguments to the function are indented `lisp-body-indent'
  774.      columns from the start of the expression.
  775.  
  776.      For example,
  777.  
  778.           (defun foo (bar)
  779.             "A test"
  780.             (let
  781.                 ((foo bar))
  782.               ...
  783.  
  784. A number, N
  785.      The first N arguments to the function are indented twice the value
  786.      of `lisp-body-indent', the remaining arguments are indented by
  787.      `lisp-body-indent'.
  788.  
  789.      For example the special-form `if' has a `lisp-indent' property of
  790.      2,
  791.  
  792.           (if condition
  793.               t-expression
  794.             nil-expressions...)
  795.  
  796.    Special commands for Lisp mode are,
  797.  
  798. `Ctrl-j'
  799.      Evaluates the expression preceding the cursor, prints the value on
  800.      the next line. This is designed to be used like a shell, you type
  801.      a Lisp expression, press `Ctrl-j' and Jade prints the value for
  802.      you.
  803.  
  804. `TAB'
  805.      Indents the current line.
  806.  
  807. `Ctrl-Meta-\'
  808.      Indents all lines which are marked by the current block.
  809.  
  810. `Ctrl-Meta-x'
  811.      Evaluates the expression before the cursor, prints it's value in
  812.      the status line.
  813.  
  814.  - Command: lisp-mode
  815.      Editing mode for Jade's Lisp. Automatically invoked for files
  816.      ending in `.jl'.
  817.  
  818.  - Hook: lisp-mode-hook
  819.      This hook is evaluated each time `lisp-mode' is invoked.
  820.  
  821.  - Variable: lisp-body-indent
  822.      The number of characters which the body of a form is indented by,
  823.      the default value is 2.
  824.  
  825. 
  826. File: jade.info,  Node: Asm mode,  Next: Text mode,  Prev: Lisp mode,  Up: Editing Modes
  827.  
  828. Asm mode
  829. --------
  830.  
  831.    A basic mode for editing assembler source files with, provides
  832. automatic indentation of labels and instructions.
  833.  
  834.    The special commands are,
  835.  
  836. `RET'
  837.      Breaks the line as normal, if `asm-indent' is non-nil a tab
  838.      characters is inserted as well.
  839.  
  840. `:'
  841.      Deletes all indentation from the start of the current line, then
  842.      inserts the string `:\t' to move to the next tab stop. This is
  843.      used to enter labels.
  844.  
  845. `.'
  846.      If the line is not empty, all indentation is deleted from the
  847.      start of the line. A dot (`.') is then inserted.
  848.  
  849.  - Command: asm-mode
  850.      Major mode for generic assembler source files.
  851.  
  852.  - Hook: asm-mode-hook
  853.      The hook which is called when `asm-mode' is entered.
  854.  
  855.  - Variable: asm-indent
  856.      When this variable is non-nil the RET key inserts the string
  857.      `\n\t' instead of just `\n'. This indents the cursor to the first
  858.      tab stop of the new line.
  859.  
  860.  - Variable: asm-comment
  861.      This variable defines the string which denotes the start of a
  862.      comment in the assembler that you are using. By default this is
  863.      `;'.
  864.  
  865. 
  866. File: jade.info,  Node: Text mode,  Next: Indented-Text mode,  Prev: Asm mode,  Up: Editing Modes
  867.  
  868. Text mode
  869. ---------
  870.  
  871.    This is the most basic mode for editing English-style text in. The
  872. main difference over `generic-mode' and is that words are allowed to
  873. contain underscores and there are some extra commands,
  874.  
  875. `Meta-s'
  876.      Centres the current line. The position of the `fill-column' is used
  877.      to calculate the centre of the line. For more information on the
  878.      `fill-column' variable see *Note Fill mode::.
  879.  
  880. `Meta-S'
  881.      Centres the current paragraph.
  882.  
  883.  - Command: text-mode
  884.      Major mode for editing English text.
  885.  
  886.  - Hook: text-mode-hook
  887.      Evaluated when `text-mode' is invoked. Variants of `text-mode'
  888.      also use this hook.
  889.  
  890. 
  891. File: jade.info,  Node: Indented-Text mode,  Next: Texinfo mode,  Prev: Text mode,  Up: Editing Modes
  892.  
  893. Indented-Text mode
  894. ------------------
  895.  
  896.    This is a variant of `text-mode', see *Note Text mode::. It's only
  897. difference is in the way the TAB key is handled -- tab stops are
  898. calculated from the previous non-empty line. Each transition from a
  899. sequence of one or more spaces to a non-space character is used as a tab
  900. stop. If there are none of these to the right of the cursor normal the
  901. standard tabbing command is used.
  902.  
  903.  - Command: indented-text-mode
  904.      Variant of `text-mode'.
  905.  
  906.  - Hook: indented-text-mode-hook
  907.      Evaluated when `indented-text-mode' is invoked. The hook
  908.      `text-mode-hook' is also evaluated (before this one).
  909.  
  910. 
  911. File: jade.info,  Node: Texinfo mode,  Prev: Indented-Text mode,  Up: Editing Modes
  912.  
  913. Texinfo mode
  914. ------------
  915.  
  916.    `texinfo-mode' is used to edit Texinfo source files, it is
  917. automatically selected for files ending in `.texi' or `.texinfo'. It
  918. provides a few basic key bindings to take some of the tedium out of
  919. editing these files.
  920.  
  921.    Paragraphs are separated by the regexp `^@node', i.e. each node is a
  922. separate paragraph.
  923.  
  924.    The special commands are,
  925.  
  926. `TAB'
  927.      Inserts as many spaces as are needed to move the cursor to the
  928.      next tab position. The reason tab characters aren't used is that
  929.      TeX doesn't agree with them.
  930.  
  931. `Ctrl-c Ctrl-c c'
  932.      Insert the string `@code{}', positioning the cursor between the
  933.      braces.
  934.  
  935. `Ctrl-c Ctrl-c d'
  936.      Insert the string `@dfn{}', positioning the cursor between the
  937.      braces.
  938.  
  939. `Ctrl-c Ctrl-c e'
  940.      Inserts the string `@end'.
  941.  
  942. `Ctrl-c Ctrl-c f'
  943.      Inserts the string `@file{}', the cursor is put between the braces.
  944.  
  945. `Ctrl-c Ctrl-c i'
  946.      Inserts the string `@item'.
  947.  
  948. `Ctrl-c Ctrl-c l'
  949.      Inserts the string `@lisp\n'.
  950.  
  951. `Ctrl-c Ctrl-c m'
  952.      Inserts the string `@menu\n'.
  953.  
  954. `Ctrl-c Ctrl-c Ctrl-m'
  955.      Prompts for the name of a node and makes a menu-item for it.
  956.  
  957. `Ctrl-c Ctrl-c n'
  958.      Prompts for each part of a node definition (name, next, prev, up)
  959.      and inserts the `@node ...' string needed.
  960.  
  961. `Ctrl-c Ctrl-c s'
  962.      Inserts the string `@samp{}' and puts the cursor between the
  963.      braces.
  964.  
  965. `Ctrl-c Ctrl-c v'
  966.      Inserts the string `@var{}', the cursor is put between the braces.
  967.  
  968. `Ctrl-c Ctrl-c {'
  969.      Inserts a pair of braces with the cursor between them.
  970.  
  971. `Ctrl-c Ctrl-c }'
  972. `Ctrl-c Ctrl-c ]'
  973.      Moves the cursor to the character after the next closing brace.
  974.  
  975.  - Command: texinfo-mode
  976.      Major mode for editing Texinfo source files.
  977.  
  978.  - Hook: texinfo-mode-hook
  979.      Evaluated when `texinfo-mode' is invoked. The hook `text-mode-hook'
  980.      is evaluated first.
  981.  
  982. 
  983. File: jade.info,  Node: Minor Modes,  Next: Using Buffers,  Prev: Editing Modes,  Up: Using Jade
  984.  
  985. Minor Modes
  986. ===========
  987.  
  988.    The editing modes described in the previous section were "Major
  989. modes", each mode was designed for a particular class of file. Minor
  990. modes work on top of the major modes, each minor mode provides a single
  991. extra feature for editing the buffer they are used in. For example
  992. `overwrite-mode' is a minor mode which makes any keys you type
  993. overwrite the character beneath the cursor, instead of inserting
  994. themselves before the cursor.
  995.  
  996.    The names of the minor modes currently active in the current buffer
  997. are displayed in the status line, to the right of the name of the major
  998. mode.
  999.  
  1000. * Menu:
  1001.  
  1002. * Overwrite mode::              Typed characters overwrite the character
  1003.                                   beneath them.
  1004. * Fill mode::                   Automatically break long lines as they
  1005.                                   are typed.
  1006. * Auto-Save mode::              How to disable auto-saving of a buffer.
  1007. * Latin-1 mode::                Displaying European characters.
  1008.  
  1009. 
  1010. File: jade.info,  Node: Overwrite mode,  Next: Fill mode,  Up: Minor Modes
  1011.  
  1012. Overwrite mode
  1013. --------------
  1014.  
  1015.    When enabled, characters typed replace the existing character under
  1016. the cursor instead of just moving it to the right.
  1017.  
  1018.    The command to toggle this mode on and off is `Meta-x
  1019. overwrite-mode'.
  1020.  
  1021.  - Command: overwrite-mode
  1022.      Toggles overwriting character insertion in the current buffer.
  1023.  
  1024. 
  1025. File: jade.info,  Node: Fill mode,  Next: Auto-Save mode,  Prev: Overwrite mode,  Up: Minor Modes
  1026.  
  1027. Fill mode
  1028. ---------
  1029.  
  1030.    Filling splits lines so that they aren't longer than a certain
  1031. number of characters. The `fill-mode' checks if you have passed this
  1032. threshold when you type the SPC key. Any words passed the threshold get
  1033. moved to the next line.
  1034.  
  1035. `Ctrl-x f'
  1036.      Sets the `fill-column' variable (see below) to the cursor's current
  1037.      column position.
  1038.  
  1039.  - Command: fill-mode
  1040.      Toggles the auto-filling minor mode.
  1041.  
  1042.  - Variable: fill-column
  1043.      The maximum number of characters allowed in a single line. This is
  1044.      used by the filling and centring functions.
  1045.  
  1046. 
  1047. File: jade.info,  Node: Auto-Save mode,  Next: Latin-1 mode,  Prev: Fill mode,  Up: Minor Modes
  1048.  
  1049. Auto-Save mode
  1050. --------------
  1051.  
  1052.    This is not really a minor mode but it obeys the same calling
  1053. conventions (i.e. calling its function toggles its action).
  1054.  
  1055.  - Command: auto-save-mode
  1056.      Toggles whether or not the current buffer is regularly saved to a
  1057.      temporary file.
  1058.  
  1059.    For more details about auto-saving see *Note Auto-Saving Files::.
  1060.  
  1061. 
  1062. File: jade.info,  Node: Latin-1 mode,  Prev: Auto-Save mode,  Up: Minor Modes
  1063.  
  1064. Latin-1 mode
  1065. ------------
  1066.  
  1067.    This minor mode toggles the display of characters in the Latin-1
  1068. character set, by default these characters are displayed as octal
  1069. escape sequences.
  1070.  
  1071.    This only works properly if the font that you are using defines
  1072. glyphs for these characters!
  1073.  
  1074.  - Command: latin-1-mode
  1075.      Toggles the display of characters in the Latin-1 character set.
  1076.      This is a *global* setting.
  1077.  
  1078.    For more information about what is displayed for each character see
  1079. *Note Character Images::.
  1080.  
  1081. 
  1082. File: jade.info,  Node: Using Buffers,  Next: Using Windows,  Prev: Minor Modes,  Up: Using Jade
  1083.  
  1084. Using Buffers
  1085. =============
  1086.  
  1087.    As you have probably realised, buffers are probably the most
  1088. important part of the editor. Each file that is being edited must be
  1089. stored in a buffer. They are not restricted to editing files though,
  1090. all buffers are regarded as simply being a list of lines which can be
  1091. displayed in a window and modified as needed.
  1092.  
  1093.    This means that they are very flexible, for example, the Lisp
  1094. debugger uses a buffer for its user interface, the Info reader uses two
  1095. buffers - one to display the current node, the other to store the
  1096. file's tag table (never displayed, just used to look up the position of
  1097. nodes).
  1098.  
  1099.    Each buffer has a name, generally buffers which contain proper files
  1100. use the base part of the filename, while buffers which don't correspond
  1101. to files use a word which starts and ends with asterisks (i.e.
  1102. `*jade*').
  1103.  
  1104.    Each window can display one buffer at any one time. There is no
  1105. restriction on the number of windows which may display the same buffer
  1106. at once.
  1107.  
  1108. * Menu:
  1109.  
  1110. * Displaying Buffers::          How to make a window display a buffer
  1111. * Deleting Buffers::            Killing unwanted buffers
  1112. * Other Buffer Commands::       General buffer manipulation
  1113. * The Buffer Menu::             Interactive buffer manipulation
  1114.  
  1115. 
  1116. File: jade.info,  Node: Displaying Buffers,  Next: Deleting Buffers,  Up: Using Buffers
  1117.  
  1118. Displaying Buffers
  1119. ------------------
  1120.  
  1121.    There are two main commands for switching to a different buffer,
  1122.  
  1123. `Ctrl-x b'
  1124.      Prompt for the name of a buffer and display it in the current
  1125.      window.
  1126.  
  1127. `Ctrl-x 4 b'
  1128.      In a different window (opens a new window if there is currently
  1129.      only one) prompt for the name of a buffer and display it in that
  1130.      window.
  1131.  
  1132.    Both commands are very similar, the `Ctrl-x 4 b' variant simply
  1133. invokes a command to switch to a different window before calling the
  1134. `Ctrl-x b' command.
  1135.  
  1136.    When typing the name of the new buffer you can use the prompt's
  1137. completion mechanism to expand abbreviations (see *note The Buffer
  1138. Prompt::.). If you just press RET with an empty prompt the default
  1139. choice will be used.  This will be the the buffer that was being shown
  1140. in this window before the current buffer was selected (its name is
  1141. displayed in the prompt's title).
  1142.  
  1143.    The `Ctrl-x Ctrl-f' command and its variants also switch buffers
  1144. since they look for an existing copy of the file in a buffer before
  1145. loading it from disk, see *Note Commands To Load Files::.
  1146.  
  1147. 
  1148. File: jade.info,  Node: Deleting Buffers,  Next: Other Buffer Commands,  Prev: Displaying Buffers,  Up: Using Buffers
  1149.  
  1150. Deleting Buffers
  1151. ----------------
  1152.  
  1153.    There is no real need to delete buffers, those that haven't been
  1154. used for a while just hang around at the end of the list. If you're
  1155. short on memory though it can help to kill some of the unused buffers
  1156. which you have accumulated.
  1157.  
  1158.    The command to kill a buffer is,
  1159.  
  1160. `Ctrl-x k'
  1161.      Prompts for the name of a buffer (with completion) then deletes
  1162.      that buffer (if the buffer contains unsaved modifications you are
  1163.      asked if you really want to lose them). It is removed from all
  1164.      window's buffer-lists and any window which is displaying it is
  1165.      switched to another buffer (the next in its list).
  1166.  
  1167.      Any marks which point to the buffer are made "non-resident" (that
  1168.      is, they point to the name of the file in the buffer) and the
  1169.      buffer is discarded.
  1170.  
  1171. 
  1172. File: jade.info,  Node: Other Buffer Commands,  Next: The Buffer Menu,  Prev: Deleting Buffers,  Up: Using Buffers
  1173.  
  1174. Other Buffer Commands
  1175. ---------------------
  1176.  
  1177. `Meta-x rotate-buffers-forward'
  1178.      Rotates the current window's list of buffers.
  1179.  
  1180. `Meta-x revert-buffer'
  1181.      Restores the contents of the current buffer to the contents of the
  1182.      file that it was loaded from, if an auto-save file exists you are
  1183.      asked if you want to revert to that instead.
  1184.  
  1185. `Ctrl-x s'
  1186.      Ask whether to save any modified buffers that exist.
  1187.  
  1188. `Meta-x clear-buffer'
  1189.      Deletes the contents of the current buffer. Beware, you *won't* be
  1190.      warned if you're about to lose any unsaved modifications!
  1191.  
  1192. 
  1193. File: jade.info,  Node: The Buffer Menu,  Prev: Other Buffer Commands,  Up: Using Buffers
  1194.  
  1195. The Buffer Menu
  1196. ---------------
  1197.  
  1198.    The buffer menu presents you with a list of all the buffers
  1199. accessible from the current window in most-recently-used order. You are
  1200. then able to manipulate the buffer list using several simple commands.
  1201.  
  1202. `Ctrl-x Ctrl-b'
  1203.      Enters the buffer menu; the buffer `*Buffer Menu*' is selected and
  1204.      a list of available buffers is printed in it.
  1205.  
  1206.    The following example shows how the buffer list is printed.
  1207.  
  1208.         MR   Name            Mode            File
  1209.         --   ----            ----            ----
  1210.          -   *Buffer Menu*   Buffer Menu
  1211.         +    user.texi       Texinfo         man/user.texi
  1212.              *jade*          Lisp
  1213.  
  1214. The column headed `M' shows whether the buffer has been modified since
  1215. it was last saved and the column `R' shows whether or not the buffer is
  1216. read-only. The other columns should be self-explanatory.
  1217.  
  1218.    When the `*Buffer Menu*' buffer is selected the following commands
  1219. are available. When a single buffer is to be manipulated by a command,
  1220. the buffer described by the line which the cursor is on is chosen.
  1221.  
  1222. `d'
  1223.      Mark the buffer for deletion and move to the next buffer. A `D' is
  1224.      displayed in the first column of a line if that buffer is marked
  1225.      for deletion.
  1226.  
  1227. `s'
  1228. `Ctrl-s'
  1229.      Mark the buffer to be saved then move to the next buffer in the
  1230.      list. A `S' in the second column of a line denotes a buffer which
  1231.      has been marked to be saved.
  1232.  
  1233. `x'
  1234.      Execute previously-marked saves and deletions.
  1235.  
  1236. `u'
  1237.      Unmark the current line (i.e. clear any `D' or `S' markers) then
  1238.      move to the next entry in the buffer list.
  1239.  
  1240. `~'
  1241.      Toggle the modified flag of the current line's buffer, then move
  1242.      down.
  1243.  
  1244. `%'
  1245. `-'
  1246.      Toggle the read-only status of the current line's buffer, then
  1247.      move to the next entry.
  1248.  
  1249. `1'
  1250. `RET'
  1251.      Select the current line's buffer in this window.
  1252.  
  1253. `o'
  1254.      Select the current line's buffer in the other window.
  1255.  
  1256. `Ctrl-f'
  1257. `TAB'
  1258.      Move to the next line in the buffer list.
  1259.  
  1260. `Ctrl-b'
  1261.      Move to the previous line in the buffer list.
  1262.  
  1263. `Ctrl-l'
  1264.      Redraw the buffer list, incorporating any changes made to the
  1265.      available buffers.
  1266.  
  1267. `q'
  1268.      Quit the buffer menu.
  1269.  
  1270. 
  1271. File: jade.info,  Node: Using Windows,  Next: Using the Prompt,  Prev: Using Buffers,  Up: Using Jade
  1272.  
  1273. Using Windows
  1274. =============
  1275.  
  1276.    Windows have two main functions: to display the contents of buffers
  1277. (but only one buffer at a time) and to collect input from you, the user.
  1278.  
  1279.    The editor *must* have at least one window open at all times, when
  1280. you close the last window Jade will exit, there is no limit to the
  1281. number of windows which you may have open at once.
  1282.  
  1283.    Each window is split into two parts, they are
  1284.  
  1285. "The Main Display Area"
  1286.      This is the largest part of the window, it is where the buffer
  1287.      that this window is displaying is drawn.
  1288.  
  1289. "The Status Line"
  1290.      A single line of text associated with the window, under X11 this
  1291.      is the area of the beneath the horizontal line at the bottom of
  1292.      the window, on the Amiga it is the title of the window. The status
  1293.      line is normally used to display information about this window and
  1294.      what it is displaying, it has this format,
  1295.  
  1296.           BUFFER-NAME (MODE-NAMES) (COL,ROW) N line(s) [FLAGS]
  1297.  
  1298.      Where the individual parts mean,
  1299.  
  1300.     BUFFER-NAME
  1301.           The name of the buffer being edited, it can have either a `+'
  1302.           or a `-' appended to it, a plus means the buffer has been
  1303.           modified since it was saved, a minus means that the buffer is
  1304.           read-only.
  1305.  
  1306.     MODE-NAMES
  1307.           This tells you which editing modes are being used by this
  1308.           buffer, the first word is the name of the major mode, any
  1309.           subsequent words correspond to the names of the minor modes
  1310.           for this buffer. If this section is surrounded by square
  1311.           brackets `[...]' instead of parentheses it means that you are
  1312.           currently in a recursive edit, for example, inside the Lisp
  1313.           debugger.
  1314.  
  1315.     COL
  1316.           The column that the cursor is at.
  1317.  
  1318.     ROW
  1319.           The row number of the cursor.
  1320.  
  1321.     N
  1322.           The number of lines in this buffer
  1323.  
  1324.     FLAGS
  1325.           General one-character flags related to the status of the
  1326.           window and its buffer.
  1327.  
  1328.    Each window maintains a list of all buffers which are available for
  1329. displaying, this is kept in order, from the most recently used to the
  1330. least. This list (called `buffer-list') is used by some of the buffer
  1331. manipulation commands when they are working out which buffer should be
  1332. displayed.
  1333.  
  1334. * Menu:
  1335.  
  1336. * Creating Windows::            Opening a new window
  1337. * Killing Windows::             How to close windows
  1338. * Other Window Commands::       General window manipulation
  1339.  
  1340. 
  1341. File: jade.info,  Node: Creating Windows,  Next: Killing Windows,  Up: Using Windows
  1342.  
  1343. Creating Windows
  1344. ----------------
  1345.  
  1346. `Ctrl-x 2'
  1347.      Opens a new window, it will have the most of the attributes that
  1348.      the current window does, things like: size, buffer, font, etc...
  1349.      If you are using X11 you will probably have to use your mouse to
  1350.      select its position, depending on the window manager you use, on
  1351.      the Amiga it will be created at the same position as the current
  1352.      window.
  1353.  
  1354. `Ctrl-x 4 Ctrl-f'
  1355. `Ctrl-x 4 f'
  1356.      In a different window, one will be created if only one window is
  1357.      open, find a file, for more details see *Note Commands To Load
  1358.      Files::.
  1359.  
  1360. `Ctrl-x 4 a'
  1361.      In a different window add an entry to a change-log file. *Note
  1362.      Keeping ChangeLogs::.
  1363.  
  1364. `Ctrl-x 4 b'
  1365.      In a different window, choose a buffer to display, similar to the
  1366.      `Ctrl-x b' command. *Note Displaying Buffers::.
  1367.  
  1368. `Ctrl-x 4 h'
  1369.      Enter the help system in a different window. *Note The Help
  1370.      System::.
  1371.  
  1372. `Ctrl-x 4 i'
  1373.      Enter the Info browser in a different window. *Note Info Mode::.
  1374.  
  1375. `Ctrl-x 4 `'
  1376.      Display the next error (or whatever) in the `*compilation*' buffer
  1377.      in a different window. *Note Finding Errors::.
  1378.  
  1379.    Note that for each `Ctrl-x 4' command there is a corresponding
  1380. `Ctrl-x 5' command. Instead of using a different window to the current
  1381. one, a new window is opened for each `Ctrl-x 5' command typed.
  1382.  
  1383. 
  1384. File: jade.info,  Node: Killing Windows,  Next: Other Window Commands,  Prev: Creating Windows,  Up: Using Windows
  1385.  
  1386. Killing Windows
  1387. ---------------
  1388.  
  1389. `Ctrl-x 0'
  1390.      Close the current window, if it is the last window that the editor
  1391.      has open it will exit (after asking you if you wish to lose any
  1392.      unsaved modifications to buffers).
  1393.  
  1394. `Ctrl-x 1'
  1395.      Close all windows except the current one.
  1396.  
  1397. 
  1398. File: jade.info,  Node: Other Window Commands,  Prev: Killing Windows,  Up: Using Windows
  1399.  
  1400. Other Window Commands
  1401. ---------------------
  1402.  
  1403. `Ctrl-x o'
  1404.      Activate the next window of the editor's. Under X11 this involves
  1405.      warping the mouse-pointer to the top left corner of the newly
  1406.      activated window.
  1407.  
  1408. `Meta-x set-font'
  1409.      Choose a font to use in the current window. This command prompts
  1410.      for the name of the font then installs it in the window. Font
  1411.      names are the same as for the shell argument `-font' (*note
  1412.      Startup Options::.).
  1413.  
  1414. 
  1415. File: jade.info,  Node: Using the Prompt,  Next: Using Marks,  Prev: Using Windows,  Up: Using Jade
  1416.  
  1417. Using the Prompt
  1418. ================
  1419.  
  1420.    There are two different styles of prompt that the editor uses when it
  1421. wants you to enter a string.
  1422.  
  1423. * Menu:
  1424.  
  1425. * The Simple Prompt::           The prompt at the bottom of the window
  1426. * The Buffer Prompt::           Prompt with its own buffer and completion
  1427.  
  1428. 
  1429. File: jade.info,  Node: The Simple Prompt,  Next: The Buffer Prompt,  Up: Using the Prompt
  1430.  
  1431. The Simple Prompt
  1432. -----------------
  1433.  
  1434.    The simplest prompt uses the the bottom-most line in the window, it
  1435. prints the prompt's title on the left hand side, you should type your
  1436. response and then press the RET key. This prompt is very primitive, the
  1437. only special commands that it has are,
  1438.  
  1439. `Backspace'
  1440.      Delete the previous character.
  1441.  
  1442. `Up'
  1443. `Down'
  1444.      Replace the contents of the prompt with the last string entered.
  1445.      When you type `Up' or `Down' again the original contents are
  1446.      restored.
  1447.  
  1448. `ESC'
  1449.      Cancel the prompt.
  1450.  
  1451. All other keys are simply printed in the prompt -- whatever they are.
  1452.  
  1453. 
  1454. File: jade.info,  Node: The Buffer Prompt,  Prev: The Simple Prompt,  Up: Using the Prompt
  1455.  
  1456. The Buffer Prompt
  1457. -----------------
  1458.  
  1459.    This type of prompt is more sophisticated. It creates a new buffer
  1460. for you to type your response into (called `*prompt*'), the title of the
  1461. prompt is displayed in the buffer's first line.
  1462.  
  1463.    Normally you type the answer to the prompt into the buffer and then
  1464. press the RET key. All normal editor commands are available while you
  1465. are using the prompt, you can switch buffers, load new files, whatever
  1466. you like.
  1467.  
  1468.    Another advantage of this type of prompt is that it supports
  1469. "completion", this allows you to type the beginning of your response
  1470. then press the TAB key. What you have typed will be matched against the
  1471. list of responses that the editor has (i.e. when being prompted for the
  1472. name of a file it will be matched against all available files), if a
  1473. unique match is found your response will be completed to that match.
  1474.  
  1475.    If several potential completions are found, these will be displayed
  1476. after the line `::Completions::' in the buffer and your response will
  1477. only be completed as far as the potential completions are similar. For
  1478. example, if you enter `fo' then press TAB and files called `foo' and
  1479. `foobar' exist, the contents of the prompt will become `foo'.
  1480.  
  1481.    Completion is provided for many different things, some are: files,
  1482. buffers, symbols, functions, variables, Info nodes, etc...
  1483.  
  1484.    The special commands for this type of prompt are,
  1485.  
  1486. `TAB'
  1487. `RMB-CLICK1'
  1488.      Complete the contents of the prompt. If more than one potential
  1489.      completion exists they are printed in the buffer.
  1490.  
  1491. `RET'
  1492. `LMB-CLICK2'
  1493.      Enter the result of this prompt. If you invoke this command while
  1494.      the cursor is on a printed potential completion (those under the
  1495.      `::Completions::' line) the whole line will be entered. Otherwise,
  1496.      just the text to the left of the cursor is entered.
  1497.  
  1498. `Meta-?'
  1499.      Print all possible completions of the current prompt but do not
  1500.      try to actually change the contents of the prompt.
  1501.  
  1502. `Ctrl-g'
  1503.      Cancel the prompt.
  1504.  
  1505.