home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume1 / 8707 / 3 < prev    next >
Internet Message Format  |  1990-07-13  |  60KB

  1. From: paul@cgh.UUCP (Paul Homchick)
  2. Newsgroups: comp.sources.misc
  3. Subject: MicroEmacs 3.8i Documentation (Formatted) 1 of 2
  4. Message-ID: <2763@ncoast.UUCP>
  5. Date: 3 Jul 87 00:10:53 GMT
  6. Sender: allbery@ncoast.UUCP
  7. Lines: 2120
  8. Approved: allbery@ncoast.UUCP
  9. X-Archive: comp.sources.misc/8707/3
  10.  
  11. MicroEmacs 3.8i Documentation formatted from MicroSCRIBE original.
  12.                  +++ Part One of Two +++
  13. (Differs from the original uEmacs distribution by fixing some spelling
  14.  errors and formattating problems)
  15. -----snip-----snip-----snip-----snip-----snip-----snip-----snip-----snip-----
  16.  
  17.         MicroEMACS
  18.  
  19.         Full Screen Text Editor
  20.         Reference Manual (preliminary draft)
  21.  
  22.         Version 3.8i
  23.         April 27, 1987
  24.  
  25.         (C)opyright 1987 by Daniel M. Lawrence
  26.         Reference Manual (C)opyright 1987
  27.             by Brian Straight and Daniel M. Lawrence
  28.         All Rights Reserved
  29.  
  30.         MicroEMACS 3.8i can be copied and distributed freely
  31.         for any non-commercial purposes. MicroEMACS 3.8i can
  32.         only be incorporated into commercial software with
  33.         the permission of the current author.
  34.  
  35. Introduction
  36.  
  37.     MicroEMACS  is    a  tool  for  creating    and  changing documents,
  38. programs, and other  text  files.    It  is both relatively easy for the
  39. novice    to  use,  but  also  very  powerful  in the hands of an  expert.
  40. MicroEMACS can be extensively customized for the needs of the individual
  41. user.
  42.  
  43.     MicroEMACS allows several files to be edited at  the  same time.
  44. The  screen  can  be split into different windows, and text may be moved
  45. freely from one window to the next.  Depending on the type of file being
  46. edited, MicroEMACS can change  how  it    behaves  to make editing simple.
  47. Editing standard text files, program files and word processing documents
  48. are all possible at the same time.
  49.  
  50.     There are extensive capabilities  to  make  word  processing and
  51. editing  easier.    These  include  commands  for  string searching  and
  52. replacing, paragraph reformatting and deleting, automatic word wrapping,
  53. word move and deletes, easy case controlling, and automatic word counts.
  54.  
  55.     For complex and  repetitive  editing tasks editing macros can be
  56. written.  These macros allow the  user    a great degree of flexibility in
  57. determining how MicroEMACS behaves.    Also any and all the commands can
  58. be used by  any  keystroke  by    changing,  or  rebinding,  what commands
  59. various keys are connected, or bound, to.
  60.  
  61.     Special features are also available  to perform a diverse set of
  62. operations such as file encryption,  automatic    backup    file generation,
  63. entabbing and detabbing  lines,  executing of DOS commands and filtering
  64. of text through other programs (like SORT to allow sorting text).
  65.  
  66. History
  67.  
  68.     EMACS was originally  a  text editor written by Richard Stahlman
  69. at  MIT  in  the  early  1970s for Digital Equipment computers.  Various
  70. versions, rewrites and clones have made an appearance since.
  71.  
  72.     This version of MicroEMACS is  derived from code written by Dave
  73. G.  Conroy in 1985.  Later modifications were performed by Steve Wilhite
  74. and George Jones.  In December of 1985    Daniel    Lawrence  picked  up the
  75. then current source  (version  2.0) and has made extensive modifications
  76. and additions to  it over the course of the next two years.  Updates and
  77. support for  the  current  version  is    still  in progress.  The current
  78. program author can be contacted by writing to:
  79.  
  80.     USMAIL: Daniel Lawrence
  81.         617 New York St
  82.         Lafayette, IN 47901
  83.  
  84.     UUCP:    ihnp4!pur-ee!pur-phy!duncan!lawrence
  85.     ARPA:    nwd@j.cc.purdue.edu
  86.     FIDO:    Fido 201/2 The Programmer's Room (317) 742-5533
  87.  
  88. MicroEMACS Reference Manual                  Basic Concepts
  89.  
  90.                    Chapter 1
  91.  
  92.                  Basic Concepts
  93.  
  94.     The current version of MicroEMACS is 3.8i (Third major re-write,
  95. eighth public release, Ith  (or  ninth) minor release), and for the rest
  96. of this document, we shall simply refer to this version as "EMACS".  Any
  97. modifications for later versions will be listed in the appendixes at the
  98. end of this manual.
  99.  
  100. 1.1  Keys and the Keyboard
  101.  
  102.     Many  times  throughout  this manual we will  be  talking  about
  103. commands  and  the keys on the keyboard needed use them.   There  are  a
  104. number of "special" keys which can be used and are listed here:
  105.  
  106. <NL>         NewLine which    is also called RETURN or ENTER, this key
  107.          is used to end different commands.
  108.  
  109. ^         The control  key  can    be  used  before  any alphabetic
  110.          character and some  symbols.    For example, ^C means to
  111.          hold down the <CONTROL>  key  and type the C key at the
  112.          same time.
  113.  
  114. ^X         The  CONTROL-X key is used at    the  beginning    of  many
  115.          different commands.
  116.  
  117. META or M-     This is a special EMACS key used to begin many commands
  118.          as well.  This key is pressed, and then released before
  119.          typing the next character.    On  most systems, this is
  120.          the  <ESC>  key,  but    it  can  be  changed.    (consult
  121.          appendix D to learn  what  key is used for META on your
  122.          computer).
  123.  
  124.     Whenever a command is described, the manual will list the actual
  125. keystrokes needed to execute it in boldface using the above conventions,
  126. and also the name of the command in italics.
  127.  
  128. 1.2  Getting Started
  129.  
  130.     In order to use EMACS, you must call it up from your system's or
  131. computer's command prompt.    On  UNIX    and  MSDOS  machines,  just type
  132. "emacs" from the main command prompt and follow it with the  <RETURN> or
  133.  
  134.                                        1
  135.  
  136. Basic Concepts                     MicroEMACS Reference Manual
  137.  
  138. <ENTER> key (we will refer to  this  key  as <NL> for "new-line" for the
  139. remainder  of  this  manual).  On the Macintosh, the Amiga, the ATARI ST
  140. and other icon based operating systems, double click on the uEMACS icon.
  141. Shortly after this, a screen similar to the one below should appear.
  142.  
  143. 1.3  Parts and Pieces
  144.  
  145.     The screen is divided into a number of    areas  or  windows.   On
  146. some systems the top window contains a function list  of  unshifted  and
  147. shifted function keys.    We will discuss these keys later. Below  them is
  148. an EMACS  mode    line  which,  as we will see, informs you of the present
  149. mode of operation of  the  editor--for example "(WRAP)" if you set EMACS
  150. to wrap at the end  of each line. Under the mode line is the text window
  151. where  text  appears  and is manipulated.  Since each window has its own
  152. mode line, below the text window is it's mode line.   The  last  line of
  153. the screen is the command line where EMACS takes commands and reports on
  154. what it is doing.
  155.  
  156. ===============================================================================
  157. f1 search      f2 search back : F1 toggle function list F2 toggle help file
  158. f3 hunt        f4 hunt back   : F3 find command/apropos F4 describe key
  159. f5 next window f6 exec macro  : F5 reformat paragraph    F6 ref undented region
  160. f7 find file   f8 exec file   : F7 indent region    F8 undent region
  161. f9 save file  f10 exit emacs  : F9 execute DOS command F10 shell up
  162. ===============================================================================
  163. -- MicroEMACS 3.8i () -- Function Keys ---------------------------------------
  164. ===============================================================================
  165.  
  166. ===============================================================================
  167. -- MicroEMACS 3.8i () -- Main ------------------------------------------------
  168. ===============================================================================
  169.         Fig 1:    EMACS screen on an IBM-PC
  170.  
  171. 1.4  Entering Text
  172.  
  173.     Entering text in EMACS is simple.  Type  the  following sentence
  174. fragment:
  175.  
  176.      Fang Rock lighthouse, center of a series of mysterious and
  177.  
  178. 2
  179.  
  180. MicroEMACS Reference Manual                  Basic Concepts
  181.  
  182. The text is displayed at the top of the text window.  Now type:
  183.  
  184.      terrifying events at the turn of the century
  185.  
  186.     Notice the text to the left  of  the cursor disappears and a '$'
  187. sign appears.  Don't panic--your  text is safe!!! You've just discovered
  188. that  EMACS  doesn't  "wrap"  text  to    the  next  line  like most  word
  189. processors unless you hit <NL>.  But since EMACS is  used  for both word
  190. processing, and text editing, it has a bit of a  dual  personality.  You
  191. can change the way it works by setting various modes.  In this case, you
  192. need  to set WRAP mode, using the add-mode command, by typing ^X-M.  The
  193. command line at  the base of the screen will prompt you for the mode you
  194. wish  to  add.     Type wrap followed by the <NL> key and any text you now
  195. enter will be wrapped.      However, the command doesn't wrap text already
  196. entered.  To get rid of  the  truncated line, delete characters with the
  197. <BACKSPACE>  key  until the '$' goes away.  Now type in  the  words  you
  198. deleted, watch how EMACS goes down to the next line  at  the right time.
  199. (In some  versions  of    EMACS,    WRAP is a default mode in which case you
  200. don't  have  to  worry    about  the instructions relating to adding  this
  201. mode.)
  202.  
  203.     Now let's type a longer insert.  Hit <NL> a  couple  of times to
  204. tab  down  from  the  text  you  just  entered.  Now type the  following
  205. paragraphs.  Press <NL> twice to indicate a paragraph break.
  206.  
  207.      Fang Rock lighthouse, center of  a  series  of  mysterious and
  208.      terrifying events at the turn of the century, is  built  on  a
  209.      rocky  island  a  few miles of the Channel coast.    So small is
  210.      the island that wherever you stand its rocks are wet  with sea
  211.      spray.
  212.  
  213.      The lighthouse tower is in the center of the island.   A steep
  214.      flight of steps leads to the heavy door in its base.   Winding
  215.      stairs lead up to the crew room.
  216.  
  217. 1.5  Basic cursor movement
  218.  
  219.     Now  let's practice moving around in this text.    To  move  the
  220. cursor back to    the  word  "Winding,"  enter  M-B  previous-word.   This
  221. command moves the cursor backwards by one word at a time.  Note you have
  222. to press the key combination every time the  cursor  steps  back  by one
  223. word.     Continuously  pressing  META  and toggling B produces an  error
  224. message.    To    move forward to the word "stairs" enter M-F, which moves
  225. the cursor forward by one word at a time.
  226.  
  227.     Notice that EMACS commands are usually mnemonic--F  for forward,
  228. B for backward, for example.
  229.  
  230.     To move the cursor up one line, enter ^P previous-line, down one
  231. line ^N next-line.  Practice this  movement  by moving the cursor to the
  232. word "terrifying" in the second line.
  233.  
  234.                                        3
  235.  
  236. Basic Concepts                     MicroEMACS Reference Manual
  237.  
  238.     The  cursor may also be moved forward  or  backward  in  smaller
  239. increments.    To  move forward by  one  character,  enter  ^F    forward-
  240. character, to move  backward,  ^B backward-character.  EMACS also allows
  241. you  to  specify a number which is normally used to tell  a  command  to
  242. execute  many  times.    To repeat most commands, press META and then the
  243. number before you enter the  command.     Thus,    the  command  META  5 ^F
  244. (M-5^F) will move  the    cursor    forward  by five characters.  Try moving
  245. around in the text by using these commands.  For extra practice, see how
  246. close  you can come to the word "small" in the first paragraph by giving
  247. an argument to the commands listed here.
  248.  
  249.     Two other simple cursor commands that are useful to help us move
  250. around in the text are M-N next-paragraph which moves the cursor  to the
  251. second paragraph, and M-P previous-paragraph  which moves it back to the
  252. previous paragraph.  The cursor may  also  be moved rapidly from one end
  253. of  the line to the other.  Move the cursor to the  word  "few"  in  the
  254. second line.  Press ^A beginning-of-line.  Notice the  cursor  moves  to
  255. the word "events" at the beginning of the line.  Pressing ^E end-of-line
  256. moves the cursor to the end of the line.
  257.  
  258.     Finally, the cursor may be moved  from    any point in the file to
  259. the  end  or  beginning of the file.  Entering M-> end-of-file moves the
  260. cursor    to the end of the buffer, M-<  beginning-of-file  to  the  first
  261. character of the file.
  262.  
  263.     On the IBM-PC, the ATARI ST and many other machines,  the cursor
  264. keys can also  be  used to move the cursor about.  Also, if there is one
  265. available, moving the mouse will move the cursor.
  266.  
  267.     Practice moving the cursor in the text until you are comfortable
  268. with the commands we've explored in this chapter.
  269.  
  270. 1.6  Saving your text
  271.  
  272.     When you've finished practicing cursor movement, save your file.
  273. Your file currently  resides  in  a  BUFFER.   The buffer is a temporary
  274. storage area for your text, and is lost when the computer is turned off.
  275. You can save the buffer to a file by entering  ^X-^S  save-file.  Notice
  276. that  EMACS informs you that your file has no name and will not let  you
  277. save it.
  278.  
  279.     To  save  your    buffer to a file with a different name than it's
  280. current one (which is empty), press ^X^W write-file.  EMACS  will prompt
  281. you for  the  filename    you  wish to write.  Enter the name fang.txt and
  282. press return.    On a micro, the drive light will come on, and EMACS will
  283. inform you it is writing the file.  When it finishes, it will inform you
  284. of the number of lines it has written to the disk.
  285.  
  286.     Congratulations!! You've just saved your first EMACS file!
  287.  
  288. 4
  289.  
  290. MicroEMACS Reference Manual                  Basic Concepts
  291.  
  292.                Chapter 1 Summary
  293.  
  294.     In chapter 1, you learned how to enter    text,  how  to    use wrap
  295. mode, how to move the  cursor, and to save a buffer.  The following is a
  296. table  of  the    commands covered in this chapter and their corresponding
  297. key bindings:
  298.  
  299. Key Binding        Keystroke    Effect
  300.  
  301. abort-command        ^G        aborts current command
  302.  
  303. add-mode        ^XM        allows addition of EMACS
  304.                     mode such as WRAP
  305.  
  306. backward-character    ^B        moves cursor left one character
  307.  
  308. beginning-of-file    M-<        moves cursor to beginning of file
  309.  
  310. beginning-of-line    ^A        moves cursor to beginning of line
  311.  
  312. end-of-file        M->        moves cursor to end of file
  313.  
  314. end-of-line        ^E        moves cursor to end of line
  315.  
  316. forward-character    ^F        moves cursor right one character
  317.  
  318. next-line        ^N        moves cursor to next line
  319.  
  320. next-paragraph        M-N        moves cursor to next paragraph
  321.  
  322. next-word        M-F        moves cursor forward one word
  323.  
  324. previous-line        ^P        moves cursor backward by one line
  325.  
  326. previous-paragraph    M-P        moves cursor to previous paragraph
  327.  
  328. previous-word        M-B        moves cursor backward by one word
  329.  
  330. save-file        ^X-^S        saves current buffer to a file
  331.  
  332. write-file        ^X-^W        save current buffer under a new name
  333.  
  334.                                        5
  335.  
  336. Basic Editing--Simple Insertions and Deletions        MicroEMACS Reference
  337.                                   Manual
  338.  
  339.                    Chapter 2
  340.  
  341.          Basic Editing--Simple Insertions and Deletions
  342.  
  343. 2.1  A Word About Windows, Buffers, Screens, and Modes
  344.  
  345.     In the first chapter, you learned how to create and save  a file
  346. in EMACS. Let's do some more editing on  this  file.    Call up emacs by
  347. typing in the following command.
  348.  
  349.     emacs fang.txt
  350.  
  351.     On  icon  oriented  systems, double click on  the  uEMACS  icon,
  352. usually a file dialog box of some sort    will  appear.     Choose FANG.TXT
  353. from the appropriate folder.
  354.  
  355.     Shortly  after    you  invoke EMACS, the text should appear on the
  356. screen ready  for  you    to  edit.  The text you are looking at currently
  357. resides in a buffer.  A  buffer  is  a temporary area of computer memory
  358. which is the primary unit internal to EMACS -- this  is  the place where
  359. EMACS goes to work.  The mode line at the bottom of the screen lists the
  360. buffer name, FANG.TXT and the name of the file with which this buffer is
  361. associated, FANG.TXT
  362.  
  363.     The computer talks to you through  the    use of its screen.  This
  364. screen usually has an area of 24 lines    each  of  80  characters across.
  365. You can use  EMACS  to    subdivide  the screen into several separate work
  366. areas, or windows, each  of  which can be 'looking into' different files
  367. or sections of text.  Using windows, you  can  work  on  several related
  368. texts at one  time,  copying  and  moving blocks of text between windows
  369. with ease.   To  keep  track  of  what    you  are editing, each window is
  370. identified by a mode line on the last line of the window which lists the
  371. name of  the  buffer  which  it is looking into, the file from which the
  372. text was read, and how the text is being edited.
  373.  
  374.     An EMACS mode tells EMACS how  to  deal  with user input.  As we
  375. have already seen, the mode 'WRAP' controls how EMACS  deals  with  long
  376. lines (lines with over 79 characters) while the user is typing    them in.
  377. The  'VIEW' mode, allows you to read a file without modifying it.  Modes
  378. are associated with buffers and not  with  files; hence, a mode needs to
  379. be explicitly set or removed every time you  edit  a  file.   A new file
  380. read into a buffer with a previously specified mode will be edited under
  381. this  mode.    If you use specific modes frequently, EMACS allows you to
  382. set the modes which are used by all new buffers, called global modes.
  383.  
  384. 6
  385.  
  386. MicroEMACS Reference Manual        Basic Editing--Simple Insertions and
  387.                                    Deletions
  388.  
  389. 2.2  Insertions
  390.  
  391.     Your previously-saved text should look like this:
  392.  
  393.      Fang Rock lighthouse, center of  a  series  of  mysterious and
  394.      terrifying events at the turn of the century, is  built  on  a
  395.      rocky  island  a  few miles of the Channel coast.    So small is
  396.      the island that wherever you stand its rocks are wet  with sea
  397.      spray.
  398.  
  399.      The lighthouse tower is in the center of the island.   A steep
  400.      flight of steps leads to the heavy door in its base.   Winding
  401.      stairs lead up to the crew room.
  402.  
  403.     Let's assume you want to add a sentence in the    second paragraph
  404. after  the  word  "base."    Move the cursor until it is on the  "W"  of
  405. "Winding". Now type the following:
  406.  
  407.      This gives entry  to  the    lower  floor  where  the  big steam
  408.      generator    throbs    steadily  away,  providing  power  for    the
  409.      electric lantern.
  410.  
  411.     If the line fails to  wrap and you end up with a '$' sign in the
  412. right margin, just  enter  M-Q fill-paragraph to reformat the paragraph.
  413. This  new  command  attempts to fill out a paragraph.    Long  lines  are
  414. divided up, and  words    are  shuffled  around to make the paragraph look
  415. nicer.
  416.  
  417.     Notice that all visible EMACS characters  are  self-inserting --
  418. all you  had  to  do  was type the characters to insert and the existing
  419. text made space for it.  With a few exceptions discussed later, all non-
  420. printing characters  (such as control or escape sequences) are commands.
  421. To insert spaces,  simply use the space bar.  Now move to the first line
  422. of the file and type ^O open-line (Oh, not zero).    You've just learned
  423. how to insert a blank line in your text.
  424.  
  425. 2.3  Deletions
  426.  
  427.     EMACS  offers  a  number of deletion options.  For example, move
  428. the cursor until it's under the period at the end  of  the insertion you
  429. just  did.    Press  the  backspace  key.   Notice the "n" on  "lantern"
  430. disappeared.  The backspace implemented on EMACS is called a destructive
  431. backspace--it  removes    text   immediately  before  the  current  cursor
  432. position  from    the  buffer.    Now  type  ^H delete-previous-character.
  433. Notice    that  the  cursor  moves  back and obliterates    the  "r"--either
  434. command will backspace the cursor.
  435.  
  436.     Type in the two letters you erased to restore your text and move
  437. the cursor to the  beginning  of the buffer M-> beginning-of-file.  Move
  438. the cursor down one line to the beginning of the first paragraph.
  439.  
  440.                                        7
  441.  
  442. Basic Editing--Simple Insertions and Deletions        MicroEMACS Reference
  443.                                   Manual
  444.  
  445.     To delete the  forward character, type ^D delete-next-character.
  446. The  "F" of "Fang" disappears.    Continue to type ^D until the whole word
  447. is erased EMACS also permits the deletion of larger  elements  of  text.
  448. Move  the  cursor  to the word "center"  in  the  first  line  of  text.
  449. Pressing  M-<backspace> delete-previous-word kills the word  immediately
  450. before the cursor.  M-^H has the same effect.
  451.  
  452.     Notice    that  the  commands  are  very    similar  to the  control
  453. commands  you  used  to delete individual letters.  As a general rule in
  454. EMACS,    control sequences affect small areas  of  text,  META  sequences
  455. larger areas.  The word forward of the cursor position can  therefore be
  456. deleted  by  typing  M-D  delete-next-word.    Now  let's take    out  the
  457. remainder of the first    line  by typing ^K kill-to-end-of-line.  You now
  458. have a blank  line  at the top of your screen.    Typing ^K again or ^X-^O
  459. delete-blank-lines deletes the blank line and flushes the second line to
  460. the top of the text.  Now exit EMACS by typing ^X-^C exit-emacs.  Notice
  461. EMACS  reminds    you  that you have not saved your buffer.    Ignore  the
  462. warning and exit.  This way you can exit EMACS without saving any of the
  463. changes you just made.
  464.  
  465.                Chapter 2 Summary
  466.  
  467.     In Chapter 2, you learned about the basic  'building  blocks' of
  468. an EMACS text file--buffers, windows, and files.
  469.  
  470. Key binding        Keystroke    Effect
  471. delete-previous-character
  472.             ^H        deletes character immediately before
  473.                     the current cursor position
  474.  
  475. delete-next-character    ^D        deletes character immediately after
  476.                     current cursor position
  477.  
  478. delete-previous-word    M-^H        deletes word immediately before
  479.                     current cursor position
  480.  
  481. delete-next-word    M-D        deletes word immediately after
  482.                     current cursor position
  483.  
  484. kill-to-end-of-line    ^K        deletes from current cursor
  485.                     position to end of line
  486.  
  487. insert-space        ^C        inserts a space to right of cursor
  488.  
  489. open-line        ^O        inserts blank line
  490.  
  491. delete-blank-lines    ^X-^O        removes blank line
  492.  
  493. exit-emacs        ^X-^C        exits emacs
  494.  
  495. 8
  496.  
  497. MicroEMACS Reference Manual                   Using Regions
  498.  
  499.                    Chapter 3
  500.  
  501.                  Using Regions
  502.  
  503. 3.1  Defining and Deleting a Region
  504.  
  505.     At  this  point  its time to familiarize ourselves with two more
  506. EMACS  terms--the point and the mark.  The  point  is  located    directly
  507. behind the current cursor position.  The mark (as we shall  see shortly)
  508. is user defined.    These  two    elements together are called the current
  509. region    and limit the region of text on which EMACS performs many of its
  510. editing functions.
  511.  
  512.     Let's begin by entering some new text.    Don't forget to add wrap
  513. mode if its not set  on this buffer.  Start EMACS and open a file called
  514. PUBLISH.TXT.  Type in the following text:
  515.  
  516.      One  of  the  largest growth areas in  personal  computing  is
  517.      electronic publishing.    There  are  packages  available    for
  518.      practically  every machine from elegantly simple programs    for
  519.      the humble Commodore 64 to sophisticated professional packages
  520.      for PC and Macintosh computers.
  521.  
  522.      Electronic publishing is as  revolutionary  in  its way as the
  523.      Gutenburg press.    Whereas the printing press allowed the mass
  524.      production and distribution of  the  written  word, electronic
  525.      publishing puts the means of production in the hands of nearly
  526.      every individual.    From  the  class  magazine to the corporate
  527.      report, electronic publishing is changing the  way  we produce
  528.      and disseminate information.
  529.  
  530.      Personal  publishing   greatly   increases   the    utility  of
  531.      practically every computer.  Thousands  of  people  who joined
  532.      the  computer revolution of this decade  only  to    hide  their
  533.      machines unused in closets have  discovered a new use for them
  534.      as dedicated publishing workstations.
  535.  
  536.     Now let's do some editing.  The last paragraph    seems  a  little
  537. out of place.  To see what the document looks like without it we can cut
  538. it from the text by moving the cursor to the beginning of the paragraph.
  539. Enter M-<space> set-mark.  EMACS will respond with "[Mark  set]".    Now
  540. move the cursor to the end of the paragraph.  You  have  just  defined a
  541. region    of  text.  To remove this text from the screen,  type  ^W  kill-
  542. region.  The paragraph disappears from the screen.
  543.  
  544.                                        9
  545.  
  546. Using Regions                     MicroEMACS Reference Manual
  547.  
  548.     On further consideration, however, perhaps the paragraph  we cut
  549. wasn't so bad after all.   The    problem  may have been one of placement.
  550. If we could  tack  it on to the end of the first paragraph it might work
  551. quite well to support and strengthen  the  argument.  Move the cursor to
  552. the end of  the first paragraph and enter ^Y yank.  Your text should now
  553. look like this:
  554.  
  555.      One  of  the  largest growth areas in  personal  computing  is
  556.      electronic publishing.    There  are  packages  available    for
  557.      practically  every machine from elegantly simple programs    for
  558.      the humble Commodore 64 to sophisticated professional packages
  559.      for PC and Macintosh computers.   Personal  publishing greatly
  560.      increases    the   utility    of   practically   every  computer.
  561.      Thousands of people who joined the computer revolution of this
  562.      decade  only to hide their machines  unused  in  closets  have
  563.      discovered  a  new  use  for  them  as   dedicated  publishing
  564.      workstations.
  565.  
  566.      Electronic publishing is as  revolutionary  in  its way as the
  567.      Gutenburg press.    Whereas the printing press allowed the mass
  568.      production and distribution of  the  written  word, electronic
  569.      publishing puts the means of production in the hands of nearly
  570.      every individual. From the  class    magazine  to  the corporate
  571.      report, electronic publishing is changing the  way  we produce
  572.      and disseminate information.
  573.  
  574. 3.2  Yanking a Region
  575.  
  576.     The text you cut initially  didn't simply just disappear, it was
  577. cut  into  a  buffer that retains the 'killed' text appropriately called
  578. the kill  buffer.    ^Y  "yanks" the text back from this buffer into the
  579. current buffer. If you have a long line (indicated, remember, by the "$"
  580. sign), simply hit M-Q to reformat the paragraph.
  581.  
  582.     There are other uses to which the kill buffer can be put.  Using
  583. the method we've already learned, define the last paragraph as a region.
  584. Now type M-W copy-region.  Nothing seems to have  happened;  the  cursor
  585. stays blinking at the point.   But  things have changed, even though you
  586. may not be able to see any alteration.
  587.  
  588.     To see what  has  happened  to    the contents of the kill buffer,
  589. move the cursor down a couple  of  lines  and "yank" the contents of the
  590. kill  buffer  back  with ^Y.  Notice the last paragraph is now repeated.
  591. The region you defined is "tacked on" to the end of your file because M-
  592. W  copies a region to the kill buffer while leaving the original text in
  593. your working buffer.    Some  caution  is  needed  however,  because the
  594. contents of the  kill  buffer  are  updated when you delete any regions,
  595. lines  or  words.   If you are moving large quantities of text, complete
  596. the  operation    before    you do any more deletions or you could find that
  597. the text you want to move has been replaced by the most recent deletion.
  598. Remember--a buffer is a  temporary  area of computer memory that is lost
  599. when the machine is powered down or switched off.  In order to make your
  600.  
  601. 10
  602.  
  603. MicroEMACS Reference Manual                   Using Regions
  604.  
  605. changes permanent, they must be saved to a file before you  leave EMACS.
  606. Let's  delete  the section of text we just added and save  the    file  to
  607. disk.
  608.  
  609.                Chapter 3 Summary
  610.  
  611.     In Chapter 3, you learned how to achieve  longer  insertions and
  612. deletions.   The  EMACS  terms    point  and  mark were introduced and you
  613. learned how to manipulate text with the kill buffer.
  614.  
  615. Key Binding    Keystroke    Effect
  616.  
  617. Delete-Region    ^W        Deletes region between point and mark and
  618.                 places it in KILL buffer
  619.  
  620. Copy-Region    M-W        Copies text between point and mark into
  621.                 KILL buffer
  622.  
  623. Yank-Text    ^Y        Inserts a copy of the KILL buffer into
  624.                 current buffer at point
  625.  
  626.                                       11
  627.  
  628. Search and Replace                 MicroEMACS Reference Manual
  629.  
  630.                    Chapter 4
  631.  
  632.                Search and Replace
  633.  
  634. 4.1  Forward Search
  635.  
  636.     Load EMACS and    bring  in  the    file  you just saved.  Your file
  637. should look like the one below.
  638.  
  639.      One  of  the  largest growth areas in  personal  computing  is
  640.      electronic publishing.    There  are  packages  available    for
  641.      practically  every machine from elegantly simple programs    for
  642.      the humble Commodore 64 to sophisticated professional packages
  643.      for PC and Macintosh computers.   Personal  publishing greatly
  644.      increases    the   utility    of   practically   every  computer.
  645.      Thousands of people who joined the computer revolution of this
  646.      decade  only to hide their machines  unused  in  closets  have
  647.      discovered  a  new  use  for  them  as   dedicated  publishing
  648.      workstations.
  649.  
  650.      Electronic publishing is as  revolutionary  in  its way as the
  651.      Gutenburg press.    Whereas the printing press allowed the mass
  652.      production and distribution of  the  written  word, electronic
  653.      publishing puts the means of production in the hands of nearly
  654.      every individual. From the  class    magazine  to  the corporate
  655.      report, electronic publishing is changing the  way  we produce
  656.      and disseminate information.
  657.  
  658.     Let's  use  EMACS  to search for the word "revolutionary" in the
  659. second    paragraph.    Because  EMACS  searches from the  current  cursor
  660. position toward the  end  of  buffers,    and we intend to search forward,
  661. move the cursor to the beginning of the text.  Enter  ^S search-forward.
  662. Note that the command line now reads
  663.  
  664.     "Search [] <META>:"
  665.  
  666.     EMACS is prompting you to enter the search string  --  the  text
  667. you want to find.  Enter  the  word  revolutionary and hit the META key.
  668. The cursor moves to the end of the word "revolutionary."
  669.  
  670.     Notice that you must  enter  the <META> key to start the search.
  671. If  you  simply  press    <NL>  the  command  line responds  with  "<NL>".
  672. Although this may seem infuriating to users who are used to pressing the
  673. return    key  to  execute  any  command,  EMACS'  use  of <META> to begin
  674. searches allows it to pinpoint text with great accuracy.    After  every
  675. line wrap or carriage return, EMACS 'sees' a new line  character (<NL>).
  676.  
  677. 12
  678.  
  679. MicroEMACS Reference Manual                  Search and Replace
  680.  
  681. If you need to search for a word at the end of a line,    you  can specify
  682. this word uniquely in EMACS.
  683.  
  684.     In our sample text  for  example, the word "and" occurs a number
  685. of times, but only once at the end  of    a  line.    To    search    for this
  686. particular occurrence of the  word,  move the cursor to the beginning of
  687. the buffer and type ^S.  Notice that  EMACS  stores  the  last specified
  688. search string as the default string.  If  you  press  <META>  now, EMACS
  689. will search for the default string, in this case, "revolutionary."
  690.  
  691.     To change this string  so  we can search for our specified "and"
  692. simply enter the word and followed by <NL>.  The command line now shows:
  693.  
  694.     "search [and<NL>]<META>:"
  695.  
  696.     Press <META> and the cursor moves to "and"  at    the  end  of the
  697. second last line.
  698.  
  699. 4.2  Exact Searches
  700.  
  701.     If  the  mode  EXACT is active    in  the  current  buffer,  EMACS
  702. searches on a case sensitive basis.  Thus, for example you  could search
  703. for Publishing as distinct from publishing.
  704.  
  705. 4.3  Backward Search
  706.  
  707.     Backward searching is very similar to  forward    searching except
  708. that it is implemented in the reverse direction.  To implement a reverse
  709. search,  type ^R search-reverse.  Because  EMACS  makes  no  distinction
  710. between forward and backward stored search strings, the last search item
  711. you entered appears as the default  string.   Try searching back for any
  712. word that  lies  between  the  cursor  and  the beginning of the buffer.
  713. Notice    that when the item is found, the point moves to the beginning of
  714. the found string (i.e., the cursor appears under the first letter of the
  715. search item).
  716.  
  717.     Practice searching for other words in your text.
  718.  
  719. 4.4  Searching and Replacing
  720.  
  721.     Searching  and    replacing  is a powerful and quick way of making
  722. changes to your text.     Our sample text is about electronic publishing,
  723. but the correct  term  is  'desktop'  publishing.  To make the necessary
  724. changes we need to replace all occurrences of the word "electronic" with
  725. "desktop." First, move the cursor to the top of the current  buffer with
  726. the  M-<  command.  Then type M-R  replace-string.    The  command  line
  727. responds:
  728.  
  729.                                       13
  730.  
  731. Search and Replace                 MicroEMACS Reference Manual
  732.  
  733.     "Replace []<META>:"
  734.  
  735.     where the square brackets enclose  the default string.    Type the
  736. word electronic and hit <META>.  The command line responds:
  737.  
  738.     "with []<META>"
  739.  
  740.     type  desktop<META>.    EMACS  replaces  all  instances  of  the
  741. original  word    with  your  revision.     Of  course,  you  will have  to
  742. capitalize  the  first    letter    of  "desktop"  where  it occurs  at  the
  743. beginning of a sentence.
  744.  
  745.     You  have  just  completed an unconditional replace.    In  this
  746. operation,  EMACS  replaces  every instance of the found string with the
  747. replacement string.
  748.  
  749. 4.5  Query-Replace
  750.  
  751.     You may  also  replace    text  on a case by case basis.    The M-^R
  752. query-replace-string command causes  EMACS  to pause at each instance of
  753. the found string.
  754.  
  755.     For example, assume we    want  to  replace  some instances of the
  756. word "desktop" with the word "personal." Go back to the beginning of the
  757. current buffer and enter the  M-^R query-replace command.  The procedure
  758. is  very  similar  to  that  which  you  followed in  the  unconditional
  759. search/replace option.    When the  search begins however, you will notice
  760. that EMACS pauses at each instance of "publishing" and asks  whether you
  761. wish to replace it with the  replacement  string.   You have a number of
  762. options available for response:
  763.  
  764.     Response    Effect
  765.     Y(es)    Make the current replacement and skip to the next
  766.         occurrence of the search string
  767.  
  768.     N(o)    Do not make this replacement but continue
  769.  
  770.     !    Do the rest of the replacements with no more queries
  771.  
  772.     U(ndo)    Undo just the last replacement and query for it
  773.         again (This can only go back ONE time)
  774.  
  775.     ^G    Abort the replacement command (This action does not
  776.         undo previously-authorized replacements
  777.  
  778.     .    Same effect as ^G, but cursor returns to the point at
  779.         which the replacement command was given
  780.  
  781.     ?    This lists help for the query replacement command
  782.  
  783.     Practice searching and searching and  replacing  until    you feel
  784. comfortable with the commands and their effects.
  785.  
  786. 14
  787.  
  788. Windows                                      MicroEMACS Reference Manual
  789.  
  790.                Chapter 4 Summary
  791.  
  792.     In this chapter, you learned how to search for specified strings
  793. of  text  in  EMACS.    The  chapter  also dealt with searching for  and
  794. replacing elements within a buffer.
  795.  
  796. Key Binding        Keystroke             Effect
  797.  
  798. Search-Forward        ^S    Searches from point to end of buffer.
  799.                 Point is moved from current location to
  800.                 the end of the found string
  801.  
  802. Search-Backward         ^R    Searches from point to beginning of buffer.
  803.                 Point is moved from current location to
  804.                 beginning of found string
  805.  
  806. Replace                 M-R Replace ALL occurrences of search string with
  807.                 specified (null) string from point to the
  808.                 end of the current buffer
  809.  
  810. Query-Replace           M-^R    As above, but pause at each found string
  811.                 and query for action
  812.  
  813. 16
  814.  
  815. MicroEMACS Reference Manual                     Windows
  816.  
  817.                    Chapter 5
  818.  
  819.                 Windows
  820.  
  821. 5.1  Creating Windows
  822.  
  823.     We  have already met windows in an earlier  chapter.    In  this
  824. chapter, we will explore one of EMACS' more powerful  features    --  text
  825. manipulation through multiple windowing.
  826.  
  827.     You will recall that  windows  are areas of buffer text that you
  828. can see on the screen.    Because EMACS can support several screen windows
  829. simultaneously you can    use  them  to  look into different places in the
  830. same  buffer.     You  can  also  use them to look at text  in  different
  831. buffers.  In effect, you can edit several files at the same time.
  832.  
  833.     Let's invoke EMACS and pull  back our file on desktop publishing
  834. by typing
  835.  
  836.      emacs publish.txt
  837.  
  838.     When  the  text  appears,  type  the  ^X-2  split-current-window
  839. command.  The  window  splits  into  two  windows.  The window where the
  840. cursor resides is called the current  window  -- in this case the bottom
  841. window.  Notice  that  each window has a text area and a mode line.  The
  842. command line is however, common to all windows on the screen.
  843.  
  844.     The  two  windows  on your screen are virtually mirror images of
  845. each  other because the new window is opened into the same buffer as the
  846. one you are in when you issue the  Open-Window    command.    All commands
  847. issued    to  EMACS are executed on the  current    buffer    in  the  current
  848. window.
  849.  
  850.     To move  the  cursor  to  the  upper  window (i.e., to make that
  851. window the current window, type ^X-P previous-window.  Notice the cursor
  852. moves to the upper or previous window.    Entering ^X-O  next-window moves
  853. to the next window.  Practice  moving  between windows.  You will notice
  854. that you can  also  move  into    the  Function Key menu by entering these
  855. commands.
  856.  
  857.     Now move to the upper window.  Let's open a new  file.      On the
  858. EMACS  disk is a tutorial file.  Let's call it into the upper window  by
  859. typing:
  860.  
  861.      ^X-^F find-file
  862.  
  863.                                       17
  864.  
  865. Windows                                      MicroEMACS Reference Manual
  866.  
  867. and press return.  Then enter the filename emacs.tut.
  868.  
  869.     In a short time, the tutorial file will appear    in  the  window.
  870. We now    have  two  windows  on    the  screen, each looking into different
  871. buffers.  We  have just used the ^X- ^F find-file command to find a file
  872. and bring it into our current window.
  873.  
  874.     You can scroll any window up  and  down with the cursor keys, or
  875. with the commands  we've  learned  so  far. However, because the area of
  876. visible  text in each window is relatively small,  you    can  scroll  the
  877. current window a line at a time.
  878.  
  879.     Type ^X-^N move-window-down
  880.  
  881.     The current window scrolls down by  one  line -- the top line of
  882. text scrolls out of view, and the bottom line moves  towards  the top of
  883. the  screen.    You can imagine, if you like, the  whole  window  slowly
  884. moving down to the end of the buffer  in  increments  of  one line.  The
  885. command  ^X-^P    move-window-up    scrolls  the  window  in   the    opposite
  886. direction.
  887.  
  888.     As  we have seen, EMACS editing commands  are  executed  in  the
  889. current  window,  but  the  program  does support a useful feature  that
  890. allows you to scroll  the  next window.  M-^Z scroll-next-up scrolls the
  891. next window up, M-^U  scroll-next-down    scrolls  it  downward.    From the
  892. tutorial  window,  practice  scrolling    the  window  with   the  desktop
  893. publishing text in it up and down.
  894.  
  895.     When you're finished,  exit  EMACS without saving any changes in
  896. your files.
  897.  
  898.     Windows offer you  a  powerful    and  easy  way to edit text.  By
  899. manipulating   a  number  of  windows  and   buffers   on   the   screen
  900. simultaneously,  you can perform complete edits  and  revisions  on  the
  901. computer screen while having your  draft text or original data available
  902. for reference in another window.
  903.  
  904.     Experiment  with splitting the windows on  your  screen.    Open
  905. windows into different buffers and experiment with any    other  files you
  906. may have.  Try editing the text in each window, but don't forget to save
  907. any changes you want to keep --  you  still  have  to  save  each buffer
  908. separately.
  909.  
  910. 5.2  Deleting Windows
  911.  
  912. 5.3  Resizing Windows
  913.  
  914. 5.4  Other Window commands
  915.  
  916. 18
  917.  
  918. MicroEMACS Reference Manual                     Windows
  919.  
  920.                Chapter 5 Summary
  921.  
  922.     In  Chapter  5    you  learned  how to manipulate windows and  the
  923. editing flexibility they offer.
  924.  
  925. Key Binding        Keystroke               Effect
  926.  
  927. Open-Window        ^X-2        Splits current window into two windows
  928.                     if space is available
  929.  
  930. Close-Windows        ^X-1        Closes all windows except current
  931.                     window
  932.  
  933. Next-Window        ^X-O        Moves point into next (i.e. downward)
  934.                     window
  935.  
  936. Previous-Window         ^X-P        Moves point to previous (i.e. upward)
  937.                     window
  938.  
  939. Move-Window-Down    ^X-^N        Scrolls current window down one line
  940.  
  941. Move-Window-Up        ^X-^P        Scrolls current window up one line
  942.  
  943. Redraw-display        M-! or        Window is moved so line with point
  944.             M-^L        (with cursor) is at center of window
  945.  
  946. Grow-Window        ^X-^        Current window is enlarged by one
  947.                     line and nearest window is shrunk by
  948.                     one line
  949.  
  950. Shrink-Window        ^X-^Z        Current window is shrunk by one line
  951.                     and nearest window is enlarged by one
  952.                     line
  953.  
  954. Clear-and-Redraw    ^L        Screen is blanked and redrawn.    Keeps
  955.                     screen updates in sync with your
  956.                     commands
  957.  
  958. Scroll-Next-Up        M-^Z        Scrolls next window up by one line
  959.  
  960. Scroll-Next-Down    M-^U        Scrolls next window down by one line
  961.  
  962.                                       19
  963.  
  964. Buffers                                      MicroEMACS Reference Manual
  965.  
  966.                    Chapter 6
  967.  
  968.                 Buffers
  969.  
  970.      We have already learned a  number  of things about buffers.  As
  971. you  will  recall,  they are the major internal entities in EMACS -- the
  972. place  where  editing  commands are executed.  They are characterized by
  973. their  names,  their  modes,  and  by  the  file  with    which  they  are
  974. associated.   Each buffer also "remembers" its mark  and  point.    This
  975. convenient feature allows you to go  to  other buffers and return to the
  976. original location in the "current" buffer.
  977.  
  978.     Advanced users of EMACS frequently have a number  of  buffers in
  979. the computer's memory simultaneously.  In the last chapter, for example,
  980. you opened at least two buffers -- one into the  text  you were editing,
  981. and the other into the EMACS on-line tutorial.    If you deal with complex
  982. text files -- say, sectioned chapters  of  a  book, you may have five or
  983. six buffers in    the  computer's  memory.    You  could    select different
  984. buffers  by simply calling up the file with  ^X-^F  find-file,    and  let
  985. EMACS  open  or  reopen  the  buffer.     However,  EMACS offers fast and
  986. sophisticated buffering techniques that you will find easy to master and
  987. much more convenient to use.
  988.  
  989.     Let's begin by opening three buffers.  You can    open  any  three
  990. you choose, for example call  the following files into memory: fang.txt,
  991. publish.txt, and emacs.tut  in    the  order  listed  here.    When you've
  992. finished this process, you'll  be  looking at a screen showing the EMACS
  993. tutorial.    Let's  assume that you want to move to the fang.txt buffer.
  994. Enter:
  995.  
  996.     ^X-X next-buffer
  997.  
  998.     This command moves you to the next buffer.  Because EMACS cycles
  999. through the buffer list, which is  alphabetized,  you will now be in the
  1000. fang.txt buffer. Using ^X-X again  places you in the publish.txt buffer.
  1001. If  you  are  on a machine that supports function keys, using ^X-X again
  1002. places you in the Function Keys buffer. Using ^X-X one last  time cycles
  1003. you back to the beginning of the list.
  1004.  
  1005.     If you have a large number of buffers to deal with, this cycling
  1006. process  may  be  slow and inconvenient.  The command ^X-B select-buffer
  1007. allows    you to specify the buffer you wish to be switched to.  When  the
  1008. command  is entered, EMACS prompts, "Use buffer:".    Simply  enter  the
  1009. buffer    name  (NOT  the file name), and that buffer will then become the
  1010. current buffer.
  1011.  
  1012. 20
  1013.  
  1014. MicroEMACS Reference Manual                     Buffers
  1015.  
  1016.     Multiple buffer manipulation and editing is a  complex activity,
  1017. and you will probably  find  it very inconvenient to re-save each buffer
  1018. as you modify it.  The    command  ^X-^B list-buffers creates a new window
  1019. that  gives  details  about  all  the buffers currently known to  EMACS.
  1020. Buffers that have been modified are identified by  the    "buffer changed"
  1021. indicator (an asterisk in the second column).  You can thus  quickly and
  1022. easily identify buffers that need to  be  saved to files before you exit
  1023. EMACS.     The buffer window also provides  other  information  --  buffer
  1024. specific modes, buffer size, and buffer name are also listed.    To close
  1025. this window, simply type the close-windows command, ^X-1.
  1026.  
  1027.     To delete any buffer,  type  ^X-K  delete-buffer.  EMACS prompts
  1028. you "Kill buffer:".   Enter the buffer name you want to delete.  As this
  1029. is  destructive  command,  EMACS will ask for confirmation if the buffer
  1030. was  changed and not saved.  Answer Y(es) or N(o).  As usual ^G  cancels
  1031. the command.
  1032.  
  1033.                                       21
  1034.  
  1035. Buffers                                      MicroEMACS Reference Manual
  1036.  
  1037.                Chapter 6 Summary
  1038.  
  1039.     In Chapter 6 you learned how to manipulate buffers.
  1040.  
  1041. Key Binding        Keystroke               Effect
  1042. Next-Buffer        ^X-^X        Switch to the next buffer in the
  1043.                     buffer list
  1044.  
  1045. Select-Buffer        ^X-B        Switch to a particular buffer
  1046.  
  1047. List-Buffers        ^X-^B        List all buffers
  1048.  
  1049. Delete-Buffer        ^X-K        delete a particular buffer if it
  1050.                     is off-screen
  1051.  
  1052. 22
  1053.  
  1054. MicroEMACS Reference Manual                       Modes
  1055.  
  1056.                    Chapter 7
  1057.  
  1058.                  Modes
  1059.  
  1060.     EMACS  allows  you  to change the  way    it  works  in  order  to
  1061. customized it to the style of editing you are using.   It  does  this by
  1062. providing a number of different modes.    These modes can effect    either a
  1063. single buffer, or any new  buffer that is created.  To add a mode to the
  1064. current buffer, type ^X-M add-mode.  EMACS will then prompt you  for the
  1065. name of a mode to add.    When you type  in  a legal mode name, and type a
  1066. <NL>, EMACS will  add the mode name to the list of current mode names in
  1067. the mode line of the current buffer.
  1068.  
  1069.     To remove an existing  mode,  typing  the ^X-^M delete-mode will
  1070. cause EMACS to prompt you  for    the  name  of  a mode to delete from the
  1071. current buffer.  This will remove  that  mode  from the mode list on the
  1072. current mode line.
  1073.  
  1074.     Global modes are  the  modes  which  are  inherited  by  any new
  1075. buffers which are created.  For example, if you wish to always do string
  1076. searching with character  case    being significant, you would want global
  1077. mode EXACT to be set so that any new files read  in  inherent  the EXACT
  1078. mode.  Global modes are set with the M-M  add-global-mode  command,  and
  1079. unset  with  the  M-^M delete-global-mode command.   Also,  the  current
  1080. global modes are  displayed  in  the  first line of a ^X-^B list-buffers
  1081. command.
  1082.  
  1083.     On machines which are capable  of  displaying  colors,    the mode
  1084. commands can also set  the  background    and foreground character colors.
  1085. Using add-mode or  delete-mode    with  a  lowercase  color  will  set the
  1086. background color in the current window.  An uppercase color will set the
  1087. foreground color in the  current  window.  Colors that EMACS knows about
  1088. are: white, cyan, magenta, yellow, blue, red, green, and black.   If the
  1089. computer you  are  running  on    does  not  have eight colors, EMACS will
  1090. attempt to make some intelligent guess at what color to use when you ask
  1091. for one which is not there.
  1092.  
  1093. 7.1  ASAVE mode
  1094.  
  1095.     Automatic Save mode  tells  EMACS to automatically write out the
  1096. current buffer to its associated file on a regular basis.  Normally this
  1097. will be  every    256  characters  typed    into  the file.  The environment
  1098. variable $ACOUNT counts down to the next auto-save, and  $ASAVE  is  the
  1099. value used to reset $ACOUNT after a save occurs.
  1100.  
  1101.                                       23
  1102.  
  1103. Modes                         MicroEMACS Reference Manual
  1104.  
  1105. 7.2  CMODE mode
  1106.  
  1107.     CMODE is useful to  C  programmers.  When CMODE is active, EMACS
  1108. will try to assist the user in a number of  ways.    This  mode  is  set
  1109. automatically with files that have a .c or .h extension.
  1110.  
  1111.     The <NL> key  will  normally  attempt  to return the user to the
  1112. next line at the same level  of  indentation as the current line, unless
  1113. the  current line ends with a open brace ({) in which case the new  line
  1114. will be further indented by one tab position.
  1115.  
  1116.     A close brace (}) will    delete one tab position preceding itself
  1117. as  it is typed.  This should line up the close brace with its    matching
  1118. IF, FOR or WHILE statement.
  1119.  
  1120.     A  pound  sign    (#) with only leading whitespace will delete all
  1121. the whitespace preceding itself.  This    will  always  bring preprocessor
  1122. directives flush to the left margin.
  1123.  
  1124.     Whenever any close fence  is  typed,  i.e  )]>}, if the matching
  1125. open fence is on screen in  the  current window, the cursor will briefly
  1126. flash to it,  and  then  back.    This  makes  balancing    expressions, and
  1127. matching blocks much easier.
  1128.  
  1129. 7.3  CRYPT mode
  1130.  
  1131.     When a buffer is in CRYPT  mode,  it is encrypted whenever it is
  1132. written to a file, and decrypted when it  is  read  from  the file.  The
  1133. encryption key can be specified on the command line with the  -k switch,
  1134. or with the M-E set-encryption-key command.    If you attempt to read or
  1135. write a buffer in crypt mode and now key has not  been    set,  EMACS will
  1136. execute  set-encryption-key automatically, prompting you for the  needed
  1137. key.  Whenever EMACS prompts  you for a key, it will not echo the key to
  1138. your screen as you type  it (i.e make SURE you get it right when you set
  1139. it originally).
  1140.  
  1141.     The encryption algorithm used changes all characters into normal
  1142. printing characters, thus the resulting file is suitable for sending via
  1143. electronic mail.  All  version    of MicroEMACS should be able decrypt the
  1144. resulting file regardless of what  machine encrypted it.  Also available
  1145. with EMACS is the stand  alone program, MicroCRYPT, which can en/decrypt
  1146. the files produced by CRYPT mode in EMACS.
  1147.  
  1148. 7.4  EXACT mode
  1149.  
  1150.     All string searches and replacements will take    upper/lower case
  1151. into account. Normally the case of  a  string during a search or replace
  1152. is not taken into account.
  1153.  
  1154. 24
  1155.  
  1156. MicroEMACS Reference Manual                       Modes
  1157.  
  1158. 7.5  MAGIC mode
  1159.  
  1160.     In the    MAGIC mode certain characters gain special meanings when
  1161. used  in  a  search  pattern.     Collectively  they  are know as regular
  1162. expressions, and a limited number of them are  supported  in MicroEmacs.
  1163. They grant greater flexibility when  using the search command.    However,
  1164. they do not affect the incremental search command.
  1165.  
  1166.     The symbols that have special meaning in MAGIC mode are ^, $, .,
  1167. *, [ (and ], used with it), and \.
  1168.  
  1169.     The characters ^ and  $  fix the search pattern to the beginning
  1170. and  end  of  line, respectively.  The ^ character must  appear  at  the
  1171. beginning of the search string,  and  the  $  must  appear  at    the end,
  1172. otherwise they loose their  meaning  and are treated just like any other
  1173. character.  For example,  in  MAGIC mode, searching for the pattern "t$"
  1174. would  put the cursor at the end of any line that ended with the  letter
  1175. 't'.  Note that this is  different  than searching for "t<NL>", that is,
  1176. 't' followed by a newline character.  The character $  (and  ^, for that
  1177. matter) matches a position, not a character, so the  cursor  remains  at
  1178. the end of the line.  But a newline is a character that must be matched,
  1179. just like any  other  character,  which  means that the cursor is placed
  1180. just after it - on the beginning of the next line.
  1181.  
  1182.     The character .  has a very simple  meaning  --  it  matches any
  1183. single character, except the newline.  Thus a search for  "bad.er" could
  1184. match "badger", "badder" (slang), or up to the 'r' of "bad error".
  1185.  
  1186.     The character * is known as closure, and means that zero or more
  1187. of  the  preceding  character  will  match.    If  there is no character
  1188. preceding,  * has no special meaning, and since it will not match with a
  1189. newline, * will have no special meaning if preceded by the  beginning of
  1190. line symbol ^ or the literal newline character <NL>.
  1191.  
  1192.     The notion of  zero  or  more  characters is important.  If, for
  1193. example, your cursor was on the line
  1194.  
  1195.      This line is missing two vowels.
  1196.  
  1197.     and a  search  was  made  for  "a*",  the cursor would not move,
  1198. because  it  is  guaranteed to match no letter 'a' , which satisfies the
  1199. search conditions.  If you wanted to  search  for  one    or  more  of the
  1200. letter 'a', you would search for "aa*", which would match the  letter a,
  1201. then zero or more of them.
  1202.  
  1203.     The character [ indicates  the    beginning  of a character class.
  1204. It  is    similar to the 'any' character ., but you get  to  choose  which
  1205. characters you want to match.  The character  class  is  ended    with the
  1206. character ].  So, while a  search  for "ba.e" will match "bane", "bade",
  1207. "bale", "bate",  et  cetera,  you  can    limit  it to matching "babe" and
  1208. "bake" by searching for "ba[bk]e".  Only one of  the  characters  inside
  1209. the [ and ] will match a character.  If in fact you  want  to  match any
  1210. character except those in the character  class,  you  can put a ^ as the
  1211.  
  1212.                                       25
  1213.  
  1214. Modes                         MicroEMACS Reference Manual
  1215.  
  1216. first character.  It must be the first character of  the  class, or else
  1217. it has    no  special  meaning.    So, a search for [^aeiou] will match any
  1218. character except a vowel, but a search for [aeiou^] will match any vowel
  1219. or a ^.
  1220.  
  1221.     If you have a lot of characters in order that you want to put in
  1222. the  character class, you may use a dash (-) as a range character.   So,
  1223. [a-z] will match any letter (or any lower case letter  if  EXACT mode is
  1224. on),  and  [0-9a-f]  will match any digit or any letter 'a' through 'f',
  1225. which happen to be the characters for hexadecimal numbers.  If    the dash
  1226. is at the beginning or    end of a character class, it is taken to be just
  1227. a dash.
  1228.  
  1229.     The escape character \ is for those times when you want to be in
  1230. MAGIC  mode,  but  also want to use a regular expression character to be
  1231. just  a  character.   It turns off the special meaning of the character.
  1232. So  a search for "it\." will search for a line with "it.", and not  "it"
  1233. followed by any other character.  The escape character will also let you
  1234. put ^, -, or ] inside a character class with no special side effects.
  1235.  
  1236. 7.6  OVER mode
  1237.  
  1238.     OVER mode stands for overwrite mode.  When in  this  mode,  when
  1239. characters  are  typed,  instead of simply inserting them into the file,
  1240. EMACS  will  attempt  to overwrite an existing character past the point.
  1241. This is very useful for adjusting tables and diagrams.
  1242.  
  1243. 7.7  WRAP mode
  1244.  
  1245.     Wrap mode is used when typing in continuous text.   Whenever the
  1246. cursor is past the currently set fill column  (72  by  default)  and the
  1247. user types a space or  a <NL>, the last word of the line is brought down
  1248. to  the  beginning  of    the  next  line.  Using this, one just    types  a
  1249. continuous  stream of words and EMACS  automatically  inserts  <NL>s  at
  1250. appropriate places.
  1251.  
  1252.               NOTE to programmers:
  1253.  
  1254.      EMACS  actually calls up the function  bound  to  the  illegal
  1255.      keystroke M-FNW.  This is bound to the  function  wrap-word by
  1256.      default, but can be re-bound to  activate    different functions
  1257.      and macros at wrap time.
  1258.  
  1259. 7.8  VIEW mode
  1260.  
  1261.     VIEW mode disables all commands  which    can  change  the current
  1262. buffer.  EMACS will display an error message  and  ring  the  bell every
  1263. time you attempt to change a buffer in VIEW mode.
  1264.  
  1265. 26
  1266.  
  1267. MicroEMACS Reference Manual                       Modes
  1268.  
  1269.                Chapter 7 Summary
  1270.  
  1271.     In Chapter 7 you learned about modes and their effects.
  1272.  
  1273. Key Binding        Keystroke               Effect
  1274. Add-Mode        ^X-M        Add a mode to the current buffer
  1275.  
  1276. Delete-Mode        ^X-^M        Delete a mode from the current buffer
  1277.  
  1278. Add-Global-Mode         M-M        Add a global mode to the
  1279.                     current buffer
  1280.  
  1281. Delete-Global-Mode    M-^M        Delete a global mode from the
  1282.                     current buffer
  1283.  
  1284.                                       27
  1285.  
  1286. Files                         MicroEMACS Reference Manual
  1287.  
  1288.                    Chapter 8
  1289.  
  1290.                  Files
  1291.  
  1292.     A  file is simply a collection of related data.  In EMACS we are
  1293. dealing with text files -- named collections of text residing on  a disk
  1294. (or some other storage medium).  You will recall that the major entities
  1295. EMACS deals with  are  buffers.    Disk-based versions of files are only
  1296. active in EMACS when you are reading into or writing out of buffers.  As
  1297. we  have  already  seen,  buffers  and    physical  files  are  linked  by
  1298. associated  filenames.      For  example,  the buffer "ch7.txt"  which  is
  1299. associated with the physical disk file "ch7.txt." You  will  notice that
  1300. the file is usually specified by the drive  name  or  (in  the case of a
  1301. hard drive) a path.  Thus you can specify full filenames in EMACS,
  1302.  
  1303.     e.g. disk:\directories\filename.extension
  1304.  
  1305.     If you do not  specify    a disk and directories, the default disk
  1306. is used.
  1307.  
  1308.     IMPORTANT  -- If you do not explicitly save  your  buffer  to  a
  1309. file, all your edits will be  lost  when you leave EMACS (although EMACS
  1310. will prompt you  when  you  are  about    to  lose  edits by exiting).  In
  1311. addition, EMACS  does not protect your disk-based files from overwriting
  1312. when it saves files.  Thus when you  instruct  EMACS  to  save a file to
  1313. disk, it will create a file if the specified file  doesn't  exist, or it
  1314. will overwrite the previously saved version of the  file  thus replacing
  1315. it.  Your old version is gone forever.
  1316.  
  1317.     If you are at all  unsure  about  your    edits,    or  if    (for any
  1318. reason) you wish to keep previous versions of a file, you can change the
  1319. name of the associated file with  the  command    ^X-N.  When this file is
  1320. saved to disk, EMACS will create a new physical file under the new name.
  1321. The earlier disk file will be preserved.
  1322.  
  1323.     For example, let's load the file fang.txt into EMACS.  Now, type
  1324. ^X-N.  The EMACS command line prompts "name:".    Enter a new name for the
  1325. file -- say new.txt and press <NL>.  The file will  be    saved  under the
  1326. new filename, and  your  disk  directory  will    show  both  fang.txt and
  1327. new.txt.
  1328.  
  1329.     An  alternative method is to write the    file  directly    to  disk
  1330. under a new filename.  Let's pull our "publish.txt" file into EMACS.  To
  1331. write this file under  another    filename, type ^X-^W.  EMACS will prompt
  1332. you "write file:".  Enter an alternate filename --  desktop.txt.    Your
  1333. file will be saved as the physical file "desktop.txt".
  1334.  
  1335. 28
  1336.  
  1337. MicroEMACS Reference Manual                       Files
  1338.  
  1339.     Note that in the examples above, although you  have  changed the
  1340. names of the related files, the buffer names remain the same.    However,
  1341. when  you pull the physical file back into EMACS, you will find that the
  1342. buffer name now relates to the filename.
  1343.  
  1344.     For example -- You are working with a buffer "fang.txt" with the
  1345. related file "fang.txt".  You change the name of the file  to "new.txt".
  1346. EMACS now shows you  working  with the buffer "fang.txt" and the related
  1347. file  "new.txt".    Now pull the file "new.txt" into EMACS.  Notice that
  1348. the buffer name has now changed to "new.txt".
  1349.  
  1350.     If for any reason a conflict of buffer names occurs,(if you have
  1351. files of  the  same  name  on  different  drives for example) EMACS will
  1352. prompt you "use buffer:".  Enter an alternative buffer name if    you need
  1353. to.
  1354.  
  1355.     For  a    list  of  file    related commands (including  some  we`ve
  1356. already seen), see the summary page.
  1357.  
  1358.                                       29
  1359.  
  1360. Files                         MicroEMACS Reference Manual
  1361.  
  1362.                Chapter 8 Summary
  1363.  
  1364.     In Chapter 8 you  learned  some of the more advanced concepts of
  1365. file  naming  and  manipulation.    The relationship between  files  and
  1366. buffers was discussed in some detail.
  1367.  
  1368. Key Binding    Keystroke    Effect
  1369.  
  1370. Save-file    ^X-^S        Saves contents of current buffer with
  1371.                 associated filename on default disk/
  1372.                 directory (if not specified)
  1373.  
  1374. Write-File    ^X-^W        Current buffer contents will be
  1375.                 saved under specified name
  1376.  
  1377. Change-File-name
  1378.         ^X-N        The associated filename is changed
  1379.                 (or associated if not previously
  1380.                 specified) as specified
  1381.  
  1382. Find-File    ^X-^F        Reads specified file into buffer and
  1383.                 switches you to that buffer, or switches
  1384.                 to buffer in which the file has previously
  1385.                 been read
  1386.  
  1387. Read-File    ^X-^R        Reads file into buffer thus overwriting
  1388.                 buffer contents.  If file has already
  1389.                 been read into another buffer, you will
  1390.                 be switched to it
  1391.  
  1392. View-File    ^X-^V        The same as read-file except the buffer
  1393.                 is automatically put into VIEW mode thus
  1394.                 preventing any changes from being made
  1395.  
  1396. 30
  1397.  
  1398. MicroEMACS Reference Manual                   Screen Formatting
  1399.  
  1400.                    Chapter 9
  1401.  
  1402.                Screen Formatting
  1403.  
  1404. 9.1  Wrapping Text
  1405.  
  1406.     As  we    learned  in  the  introduction,  EMACS    is  not  a  word
  1407. processor, but an editor.   Some simple formatting options are available
  1408. however, although in most  cases  they will not affect the appearance of
  1409. the finished text when it is run through the formatter.  We have already
  1410. encountered WRAP mode which  wraps  lines  longer  than a certain length
  1411. (default is 75 characters).  You will recall  that  WRAP  is  enabled by
  1412. entering ^X-M and responding to the command line prompt with wrap.
  1413.  
  1414.     You can also set your own wrap margin with the command ^X-F set-
  1415. fill-column.  Notice EMACS responds "[Fill column is 1]." Now try typing
  1416. some text.   You'll  notice  some  very strange things happening -- your
  1417. text wraps  at    every  word!!  This  effect  occurs because the set wrap
  1418. margin command must be preceded by  a  numeric argument or EMACS sets it
  1419. to the first column.  Thus any text you type that extends past the first
  1420. column will wrap at the most convenient line break.
  1421.  
  1422.     To reset the wrap column to 72 characters, press the  <META> key
  1423. and enter 72.  EMACS will respond "Arg:  72".     Now  press ^X-F.  EMACS
  1424. will respond "[Fill column is 72]".    Your  text will again wrap at the
  1425. margin you've been using up to this point.
  1426.  
  1427. 9.2  Reformatting Paragraphs
  1428.  
  1429.     After an intensive editing session, you may find  that    you have
  1430. paragraphs  containing    lines  of  differing  lengths.      Although  this
  1431. disparity will not affect  the    formatted  text, aesthetic and technical
  1432. concerns  may  make  it desirable to have consistent paragraph blocks on
  1433. the screen.   If you are in WRAP mode, you can reformat a paragraph with
  1434. the  command  M-Q  fill-paragraph.    This command 'fills'  the  current
  1435. paragraph  reformatting  it  so  all  the  lines  are  filled  and  wrap
  1436. logically.    The  process  is    complex,  and  (especially  with  longer
  1437. paragraphs) may take a little time.
  1438.  
  1439.                                       31
  1440.  
  1441. -----snip-----snip-----snip-----snip-----snip-----snip-----snip-----snip-----
  1442. -- 
  1443.                             Paul Homchick
  1444. Chimitt Gilman Homchick, Inc.; One Radnor Station, Suite 300; Radnor, PA 19087
  1445.              {seismo!bpa | ihnp4!cbmvax} !vu-vlsi!cgh!paul
  1446.