home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / gnu / src / baseline / jove-4.14.6.lha / jove-4.14.6 / USD.doc / jove.4 < prev    next >
Text File  |  1993-06-08  |  70KB  |  1,476 lines

  1. .\" Copyright (c) 1986, 1993
  2. .\"    The Regents of the University of California.  All rights reserved.
  3. .\"
  4. .\" Redistribution and use in source and binary forms, with or without
  5. .\" modification, are permitted provided that the following conditions
  6. .\" are met:
  7. .\" 1. Redistributions of source code must retain the above copyright
  8. .\"    notice, this list of conditions and the following disclaimer.
  9. .\" 2. Redistributions in binary form must reproduce the above copyright
  10. .\"    notice, this list of conditions and the following disclaimer in the
  11. .\"    documentation and/or other materials provided with the distribution.
  12. .\" 3. All advertising materials mentioning features or use of this software
  13. .\"    must display the following acknowledgement:
  14. .\"    This product includes software developed by the University of
  15. .\"    California, Berkeley and its contributors.
  16. .\" 4. Neither the name of the University nor the names of its contributors
  17. .\"    may be used to endorse or promote products derived from this software
  18. .\"    without specific prior written permission.
  19. .\"
  20. .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  21. .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  22. .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  23. .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  24. .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  25. .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  26. .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  27. .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  28. .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  29. .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  30. .\" SUCH DAMAGE.
  31. .\"
  32. .\"    @(#)jove.4    8.1 (Berkeley) 6/8/93
  33. .\"
  34. .bp
  35. .NH 1
  36. Alphabetical List of Commands and Variables
  37. .dc "Prefix-1" "Escape"
  38. This reads the next character and runs a command based on the character
  39. typed.  If you wait for more than a second or so before typing the next
  40. character, the message "ESC" will be printed on the message line to
  41. remind you that \s-2JOVE\s0 is waiting for another character.
  42. .dc "Prefix-2" "C-X"
  43. This reads the next character and runs a command based on the character
  44. typed.  If you wait for more than a second or so before typing another
  45. character, the message "C-X" will be printed on the message line to
  46. remind you that \s-2JOVE\s0 is waiting for another character.
  47. .dc "Prefix-3" "Not Bound"
  48. This reads the next character and runs a command based on the character
  49. typed.  If you wait for more than a second or so before typing the next
  50. character, the character that invoked Prefix-3 will be printed on the
  51. message line to remind you that \s-2JOVE\s0 is waiting for another one.
  52. .dc "allow-^S-and-^Q" "(variable)"
  53. This variable, when set, tells \s-2JOVE\s0 that your terminal does not need
  54. to use the characters C-S and C-Q for flow control, and that it is
  55. okay to bind things to them.  This variable should be set depending
  56. upon what kind of terminal you have.
  57. .dc "allow-bad-filenames" "(variable)"
  58. If set, this variable permits filenames to contain "bad" characters
  59. such as those from the set *&%!"`[]{}.  These files are harder to deal
  60. with, because the characters mean something to the shell.  The default
  61. value is "off".
  62. .dc "append-region" "Not Bound"
  63. This appends the region to a specified file.  If the file does not
  64. already exist it is created.
  65. .dc "apropos" "Not Bound"
  66. This types out all the commands, variables and macros with the specific
  67. keyword in their names.  For each command and macro that contains the
  68. string, the key sequence that can be used to execute the command or macro is
  69. printed; with variables, the current value is printed.  So, to find all the
  70. commands that are related to windows, you type
  71. .DS
  72. ESC X apropos window<Return>
  73. .DE
  74. .dc "auto-case-abbrev" "(variable)"
  75. When this variable is on (the default), word abbreviations are adjusted for
  76. case automatically.  For example, if "jove" were the abbreviation for
  77. "jonathan's own version of emacs", then typing "jove" would give you
  78. "jonathan's own version of emacs", typing "Jove" would give you "Jonathan's
  79. own version of emacs", and typing "JOVE" would give you "Jonathan's Own
  80. Version of Emacs".  When this variable is "off", upper and lower case are
  81. distinguished when looking for the abbreviation, i.e., in the example above,
  82. "JOVE" and "Jove" would not be expanded unless they were defined separately.
  83. .dc "auto-execute-command" "Not Bound"
  84. This tells \s-2JOVE\s0 to execute a command automatically when a file whose
  85. name matches a specified pattern is visited.  The first argument is the
  86. command you want executed and the second is a regular expression
  87. pattern that specifies the files that apply.  For example, if you want
  88. to be in show-match-mode when you edit C source files (that is, files
  89. that end with ".c" or ".h") you can type
  90. .ID
  91. ESC X auto-execute-command show-match-mode .*\.[ch]$
  92. .DE
  93. .dc "auto-execute-macro" "Not Bound"
  94. This is like
  95. .IQ auto-execute-command
  96. except you use it to execute macros
  97. automatically instead of built-in commands.
  98. .dc "auto-fill-mode" "Not Bound"
  99. This turns on Auto Fill mode (or off if it's currently on) in the
  100. selected buffer.  When \s-2JOVE\s0 is in Auto Fill mode it automatically
  101. breaks lines for you when you reach the right margin so you don't have
  102. to remember to hit Return.  \s-2JOVE\s0 uses 78 as the right margin but you
  103. can change that by setting the variable
  104. .IQ right-margin
  105. to another
  106. value.  See the
  107. .IQ set
  108. command to learn how to do this.
  109. .dc "auto-indent-mode" "Not Bound"
  110. This turns on Auto Indent mode (or off if it's currently on) in the
  111. selected buffer.  When \s-2JOVE\s0 is in Auto Indent mode, Return indents the
  112. new line to the same position as the line you were just on.  This is
  113. useful for lining up C code (or any other language (but what else is
  114. there besides C?)).  This is out of date because of the new command
  115. called
  116. .IQ newline-and-indent
  117. but it remains because of several
  118. "requests" on the part of, uh, enthusiastic and excitable users, that
  119. it be left as it is.
  120. .dc "backward-character" "C-B"
  121. This moves point backward over a single character.  If point is at the
  122. beginning of the line it moves to the end of the previous line.
  123. .dc "backward-paragraph" "ESC ["
  124. This moves point backward to the beginning of the current or previous
  125. paragraph.  Paragraphs are bounded by lines that begin with a Period or
  126. Tab, or by blank lines; a change in indentation may also signal a break
  127. between paragraphs, except that \s-2JOVE\s0 allows the first line of a paragraph
  128. to be indented differently from the other lines.
  129. .dc "backward-s-expression" "ESC C-B"
  130. This moves point backward over a s-expression.  It is just like
  131. .IQ forward-s-expression
  132. with a negative argument.
  133. .dc "backward-sentence" "ESC A"
  134. This moves point backward to the beginning of the current or previous
  135. sentence.  \s-2JOVE\s0 considers the end of a sentence to be the characters
  136. ".", "!" or "?" followed by a Return or by one or more spaces.
  137. .dc "backward-word" "ESC B"
  138. This moves point backward to the beginning of the current or previous
  139. word.
  140. .dc "bad-filename-extensions" "(variable)"
  141. This contains a list of words separated by spaces which are to be
  142. considered bad filename extensions, and so will not be counted in
  143. filename completion.  The default is ".o" so if you have jove.c and
  144. jove.o in the same directory, the filename completion will
  145. .IQ not
  146. complain
  147. of an ambiguity because it will ignore jove.o.
  148. .dc "beginning-of-file" "ESC <"
  149. This moves point backward to the beginning of the buffer.  This
  150. sometimes prints the "Point Pushed" message.  If the top of the buffer
  151. isn't on the screen \s-2JOVE\s0 will set the mark so you can go back to where
  152. you were if you want.
  153. .dc "beginning-of-line" "C-A"
  154. This moves point to the beginning of the current line.
  155. .dc "beginning-of-window" "ESC ,"
  156. This moves point to the beginning of the current window.  The sequence
  157. "ESC ," is the same as "ESC <" (beginning of file) except without the shift
  158. key on the "<", and can thus can easily be remembered.
  159. .dc "bind-to-key" "Not Bound"
  160. This attaches a key to an internal \s-2JOVE\s0 command so that future hits on
  161. that key invoke that command.  For example, to make "C-W" erase the
  162. previous word, you type "ESC X bind-to-key kill-previous-word C-W".
  163. .dc "bind-macro-to-key" "Not Bound"
  164. This is like
  165. .IQ bind-to-key
  166. except you use it to attach keys to
  167. named macros.
  168. .dc "bind-macro-to-word-abbrev" "Not Bound"
  169. This command allows you to bind a macro to a previously defined word
  170. abbreviation.  Whenever you type the abbreviation, it will first be expanded
  171. as an abbreviation, and then the macro will be executed.  Note that if the
  172. macro moves around, you should set the mark first (C-@) and then exchange
  173. the point and mark last (C-X C-X).
  174. .dc "buffer-position" "Not Bound"
  175. This displays the current file name, current line number, total number
  176. of lines, percentage of the way through the file, and the position of
  177. the cursor in the current line.
  178. .dc "c-mode" "Not Bound"
  179. This turns on C mode in the currently selected buffer.  This is one of
  180. currently four possible major modes:  Fundamental, Text, C, Lisp.
  181. When in C or Lisp mode, Tab, "}", and ")" behave a little differently
  182. from usual: They are indented to the "right" place for C (or Lisp)
  183. programs.  In \s-2JOVE\s0, the "right" place is simply the way the author
  184. likes it (but I've got good taste).
  185. .dc "case-character-capitalize" "Not Bound"
  186. This capitalizes the character after point, i.e., the character undo
  187. the cursor.  If a negative argument is supplied that many characters
  188. .IQ before
  189. point are upper cased.
  190. .dc "case-ignore-search" "(variable)"
  191. This variable, when set, tells \s-2JOVE\s0 to treat upper and lower case as
  192. the same when searching.  Thus "jove" and "JOVE" would match, and
  193. "JoVe" would match either.  The default value of this variable is "off".
  194. .dc "case-region-lower" "Not Bound"
  195. This changes all the upper case letters in the region to their lower
  196. case equivalent.
  197. .dc "case-region-upper" "Not Bound"
  198. This changes all the lower case letters in the region to their upper
  199. case equivalent.
  200. .dc "case-word-capitalize" "ESC C"
  201. This capitalizes the current word by making the current letter upper
  202. case and making the rest of the word lower case.  Point is moved to
  203. the end of the word.  If point is not positioned on a word it is first
  204. moved forward to the beginning of the next word.  If a negative
  205. argument is supplied that many words
  206. .IQ before
  207. point are capitalized.
  208. This is useful for correcting the word just typed without having to
  209. move point to the beginning of the word yourself.
  210. .dc "case-word-lower" "ESC L"
  211. This lower-cases the current word and leaves point at the end of it.
  212. If point is in the middle of a word the rest of the word is
  213. converted.  If point is not in a word it is first moved forward to the
  214. beginning of the next word.  If a negative argument is supplied that
  215. many words
  216. .IQ before
  217. point are converted to lower case.  This is useful
  218. for correcting the word just typed without having to move point to the
  219. beginning of the word yourself.
  220. .dc "case-word-upper" "ESC U"
  221. This upper-cases the current word and leaves point at the end of it.
  222. If point is in the middle of a word the rest of the word is
  223. converted.  If point is not in a word it is first moved forward to the
  224. beginning of the next word.  If a negative argument is supplied that
  225. many words
  226. .IQ before
  227. point are converted to upper case.  This is useful
  228. for correcting the word just typed without having to move point to the
  229. beginning of the word yourself.
  230. .dc "character-to-octal-insert" "Not Bound"
  231. This inserts a Back-slash followed by the ascii value of the next
  232. character typed.  For example, "C-G" inserts the string "\\007".
  233. .dc "cd" "Not Bound"
  234. This changes the current directory.
  235. .dc "clear-and-redraw" "ESC C-L"
  236. This clears the entire screen and redraws all the windows.  Use this
  237. when \s-2JOVE\s0 gets confused about what's on the screen, or when the screen
  238. gets filled with garbage characters or output from another program.
  239. .dc "comment-format" "(variable)"
  240. This variable tells \s-2JOVE\s0 how to format your comments when you run the
  241. command
  242. .IQ fill-comment.
  243. Its format is this:
  244. .ID
  245. <open pattern>%!<line header>%c<line trailer>%!<close pattern>
  246. .DE
  247. The %!, %c, and %! must appear in the format; everything else is optional.
  248. A newline (represented by %n) may appear in the open or close patterns.  %%
  249. is the representation for %.  The default comment format is for C comments.
  250. See
  251. .IQ fill-comment
  252. for more.
  253. .dc "compile-it" "C-X C-E"
  254. This compiles your program by running the UNIX command "make" into a buffer,
  255. and automatically parsing the error messages that are created (if any).  See
  256. the
  257. .IQ parse-errors
  258. and
  259. .IQ parse-special-errors
  260. commands.  To compile
  261. a C program without "make", use "C-U C-X C-E" and \s-2JOVE\s0 will prompt
  262. for a command to run instead of make.  (And then the command you type will
  263. become the default command.)  You can use this to parse the output from the
  264. C compiler or the "grep" or "lint" programs.
  265. .dc "continue-process" "Not Bound"
  266. This sends SIGCONT to the current interactive process,
  267. .IQ if
  268. the process
  269. is currently stopped.
  270. .dc "copy-region" "ESC W"
  271. This takes all the text in the region and copies it onto the kill ring
  272. buffer.  This is just like running
  273. .IQ kill-region
  274. followed by the
  275. .IQ yank
  276. command.  See the
  277. .IQ kill-region
  278. and
  279. .IQ yank
  280. commands.
  281. .dc "current-error" "Not Bound"
  282. This moves to the current error in the list of parsed errors.  See the
  283. .IQ next-error
  284. and
  285. .IQ previous-error
  286. commands for more detailed
  287. information.
  288. .dc "date" "Not Bound"
  289. This prints the date on the message line.
  290. .dc "define-mode-word-abbrev" "Not Bound"
  291. This defines a mode-specific abbreviation.
  292. .dc "define-global-word-abbrev" "Not Bound"
  293. This defines a global abbreviation.
  294. .dc "delete-blank-lines" "C-X C-O"
  295. This deletes all the blank lines around point.  This is useful when you
  296. previously opened many lines with "C-O" and now wish to delete the
  297. unused ones.
  298. .dc "delete-buffer" "C-X K"
  299. This deletes a buffer and frees up all the memory associated with it.
  300. Be careful!  Once a buffer has been deleted it is gone forever.  \s-2JOVE\s0
  301. will ask you to confirm if you try to delete a buffer that needs
  302. saving.  This command is useful for when \s-2JOVE\s0 runs out of space to
  303. store new buffers.
  304. .dc "delete-macro" "Not Bound"
  305. This deletes a macro from the list of named macros.  It is an error to
  306. delete the keyboard-macro.  Once the macro is deleted it is gone forever.
  307. If you are about to save macros to a file and decide you don't want to save
  308. a particular one, delete it.
  309. .dc "delete-next-character" "C-D"
  310. This deletes the character that's just after point (that is, the
  311. character under the cursor).  If point is at the end of a line, the
  312. line separator is deleted and the next line is joined with the current
  313. one.
  314. .dc "delete-other-windows" "C-X 1"
  315. This deletes all the other windows except the current one.  This can be
  316. thought of as going back into One Window mode.
  317. .dc "delete-previous-character" "Rubout"
  318. This deletes the character that's just before point (that is, the
  319. character before the cursor).  If point is at the beginning of the
  320. line, the line separator is deleted and that line is joined with the
  321. previous one.
  322. .dc "delete-white-space" "ESC \\\\"
  323. This deletes all the Tabs and Spaces around point.
  324. .dc "delete-current-window" "C-X D"
  325. This deletes the current window and moves point into one of the
  326. remaining ones.  It is an error to try to delete the only remaining
  327. window.
  328. .dc "describe-bindings" "Not Bound"
  329. This types out a list containing each bound key and the command that gets
  330. invoked every time that key is typed.  To make a wall chart of \s-2JOVE\s0
  331. commands, set
  332. .IQ send-typeout-to-buffer
  333. to "on" and \s-2JOVE\s0 will
  334. store the key bindings in a buffer which you can save to a file and then
  335. print.
  336. .dc "describe-command" "Not Bound"
  337. This prints some info on a specified command.
  338. .dc "describe-key" "Not Bound"
  339. This waits for you to type a key and then tells the name of the
  340. command that gets invoked every time that key is hit.  Once you have
  341. the name of the command you can use the
  342. .IQ describe-command
  343. command
  344. to find out exactly what it does.
  345. .dc "describe-variable" "Not Bound"
  346. This prints some info on a specified variable.
  347. .dc "digit" "ESC [0-9]"
  348. This reads a numeric argument.  When you type "ESC" followed by a
  349. number, "digit" keeps reading numbers until you type some other
  350. command.  Then that command is executes with the numeric argument you
  351. specified.
  352. .dc "digit-1" "Not Bound"
  353. This pretends you typed "ESC 1".  This is useful for terminals that
  354. have keypads that send special sequences for numbers typed on the
  355. keypad as opposed to numbers typed from the keyboard.  This can save
  356. having type "ESC" when you want to specify an argument.
  357. .dc "digit-2" "Not Bound"
  358. This pretends you typed "ESC 2".  This is useful for terminals that
  359. have keypads that send special sequences for numbers typed on the
  360. keypad as opposed to numbers typed from the keyboard.  This can save
  361. having type "ESC" when you want to specify an argument.
  362. .dc "digit-3" "Not Bound"
  363. This pretends you typed "ESC 3".  This is useful for terminals that
  364. have keypads that send special sequences for numbers typed on the
  365. keypad as opposed to numbers typed from the keyboard.  This can save
  366. having type "ESC" when you want to specify an argument.
  367. .dc "digit-4" "Not Bound"
  368. This pretends you typed "ESC 4".  This is useful for terminals that
  369. have keypads that send special sequences for numbers typed on the
  370. keypad as opposed to numbers typed from the keyboard.  This can save
  371. having type "ESC" when you want to specify an argument.
  372. .dc "digit-5" "Not Bound"
  373. This pretends you typed "ESC 5".  This is useful for terminals that
  374. have keypads that send special sequences for numbers typed on the
  375. keypad as opposed to numbers typed from the keyboard.  This can save
  376. having type "ESC" when you want to specify an argument.
  377. .dc "digit-6" "Not Bound"
  378. This pretends you typed "ESC 6".  This is useful for terminals that
  379. have keypads that send special sequences for numbers typed on the
  380. keypad as opposed to numbers typed from the keyboard.  This can save
  381. having type "ESC" when you want to specify an argument.
  382. .dc "digit-7" "Not Bound"
  383. This pretends you typed "ESC 7".  This is useful for terminals that
  384. have keypads that send special sequences for numbers typed on the
  385. keypad as opposed to numbers typed from the keyboard.  This can save
  386. having type "ESC" when you want to specify an argument.
  387. .dc "digit-8" "Not Bound"
  388. This pretends you typed "ESC 8".  This is useful for terminals that
  389. have keypads that send special sequences for numbers typed on the
  390. keypad as opposed to numbers typed from the keyboard.  This can save
  391. having type "ESC" when you want to specify an argument.
  392. .dc "digit-9" "Not Bound"
  393. This pretends you typed "ESC 9".  This is useful for terminals that
  394. have keypads that send special sequences for numbers typed on the
  395. keypad as opposed to numbers typed from the keyboard.  This can save
  396. having type "ESC" when you want to specify an argument.
  397. .dc "digit-0" "Not Bound"
  398. This pretends you typed "ESC 0".  This is useful for terminals that
  399. have keypads that send special sequences for numbers typed on the
  400. keypad as opposed to numbers typed from the keyboard.  This can save
  401. having type "ESC" when you want to specify an argument.
  402. .dc "dirs" "Not Bound"
  403. This prints out the directory stack.  See the "cd", "pushd", "popd"
  404. commands for more info.
  405. .dc "disable-biff" "(variable)"
  406. When this is set, \s-2JOVE\s0 disables biff when you're editing and enables it
  407. again when you get out of \s-2JOVE\s0, or when you pause to the parent shell
  408. or push to a new shell. (This means arrival of new mail will not be
  409. immediately apparent but will not cause indiscriminate writing on the
  410. display). The default is "off".
  411. .dc "dstop-process" "Not Bound"
  412. Send the "dsusp" character to the current process.  This is the
  413. character that suspends a process on the next read from the
  414. terminal.  Most people have it set to C-Y.  This only works if
  415. you have the interactive process feature, and if you are in a
  416. buffer bound to a process.
  417. .dc "edit-word-abbrevs" "Not Bound"
  418. This creates a buffer with a list of each abbreviation and the phrase
  419. it expands into, and enters a recursive edit to let you change the
  420. abbreviations or add some more.  The format of this list is
  421. "abbreviation:phrase" so if you add some more you should follow that
  422. format.  It's probably simplest just to copy some already existing
  423. abbreviations and edit them.  When you are done you type "C-X C-C" to
  424. exit the recursive edit.
  425. .dc "end-of-file" "ESC >"
  426. This moves point forward to the end of the buffer.  This sometimes
  427. prints the "Point Pushed" message.  If the end of the buffer isn't on
  428. the screen \s-2JOVE\s0 will set the mark so you can go back to where you were
  429. if you want.
  430. .dc "end-of-line" "C-E"
  431. This moves point to the end of the current line.  If the line is too
  432. long to fit on the screen \s-2JOVE\s0 will scroll the line to the left to
  433. make the end of the line visible.  The line will slide back to its
  434. normal position when you move backward past the leftmost visible character
  435. or when you move off the line altogether.
  436. .dc "end-of-window" "ESC ."
  437. This moves point to the last character in the window.
  438. .dc "eof-process" "Not Bound"
  439. Sends EOF to the current interactive process.  This only works on
  440. versions of \s-2JOVE\s0 which run under 4.2-3 BSD VAX UNIX.  You can't send
  441. EOF to processes on the 2.9 BSD PDP-11 UNIX.
  442. .dc "erase-buffer" "Not Bound"
  443. This erases the contents of the specified buffer.  This is like
  444. .IQ delete-buffer
  445. except it only erases the contents of the buffer, not
  446. the buffer itself.  If you try to erase a buffer that needs saving you
  447. will be asked to confirm it.
  448. .dc "error-window-size" "(variable)"
  449. This is the percentage of the screen to use for the error-window on the
  450. screen.  When you execute
  451. .IQ compile-it,
  452. .IQ error-window-size
  453. percent of the screen will go to the error window.  If the window already
  454. exists and is a different size, it is made to be this size.  The default
  455. value is 20%.
  456. .dc "exchange-point-and-mark" "C-X C-X"
  457. This moves point to mark and makes mark the old point.  This is for
  458. quickly moving from one end of the region to another.
  459. .dc "execute-named-command" "ESC X"
  460. This is the way to execute a command that isn't bound to any key.
  461. When you are prompted with ": " you can type the name of the
  462. command.  You don't have to type the entire name.  Once the command
  463. is unambiguous you can type Space and \s-2JOVE\s0 will fill in the rest for
  464. you.
  465. If you are not sure of the name of the command, type "?" and \s-2JOVE\s0
  466. will print a list of all the commands that you could possibly match
  467. given what you've already typed.  If you don't have any idea what the
  468. command's name is but you know it has something to do with windows
  469. (for example), you can do "ESC X apropos window" and \s-2JOVE\s0 will print a
  470. list of all the commands that are related to windows.
  471. If you find yourself constantly executing the same commands this way
  472. you probably want to bind them to keys so that you can execute them
  473. more quickly.  See the
  474. .IQ bind-to-key
  475. command.
  476. .dc "execute-keyboard-macro" "C-X E"
  477. This executes the keyboard macro.  If you supply a numeric argument the
  478. macro is executed that many times.
  479. .dc "execute-macro" "Not Bound"
  480. This executes a specified macro.  If you supply a numeric argument the
  481. macro is executed that many times.
  482. .dc "exit-jove" "C-X C-C"
  483. This exits \s-2JOVE\s0.  If any buffers need saving \s-2JOVE\s0 will print a warning
  484. message and ask for confirmation.  If you leave without saving your
  485. buffers all your work will be lost.  If you made a mistake and really
  486. do want to exit then you can.  If you are in a recursive editing level
  487. .IQ exit-jove
  488. will return you from that.
  489. .dc "file-creation-mode" "(variable)"
  490. This variable has an octal value.
  491. It contains the mode (see
  492. .IQ chmod(1)
  493. ) with which files should be created.  This mode gets modified by your
  494. current umask setting (see
  495. .IQ umask(1)
  496. ).  The default value is usually
  497. .IQ 0666
  498. or
  499. .IQ 0644.
  500. .dc "files-should-end-with-newline" "(variable)"
  501. This variable indicates that all files should always have a newline
  502. at the end.  This is often necessary for line printers and the like.
  503. When set, if \s-2JOVE\s0 is writing a file whose last character is not a
  504. newline, it will add one automatically.
  505. .dc "fill-comment" "Not Bound"
  506. This command fills in your C comments to make them pretty and readable.
  507. This filling is done according the variable
  508. .IQ comment-format.
  509. .DS L
  510. /*
  511.  * the default format makes comments like this.
  512.  */
  513. .DE
  514. This can be changed by changing the format variable.  Other languages
  515. may be supported by changing the format variable appropriately.  The
  516. formatter looks backwards from dot for an open comment symbol.  If 
  517. found, all indentation is done relative the position of the first character
  518. of the open symbol.  If there is a matching close symbol, the entire 
  519. comment is formatted.  If not, the region between dot and the open symbol
  520. is reformatted.
  521. .dc "fill-paragraph" "ESC J"
  522. This rearranges words between lines so that all the lines in the current
  523. paragraph extend as close to the right margin as possible, ensuring that
  524. none of the lines will be greater than the right margin.  The default value
  525. for
  526. .IQ right-margin
  527. is 78, but can be changed with the
  528. .IQ set
  529. and
  530. .IQ right-margin-here
  531. commands.  \s-2JOVE\s0 has a complicated algorithm
  532. for determining the beginning and end of the paragraph.  In the normal case
  533. \s-2JOVE\s0 will give all the lines the same indent as they currently have,
  534. but if you wish to force a new indent you can supply a numeric argument to
  535. .IQ fill-paragraph
  536. (e.g., by typing C-U ESC J)
  537. and \s-2JOVE\s0 will indent each line to the column
  538. specified by the
  539. .IQ left-margin
  540. variable.  See also the
  541. .IQ left-margin
  542. variable and
  543. .IQ left-margin-here
  544. command.
  545. .dc "fill-region" "Not Bound"
  546. This is like
  547. .IQ fill-paragraph,
  548. except it operates on a region instead of
  549. just a paragraph.
  550. .dc "filter-region" "Not Bound"
  551. This sends the text in the region to a UNIX command, and replaces the
  552. region with the output from that command.  For example, if you are
  553. lazy and don't like to take the time to write properly indented C
  554. code, you can put the region around your C file and
  555. .IQ filter-region
  556. it
  557. through
  558. .IQ cb,
  559. the UNIX C beautifier.  If you have a file that contains
  560. a bunch of lines that need to be sorted you can do that from inside
  561. \s-2JOVE\s0 too, by filtering the region through the
  562. .IQ sort
  563. UNIX command.
  564. Before output from the command replaces the region \s-2JOVE\s0 stores the old
  565. text in the kill ring, so if you are unhappy with the results you can
  566. easily get back the old text with "C-Y".
  567. .dc "find-file" "C-X C-F"
  568. This visits a file into its own buffer and then selects that buffer.
  569. If you've already visited this file in another buffer, that buffer is
  570. selected.  If the file doesn't yet exist, \s-2JOVE\s0 will print "(New file)"
  571. so that you know.
  572. .dc "find-tag" "C-X T"
  573. This finds the file that contains the specified tag.  \s-2JOVE\s0 looks up
  574. tags by default in the "tags" file in the current directory.  You can change
  575. the default tag name by setting the
  576. .IQ tag-file
  577. variable to another
  578. name.  If you specify a numeric argument to this command, you will be
  579. prompted for a tag file.  This is a good way to specify another tag file
  580. without changing the default.  If the tag cannot be found the error is
  581. reported and point stays where it is.
  582. .dc "find-tag-at-point" "Not Bound"
  583. This finds the file that contains the tag that point is currently on.
  584. See
  585. .IQ find-tag.
  586. .dc "first-non-blank" "ESC M"
  587. This moves point back to the indent of the current line.
  588. .dc "forward-character" "C-F"
  589. This moves forward over a single character.  If point is at the end of
  590. the line it moves to the beginning of the next one.
  591. .dc "forward-paragraph" "ESC ]"
  592. This moves point forward to the end of the current or next paragraph.
  593. Paragraphs are bounded by lines that begin with a Period or Tab, or by blank
  594. lines; a change in indentation may also signal a break between paragraphs,
  595. except that \s-2JOVE\s0 allows the first line of a paragraph to be indented
  596. differently from the other lines.
  597. .dc "forward-s-expression" "ESC C-F"
  598. This moves point forward over a s-expression.  If the first significant
  599. character after point is "(", this moves past the matching ")".  If the
  600. character begins an identifier, this moves just past it.  This is mode
  601. dependent, so this will move over atoms in LISP mode and C identifiers in C
  602. mode.  \s-2JOVE\s0 also matches "{".
  603. .dc "forward-sentence" "ESC E"
  604. This moves point forward to the end of the current or next sentence.
  605. \s-2JOVE\s0 considers the end of a sentence to be the characters ".", "!" or
  606. "?" followed by a Return, or one or more spaces.
  607. .dc "forward-word" "ESC F"
  608. This moves point forward to the end of the current or next word.
  609. .dc "fundamental-mode" "Not Bound"
  610. This sets the major mode to Fundamental.  This affects what \s-2JOVE\s0
  611. considers as characters that make up words.  For instance,
  612. Single-quote is not part of a word in Fundamental mode, but is in Text
  613. mode.
  614. .dc "goto-line" "ESC G"
  615. If a numeric argument is supplied point moves to the beginning of that
  616. line.  If no argument is supplied, point remains where it is.  This is
  617. so you don't lose your place unintentionally, by accidentally hitting
  618. the "G" instead of "F".
  619. .dc "grind-s-expr" "Not Bound"
  620. When point is positioned on a "(", this re-indents that LISP expression.
  621. .dc "grow-window" "C-X ^"
  622. This makes the current window one line bigger.  This only works when
  623. there is more than one window and provided there is room to change the
  624. size.
  625. .dc "paren-flash" ") } ]"
  626. This handles the C mode curly brace indentation, the Lisp mode paren
  627. indentation, and the Show Match mode paren/curly brace/square bracket
  628. flashing.
  629. .dc "handle-tab" "Tab"
  630. This handles indenting to the "right" place in C and Lisp mode, and
  631. just inserts itself in Text mode.
  632. .dc "i-search-forward" "Not Bound"
  633. Incremental search.  Like search-forward except that instead of prompting
  634. for a string and searching for that string all at once, it accepts the string
  635. one character at a time.  After each character you type as part of the search
  636. string, it searches for the entire string so far.  When you like what it
  637. found, type the Return key to finish the search.  You can take back a
  638. character with Rubout and the search will back up to the position before
  639. that character was typed.  C-G aborts the search.
  640. .dc "i-search-reverse" "Not Bound"
  641. Incremental search.  Like search-reverse except that instead of prompting
  642. for a string and searching for that string all at once, it accepts the string
  643. one character at a time.  After each character you type as part of the search
  644. string, it searches for the entire string so far.  When you like what it
  645. found, type the Return key to finish the search.  You can take back a
  646. character with Rubout and the search will back up to the position before
  647. that character was typed.  C-G aborts the search.
  648. .dc "insert-file" "C-X C-I"
  649. This inserts a specified file into the current buffer at point.  Point
  650. is positioned at the beginning of the inserted file.
  651. .dc "internal-tabstop" "(variable)"
  652. The number of spaces \s-2JOVE\s0 should print when it displays a tab character.
  653. The default value is 8.
  654. .dc "interrupt-process" "Not Bound"
  655. This sends the interrupt character (usually C-C) to the interactive process
  656. in the current buffer.  This is only for versions of \s-2JOVE\s0 that have the
  657. interactive processes feature.  This only works when you are inside a buffer
  658. that's attached to a process.
  659. .dc "i-shell" "Not Bound"
  660. This starts up an interactive shell in a window.  \s-2JOVE\s0 uses "shell-1"
  661. as the name of the buffer in which the interacting takes place.  See
  662. the manual for information on how to use interactive processes.
  663. .dc "i-shell-command" "Not Bound"
  664. This is like
  665. .IQ shell-command
  666. except it lets you continue with your
  667. editing while the command is running.  This is really useful for long
  668. running commands with sporadic output.  See the manual for information
  669. on how to use interactive processes.
  670. .dc "kill-next-word" "ESC D"
  671. This kills the text from point to the end of the current or next word.
  672. .dc "kill-previous-word" "ESC Rubout"
  673. This kills the text from point to the beginning of the current or
  674. previous word.
  675. .dc "kill-process" "Not Bound"
  676. This command prompts for a buffer name or buffer number (just as
  677. select-buffer does) and then sends the process in that buffer a
  678. kill signal (9).
  679. .dc "kill-region" "C-W"
  680. This deletes the text in the region and saves it on the kill ring.
  681. Commands that delete text but save it on the kill ring all have the
  682. word "kill" in their names.  Type "C-Y" to yank back the most recent
  683. kill.
  684. .dc "kill-s-expression" "ESC C-K"
  685. This kills the text from point to the end of the current or next
  686. s-expression.
  687. .dc "kill-some-buffers" "Not Bound"
  688. This goes through all the existing buffers and asks whether or not to kill
  689. them.  If you decide to kill a buffer, and it turns out that the buffer is
  690. modified, \s-2JOVE\s0 will offer to save it first.  This is useful for when \s-2JOVE\s0
  691. runs out of memory to store lines (this only happens on PDP-11's) and you
  692. have lots of buffers that you are no longer using.
  693. .dc "kill-to-beginning-of-sentence" "C-X Rubout"
  694. This kills from point to the beginning of the current or previous
  695. sentence.
  696. .dc "kill-to-end-of-line" "C-K"
  697. This kills from point to the end of the current line.  When point is
  698. at the end of the line the line separator is deleted and the next line
  699. is joined with current one.  If a numeric argument is supplied that
  700. many lines are killed; if the argument is negative that many lines
  701. .IQ before
  702. point are killed; if the argument is zero the text from point
  703. to the beginning of the line is killed.
  704. .dc "kill-to-end-of-sentence" "ESC K"
  705. This kills from point to the end of the current or next sentence.  If a
  706. negative numeric argument is supplied it kills from point to the
  707. beginning of the current or previous sentence.
  708. .dc "left-margin" "(variable)"
  709. This is how far lines should be indented when auto-indent mode is on,
  710. or when the
  711. .IQ newline-and-indent
  712. command is run (usually by typing
  713. LineFeed).  It is also used by fill-paragraph and auto-fill mode.
  714. If the value is zero (the default) then the left margin is determined
  715. from the surrounding lines.
  716. .dc "left-margin-here" "Not Bound"
  717. This sets the
  718. .IQ left-margin
  719. variable to the current position of
  720. point.  This is an easy way to say, "Make the left margin begin here,"
  721. without having to count the number of spaces over it actually is.
  722. .dc "lisp-mode" "Not Bound"
  723. This turns on Lisp mode.  Lisp mode is one of four mutually exclusive major
  724. modes: Fundamental, Text, C, and Lisp.  In Lisp mode, the characters Tab
  725. and ) are treated specially, similar to the way they are treated in C mode.
  726. Also, Auto Indent mode is affected, and handled specially.
  727. .dc "list-buffers" "C-X C-B"
  728. This types out a list containing various information about each buffer.
  729. Right now that list looks like this:
  730. .DS
  731. .ta \w'NO111'u +\w'Lines1'u +\w'Scratch111'u +\w'*1'u +\w'commands.doc111'u
  732. \ (* means the buffer needs saving)
  733. \ NO    Lines    Type        Name    File
  734. \ --    -----    ----        ----    ----
  735. \ 1    1    File        Main    [No file]
  736. \ 2    1    Scratch    *    Minibuf    [No file]
  737. \ 3    519    File    *    commands.doc    commands.doc
  738. .DE
  739. The first column lists the buffer's number.  When \s-2JOVE\s0 prompts for a
  740. buffer name you can either type in the full name, or you can simply
  741. type the buffer's number.  The second column is the number of lines in
  742. the buffer.  The third says what type of buffer.  There are four
  743. types: "File", "Scratch", "Process", "I-Process".  "File" is simply a
  744. buffer that holds a file; "Scratch" is for buffers that \s-2JOVE\s0 uses
  745. internally; "Process" is one that holds the output from a UNIX
  746. command; "I-Process" is one that has an interactive process attached to
  747. it.  The next column contains the name of the buffer.  And the last
  748. column is the name of the file that's attached to the buffer.  In this
  749. case, both Minibuf and commands.doc have been changed but not yet
  750. saved.  In fact Minibuf won't be saved since it's an internal \s-2JOVE\s0
  751. buffer that I don't even care about.
  752. .dc "list-processes" "Not Bound"
  753. This makes a list somewhat like "list-buffers" does, except its
  754. list consists of the current interactive processes.  Right now the list
  755. looks like this:
  756. .DS
  757. .ta \w'shell-111111111111'u +\w'Running1111111111'u
  758. \ Buffer    Status    Command name
  759. \ ------    ------    ------- ----
  760. \ shell-1    Running    i-shell
  761. \ fgrep     Done    fgrep -n Buffer *.c
  762. .DE
  763. The first column has the name of the buffer to which the process is
  764. attached.  The second has the status of the process; if a process has
  765. exited normally the status is "Done" as in fgrep; if the process
  766. exited with an error the status is "Exit N" where N is the value of
  767. the exit code; if the process was killed by some signal the status is
  768. the name of the signal that was used; otherwise the process is
  769. running.  The last column is the name of the command that is being run.
  770. .dc "mailbox" "(variable)"
  771. Set this to the full pathname of your mailbox.  \s-2JOVE\s0 will look here to
  772. decide whether or not you have any unread mail.  This defaults to
  773. /usr/spool/mail/$USER, where $USER is set to your login name.
  774. .dc "mail-check-frequency" "(variable)"
  775. This is how often (in seconds) \s-2JOVE\s0 should check your mailbox for
  776. incoming mail.  See also the
  777. .IQ mailbox
  778. and
  779. .IQ disable-biff
  780. variables.
  781. .dc "make-backup-files" "(variable)"
  782. If this variable is set, then whenever \s-2JOVE\s0 writes out a file, it will
  783. move the previous version of the file (if there was one) to "#filename".
  784. This is often convenient if you save a file by accident.  The default
  785. value of this variable is "off".
  786. .IQ Note:
  787. this is an optional part of
  788. \s-2JOVE\s0, and your guru may not have it enabled, so it may not work.
  789. .dc "make-buffer-unmodified" "ESC ~"
  790. This makes \s-2JOVE\s0 think the selected buffer hasn't been changed even if
  791. it has.  Use this when you accidentally change the buffer but don't
  792. want it considered changed.  Watch the mode line to see the * disappear
  793. when you use this command.  
  794. .dc "make-macro-interactive" "Not Bound"
  795. This command is meaningful only while you are defining a keyboard macro.
  796. Ordinarily, when a command in a macro definition requires a trailing
  797. text argument (file name, search string, etc.), the argument you
  798. supply becomes part of the macro definition.  If you want to be able
  799. to supply a different argument each time the macro is used, then while
  800. you are defining it, you should give the make-macro-interactive
  801. command just before typing the argument which will be used during the
  802. definition process.  Note: you must bind this command to a key in
  803. order to use it; you can't say ESC X make-macro-interactive.
  804. .dc "mark-threshold" "(variable)"
  805. This variable contains the number of lines point may move by before
  806. the mark is set.  If, in a search or something, point moves by more
  807. than this many lines, the mark is set so that you may return easily.
  808. The default value of this variable is 22 (one screenful, on most
  809. terminals).
  810. .dc "marks-should-float" "(variable)"
  811. When this variable is "off", the position of a mark is remembered as a line
  812. number within the buffer and a character number within the line.  If you add
  813. or delete text before the mark, it will no longer point to the text you
  814. marked originally because that text is no longer at the same line and
  815. character number.  When this variable is "on", the position of a mark is
  816. adjusted to compensate for each insertion and deletion.  This makes marks
  817. much more sensible to use, at the cost of slowing down insertion and
  818. deletion somewhat.  The default value is "on".
  819. .dc "match-regular-expressions" "(variable)"
  820. When set, \s-2JOVE\s0 will match regular expressions in search patterns.
  821. This makes special the characters ., *, [, ], ^, and $, and the two-character
  822. sequences \e<, \e>, \e\|{, \e\|} and \e\||.
  823. See the
  824. .IQ ed(1)
  825. manual page, the tutorial "Advanced Editing in 
  826. .UX
  827. ", and the section above "Searching with Regular Expressions"
  828. for more information.
  829. .dc "meta-key" "(variable)"
  830. You should set this variable to "on" if your terminal has a real Meta
  831. key.
  832. If your terminal has such a key, then a key sequence like ESC Y can
  833. be entered by holding down Meta and typing Y.
  834. .dc "mode-line" "(variable)"
  835. The format of the mode line can be determined by setting this variable.
  836. The items in the line are specified using a printf(3) format, with the
  837. special things being marked as "%x".  Digits may be used between the
  838. '%' and the 'x' to mean repeat that many times.
  839. \&'x' may be:
  840. .DS I
  841. .ta .5i 1i 1.5i
  842.     C    check for new mail, and displays "[New mail]" if there
  843.         is any (see also the mail-check-interval and disable-biff
  844.         variables)
  845.     F    the current file name, with leading path stripped
  846.     M    the current list of major and minor modes
  847.     b    the current buffer name
  848.     c    the fill character (-)
  849.     d    the current directory
  850.     e    end of string--this must be the last item in the string
  851.     f    the current file name
  852.     l    the current load average (updated automatically)
  853.     m    the buffer-modified symbol (*)
  854.     n    the current buffer number
  855.     s    space, but only if previous character is not a space
  856.     t    the current time (updated automatically)
  857.     [ ]    the square brackets printed when in a recursive edit
  858.     ( )    items enclosed in %( ... %) will only be printed on
  859.         the bottom mode line, rather than copied when the
  860.         window is split
  861. .DE
  862. In addition, any other character is simply copied into the mode line.
  863. Characters may be escaped with a backslash.  To get a feel for all
  864. this, try typing "ESC X print mode-line" and compare the result with
  865. your current mode line.
  866. .dc "mode-line-should-standout" "(variable)"
  867. If set, the mode line will be printed in reverse video, if your
  868. terminal supports it.  The default for this variable is "off".
  869. .dc "name-keyboard-macro" "Not Bound"
  870. This copies the keyboard macro and gives it a name freeing up the
  871. keyboard macro so you can define some more.  Keyboard macros with
  872. their own names can be bound to keys just like built in commands
  873. can.  See the
  874. .IQ read-macros-file-file
  875. and
  876. .IQ write-macros-to-file
  877. commands.
  878. .dc "newline" "Return"
  879. This divides the current line at point moving all the text to the
  880. right of point down onto the newly created line.  Point moves down to
  881. the beginning of the new line.
  882. .dc "newline-and-backup" "C-O"
  883. This divides the current line at point moving all the text to the
  884. right of point down onto the newly created line.  The difference
  885. between this and "newline" is that point does not move down to the
  886. beginning of the new line.
  887. .dc "newline-and-indent" "LineFeed"
  888. This behaves the same was as Return does when in Auto Indent mode.
  889. This makes Auto Indent mode obsolete but it remains in the name of
  890. backward compatibility.
  891. .dc "next-error" "C-X C-N"
  892. This moves to the next error in the list of errors that were parsed
  893. with
  894. .IQ parse-errors
  895. or
  896. .IQ parse-special-errors.
  897. In one window the list
  898. of errors is shown with the current one always at the top.  In another
  899. window is the file that contains the error.  Point is positioned in
  900. this window on the line where the error occurred.
  901. .dc "next-line" "C-N"
  902. This moves down to the next line.
  903. .dc "next-page" "C-V"
  904. This displays the next page of the buffer by taking the bottom line of
  905. the window and redrawing the window with it at the top.  If there isn't
  906. another page in the buffer \s-2JOVE\s0 rings the bell.  If a numeric argument
  907. is supplied the screen is scrolled up that many lines; if the argument
  908. is negative the screen is scrolled down.
  909. .dc "next-window" "C-X N"
  910. This moves into the next window.  Windows live in a circular list so
  911. when you're in the bottom window and you try to move to the next one
  912. you are moved to the top window.  It is an error to use this command
  913. with only one window.
  914. .dc "number-lines-in-window" "Not Bound"
  915. This displays the line numbers for each line in the buffer being
  916. displayed.  The number isn't actually part of the text; it's just
  917. printed before the actual buffer line is.  To turn this off you run
  918. the command again; it toggles.
  919. .dc "over-write-mode" "Not Bound"
  920. This turns Over Write mode on (or off if it's currently on) in the selected
  921. buffer.  When on, this mode changes the way the self-inserting characters
  922. work.  Instead of inserting themselves and pushing the rest of the line over
  923. to the right, they replace or over-write the existing character.  Also,
  924. Rubout replaces the character before point with a space instead of deleting
  925. it.  When Over Write mode is on "OvrWt" is displayed on the mode line.
  926. .dc "page-next-window" "ESC C-V"
  927. This displays the next page in the next window.  This is exactly the
  928. same as "C-X N C-V C-X P".
  929. .dc "paren-flash-delay" "(variable)"
  930. How long, in tenths of seconds, \s-2JOVE\s0 should pause on a matching
  931. parenthesis in
  932. .IQ Show Match
  933. mode.  The default is 5.
  934. .dc "parse-errors" "Not Bound"
  935. This takes the list of C compilation errors (or output from another program
  936. in the same format) in the current buffer and parses them for use with the
  937. .IQ next-error
  938. and
  939. .IQ previous-error
  940. and
  941. .IQ current-error
  942. commands.
  943. This is a very useful tool and helps with compiling C programs and when used
  944. in conjunction with the "grep" UNIX command very helpful in making changes
  945. to a bunch of files.  This command understands errors produced by cc, cpp,
  946. and lint; plus any other program with the same format (e.g., "grep -n").
  947. \s-2JOVE\s0 visits each file that has an error and remembers each line that
  948. contains an error.  It doesn't matter if later you insert or delete
  949. some lines in the buffers containing errors; \s-2JOVE\s0 remembers where
  950. they are regardless.
  951. .IQ next-error
  952. is automatically executed after one
  953. of the parse commands, so you end up at the first error.
  954. .dc "parse-special-errors" "Not Bound"
  955. This parses errors in an unknown format.  Error parsing works with
  956. regular expression search strings with \\('s around the the file name
  957. and the line number.  So, you can use
  958. .IQ parse-special-errors
  959. to parse
  960. lines that are in a slightly different format by typing in your own
  961. search string.  If you don't know how to use regular expressions you
  962. can't use this command.
  963. .dc "parse-spelling-errors-in-buffer" "Not Bound"
  964. This parses a list of words in the current buffer and looks them up in
  965. another buffer that you specify.  This will probably go away soon.
  966. .dc "pause-jove" "ESC S"
  967. This stops \s-2JOVE\s0 and returns control to the parent shell.  This
  968. only works for users using the C-shell, and on systems that have the
  969. job control facility.  To return to \s-2JOVE\s0 you type "fg" to the C-shell.
  970. .dc "physical-tabstop" "(variable)"
  971. How many spaces your terminal prints when it prints a tab character.
  972. .dc "pop-mark" "Not Bound"
  973. This gets executed when you run
  974. .IQ set-mark
  975. with a numeric argument.
  976. \s-2JOVE\s0 remembers the last 16 marks and you use
  977. .IQ pop-mark
  978. to go
  979. backward through the ring of marks.  If you execute "
  980. .IQ pop-mark
  981. enough
  982. times you will eventually get back to where you started.
  983. .dc "popd" "Not Bound"
  984. This pops one entry off the directory stack.  Entries are pushed with
  985. the
  986. .IQ pushd
  987. command.  The names were stolen from the C-shell and the
  988. behavior is the same.
  989. .dc "previous-error" "C-X C-P"
  990. This is the same as
  991. .IQ next-error
  992. except it goes to the previous error.
  993. See
  994. .IQ next-error
  995. for documentation.
  996. .dc "previous-line" "C-P"
  997. This moves up to the previous line.
  998. .dc "previous-page" "ESC V"
  999. This displays the previous page of the current buffer by taking the top
  1000. line and redrawing the window with it at the bottom.  If a numeric
  1001. argument is supplied the screen is scrolled down that many lines; if
  1002. the argument is negative the screen is scrolled up.
  1003. .dc "previous-window" "C-X P and C-X O"
  1004. This moves into the next window.  Windows live in a circular list so
  1005. when you're in the top window and you try to move to the previous one
  1006. you are moved to the bottom window.  It is an error to use this command
  1007. with only one window.
  1008. .dc "print" "Not Bound"
  1009. This prints the value of a \s-2JOVE\s0 variable.
  1010. .dc "print-message" "Not Bound"
  1011. This command prompts for a message, and then prints it on the bottom
  1012. line where \s-2JOVE\s0 messages are printed.
  1013. .dc "process-bind-to-key" "Not Bound"
  1014. This command is identical to bind-to-key, except that it only affects
  1015. your bindings when you are in a buffer attached to a process.  When
  1016. you enter the process buffer, any keys bound with this command will
  1017. automatically take their new values.  When you switch to a non-process
  1018. buffer, the old bindings for those keys will be restored.  For example,
  1019. you might want to execute
  1020. .DS I
  1021. process-bind-to-key stop-process ^Z
  1022. process-bind-to-key interrupt-process ^C
  1023. .DE
  1024. Then, when you start up an interactive process and switch into that
  1025. buffer, C-Z will execute stop-process and C-C will execute interrupt-
  1026. process.  When you switch back to a non-process buffer, C-Z will go
  1027. back to executing scroll-up (or whatever you have it bound to).
  1028. .dc "process-newline" "Return"
  1029. This this only gets executed when in a buffer that is attached to an
  1030. interactive-process.  \s-2JOVE\s0 does two different things depending on where
  1031. you are when you hit Return.  When you're at the end of the I-Process
  1032. buffer this does what Return normally does, except it also makes the
  1033. line available to the process.  When point is positioned at some other
  1034. position that line is copied to the end of the buffer (with the prompt
  1035. stripped) and point is moved there with it, so you can then edit that
  1036. line before sending it to the process.  This command
  1037. .IQ must
  1038. be bound
  1039. to the key you usually use to enter shell commands (Return), or else
  1040. you won't be able to enter any.
  1041. .dc "process-prompt" (variable)
  1042. What a prompt looks like from the i-shell and i-shell-command
  1043. processes.  The default is "% ", the default C-shell prompt.  This is
  1044. actually a regular expression search string.  So you can set it to be
  1045. more than one thing at once using the \\| operator.  For instance, for
  1046. LISP hackers, the prompt can be
  1047. .DS
  1048. "% \\|-> \\|<[0-9]>: ".
  1049. .DE
  1050. .dc "push-shell" "Not Bound"
  1051. This spawns a child shell and relinquishes control to it.  This works
  1052. on any version of UNIX, but this isn't as good as
  1053. .IQ pause-jove
  1054. because
  1055. it takes time to start up the new shell and you get a brand new
  1056. environment every time.  To return to \s-2JOVE\s0 you type "C-D".
  1057. .dc "pushd" "Not Bound"
  1058. This pushes a directory onto the directory stack and cd's into it.  It
  1059. asks for the directory name but if you don't specify one it switches
  1060. the top two entries no the stack.  It purposely behaves the same as
  1061. C-shell's
  1062. .IQ pushd.
  1063. .dc "pwd" "Not Bound"
  1064. This prints the working directory.
  1065. .dc "quadruple-numeric-argument" "C-U"
  1066. This multiplies the numeric argument by 4.  So, "C-U C-F" means
  1067. forward 4 characters and "C-U C-U C-N" means down 16 lines.
  1068. .dc "query-replace-string" "ESC Q"
  1069. This replaces the occurrences of a specified string with a specified
  1070. replacement string.  When an occurrence is found point is moved to it
  1071. and then \s-2JOVE\s0 asks what to do.  The options are:
  1072. .DS I
  1073. .ta \w'Rubout111'u
  1074. Space    to replace this occurrence and go on to the next one.
  1075. Period    to replace this occurrence and then stop.
  1076. Rubout    to skip this occurrence and go on to the next one.
  1077. C-R    to enter a recursive edit.  This lets you temporarily
  1078.     suspend the replace, do some editing, and then return
  1079.     to continue where you left off.  To continue with the
  1080.     Query Replace type "C-X C-C" as if you were trying to
  1081.     exit \s-2JOVE\s0.  Normally you would but when you are in a
  1082.     recursive edit all it does is exit that recursive
  1083.     editing level.
  1084. C-W    to delete the matched string and then enter a recursive
  1085.     edit.
  1086. U    to undo the last replacement.
  1087. P or !    to go ahead and replace the remaining occurrences without
  1088.     asking.
  1089. Return    to stop the Query Replace.
  1090. .DE
  1091. The search for occurrences starts at point and goes to the end of the
  1092. buffer, so to replace in the entire buffer you must first go to the
  1093. beginning.
  1094. .dc "quit-process" "Not Bound"
  1095. This is the same as typing "C-\\" (the Quit character) to a normal UNIX
  1096. process, except it sends it to the current process in \s-2JOVE\s0.  This is
  1097. only for versions of \s-2JOVE\s0 that have the interactive processes feature.
  1098. This only works when you are inside a buffer that's attached to a
  1099. process.
  1100. .dc "quoted-insert" "C-Q"
  1101. This lets you insert characters that normally would be executed as
  1102. other \s-2JOVE\s0 commands.  For example, to insert "C-F" you type "C-Q C-F".
  1103. .dc "read-word-abbrev-file" "Not Bound"
  1104. This reads a specified file that contains a bunch of abbreviation
  1105. definitions, and makes those abbreviations available.  If the selected
  1106. buffer is not already in Word Abbrev mode this command puts it in
  1107. that mode.
  1108. .dc "read-macros-from-file" "Not Bound"
  1109. This reads the specified file that contains a bunch of macro
  1110. definitions, and defines all the macros that were currently defined
  1111. when the file was created.  See
  1112. .IQ write-macros-to-file
  1113. to see how to
  1114. save macros.
  1115. .dc "redraw-display" "C-L"
  1116. This centers the line containing point in the window.  If that line is
  1117. already in the middle the window is first cleared and then redrawn.
  1118. If a numeric argument is supplied, the line is positioned at that
  1119. offset from the top of the window.  For example, "ESC 0 C-L" positions
  1120. the line containing point at the top of the window.
  1121. .dc "recursive-edit" "Not Bound"
  1122. This enters a recursive editing level.  This isn't really very
  1123. useful.  I don't know why it's available for public use.  I think I'll
  1124. delete it some day.
  1125. .dc "rename-buffer" "Not Bound"
  1126. This lets you rename the current buffer.
  1127. .dc "replace-in-region" "Not Bound"
  1128. This is the same as
  1129. .IQ replace-string
  1130. except that it is restricted
  1131. to occurrences between Point and Mark.
  1132. .dc "replace-string" "ESC R"
  1133. This replaces all occurrences of a specified string with a specified
  1134. replacement string.  This is just like
  1135. .IQ query-replace-string
  1136. except
  1137. it replaces without asking.
  1138. .dc "right-margin" "(variable)"
  1139. Where the right margin is for
  1140. .IQ "Auto Fill"
  1141. mode and the
  1142. .IQ justify-paragraph
  1143. and
  1144. .IQ justify-region
  1145. commands.  The default is 78.
  1146. .dc "right-margin-here" "Not Bound"
  1147. This sets the
  1148. .IQ right-margin
  1149. variable to the current position of
  1150. point.  This is an easy way to say, "Make the right margin begin here,"
  1151. without having to count the number of spaces over it actually is.
  1152. .dc "save-file" "C-X C-S"
  1153. This saves the current buffer to the associated file.  This makes your
  1154. changes permanent so you should be sure you really want to.  If the
  1155. buffer has not been modified
  1156. .IQ save-file
  1157. refuses to do the save.  If
  1158. you really do want to write the file you can use "C-X C-W" which
  1159. executes
  1160. .IQ write-file.
  1161. .dc "scroll-down" "ESC Z"
  1162. This scrolls the screen one line down.  If the line containing point
  1163. moves past the bottom of the window point is moved up to the center of
  1164. the window.  If a numeric argument is supplied that many lines are
  1165. scrolled; if the argument is negative the screen is scrolled up
  1166. instead.
  1167. .dc "scroll-step" "(variable)"
  1168. How many lines should be scrolled if the
  1169. .IQ previous-line
  1170. or
  1171. .IQ next-line
  1172. commands move you off the top or bottom of the screen.  You
  1173. may wish to decrease this variable if you are on a slow terminal.
  1174. .dc "scroll-up" "C-Z"
  1175. This scrolls the screen one line up.  If the line containing point
  1176. moves past the top of the window point is moved down to the center of
  1177. the window.  If a numeric argument is supplied that many lines are
  1178. scrolled; if the argument is negative the screen is scrolled down
  1179. instead.
  1180. .dc "search-exit-char" "(variable)"
  1181. Set this to the character you want to use to exit incremental search.
  1182. The default is Newline, which makes i-search compatible with normal
  1183. string search.
  1184. .dc "search-forward" "C-S"
  1185. This searches forward for a specified search string and positions
  1186. point at the end of the string if it's found.  If the string is not
  1187. found point remains unchanged.  This searches from point to the end of
  1188. the buffer, so any matches before point will be missed.
  1189. .dc "search-reverse" "C-R"
  1190. This searches backward for a specified search string and positions
  1191. point at the beginning if the string if it's found.  If the string is
  1192. not found point remains unchanged.  This searches from point to the
  1193. beginning of the buffer, so any matches after point will be missed.
  1194. .dc "select-buffer" "C-X B"
  1195. This selects a new or already existing buffer making it the current
  1196. one.  You can type either the buffer name or number.  If you type in
  1197. the name you need only type the name until it is unambiguous, at which
  1198. point typing Escape or Space will complete it for you.  If you want to
  1199. create a new buffer you can type Return instead of Space, and a new
  1200. empty buffer will be created.
  1201. .dc "self-insert" "Most Printing Characters"
  1202. This inserts the character that invoked it into the buffer at point.
  1203. Initially all but a few of the printing characters are bound to
  1204. .IQ self-insert.
  1205. .dc "send-typeout-to-buffer" "(variable)"
  1206. When this is set \s-2JOVE\s0 will send output that normally overwrites the
  1207. screen (temporarily) to a buffer instead.  This affects commands like
  1208. .IQ list-buffers,
  1209. .IQ list-processes,
  1210. and other commands that use command
  1211. completion.  The default value is "off".
  1212. .dc "set" "Not Bound"
  1213. This gives a specified variable a new value.  Occasionally you'll see
  1214. lines like "set this variable to that value to do this".  Well, you
  1215. use the
  1216. .IQ set
  1217. command to do that.
  1218. .dc "set-mark" "C-@"
  1219. This sets the mark at the current position in the buffer.  It prints
  1220. the message "Point pushed" on the message line.  It says that instead
  1221. of "Mark set" because when you set the mark the previous mark is still
  1222. remembered on a ring of 16 marks.  So "Point pushed" means point is
  1223. pushed onto the ring of marks and becomes the value of "the mark".
  1224. To go through the ring of marks you type "C-U C-@", or execute the
  1225. .IQ pop-mark
  1226. command.  If you type this enough times you will get back
  1227. to where you started.
  1228. .dc "shell" "(variable)"
  1229. The shell to be used with all the shell commands command.  If your SHELL
  1230. environment variable is set, it is used as the value of
  1231. .IQ shell;
  1232. otherwise "/bin/csh" is the default.
  1233. .dc "shell-command" "C-X !"
  1234. This runs a UNIX command and places the output from that command in a
  1235. buffer.  \s-2JOVE\s0 creates a buffer that matches the name of the command
  1236. you specify and then attaches that buffer to a window.  So, when you
  1237. have only one window running this command will cause \s-2JOVE\s0 to split the
  1238. window and attach the new buffer to that window.  Otherwise, \s-2JOVE\s0
  1239. finds the most convenient of the available windows and uses that one
  1240. instead.  If the buffer already exists it is first emptied, except that if
  1241. it's holding a file, not some output from a previous command, \s-2JOVE\s0
  1242. prints an error message and refuses to execute the command.  If you
  1243. really want to execute the command you should delete that buffer
  1244. (saving it first, if you like) or use
  1245. .IQ shell-command-to-buffer,
  1246. and
  1247. try again.
  1248. .dc "shell-command-to-buffer" "Not Bound"
  1249. This is just like
  1250. .IQ shell-command
  1251. except it lets you specify the
  1252. buffer to use instead of \s-2JOVE\s0.
  1253. .dc "shell-flags" "(variable)"
  1254. This defines the flags that are passed to shell commands.  The default is
  1255. "-c".  See the
  1256. .IQ shell
  1257. variable to change the default shell.
  1258. .dc "show-match-mode" "Not Bound"
  1259. This turns on Show Match mode (or off if it's currently on) in the
  1260. selected buffer.  This changes "}" and ")" so that when they are typed
  1261. the are inserted as usual, and then the cursor flashes back to the
  1262. matching "{" or "(" (depending on what was typed) for about half a
  1263. second, and then goes back to just after the "}" or ")" that invoked
  1264. the command.  This is useful for typing in complicated expressions in
  1265. a program.  You can change how long the cursor sits on the matching
  1266. paren by setting the "paren-flash-delay" variable in tenths of a
  1267. second.  If the matching "{" or "(" isn't visible nothing happens.
  1268. .dc "shrink-window" "Not Bound"
  1269. This makes the current window one line shorter, if possible.  Windows
  1270. must be at least 2 lines high, one for the text and the other for the
  1271. mode line.
  1272. .dc "source" "Not Bound"
  1273. This reads a bunch of \s-2JOVE\s0 commands from a file.  The format of the
  1274. file is the same as that in your initialization file (your ".joverc")
  1275. in your main directory.  There should be one command per line and it
  1276. should be as though you typed "ESC X" while in \s-2JOVE\s0.  For example,
  1277. here's part of my initialization file:
  1278. .DS I
  1279. bind-to-key i-search-reverse ^R
  1280. bind-to-key i-search-forward ^S
  1281. bind-to-key pause-jove ^[S
  1282. .DE
  1283. What they do is make "C-R" call the
  1284. .IQ i-search-reverse
  1285. command and
  1286. "C-S" call
  1287. .IQ i-search-forward
  1288. and "ESC S" call
  1289. .IQ pause-jove.
  1290. .dc "spell-buffer" "Not Bound"
  1291. This runs the current buffer through the UNIX
  1292. .IQ spell
  1293. program and places
  1294. the output in buffer "Spell".  Then \s-2JOVE\s0 lets you edit the list of
  1295. words, expecting you to delete the ones that you don't care about, i.e., the
  1296. ones you know are spelled correctly.  Then the
  1297. .IQ parse-spelling-errors-in-buffer
  1298. command comes along and finds all the
  1299. misspelled words and sets things up so the error commands work.
  1300. .dc "split-current-window" "C-X 2"
  1301. This splits the current window into two equal parts (providing the
  1302. resulting windows would be big enough) and displays the selected
  1303. buffer in both windows.  Use "C-X 1" to go back to 1 window mode.
  1304. .dc "start-remembering" "C-X ("
  1305. This starts remembering your key strokes in the Keyboard macro.  To
  1306. stop remembering you type "C-X )".  Because of a bug in \s-2JOVE\s0 you can't
  1307. stop remembering by typing "ESC X stop-remembering";
  1308. .IQ stop-remembering
  1309. must be bound to "C-X )" in order to make things work correctly.  To
  1310. execute the remembered key strokes you type "C-X E" which runs the
  1311. .IQ execute-keyboard-macro
  1312. command.
  1313. Sometimes you may want a macro to accept different input each time it runs.
  1314. To see how to do this, see the
  1315. .IQ make-macro-interactive
  1316. command.
  1317. .dc "stop-process" "Not Bound"
  1318. This sends a stop signal (C-Z, for most people) to the current process.
  1319. It only works if you have the interactive process feature, and you are
  1320. in a buffer attached to a process.
  1321. .dc "stop-remembering" "C-X )"
  1322. This stop the definition of the keyboard macro.  Because of a bug in
  1323. \s-2JOVE\s0, this must be bound to "C-X )".  Anything else will not work
  1324. properly.
  1325. .dc "string-length" "Not Bound"
  1326. This prints the number of characters in the string that point sits in.
  1327. Strings are surrounded by double quotes.  \s-2JOVE\s0 knows that "\\007" is
  1328. considered a single character, namely "C-G", and also knows about
  1329. other common ones, like "\\r" (Return) and "\\n" (LineFeed).  This is
  1330. mostly useful only for C programmers.
  1331. .dc "suspend-jove" "ESC S"
  1332. This is a synonym for
  1333. .IQ pause-jove.
  1334. .dc "sync-frequency" "(variable)"
  1335. The temporary files used by \s-2JOVE\s0 are forced out to disk every
  1336. .IQ sync-frequency
  1337. modifications.  The default is 50, which really makes
  1338. good sense.  Unless your system is very unstable, you probably
  1339. shouldn't fool with this.
  1340. .dc "tag-file" "(variable)"
  1341. This the name of the file in which \s-2JOVE\s0 should look up tag
  1342. definitions.  The default value is "./tags".
  1343. .dc "text-mode" "Not Bound"
  1344. This sets the major mode to Text.  Currently the other modes are
  1345. Fundamental, C and Lisp mode.
  1346. .dc "transpose-characters" "C-T"
  1347. This switches the character before point with the one after point, and
  1348. then moves forward one.  This doesn't work at the beginning of the
  1349. line, and at the end of the line it switches the two characters before
  1350. point.  Since point is moved forward, so that the character that was
  1351. before point is still before point, you can use "C-T" to drag a
  1352. character down the length of a line.  This command pretty quickly
  1353. becomes very useful.
  1354. .dc "transpose-lines" "C-X C-T"
  1355. This switches the current line with the one above it, and then moves
  1356. down one so that the line that was above point is still above point.
  1357. This, like
  1358. .IQ transpose-characters,
  1359. can be used to drag a line down a page.
  1360. .dc "unbind-key" "Not Bound"
  1361. Use this to unbind
  1362. .IQ any
  1363. key sequence.  You can use this to unbind even a
  1364. prefix command, since this command does not use "key-map completion".  For
  1365. example, "ESC X unbind-key ESC [" unbinds the sequence "ESC [".  This is
  1366. useful for "turning off" something set in the system-wide ".joverc" file.
  1367. .dc "update-time-frequency" "(variable)"
  1368. How often the mode line is updated (and thus the time and load
  1369. average, if you display them).  The default is 30 seconds.
  1370. .dc "use-i/d-char" "(variable)"
  1371. If your terminal has insert/delete character capability you can tell \s-2JOVE\s0
  1372. not to use it by setting this to "off".  In my opinion it is only worth using
  1373. insert/delete character at low baud rates.  WARNING: if you set this to
  1374. "on" when your terminal doesn't have insert/delete character capability,
  1375. you will get weird (perhaps fatal) results.
  1376. .dc "version" "Not Bound"
  1377. Displays the version number of this \s-2JOVE\s0.
  1378. .dc "visible-bell" "(variable)"
  1379. Use the terminal's visible bell instead of beeping.  This is set
  1380. automatically if your terminal has the capability.
  1381. .dc "visible-spaces-in-window" "Not Bound"
  1382. This displays an underscore character instead of each space in the
  1383. window and displays a greater-than followed by spaces for each tab
  1384. in the window.  The actual text in the buffer is not changed; only
  1385. the screen display is affected.  To turn this off you run the command
  1386. again; it toggles.
  1387. .dc "visit-file" "C-X C-V"
  1388. This reads a specified file into the current buffer replacing the old
  1389. text.  If the buffer needs saving \s-2JOVE\s0 will offer to save it for you.
  1390. Sometimes you use this to start over, say if you make lots of changes
  1391. and then change your mind.  If that's the case you don't want \s-2JOVE\s0 to
  1392. save your buffer and you answer "NO" to the question.
  1393. .dc "window-find" "C-X 4"
  1394. This lets you select another buffer in another window three
  1395. different ways.  This waits for another character which can be one of
  1396. the following:
  1397. .DS I
  1398. .ta .5i 1i 1.5i
  1399. T    Finds a tag in the other window.
  1400. F    Finds a file in the other window.
  1401. B    Selects a buffer in the other window.
  1402. .DE
  1403. This is just a convenient short hand for "C-X 2" (or "C-X O" if there are
  1404. already two windows) followed by the appropriate sequence for invoking each
  1405. command.  With this, though, there isn't the extra overhead of having to
  1406. redisplay.  In addition, you don't have to decide whether to type "C-X 2" or
  1407. "C-X O" since "C-X 4" does the right thing.
  1408. .dc "word-abbrev-mode" "Not Bound"
  1409. This turns on Word Abbrev mode (or off if it's currently on) in the
  1410. selected buffer.  Word Abbrev mode lets you specify a word (an
  1411. abbreviation) and a phrase with which \s-2JOVE\s0 should substitute the
  1412. abbreviation.  You can use this to define words to expand into long
  1413. phrases, e.g., "jove" can expand into "Jonathan's Own Version of
  1414. Emacs"; another common use is defining words that you often misspell
  1415. in the same way, e.g., "thier" => "their" or "teh" => "the".  See
  1416. the information on the
  1417. .IQ auto-case-abbrev
  1418. variable.
  1419. .sp 1
  1420. There are two kinds of abbreviations: mode specific and global.  If
  1421. you define a Mode specific abbreviation in C mode, it will expand only
  1422. in buffers that are in C mode.  This is so you can have the same
  1423. abbreviation expand to different things depending on your context.
  1424. Global abbreviations expand regardless of the major mode of the
  1425. buffer.  The way it works is this: \s-2JOVE\s0 looks first in the mode
  1426. specific table, and then in the global table.  Whichever it finds it
  1427. in first is the one that's used in the expansion.  If it doesn't find
  1428. the word it is left untouched.
  1429. \s-2JOVE\s0 tries to expand words as they are typed, when you type a
  1430. punctuation character or Space or Return.  If you are in Auto Fill
  1431. mode the expansion will be filled as if you typed it yourself.
  1432. .dc "wrap-search" "(variable)"
  1433. If set, searches will "wrap around" the ends of the buffer instead
  1434. of stopping at the bottom or top.  The default is "off".
  1435. .dc "write-files-on-make" "(variable)"
  1436. When set, all modified files will be written out before calling
  1437. make when the
  1438. .IQ compile-it
  1439. command is executed.  The default is "on".
  1440. .dc "write-word-abbrev-file" "Not Bound"
  1441. This writes the currently defined abbreviations to a specified file.
  1442. They can be read back in and automatically defined with
  1443. .IQ read-word-abbrev-file.
  1444. .dc "write-file" "C-X C-W"
  1445. This saves the current buffer to a specified file, and then makes that
  1446. file the default file name for this buffer.  If you specify a file
  1447. that already exists you are asked to confirm over-writing it.
  1448. .dc "write-macros-to-file" "Not Bound"
  1449. This writes the currently defined macros to a specified file.  The
  1450. macros can be read back in with
  1451. .IQ read-macros-from-file
  1452. so you can
  1453. define macros and still use them in other instantiations of \s-2JOVE\s0.
  1454. .dc "write-modified-files" "C-X C-M"
  1455. This saves all the buffers that need saving.  If you supply a numeric
  1456. argument it asks for each buffer whether you really want to save it.
  1457. .dc "write-region" "Not Bound"
  1458. This writes the text in the region to a specified file.  If the file
  1459. already exists you are asked to confirm over-writing it.
  1460. .dc "yank" "C-Y"
  1461. This undoes the last kill command.  That is, it inserts the killed
  1462. text at point.  When you do multiple kill commands in a row, they are
  1463. merged so that yanking them back with "C\-Y" yanks back all of them.
  1464. .dc "yank-pop" "ESC Y"
  1465. This yanks back previous killed text.  \s-2JOVE\s0 has a kill ring on which
  1466. the last 10 kills are stored.
  1467. .IQ Yank
  1468. yanks a copy of the text at the
  1469. front of the ring.  If you want one of the last ten kills you use "ESC
  1470. Y" which rotates the ring so another different entry is now at the
  1471. front.  You can use "ESC Y" only immediately following a "C-Y" or
  1472. another "ESC Y".  If you supply a negative numeric argument the ring
  1473. is rotated the other way.  If you use this command enough times in a
  1474. row you will eventually get back to where you started.  Experiment
  1475. with this.  It's extremely useful.
  1476.