home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume14 / jove4.9 / part17 < prev    next >
Text File  |  1988-04-27  |  41KB  |  1,168 lines

  1. Subject:  v14i073:  Jove, an emacs variant, version 4.9, Part17/21
  2. Newsgroups: comp.sources.unix
  3. Sender: sources
  4. Approved: rsalz@uunet.UU.NET
  5.  
  6. Submitted-by: Jonathan Payne <jpayne@cs.rochester.edu>
  7. Posting-number: Volume 14, Issue 73
  8. Archive-name: jove4.9/part17
  9.  
  10. #! /bin/sh
  11. # This is a shell archive.  Remove anything before this line, then unpack
  12. # it by saving it into a file and typing "sh file".  To overwrite existing
  13. # files, type "sh file -c".  You can also feed this as standard input via
  14. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  15. # will see the following message at the end:
  16. #        "End of archive 17 (of 21)."
  17. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  18. if test -f './doc/jove.2' -a "${1}" != "-c" ; then 
  19.   echo shar: Will not clobber existing file \"'./doc/jove.2'\"
  20. else
  21. echo shar: Extracting \"'./doc/jove.2'\" \(39282 characters\)
  22. sed "s/^X//" >'./doc/jove.2' <<'END_OF_FILE'
  23. X.NH 1
  24. Commands for English Text
  25. X.XS \n(PN
  26. X\*(SN Commands for English Text
  27. X.XE
  28. X.LP
  29. X\s-2JOVE\s0 has many commands that work on the basic units of English text:
  30. words, sentences and paragraphs.
  31. X.NH 2
  32. Word Commands
  33. X.XS \n(PN 5n
  34. X\*(SN Word Commands
  35. X.XE
  36. X.LP
  37. X\s-2JOVE\s0 has commands for moving over or operating on words.
  38. By convention,
  39. they are all ESC commands.
  40. X.IP "ESC F" 20n
  41. Move Forward over a word.
  42. X.IP "ESC B" 20n
  43. Move Backward over a word.
  44. X.IP "ESC D" 20n
  45. Kill forward to the end of a word.
  46. X.IP "ESC Rubout" 20n
  47. Kill backward to the beginning of a word.
  48. X.LP
  49. Notice how these commands form a group that parallels the character-
  50. based commands,
  51. C-F,
  52. C-B,
  53. C-D,
  54. and Rubout.
  55. X.LP
  56. The commands ESC F and ESC B move forward and backward over words.
  57. They are thus analogous to Control-F and Control-B,
  58. which move over single characters.
  59. Like their Control- analogues,
  60. ESC F and ESC B move several words if given an argument.
  61. ESC F with a negative argument moves backward like ESC B,
  62. and ESC B with a negative argument moves forward.
  63. Forward motion stops right after the last letter of the word,
  64. while backward motion stops right before the first letter.
  65. X.LP
  66. It is easy to kill a word at a time.
  67. ESC D kills the word after point.
  68. To be precise,
  69. it kills everything from point to the place ESC F would move to.
  70. Thus,
  71. if point is in the middle of a word,
  72. only the part after point is killed.
  73. If some punctuation comes after point,
  74. and before the next word,
  75. it is killed along with the word.
  76. If you wish to kill only the next word but not the punctuation,
  77. simply do ESC F to get to the end,
  78. and kill the word backwards with ESC Rubout.
  79. ESC D takes arguments just like ESC F.
  80. X.LP
  81. ESC Rubout kills the word before point.
  82. It kills everything from point back to where ESC B would move to.
  83. If point is after the space in "FOO, BAR",
  84. then "FOO, " is killed.
  85. If you wish to kill just "FOO",
  86. then do a ESC B and a ESC D instead of a ESC Rubout.
  87. X.NH 2
  88. Sentence Commands
  89. X.XS \n(PN 5n
  90. X\*(SN Sentence Commands
  91. X.XE
  92. X.LP
  93. The \s-2JOVE\s0 commands for manipulating sentences and paragraphs are
  94. mostly ESC commands,
  95. so as to resemble the word-handling commands.
  96. X.IP "ESC A" 20n
  97. Move back to the beginning of the sentence.
  98. X.IP "ESC E" 20n
  99. Move forward to the end of the sentence.
  100. X.IP "ESC K" 20n
  101. Kill forward to the end of the sentence.
  102. X.IP "C-X Rubout" 20n
  103. Kill back to the beginning of the sentence.
  104. X.LP
  105. The commands ESC A and ESC E move to the beginning and end of the
  106. current sentence,
  107. respectively.
  108. They were chosen to resemble
  109. Control-A and Control-E,
  110. which move to the beginning and end of a line.
  111. Unlike them,
  112. ESC A and ESC E if repeated or given numeric arguments
  113. move over successive sentences.
  114. X\s-2JOVE\s0 considers a sentence to end wherever there is a ".",
  115. X"?", or "!" followed by the end of a line
  116. or by one or more spaces.
  117. Neither ESC A nor ESC E moves past the
  118. end of the line or spaces which delimit the sentence.
  119. X.LP
  120. Just as C-A and C-E have a kill command,
  121. C-K,
  122. to go with them,
  123. so ESC A and ESC E have a corresponding kill command ESC K which kills from
  124. point to the end of the sentence.
  125. With minus one as an argument it
  126. kills back to the beginning of the sentence.
  127. Positive arguments serve as a repeat count.
  128. X.LP
  129. There is a special command,
  130. C-X Rubout for killing back to the beginning of a sentence,
  131. because this is useful when you change your
  132. mind in the middle of composing text.
  133. X.NH 2
  134. Paragraph Commands
  135. X.XS \n(PN 5n
  136. X\*(SN Paragraph Commands
  137. X.XE
  138. X.LP
  139. The \s-2JOVE\s0 commands for handling paragraphs are
  140. X.IP "ESC [" 20n
  141. Move back to previous paragraph beginning.
  142. X.IP "ESC ]" 20n
  143. Move forward to next paragraph end.
  144. X.LP
  145. ESC [ moves to the beginning of the current or previous paragraph, while
  146. ESC ] moves to the end of the current or next paragraph.  Paragraphs are
  147. delimited by lines of differing indent, or lines with text formatter
  148. commands, or blank lines.  \s-2JOVE\s0 knows how to deal with most indented
  149. paragraphs correctly, although it can get confused by one- or two-line
  150. paragraphs delimited only by indentation.
  151. X.NH 2
  152. Text Indentation Commands
  153. X.XS \n(PN 5n
  154. X\*(SN Text Indentation Commands
  155. X.XE
  156. X.LP
  157. X.IP "Tab" 20n
  158. Indent "appropriately" in a mode-dependent fashion.
  159. X.IP "LineFeed" 20n
  160. Is the same as Return,
  161. except it copies the indent of the line you just left.
  162. X.IP "ESC M" 20n
  163. Moves to the line's first non-blank character.
  164. X.LP
  165. X.LP
  166. The way to request indentation is with the Tab command.
  167. Its precise effect depends on the major mode.
  168. In \fIText\fP mode,
  169. it indents to the next tab stop.
  170. In \fIC\fP mode,
  171. it indents to the "right" position for C programs.
  172. X.LP
  173. To move over the indentation on a line,
  174. do ESC M (\fIfirst-non-blank\fP).
  175. This command,
  176. given anywhere on a line,
  177. positions the cursor at the first non-blank, non-tab character on the line.
  178. X.NH 2
  179. Text Filling
  180. X.XS \n(PN 5n
  181. X\*(SN Text Filling
  182. X.XE
  183. X.LP
  184. X\fIAuto Fill\fP mode causes text to be \fIfilled\fP
  185. X(broken up into lines that fit in a specified width)
  186. automatically as you type it in.
  187. If you alter existing text so that it is no longer properly filled,
  188. X\s-2JOVE\s0 can fill it again if you ask.
  189. X.LP
  190. Entering \fIAuto Fill\fP mode is done with ESC X \fIauto-fill-mode\fP.
  191. XFrom then on,
  192. lines are broken automatically at spaces when they get longer than the
  193. desired width.
  194. To leave \fIAuto Fill\fP mode,
  195. once again execute ESC X \fIauto-fill-mode\fP.
  196. When \fIAuto Fill\fP mode is in effect,
  197. the word \fBFill\fP appears in the mode line.
  198. X.LP
  199. If you edit the middle of a paragraph,
  200. it may no longer correctly be filled.
  201. To refill a paragraph,
  202. use the command ESC J (\fIfill-paragraph\fP).
  203. It causes the paragraph that point is inside to be filled.
  204. All the line breaks are removed and new ones inserted where necessary.
  205. X.LP
  206. The maximum line width for filling is in the variable \fIright-margin\fP.
  207. Both ESC J and auto-fill make sure that no line exceeds this width.
  208. The value of \fIright-margin\fP is initially 78.
  209. X.LP
  210. Normally ESC J figures out the indent of the paragraph and uses that same
  211. indent when filling.  If you want to change the indent of a paragraph you
  212. set \fIleft-margin\fP to the new position and type C-U\ ESC\ J.
  213. X\fIfill-paragraph\fP, when supplied a numeric argument, uses the value of
  214. X\fIleft-margin\fP.
  215. X.LP
  216. If you know where you want to set the right margin but you don't know the
  217. actual value, move to where you want to set the value and use the
  218. X\fIright-margin-here\fP command.  \fIleft-margin-here\fP does the same
  219. for the \fIleft-margin\fP variable.
  220. X.NH 2
  221. Case Conversion Commands
  222. X.XS \n(PN 5n
  223. X\*(SN Case Conversion Commands
  224. X.XE
  225. X.LP
  226. X.IP "ESC L" 15n
  227. Convert following word to lower case.
  228. X.IP "ESC U" 15n
  229. Convert following word to upper case.
  230. X.IP "ESC C" 15n
  231. Capitalize the following word.
  232. X.LP
  233. X.LP
  234. The word conversion commands are most useful.
  235. ESC L converts the word after point to lower case,
  236. moving past it.
  237. Thus,
  238. successive ESC L's convert successive words.
  239. ESC U converts to all capitals instead,
  240. while ESC C puts the first letter of the word into upper case and the
  241. rest into lower case.
  242. All these commands convert several words at once if given an argument.
  243. They are especially convenient for
  244. converting a large amount of text from all upper case to mixed case,
  245. because you can move through the test using ESC L,
  246. ESC U or ESC C on each word as appropriate.
  247. X.LP
  248. When given a negative argument,
  249. the word case conversion commands apply to
  250. the appropriate number of words before point,
  251. but do not move point.
  252. This is convenient when you have just typed a word in the wrong case.
  253. You can give the case conversion command and continue typing.
  254. X.LP
  255. If a word case conversion command is given in the middle of a word,
  256. it applies only to the part of the word which follows the cursor,
  257. treating it as a whole word.
  258. X.LP
  259. The other case conversion functions are \fIcase-region-upper\fP and
  260. X\fIcase-region-lower\fP,
  261. which convert everything between point and mark to the specified case.
  262. Point and mark remain unchanged.
  263. X.NH 2
  264. Commands for Fixing Typos
  265. X.XS \n(PN 5n
  266. X\*(SN Commands for Fixing Typos
  267. X.XE
  268. X.LP
  269. In this section we describe the commands that are especially useful
  270. for the times when you catch a mistake on your text after you have made it,
  271. or change your mind while composing text on line.
  272. X.IP "Rubout" 25n
  273. Delete last character.
  274. X.IP "ESC Rubout" 25n
  275. Kill last word.
  276. X.IP "C-X Rubout" 25n
  277. Kill to beginning of sentence.
  278. X.IP "C-T" 25n
  279. Transpose two characters.
  280. X.IP "C-X C-T" 25n
  281. Transpose two lines.
  282. X.IP "ESC Minus ESC L" 25n
  283. Convert last word to lower case.
  284. X.IP "ESC Minus ESC U" 25n
  285. Convert last word to upper case.
  286. X.IP "ESC Minus ESC C" 25n
  287. Convert last word to lower case with capital initial.
  288. X.LP
  289. X.NH 2
  290. Killing Your Mistakes
  291. X.XS \n(PN 5n
  292. X\*(SN Killing Your Mistakes
  293. X.XE
  294. X.LP
  295. The Rubout command is the most important correction command.
  296. When used among printing (self-inserting) characters,
  297. it can be thought of as canceling the last character typed.
  298. X.LP
  299. When your mistake is longer than a couple of characters,
  300. it might be more convenient to use ESC Rubout or C-X Rubout.
  301. ESC Rubout kills back to the start of the last word,
  302. and C-X Rubout kills back to the start of the last sentence.
  303. C-X Rubout is particularly useful when
  304. you are thinking of what to write as you type it,
  305. in case you change your mind about phrasing.
  306. ESC Rubout and C-X Rubout save the killed text for C-Y and ESC Y to retrieve.
  307. X.LP
  308. ESC Rubout is often useful even when you have typed only a few
  309. characters wrong,
  310. if you know you are confused in your typing and aren't sure what you typed.
  311. At such a time,
  312. you cannot correct with
  313. Rubout except by looking at the screen to see what you did.
  314. It requires less thought to kill the whole word and start over again,
  315. especially if the system is heavily loaded.
  316. X.LP
  317. If you were typing a command or command parameters, C-G will abort the
  318. command with no further processing.
  319. X.NH 2
  320. Transposition
  321. X.XS \n(PN 5n
  322. X\*(SN Transposition
  323. X.XE
  324. X.LP
  325. The common error of transposing two characters can be fixed
  326. with the C-T (\fItranspose-characters\fP) command.
  327. Normally,
  328. C-T transposes the two characters on either side of the cursor
  329. and moves the cursor forward one character.  Repeating the command
  330. several times "drags" a character to the right.
  331. X(Remember that \fIpoint\fP is considered to be between two characters,
  332. even though the visible cursor in your terminal is on only one of them.)
  333. When given at the end of a line,
  334. rather than switching the last character of the line with the line separator,
  335. which would be useless,
  336. C-T transposes the last two characters on the line.
  337. So,
  338. if you catch your transposition error right away,
  339. you can fix it with just a C-T.
  340. If you don't catch it so fast,
  341. you must move the cursor back to between the two characters.
  342. X.LP
  343. To transpose two lines,
  344. use the C-X C-T (\fItranspose-lines\fP) command.  The line containing the
  345. cursor is exchanged with the line above it; the cursor is left at the
  346. beginning of the line following its original position.
  347. X.NH 2
  348. Checking and Correcting Spelling
  349. X.XS \n(PN 5n
  350. X\*(SN Checking and Correcting Spelling
  351. X.XE
  352. X.LP
  353. When you write a paper,
  354. you should correct its spelling at some point close to finishing it.
  355. To correct the entire buffer,
  356. do ESC X \fIspell-buffer\fP.
  357. This invokes the
  358. X.UX
  359. X.I spell
  360. program,
  361. which prints a list of all the misspelled words.
  362. X\s-2JOVE\s0 catches the list and places it in a
  363. X\s-2JOVE\s0 buffer called \fBSpell\fP.
  364. You are given an opportunity to delete from that buffer any words that
  365. aren't really errors;
  366. then \s-2JOVE\s0 looks up each misspelled word and
  367. remembers where it is in the buffer being corrected.
  368. Then you can go forward to each misspelled word with C-X C-N (\fInext-error\fP)
  369. and backward with C-X C-P (\fIprevious-error\fP).
  370. See the section entitled \fIError Message Parsing\fP.
  371. X.NH 1
  372. File Handling
  373. X.XS \n(PN
  374. X\*(SN File Handling
  375. X.XE
  376. X.LP
  377. The basic unit of stored data is the file.
  378. Each program,
  379. each paper,
  380. lives usually in its own file.
  381. To edit a program or paper,
  382. the editor must be told the name of the file that contains it.
  383. This is called \fIvisiting\fP a file.
  384. To make your changes to the file permanent on disk,
  385. you must \fIsave\fP the file.
  386. X.NH 2
  387. Visiting Files
  388. X.XS \n(PN 5n
  389. X\*(SN Visiting Files
  390. X.XE
  391. X.LP
  392. X.IP "C-X C-V" 15n
  393. Visit a file.
  394. X.IP "C-X C-R" 15n
  395. Same as C-X C-V.
  396. X.IP "C-X C-S" 15n
  397. Save the visited file.
  398. X.IP "ESC ~" 15n
  399. Tell \s-2JOVE\s0 to forget that the buffer has been changed.
  400. X.LP
  401. X.LP
  402. X\fIVisiting\fP a file means copying its contents into \s-2JOVE\s0 where you
  403. can edit them.
  404. X\s-2JOVE\s0 remembers the name of the file you visited.
  405. Unless you use the multiple buffer feature of \s-2JOVE\s0,
  406. you can only be visiting one file at a time.
  407. The name of the current selected buffer is visible in the mode line.
  408. X.LP
  409. The changes you make with \s-2JOVE\s0 are made in a copy inside \s-2JOVE\s0.
  410. The file itself is not changed.
  411. The changed text is not permanent until you \fIsave\fP it in a file.
  412. The first time you change the text,
  413. an asterisk appears at the end of the mode line; this indicates that the text
  414. contains fresh changes which will be lost unless you save them.
  415. X.LP
  416. To visit a file,
  417. use the command C-X C-V.
  418. Follow the command with the name of the file you wish to visit,
  419. terminated by a Return.
  420. You can abort the command by typing C-G,
  421. or edit the filename with many of the standard \s-2JOVE\s0 commands
  422. X(e.g., C-A, C-E, C-F, ESC F, ESC Rubout).
  423. If the filename you wish to visit is similar to the filename in the
  424. mode line (the default filename),
  425. you can type C-R to insert the default and then edit it.
  426. If you do type a Return to finish the command,
  427. the new file's text appears on the screen,
  428. and its name appears in the mode line.
  429. In addition,
  430. its name becomes the new default filename.
  431. X.LP
  432. If you wish to save the file and make your changes permanent,
  433. type C-X C-S.
  434. After the save is finished,
  435. C-X C-S prints the filename and the
  436. number of characters and lines that it wrote to the file.
  437. If there are no changes to save (no asterisk at the end of the mode line),
  438. the file is not saved;
  439. otherwise the changes saved and the asterisk at the end of
  440. the mode line will disappear.
  441. X.LP
  442. What if you want to create a file?  Just visit it.
  443. X\s-2JOVE\s0 prints
  444. X\fI(New file)\fP but aside from that behaves as if you had visited an existing
  445. empty file.
  446. If you make any changes and save them,
  447. the file is created.
  448. If you visit a nonexistent file unintentionally
  449. X(because you typed the wrong filename),
  450. go ahead and visit the file you meant.
  451. If you don't save the unwanted file,
  452. it is not created.
  453. X.LP
  454. If you alter one file and then visit another in the same buffer,
  455. X\s-2JOVE\s0 offers to save the old one.
  456. If you answer YES,
  457. the old file is saved;
  458. if you answer NO,
  459. all the changes you have made to it since the last save are lost.
  460. You should not type ahead after a file visiting
  461. command,
  462. because your type-ahead might answer an unexpected question
  463. in a way that you would regret.
  464. X.LP
  465. Sometimes you will change a buffer by accident.
  466. Even if you undo the effect of the change by editing,
  467. X\s-2JOVE\s0 still knows that "the buffer has been changed".
  468. You can tell \s-2JOVE\s0 to pretend that there have been no changes with the
  469. ESC \s+2~\s0 command (\fImake-buffer-unmodified\fP).
  470. This command simply clears the "modified" flag which
  471. says that the buffer contains changes which need to be saved.
  472. Even if
  473. the buffer really \fIis\fP changed \s-2JOVE\s0 will still act as if it were not.
  474. X.LP
  475. If \s-2JOVE\s0 is about to save a file and sees that the date of the version
  476. on disk does not match what \s-2JOVE\s0 last read or wrote,
  477. X\s-2JOVE\s0 notifies you of this fact,
  478. and asks what to do, because this probably means that something is wrong.
  479. For example,
  480. somebody else may have been editing the same file.
  481. If this is so,
  482. there is a good chance that your work
  483. or his work will be lost if you don't take the proper steps.
  484. You should first find out exactly what is going on.
  485. If you determine that somebody else has modified the file,
  486. save your file under a different filename and then DIFF the two files
  487. to merge the two sets of changes.  (The "patch" command is useful for
  488. applying the results of context diffs directly).
  489. Also get in touch with the other person so that the files don't diverge
  490. any further.
  491. X.NH 2
  492. How to Undo Drastic Changes to a File
  493. X.XS \n(PN 5n
  494. X\*(SN How to Undo Drastic Changes to a File
  495. X.XE
  496. X.LP
  497. If you have made several extensive changes to a file and then change
  498. your mind about them,
  499. and you haven't yet saved them,
  500. you can get rid of them by reading in the previous version of the file.
  501. You can do this with the C-X C-V command,
  502. to visit the unsaved version of the file.
  503. X.NH 2
  504. Recovering from system/editor crashes
  505. X.XS \n(PN 5n
  506. X\*(SN Recovering from system/editor crashes
  507. X.XE
  508. X.LP
  509. JOVE does not have \fIAuto Save\fP mode, but it does provide a way to
  510. recover your work in the event of a system or editor crash.  JOVE saves
  511. information about the files you're editing every so many changes to a
  512. buffer to make recovery possible.  Since a relatively small amount of
  513. information is involved it's hardly even noticeable when JOVE does this.  The
  514. variable "sync-frequency" says how often to save the necessary
  515. information, and the default is every 50 changes.  50 is a very
  516. reasonable number: if you are writing a paper you will not lose more than
  517. the last 50 characters you typed, which is less than the average length
  518. of a line.
  519. X.NH 2
  520. Miscellaneous File Operations
  521. X.XS \n(PN 5n
  522. X\*(SN Miscellaneous File Operations
  523. X.XE
  524. X.LP
  525. X.LP
  526. ESC X \fIwrite-file\fP <file><return> writes the contents of the buffer
  527. into the file <file>,
  528. and then visits that file.
  529. It can be thought of as a way of "changing the name" of
  530. the file you are visiting.
  531. Unlike C-X C-S,
  532. X\fIwrite-file\fP saves even if the buffer has not been changed.
  533. C-X C-W is another way of getting this command.
  534. X.LP
  535. ESC X \fIinsert-file\fP <file><return> inserts the contents of <file> into the
  536. buffer at point,
  537. leaving point unchanged before the contents.
  538. You can also use C-X C-I to get this command.
  539. X.LP
  540. ESC X \fIwrite-region\fP <file><return> writes the region (the text between
  541. point and mark) to the specified file.
  542. It does not set the visited filename.
  543. The buffer is not changed.
  544. X.LP
  545. ESC X \fIappend-region\fP <file><return> appends the region to <file>.
  546. The text is added to the end of <file>.
  547. X.NH 1
  548. Using Multiple Buffers
  549. X.XS \n(PN
  550. X\*(SN Using Multiple Buffers
  551. X.XE
  552. X.LP
  553. When we speak of "the buffer",
  554. which contains the text you are editing,
  555. we have given the impression that there is only one.
  556. In fact,
  557. there may be many of them,
  558. each with its own body of text.
  559. At any time only one buffer can be \fIselected\fP and available for editing,
  560. but it isn't hard to switch to a different one.
  561. Each buffer individually remembers which file it is visiting,
  562. what modes are in effect,
  563. and whether there are any changes that need saving.
  564. X.IP "C-X B" 15n
  565. Select or create a buffer.
  566. X.IP "C-X C-F" 15n
  567. Visit a file in its own buffer.
  568. X.IP "C-X C-B" 15n
  569. List the existing buffers.
  570. X.IP "C-X K" 15n
  571. Kill a buffer.
  572. X.LP
  573. Each buffer in \s-2JOVE\s0 has a single name,
  574. which normally doesn't change.
  575. A buffer's name can be any length.
  576. The name of the currently selected buffer
  577. and the name of the file visited in it
  578. are visible in the mode line when you are at top level.
  579. A newly started \s-2JOVE\s0 has only one buffer,
  580. named \fBMain\fP, unless you specified files to edit in the
  581. shell command that started \s-2JOVE\s0.
  582. X.NH 2
  583. Creating and Selecting Buffers
  584. X.XS \n(PN 5n
  585. X\*(SN Creating and Selecting Buffers
  586. X.XE
  587. X.LP
  588. To create a new buffer,
  589. you need only think of a name for it (say, FOO)
  590. and then do C-X B FOO<return>,
  591. which is the command C-X B (\fIselect-buffer\fP) followed by the name.
  592. This makes a new,
  593. empty buffer (if one by that name didn't previously exist) 
  594. and selects it for editing.
  595. The new buffer is not visiting any file,
  596. so if you try to save it you will be asked for the filename to use.
  597. Each buffer has its own major mode;
  598. the new buffer's major mode is \fIText\fP mode by default.
  599. X.LP
  600. To return to buffer FOO later after having switched to another,
  601. the same command C-X B FOO<return> is used,
  602. since C-X B can tell whether a buffer named FOO exists already or not.
  603. C-X B Main<return> reselects the buffer Main that \s-2JOVE\s0 started out with.
  604. Just C-X B<return> reselects the previous buffer.
  605. Repeated C-X B<return>'s alternate between the last two buffers selected.
  606. X.LP
  607. You can also read a file into its own newly created buffer,
  608. all with one command: C-X C-F (\fIfind-file\fP),
  609. followed by the filename.
  610. The name of the buffer is the last element of the file's pathname.
  611. C-F stands for "Find",
  612. because if the specified file already resides in a buffer in your \s-2JOVE\s0,
  613. that buffer is reselected.
  614. So you need not remember whether you have brought the file in already or not.
  615. A buffer created by C-X C-F can be reselected later with C-X B or C-X C-F,
  616. whichever you find more convenient.
  617. Nonexistent files can be created with C-X C-F just as they can with C-X C-V.
  618. X.NH 2
  619. Using Existing Buffers
  620. X.XS \n(PN 5n
  621. X\*(SN Using Existing Buffers
  622. X.XE
  623. X.LP
  624. To get a list of all the buffers that exist,
  625. do C-X C-B (\fIlist-buffers\fP).
  626. Each buffer's type,
  627. name,
  628. and visited filename is printed.
  629. An asterisk before the buffer name indicates a
  630. buffer which contains changes that have not been saved. The number
  631. that appears at the beginning of a line in a C-X C-B listing is that
  632. buffer's \fIbuffer number\fP.
  633. You can select a buffer by typing its number in place of its name.
  634. If a buffer with that number doesn't already exist,
  635. a new buffer is created with that number as its name.
  636. X.LP
  637. If several buffers have modified text in them,
  638. you should save some of them with C-X C-M (\fIwrite-modified-files\fP).
  639. This finds all the buffers that need saving and then saves them.
  640. Saving the buffers this way is much
  641. easier and more efficient (but more dangerous)
  642. than selecting each one and typing C-X C-S.
  643. If you give C-X C-M an argument, \s-2JOVE\s0 will ask for confirmation
  644. before saving each buffer.
  645. X.LP
  646. ESC X \fIrename-buffer\fP <new name><return> changes the name of the currently
  647. selected buffer.
  648. X.LP
  649. ESC X \fIerase-buffer\fP <buffer name><return> erases the contents of the
  650. X<buffer name> without deleting the buffer entirely.
  651. X.NH 2
  652. Killing Buffers
  653. X.XS \n(PN 5n
  654. X\*(SN Killing Buffers
  655. X.XE
  656. X.LP
  657. After you use a \s-2JOVE\s0 for a while,
  658. it may fill up with buffers which you no longer need.
  659. Eventually you can reach a point where trying to
  660. create any more results in an "out of memory" or "out of lines"
  661. error.
  662. When this happens you will want to kill some buffers with the
  663. C-X K (\fIdelete-buffer\fP) command.
  664. You can kill the buffer FOO by doing C-X K FOO<return>.
  665. If you type C-X K <return> JOVE will kill the previously selected buffer.
  666. If you try to kill a buffer that needs saving \s-2JOVE\s0
  667. will ask you to confirm it.
  668. X.LP
  669. If you need to kill several buffers, use the command \fIkill-some-buffers\fP.
  670. This prompts you with the name of each buffer and asks for confirmation
  671. before killing that buffer.
  672. X.NH 1
  673. Controlling the Display
  674. X.XS \n(PN
  675. X\*(SN Controlling the Display
  676. X.XE
  677. X.LP
  678. Since only part of a large file will fit on the screen,
  679. X\s-2JOVE\s0 tries to show the part that is likely to be interesting.
  680. The display control commands allow you to see a different part of the file.
  681. X.IP "C-L" 15n
  682. Reposition point at a specified vertical position,
  683. OR clear and redraw the screen with point in the same place.
  684. X.IP "C-V" 15n
  685. Scroll forwards (a screen or a few lines).
  686. X.IP "ESC V" 15n
  687. Scroll backwards.
  688. X.IP "C-Z" 15n
  689. Scroll forward some lines.
  690. X.IP "ESC Z" 15n
  691. Scroll backwards some lines.
  692. X.LP
  693. X.LP
  694. The terminal screen is rarely large enough to display all of your
  695. file.
  696. If the whole buffer doesn't fit on the screen,
  697. X\s-2JOVE\s0 shows a contiguous portion of it,
  698. containing 
  699. X.I point.
  700. It continues to show approximately the same portion
  701. until point moves outside of what is displayed;
  702. then \s-2JOVE\s0 chooses a new portion centered around the new 
  703. X.I point.
  704. This is \s-2JOVE\s0's guess as to what you are most interested in seeing,
  705. but if the guess is wrong,
  706. you can use the display control commands to see a different portion.
  707. The available screen area through which you can see part of
  708. the buffer is called \fIthe window\fP,
  709. and the choice of where in the
  710. buffer to start displaying is also called \fIthe window\fP.  (When 
  711. there is only one window, it plus the mode line and the input line take
  712. up the whole screen).
  713. X.LP
  714. First we describe how \s-2JOVE\s0 chooses a new window position on its own.
  715. The goal is usually to place 
  716. X.I point 
  717. half way down the window.
  718. This is controlled by the variable \fIscroll-step\fP,
  719. whose value is the number of
  720. lines above the bottom or below the top of the window that the line
  721. containing point is placed.
  722. A value of 0 (the initial value) means center 
  723. X.I point
  724. in the window.
  725. X.LP
  726. The basic display control command is C-L (\fIredraw-display\fP).
  727. In its simplest form,
  728. with no argument,
  729. it tells \s-2JOVE\s0 to choose a new window position,
  730. centering point half way from the top as usual.
  731. X.LP
  732. C-L with a positive argument chooses a new window so as to put point
  733. that many lines from the top.
  734. An argument of zero puts point on the very top line.
  735. Point does not move with respect to the text; rather,
  736. the text and point move rigidly on the screen.
  737. X.LP
  738. If point stays on the same line,
  739. the window is first cleared and then redrawn.
  740. Thus,
  741. two C-L's in a row are guaranteed to clear the current window.
  742. ESC C-L will clear and redraw the entire screen.
  743. X.LP
  744. The \fIscrolling\fP commands C-V,
  745. ESC V,
  746. C-Z,
  747. and ESC Z,
  748. let you move the whole display up or down a few lines.
  749. C-V (\fInext-page\fP) with an
  750. argument shows you that many more lines at the bottom of the screen,
  751. moving the text and point up together as C-L might.
  752. C-V with a
  753. negative argument shows you more lines at the top of the screen,
  754. as does ESC V (\fIprevious-page\fP) with a positive argument.
  755. X.LP
  756. To read the buffer a window at a time,
  757. use the C-V command with no argument.
  758. It takes the last line at the bottom of the window and puts
  759. it at the top,
  760. followed by nearly a whole window of lines not visible before.
  761. Point is put at the top of the window.
  762. Thus, each C-V shows the "next page of text",
  763. except for one line of overlap to provide context.
  764. To move backward,
  765. use ESC V without an argument,
  766. which moves a whole window backwards (again with a line of overlap).
  767. X.LP
  768. C-Z and ESC Z scroll one line forward and one line backward,
  769. respectively.
  770. These are convenient for moving in units of lines
  771. without having to type a numeric argument.
  772. X.NH 2
  773. Multiple Windows
  774. X.XS \n(PN 5n
  775. X\*(SN Multiple Windows
  776. X.XE
  777. X.LP
  778. X\s-2JOVE\s0 allows you to split the screen into two or more \fIwindows\fP and
  779. use them to display parts of different files,
  780. or different parts of the same file.
  781. X.IP "C-X 2" 15n
  782. Divide the current window into two smaller ones.
  783. X.IP "C-X 1" 15n
  784. Delete all windows but the current one.
  785. X.IP "C-X D" 15n
  786. Delete current window.
  787. X.IP "C-X N" 15n
  788. Switch to the next window.
  789. X.IP "C-X P" 15n
  790. Switch to the previous window.
  791. X.IP "C-X O" 15n
  792. Same as C-X P.
  793. X.IP "C-X ^" 15n
  794. Make this window bigger.
  795. X.IP "ESC C-V" 15n
  796. Scroll the other window.
  797. X.LP
  798. X.LP
  799. When using \fImultiple window\fP mode,
  800. the text portion of the screen
  801. is divided into separate parts called \fIwindows\fP,
  802. which can display different pieces of text.
  803. Each window can display different files,
  804. or parts of the same file.
  805. Only one of the windows is 
  806. X.I active; 
  807. that is
  808. the window which the cursor is in.
  809. Editing normally takes place in that window alone.
  810. To edit in another window,
  811. you would give a command to move the cursor to the other window,
  812. and then edit there.
  813. X.LP
  814. Each window displays a mode line for the buffer it's displaying.
  815. This is useful to keep track of which window corresponds with which
  816. file.  In addition, the mode line serves as a separator between windows.
  817. By setting the variable \fImode-line-should-standout\fP to "on" you can
  818. have \s-2JOVE\s0 display the mode-line in reverse video (assuming your
  819. particular terminal has the reverse video capability).
  820. X.LP
  821. The command C-X 2 (\fIsplit-current-window\fP) enters multiple window mode.
  822. A new mode line appears across the middle of the screen,
  823. dividing the text display area into two halves.
  824. Both windows contain the same buffer and display the same position in it,
  825. namely where point was at the time you issued the command.
  826. The cursor moves to the second window.
  827. X.LP
  828. To return to viewing only one window,
  829. use the command C-X 1 (\fIdelete-other-windows\fP).
  830. The current window expands to fill the whole screen,
  831. and the other windows disappear until the next C-X 2.
  832. X(The buffers and their contents are unaffected by any of the
  833. window operations).
  834. X.LP
  835. While there is more than one window,
  836. you can use C-X N (\fInext-window\fP) to switch to the next window,
  837. and C-X P (\fIprevious-window\fP) to switch to the previous one.
  838. If you are in the bottom window and you type C-X N,
  839. you will be placed in the top window,
  840. and the same kind of thing happens when you type C-X P in the top window,
  841. namely you will be placed in the bottom window.
  842. C-X O is the same as C-X P.
  843. It stands for "other window" because when there are only two windows,
  844. repeated use of this command will switch between the two windows.
  845. X.LP
  846. Often you will be editing one window while using the other just for reference.
  847. Then,
  848. the command ESC C-V (\fIpage-next-window\fP) is very useful.
  849. It scrolls the next window,
  850. as if you switched to the next window,
  851. typed C-V,
  852. and switched back,
  853. without your having to do all that.
  854. With a negative argument,
  855. ESC C-V will do an ESC V in the next window.
  856. X.LP
  857. When a window splits,
  858. both halves are approximately the same size.
  859. You can redistribute the screen space between the windows with
  860. the C-X ^ (\fIgrow-window\fP) command.
  861. It makes the currently selected window grow one line bigger,
  862. or as many lines as is specified with a numeric argument.
  863. Use ESC X \fIshrink-window\fP to make the current window smaller.
  864. X.NH 2
  865. Multiple Windows and Multiple Buffers
  866. X.XS \n(PN 5n
  867. X\*(SN Multiple Windows and Multiple Buffers
  868. X.XE
  869. X.LP
  870. Buffers can be selected independently in each window.
  871. The C-X B command selects a new buffer in whichever window contains
  872. the cursor.
  873. Other windows' buffers do not change.
  874. X.LP
  875. You can view the same buffer in more than one window.
  876. Although the same buffer appears in both windows,
  877. they have different values of point,
  878. so you can move around in one window while the other window
  879. continues to show the same text.
  880. Then,
  881. having found one place you wish to refer to, you can go back into the
  882. other window with C-X O or C-X P to make your changes.
  883. X.LP
  884. If you have the same buffer in both windows,
  885. you must beware of trying to visit a different file in one of
  886. the windows with C-X C-V,
  887. because if you bring a new file into this buffer,
  888. it will replaced the old file in \fIboth\fP windows.
  889. To view different files in different windows,
  890. you must switch buffers in one of the windows first
  891. X(with C-X B or C-X C-F, perhaps).
  892. X.LP
  893. A convenient "combination" command for viewing something in another
  894. window is C-X 4 (\fIwindow-find\fP).
  895. With this command you can ask to see any specified buffer,
  896. file or tag in the other window.
  897. Follow the C-X 4 with either B and a buffer name,
  898. F and a filename,
  899. or T and a tag name.
  900. This switches to the other window and finds there what you specified.
  901. If you were previously in one-window mode,
  902. multiple-window mode is entered.
  903. C-X 4 B is similar to C-X 2 C-X B.
  904. C-X 4 F is similar to C-X 2 C-X C-F.
  905. C-X 4 T is similar to C-X 2 C-X
  906. T.
  907. The difference is one of efficiency,
  908. and also that C-X 4 works equally well if you are already using two windows.
  909. X.NH 1
  910. Processes Under \s-2JOVE\s0
  911. X.XS \n(PN
  912. X\*(SN Processes Under \s-2JOVE\s0
  913. X.XE
  914. X.LP
  915. Another feature in \s-2JOVE\s0 is its ability to interact with
  916. X.UX
  917. in a useful way.
  918. You can run other
  919. X.UX
  920. commands from \s-2JOVE\s0 and catch their output in \s-2JOVE\s0 buffers.
  921. In this chapter we will discuss the different
  922. ways to run and interact with
  923. X.UX
  924. commands.
  925. X.NH 2
  926. Non-interactive
  927. X.UX
  928. commands
  929. X.XS \n(PN 5n
  930. X\*(SN Non-interactive
  931. X.XE
  932. X.LP
  933. To run a
  934. X.UX
  935. command from \s-2JOVE\s0 just type "C-X !" followed by the name
  936. of the command terminated with Return.
  937. For example,
  938. to get a list of all the users on the system,
  939. you do:
  940. X.DS I
  941. C-X ! who<return>
  942. X.DE
  943. Then \s-2JOVE\s0 picks a reasonable buffer in which the output from the
  944. command will be placed.
  945. E.g.,
  946. X"who" uses a buffer called \fBwho\fP;
  947. X"ps alx" uses \fBps\fP;
  948. and "fgrep -n foo *.c" uses \fBfgrep\fP.
  949. If \s-2JOVE\s0
  950. wants to use a buffer that already exists it first erases the old contents.
  951. If the buffer it selects holds a file,
  952. not output from a previous shell command,
  953. you must first delete that buffer with C-X K.
  954. X.LP
  955. Once \s-2JOVE\s0 has picked a buffer it puts that buffer in a window so you
  956. can see the command's output as it is running.
  957. If there is only one window \s-2JOVE\s0 will automatically make another one.
  958. Otherwise,
  959. X\s-2JOVE\s0
  960. tries to pick the most convenient window which isn't the current one.
  961. X.LP
  962. It's not a good idea to type anything while the command is running.
  963. There are two reasons for this:
  964. X.IP (i)
  965. X\s-2JOVE\s0 won't see the characters (thus won't execute them) until the
  966. command finishes,
  967. so you may forget what you've typed.
  968. X.IP (ii)
  969. Although \s-2JOVE\s0 won't know what you've typed,
  970. it 
  971. X.I will
  972. know that you've typed something,
  973. and then it will try to be "smart" and not update the
  974. display until it's interpreted what you've typed.
  975. But,
  976. of course,
  977. X\s-2JOVE\s0 won't interpret what you type until the
  978. X.UX
  979. command completes,
  980. so you're left with the uneasy feeling you get when you
  981. don't know what the hell the computer is doing*.
  982. X.FS
  983. X*This is a bug and should be fixed,
  984. but probably won't be for a while.
  985. X.FE
  986. X.LP
  987. If you want to interrupt the command for some reason (perhaps you
  988. mistyped it, or you changed your mind) you can type C-].
  989. Typing this
  990. inside \s-2JOVE\s0 while a process is running is the same as typing C-C when
  991. you are outside \s-2JOVE\s0,
  992. namely the process stops in a hurry.
  993. X.LP
  994. When the command finishes, \s-2JOVE\s0 puts you back in the window in which 
  995. you started.
  996. Then it prints a message indicating whether or not the command
  997. completed successfully in its (the command's) opinion.
  998. That is,
  999. if the command had what it considers an error
  1000. X(or you interrupt it with C-])
  1001. X\s-2JOVE\s0 will print an appropriate message.
  1002. X
  1003. X.NH 2
  1004. Limitations of Non-Interactive Processes
  1005. X.XS \n(PN 5n
  1006. X\*(SN Limitations of Non-Interactive Processes
  1007. X.XE
  1008. X.LP
  1009. The reason these are called non-interactive processes is that you
  1010. can't type any input to them; you can't interact with them; they can't
  1011. ask you questions because there is no way for you to answer.
  1012. For example,
  1013. you can't run a command interpreter (a shell), or 
  1014. X.I mail
  1015. or 
  1016. X.I crypt
  1017. with C-X ! because there is no way to provide it with input.
  1018. Remember that \s-2JOVE\s0 (not the process in the window)
  1019. is listening to your keyboard,
  1020. and \s-2JOVE\s0 waits until the process dies before it looks at
  1021. what you type.
  1022. X.LP
  1023. C-X ! is useful for running commands that do some output and then exit.
  1024. For example,
  1025. it's very useful to use with the C compiler to
  1026. catch compilation error messages (see Compiling C Programs),
  1027. or with the \fIgrep\fP commands.
  1028. X.NH 2
  1029. Interactive Processes \(em Run a Shell in a Window
  1030. X.XS \n(PN 5n
  1031. X\*(SN Interactive Processes \(em Run a Shell in a Window
  1032. X.XE
  1033. X.LP
  1034. Some versions of \s-2JOVE\s0\(dg
  1035. X.FS
  1036. X\(dg For example, the version provided with 4.3BSD.
  1037. X.FE
  1038. have the capability of running interactive
  1039. processes.
  1040. This is more useful than non-interactive processes for
  1041. certain types of jobs:
  1042. X.IP (i)
  1043. You can go off and do some editing while the command is running.
  1044. This is useful for commands that do sporadic output and run for fairly long
  1045. periods of time.
  1046. X.IP (ii)
  1047. Unlike non-interactive processes,
  1048. you can type input to these.
  1049. In addition,
  1050. you can edit what you type with the power of all the \s-2JOVE\s0
  1051. commands \fIbefore\fP you send the input to the process.
  1052. This is a really important feature,
  1053. and is especially useful for running a shell in a window.
  1054. X.IP (iii)
  1055. Because you can continue with normal editing while one of the
  1056. processes is running,
  1057. you can create a bunch of contexts and manage them
  1058. X(select them, delete them, or temporarily put them aside)
  1059. with \s-2JOVE\s0's window and buffer mechanisms.
  1060. X.LP
  1061. Although we may have given an image of processes being attached to 
  1062. X.I windows,
  1063. in fact they are attached to 
  1064. X.I buffers.
  1065. Therefore,
  1066. once an \fIi-process\fP is running you can select another buffer into that window,
  1067. or if you wish you can delete the window altogether.
  1068. If you reselect that buffer later it will be up to date.
  1069. That is,
  1070. even though the
  1071. buffer wasn't visible it was still receiving output from the process.
  1072. You don't have to worry about missing anything when the buffer isn't visible.
  1073. X.NH 2
  1074. Advantages of Running Processes in \s-2JOVE\s0 Windows.
  1075. X.XS \n(PN 5n
  1076. X\*(SN Advantages of Running Processes in \s-2JOVE\s0 Windows.
  1077. X.XE
  1078. X.LP
  1079. There are several advantages to running a shell in a window.
  1080. What you type isn't seen immediately by the process;
  1081. instead \s-2JOVE\s0 waits until
  1082. you type an entire line before passing it on to the process to read.
  1083. This means that before you type <return>
  1084. all of \s-2JOVE\s0's editing
  1085. capabilities are available for fixing errors on your input line.
  1086. If you discover an error at the beginning of the line,
  1087. rather than erasing the whole line and starting over,
  1088. you can simply move to the error,
  1089. correct it,
  1090. move back and continue typing.
  1091. X.LP
  1092. Another feature is that you have the entire history of your session in
  1093. a \s-2JOVE\s0 buffer.
  1094. You don't have to worry about output from a command
  1095. moving past the top of the screen.
  1096. If you missed some output you can
  1097. move back through it with ESC V and other commands.
  1098. In addition,
  1099. you can save yourself retyping a command (or a similar one) by sending
  1100. edited versions of previous commands, or edit the output of one command
  1101. to become a list of commands to be executed ("immediate shell scripts").
  1102. X.NH 2
  1103. Differences between Normal and I-process Buffers
  1104. X.XS \n(PN 5n
  1105. X\*(SN Differences between Normal and I-process Buffers
  1106. X.XE
  1107. X.LP
  1108. X\s-2JOVE\s0 behaves differently in several ways when you are in an \fIi-process\fP
  1109. buffer.
  1110. Most obviously, <return> does different things
  1111. depending on both your position in the buffer and on the state of the process.
  1112. In the normal case,
  1113. when point is at the end of the buffer,
  1114. Return does what you'd expect: it inserts a line-separator and then
  1115. sends the line to the process.
  1116. If you are somewhere else in the buffer,
  1117. possibly positioned at a previous command that you want to edit,
  1118. Return will place a copy of that line
  1119. X(with the prompt discarded if there is one)
  1120. at the end of the buffer and move you there.
  1121. Then you can edit the line and type Return as in the normal case.
  1122. If the process has died for some reason,
  1123. Return does nothing.
  1124. It doesn't even insert itself.
  1125. If that happens unexpectedly,
  1126. you should type ESC X \fIlist-processes\fP<return>
  1127. to get a list of each process and its state.
  1128. If your process died abnormally,
  1129. X\fIlist-processes\fP may help you figure out why.
  1130. X.NH 2
  1131. How to Run a Shell in a Window
  1132. X.XS \n(PN 5n
  1133. X\*(SN How to Run a Shell in a Window
  1134. X.XE
  1135. X.LP
  1136. Type ESC X \fIshell\fP<return> to start up a shell.
  1137. As with C-X !,
  1138. X\s-2JOVE\s0 will
  1139. create a buffer,
  1140. called \fB*shell*\-1\fP,
  1141. and select a window for this new buffer.
  1142. But unlike C-X ! you will be left in the new window.
  1143. Now,
  1144. the shell process is said to be attached to \fBshell\-1\fP.
  1145. END_OF_FILE
  1146. if test 39282 -ne `wc -c <'./doc/jove.2'`; then
  1147.     echo shar: \"'./doc/jove.2'\" unpacked with wrong size!
  1148. fi
  1149. # end of './doc/jove.2'
  1150. fi
  1151. echo shar: End of archive 17 \(of 21\).
  1152. cp /dev/null ark17isdone
  1153. MISSING=""
  1154. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ; do
  1155.     if test ! -f ark${I}isdone ; then
  1156.     MISSING="${MISSING} ${I}"
  1157.     fi
  1158. done
  1159. if test "${MISSING}" = "" ; then
  1160.     echo You have unpacked all 21 archives.
  1161.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1162. else
  1163.     echo You still need to unpack the following archives:
  1164.     echo "        " ${MISSING}
  1165. fi
  1166. ##  End of shell archive.
  1167. exit 0
  1168.