home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / jove-4.16-src.tgz / tar.out / bsd / jove / doc / cmds.nr < prev    next >
Text File  |  1996-09-28  |  105KB  |  2,486 lines

  1. .\" cmds.nr: descriptions of each JOVE command and variable.
  2. .\"
  3. .\" This nroff/troff text is used for two purposes:
  4. .\" it is the second portion of the JOVE manual (combine with intro.nr), and
  5. .\" it is used to produce cmds.doc, the text used by the describe-command
  6. .\" and describe-variable commands.
  7. .\" Take note of the .IQ and .BQ macros used in this file to put text in
  8. .\" italic or bold, and that their effect when producing cmds.doc is to
  9. .\" enclose the relevant text within quotes.  Do not use any other means of
  10. .\" italicising or emboldening in this file.
  11. .
  12. .dc "abort-char" "(variable)"
  13. This variable defines \s-2JOVE'S\s0'S abort character.  When JOVE
  14. reads this character from the keyboard, it stops what it is doing
  15. (unless the character is quoted in some way).  Unfortunately, JOVE
  16. won't notice the character until it reads from the keyboard.  The
  17. default value is ^G.  See also 
  18. .IQ interrupt-character .
  19. .dc "add-lisp-special" "Not Bound"
  20. This command is to tell \s-2JOVE\s0 what identifiers require special
  21. indentation in lisp mode.  Lisp functions like
  22. .IQ defun
  23. and
  24. .IQ let
  25. are two of
  26. the default functions that get treated specially.  This is just a kludge
  27. to define some of your own.  It prompts for the function name.
  28. .dc "allow-^S-and-^Q" "(variable)"
  29. This variable, when set, tells \s-2JOVE\s0 that your terminal will not need
  30. to use the characters ^S and ^Q for flow control, in which case \s-2JOVE\s0
  31. will instruct the system's tty driver to pass them through as normal
  32. characters.  Otherwise, if the tty driver was already using these characters
  33. for flow control, it will continue to do so.  Certain terminals and
  34. communications systems require that this variable be set
  35. .IQ off ;
  36. in other circumstances it is better set
  37. .IQ on .
  38. .dc "allow-bad-characters-in-filenames" "(variable)"
  39. If set, this variable permits the creation of filenames which contain
  40. \*Qbad\*U characters
  41. such as those from the set \(**&%!"`[]{}.  These files are harder to deal
  42. with, because the characters mean something to the shell.  The default
  43. value is
  44. .IQ off .
  45. .dc "allow-bad-filenames" "(variable)"
  46. This is the obsolete name for
  47. .IQ allow-bad-characters-in-filenames .
  48. .dc "append-region" "Not Bound"
  49. This appends the region to a specified file.  If the file does not
  50. already exist it is created.
  51. .dc "apropos" "Not Bound"
  52. This types out each command, variable and macro with the specified
  53. string in its name (\*Q?\*U matches every name).
  54. For each command and macro that contains the
  55. string, the key sequence that can be used to execute the command or macro is
  56. printed; with variables, the current value is printed.  So, to find all the
  57. commands that are related to windows, you type
  58. .DS
  59. : apropos window<Return> .
  60. .DE
  61. .dc "auto-case-abbrev" "(variable)"
  62. When this variable is
  63. .IQ on
  64. (the default), word abbreviations are adjusted for
  65. case automatically.  If the abbreviation is typed with no uppercase letter,
  66. the expansion is not changed; if it is typed with one or more uppercase letters,
  67. the first character in the expansion is capitalized;
  68. additionally, if the abbreviation is typed with more than one uppercase letter,
  69. each letter in the expansion immediately preceded by whitespace or \-
  70. is capitalized.
  71. For example, if \*Qjove\*U were the abbreviation for
  72. \*Qjonathan's own version of EMACS\*U, the following table shows how the
  73. abbreviation would be expanded.
  74. .DS I
  75. .ta \w'JOVE111'u
  76. jove    jonathan's own version of EMACS
  77. Jove    Jonathan's own version of EMACS
  78. JOVE    Jonathan's Own Version Of EMACS
  79. JoVe    Jonathan's Own Version Of EMACS
  80. .DE
  81. When this variable is
  82. .IQ off ,
  83. upper and lower case are
  84. distinguished when looking for the abbreviation, i.e., in the example above,
  85. \*QJOVE\*U and \*QJove\*U would not be expanded unless they were defined separately.
  86. See also the
  87. .IQ word-abbrev-mode
  88. command.
  89. .dc "auto-execute-command" "Not Bound"
  90. This tells \s-2JOVE\s0 to execute a command automatically when a file whose
  91. name matches a specified pattern is read.  The first argument is the
  92. command you wish to have executed.
  93. The second argument is the pattern, a regular expression
  94. that is matched against the start of the file name.
  95. If you wish to match a suffix, start the pattern with \*Q.\(**\*U;
  96. to match every file, use that as the whole pattern.
  97. Any numeric argument
  98. will be passed on to the command when it is executed (this is
  99. useful when combined with commands that adjust a minor mode).
  100. For example, if you want
  101. to be in
  102. .IQ show-match-mode
  103. when you edit C source files (that is, files
  104. that end with
  105. .BQ .c
  106. or
  107. .BQ .h )
  108. you can type
  109. .DS
  110. : auto-execute-command show-match-mode .\(**\^\e\^.[ch]$
  111. .DE
  112. Actually, this command toggles the Show Match minor mode,
  113. but since it is initially off, it will have the desired effect.  For
  114. more certain control, give the
  115. .IQ auto-execute-command
  116. a non-zero numeric
  117. argument: this will be passed on to the
  118. .IQ show-match-mode .
  119. .dc "auto-execute-macro" "Not Bound"
  120. This is like
  121. .IQ auto-execute-command
  122. except you use it to execute macros
  123. automatically instead of built-in commands.
  124. .dc "auto-fill-mode" "Not Bound"
  125. This turns on or off the Auto Fill minor mode in the selected buffer.
  126. Without a numeric argument, the command toggles the mode; with a
  127. zero argument, the mode is turned off; with a non-zero argument,
  128. the mode is turned on.  When \s-2JOVE\s0 is in Auto Fill mode it
  129. automatically breaks lines for you when you reach the right margin
  130. so you don't have to remember to hit Return.  \s-2JOVE\s0 uses 78 as
  131. the right margin but you can change that by setting the variable
  132. .IQ right-margin
  133. to another
  134. value.
  135. .dc "auto-indent-mode" "Not Bound"
  136. This turns on or off Auto Indent minor mode in the selected buffer.
  137. Without a numeric argument, the command toggles the mode; with a
  138. zero argument, the mode is turned off; with a non-zero argument,
  139. the mode is turned on.  When \s-2JOVE\s0 is in Auto Indent mode,
  140. the
  141. .IQ newline
  142. command (which is normally bound to Return) acts identically to
  143. .IQ newline-and-indent :
  144. the new line is indented to the same position as the line you
  145. were just on.  This is useful for lining up C code (or any other
  146. language (but what else is there besides C?)).
  147. Furthermore, if a line is broken because of Auto Fill mode, and
  148. Auto Indent mode is on, the new line will be indented as the old line was.
  149. .dc "backward-character" "^B"
  150. This moves point backward over a single character or line-separator.
  151. Thus if point is at the
  152. beginning of the line it moves to the end of the previous line.
  153. .dc "backward-list" "ESC\ ^P"
  154. This moves point backward over a list, which is any text between properly
  155. matching (\^...\^), [\^...\^] or {\^...\^}.
  156. It first searches backward for a \*Q)\*U and then moves to the matching \*Q(\*U.
  157. This is useful when you are trying to find unmatched parentheses in a program.
  158. Arguments are accepted, and negative arguments search forwards.
  159. See also
  160. .IQ backward-s-expression .
  161. .dc "backward-paragraph" "Usually Not Bound"
  162. This moves point backward to the beginning of the current or previous
  163. paragraph.  Paragraphs are bounded by lines that match
  164. .IQ paragraph-delimiter-pattern
  165. (by default, those that are empty or look like troff or TeX commands).
  166. A change in indentation may also signal a break
  167. between paragraphs, except that \s-2JOVE\s0 allows the first line of a
  168. paragraph to be indented differently from the other lines.
  169. Arguments are accepted, and negative arguments search forwards.
  170. .dc "backward-s-expression" "ESC\ ^B"
  171. This moves point backward over an s-expression, that is over a Lisp atom or
  172. a C identifier (depending on the major mode) ignoring punctuation and
  173. whitespace; or, if the nearest preceding significant character is one of
  174. \*Q)]}\*U, over a list as in
  175. .IQ backward-list .
  176. Arguments are accepted, and negative arguments search forwards.
  177. .dc "backward-sentence" "ESC\ A"
  178. This moves point backward to the beginning of the current or previous
  179. sentence.  \s-2JOVE\s0 considers the end of a sentence to be the characters
  180. \*Q.\*U, \*Q!\*U or \*Q?\*U followed by a Return or by one or more spaces.
  181. Arguments are accepted, and negative arguments search forwards.
  182. .dc "backward-up-list" "ESC\ ^U"
  183. This is similar to
  184. .IQ backward-list
  185. except it backs up and OUT of the enclosing list.  In other
  186. words, it moves backward to whichever of \*Q([{\*U would match one of
  187. \*Q)]}\*U if you were to type it right then.
  188. Arguments are accepted, and negative arguments search forwards as in
  189. .IQ down-list .
  190. .dc "backward-word" "ESC\ B"
  191. This moves point backward to the beginning of the current or previous
  192. word.
  193. Arguments are accepted, and negative arguments search forwards.
  194. .dc "bad-filename-extensions" "(variable)"
  195. This contains a list of words separated by spaces which are to be
  196. considered bad filename extensions, and so will not be included in
  197. filename completion.  The default contains, amongst much else,
  198. .BQ .o
  199. so if you have
  200. .BQ jove.c
  201. and
  202. .BQ jove.o
  203. in the same directory, the filename completion will not complain
  204. of an ambiguity because it will ignore
  205. .BQ jove.o .
  206. .dc "begin-kbd-macro" "^X\ ("
  207. This starts defining the keyboard macro by remembering all your key
  208. strokes until you execute
  209. .IQ end-kbd-macro ,
  210. by typing \*Q^X\ )\*U.  Because of a bug in \s-2JOVE\s0 you shouldn't
  211. terminate the macro by typing \*QESC\ X end-kbd-macro\*U;
  212. .IQ end-kbd-macro
  213. must be bound to \*Q^X\ )\*U in order to make things work correctly.
  214. The
  215. .IQ execute-kbd-macro
  216. command will execute the remembered key strokes.
  217. Sometimes you may want a macro to accept different input each time it runs.
  218. To see how to do this, see the
  219. .IQ make-macro-interactive
  220. command.
  221. .dc "beginning-of-file" "ESC\ <"
  222. This moves point backward to the beginning of the buffer.  This sometimes
  223. prints the \*Q[Point pushed]\*U message to indicate that
  224. \s-2JOVE\s0 has set the mark so you can go back to where you were
  225. if you want.
  226. See also the variable
  227. .IQ mark-threshold .
  228. .dc "beginning-of-line" "^A"
  229. This moves point to the beginning of the current line.
  230. .dc "beginning-of-window" "ESC\ ,"
  231. This moves point to the beginning of the active window.  If there
  232. is a numeric argument, point moves that many lines below the top
  233. line.  With the default bindings, the sequence \*QESC\ ,\*U is the same as
  234. \*QESC\ <\*U (\c
  235. .IQ beginning-of-file )
  236. but without the shift key on the \*Q<\*U,
  237. and can thus easily be remembered.
  238. .dc "bind-keymap-to-key" "Not Bound"
  239. This is like
  240. .IQ bind-to-key
  241. except that you use it to attach a key sequence to a named keymap.
  242. The only reasonable use is to bind some extra key to
  243. .IQ ESC-map
  244. for keyboards that make typing ESC painful.
  245. .dc "bind-macro-to-key" "Not Bound"
  246. This is like
  247. .IQ bind-to-key
  248. except you use it to attach a key sequence to a named macro.
  249. .dc "bind-macro-to-word-abbrev" "Not Bound"
  250. This command allows you to bind a macro to a previously defined word
  251. abbreviation.  Whenever you type the abbreviation, it will first be
  252. expanded as an abbreviation (which could be empty, of course), and then
  253. the macro will be executed.
  254. Note that if the macro moves point around, you should first
  255. .IQ set-mark
  256. and then
  257. .IQ exchange-point-and-mark .
  258. .dc "bind-to-key" "Not Bound"
  259. This attaches a key sequence to an internal \s-2JOVE\s0 command so
  260. that future hits on that key sequence invoke that command.  This is
  261. called a global binding, as compared to local bindings and process
  262. bindings.  Any previous global binding of this key sequence is
  263. discarded.  For example, to make \*Q^W\*U erase the previous word, you
  264. type
  265. .DS
  266. : bind-to-key kill-previous-word ^W .
  267. .DE
  268. It isn't possible to have two globally bound key sequences where one
  269. is a prefix of the other: \s-2JOVE\s0 wouldn't know whether to obey
  270. the shorter sequence or wait for the longer sequence.  Normally, when
  271. the
  272. .IQ bind-to-key
  273. command is issued interactively, the key sequence is taken to end
  274. one keystroke after the longest sequence matching any proper prefix
  275. of another binding (thus no new prefix can be created).  If the command
  276. is given a numeric argument, the key sequence is taken up to the
  277. next Return keystroke (kludge!); bindings to any prefix of the
  278. sequence are discarded.  When the command is issued from a
  279. .IQ source d
  280. file, the
  281. key sequence is taken up to the end of the line (it is also
  282. processed so that control characters can and should be entered using
  283. the ^A notation).
  284.  
  285. Note that neither process nor local bindings are changed by
  286. this command, although they can be eclipsed.  Given a choice between
  287. bindings, the shortest is executed; if there is still a choice,
  288. a process binding is preferred to a local binding, and a local
  289. binding is preferred to a global binding.
  290. .dc "buffer-position" "Not Bound"
  291. This displays the current file name, current line number, total number
  292. of lines, current character number, total number of characters,
  293. percentage of the way through the file, and the position of
  294. the cursor in the current line.
  295. .dc "c-argument-indentation" "(variable)"
  296. This variable describes how to indent lines which are part of nested
  297. expressions in C.  The default is \-1, which means to indent a continued
  298. line by lining it up with the first argument of the current expression.
  299. Otherwise, the line will be indented by
  300. .IQ c-argument-indentation
  301. characters
  302. past the indent of the first line of the expression.  For example, the
  303. default value produces:
  304. .nr TY \w'Typeout('
  305. .nf
  306.  
  307.         Typeout(fmt, itoa(bcount++), line_cnt(b, nbuf),
  308.         \h'\n(TYu'TypeNames[b->b_type],
  309.         \h'\n(TYu'IsModified(b) ? "\(**" : b->b_ntbf ? "+" : NullStr,
  310.         \h'\n(TYu'buf_width, b->b_name, filename(b));
  311. .fi
  312. .dc "c-indentation-increment" "(variable)"
  313. This defines a set of tabstops independent of the value of
  314. .IQ tab-width .
  315. This value will be used in C
  316. mode, and \s-2JOVE\s0 will insert the correct number of Spaces and Tabs to
  317. get the right behavior.  For programmers that like to indent with 4 spaces,
  318. set this value to 4.  Some people prefer to set this to 4 and leave
  319. tab-width set to 8.  This will create files whose indentation steps in
  320. 4-space increments, and which look the same anywhere that tabs are expanded
  321. to 8 spaces (i.e. in most settings).  Others prefer to have one tab
  322. character per indentation level, then fiddle the tab expansion width to get
  323. the appearance they like.  They should set both
  324. .IQ c-indentation-increment
  325. and
  326. .IQ tab-width
  327. to 4.  Whenever using a non-standard tab width
  328. (\c
  329. .IQ tab-width )
  330. you should only use tabs for indentation, and use
  331. spaces for all columnar alignment later in the lines.
  332. .dc "c-mode" "Not Bound"
  333. This turns on the C major mode in the currently selected buffer.
  334. When in C or Lisp mode, Tab, \*Q}\*U, and \*Q)\*U behave a little differently
  335. from usual: They are indented to the \*Qright\*U place for C (or Lisp)
  336. programs.  In \s-2JOVE\s0, the \*Qright\*U place is simply the way the author
  337. likes it (but I've got good taste).
  338. .dc "case-character-capitalize" "Not Bound"
  339. This capitalizes the character after point, i.e., the character under
  340. the cursor.  If a negative argument is supplied that many characters
  341. before point are upper cased.
  342. .dc "case-ignore-search" "(variable)"
  343. This variable, when
  344. .IQ on ,
  345. tells \s-2JOVE\s0 to treat upper and lower case
  346. the same when searching.  Thus \*Qjove\*U would match \*QJOVE\*U, and
  347. \*QJoVe\*U would match either.  The default value of this variable is
  348. .IQ off .
  349. .dc "case-region-lower" "Not Bound"
  350. This changes all the upper case letters in the region to their lower
  351. case equivalents.
  352. .dc "case-region-upper" "Not Bound"
  353. This changes all the lower case letters in the region to their upper
  354. case equivalents.
  355. .dc "case-word-capitalize" "ESC\ C"
  356. This capitalizes the current word by making the current letter upper
  357. case and making the rest of the word lower case.  Point is moved to
  358. the end of the word.  If point is not positioned on a word it is first
  359. moved forward to the beginning of the next word.  If a negative
  360. argument is supplied that many words
  361. before point are capitalized.
  362. This is useful for correcting the word just typed without having to
  363. move point to the beginning of the word yourself.
  364. .dc "case-word-lower" "ESC\ L"
  365. This lower-cases the current word and leaves point at the end of it.
  366. If point is in the middle of a word the rest of the word is
  367. converted.  If point is not in a word it is first moved forward to the
  368. beginning of the next word.  If a negative argument is supplied that
  369. many words before
  370. point are converted to lower case.  This is useful
  371. for correcting the word just typed without having to move point to the
  372. beginning of the word yourself.
  373. .dc "case-word-upper" "ESC\ U"
  374. This upper-cases the current word and leaves point at the end of it.
  375. If point is in the middle of a word the rest of the word is
  376. converted.  If point is not in a word it is first moved forward to the
  377. beginning of the next word.  If a negative argument is supplied that
  378. many words before
  379. point are converted to upper case.  This is useful
  380. for correcting the word just typed without having to move point to the
  381. beginning of the word yourself.
  382. .dc "cd" "Not Bound"
  383. This changes the current directory.
  384. .dc "character-to-octal-insert" "Not Bound"
  385. This inserts a Back-slash followed by the ascii value of the next
  386. character typed.  For example, \*Q^G\*U inserts the string \*Q\^\e\^007\*U.
  387. .dc "clear-and-redraw" "ESC\ ^L"
  388. This clears the entire screen and redraws all the windows.  Use this
  389. when \s-2JOVE\s0 gets confused about what's on the screen, or when the screen
  390. gets filled with garbage characters or output from another program.
  391. .dc "comment-format" "(variable)"
  392. This variable tells \s-2JOVE\s0 how to format your comments when you run the
  393. command
  394. .IQ fill-comment .
  395. Its format is this:
  396. .ID
  397. <open pattern>%!<line header>%c<line trailer>%!<close pattern>
  398. .DE
  399. The %!, %c, and %! must appear in the format; everything else is optional.
  400. A newline (represented by %n) may appear in the open or close patterns.  %%
  401. is the representation for %.  The default comment format is for C comments.
  402. See
  403. .IQ fill-comment
  404. for more details.
  405. .dc "compile-it" "^X\ ^E"
  406. This compiles your program by running the
  407. .UX
  408. command
  409. .IQ make
  410. into a buffer,
  411. and automatically parsing the error messages that are created (if any).  See
  412. the
  413. .IQ parse-errors
  414. command.
  415. If
  416. .IQ compile-it
  417. is given a numeric argument, it will prompt for a command to run in
  418. place of the plain make and the command you enter will become the new
  419. default.  See also
  420. .IQ error-format-string
  421. which makes it possible to parse errors of a different format and
  422. see also the variable
  423. .IQ error-window-size .
  424. .dc "continue-process" "Not Bound"
  425. This sends the signal SIGCONT to the interactive process in the current
  426. buffer, IF the process is currently stopped.
  427. .dc "copy-region" "ESC\ W"
  428. This takes all the text in the region and copies it onto the kill ring
  429. buffer.  This is just like running
  430. .IQ kill-region
  431. followed by the
  432. .IQ yank
  433. command.  See the
  434. .IQ kill-region
  435. and
  436. .IQ yank
  437. commands.
  438. .dc "current-error" "Not Bound"
  439. This moves to the current error in the list of parsed errors.  See the
  440. .IQ next-error
  441. and
  442. .IQ previous-error
  443. commands for more detailed
  444. information.
  445. .dc "date" "Not Bound"
  446. This prints the date on the message line.
  447. .dc "dbx-format-string" "(variable)"
  448. This is the default regular-expression search string used by \s-2JOVE\s0 to
  449. parse output from
  450. .IQ dbx
  451. running in a shell process (see the
  452. .IQ process-dbx-output
  453. command).  You shouldn't have to change
  454. this unless you are using
  455. .IQ gdb
  456. or some other symbolic debugger.
  457. .dc "define-global-word-abbrev" "Not Bound"
  458. This defines a global abbreviation.
  459. See the
  460. .IQ word-abbrev-mode
  461. command.
  462. .dc "define-macro" "Not Bound"
  463. This provides a different mechanism for defining keyboard macros.
  464. Instead of gathering keystrokes and storing them into the
  465. \*Qkeyboard-macro\*U (which is how
  466. .IQ begin-kbd-macro
  467. works),
  468. .IQ define-macro
  469. prompts for a macro name (terminated with Space, or Newline) and then for
  470. the actual macro body.  If you wish to specify control characters in the
  471. macro, you may simply insert them (using the
  472. .IQ quoted-insert
  473. command) or by inserting the character '^' followed by the appropriate
  474. letter for that character (e.g., ^A would be the two characters '^'
  475. followed by 'A').  You may use Back-slash to prevent the '^' from being
  476. interpreted as part of a control character when you really wish to insert
  477. one (e.g., a macro body \*Q\^\e\^^foo\*U would insert the string \*Q^foo\*U into the
  478. buffer, whereas the body \*Q^foo\*U would be the same as typing ^F and then
  479. inserting the string \*Qoo\*U).  See
  480. .IQ write-macros-to-file
  481. to see how to save macros.
  482. .dc "define-mode-word-abbrev" "Not Bound"
  483. This defines a mode-specific abbreviation.
  484. See the
  485. .IQ word-abbrev-mode
  486. command.
  487. .dc "delete-blank-lines" "^X\ ^O"
  488. This deletes all the blank lines around point.  This is useful when you
  489. previously opened many lines with the
  490. .IQ newline-and-backup
  491. command and now wish to delete the unused ones.
  492. .dc "delete-buffer" "^X\ K"
  493. This deletes a buffer and frees up all the memory associated with it.  Be
  494. careful(!) - once a buffer has been deleted it is gone forever.  \s-2JOVE\s0
  495. will ask you to confirm if you try to delete a buffer that needs saving.
  496. This command is useful for when \s-2JOVE\s0 runs out of space to store
  497. new buffers.
  498. See also the
  499. .IQ erase-buffer
  500. command and the
  501. .IQ kill-some-buffers
  502. command.
  503. .dc "delete-current-window" "^X\ D)"
  504. This deletes the active window and moves point into one of the
  505. remaining ones.  It is an error to try to delete the only remaining
  506. window.
  507. .dc "delete-next-character" "^D"
  508. This deletes the character that's just after point (that is, the
  509. character under the cursor).  If point is at the end of a line, the
  510. line-separator is deleted and the next line is joined with the current
  511. one.
  512. If an argument is given, that many characters are deleted and placed on the
  513. kill ring.  If the argument is negative the deletion is forwards.
  514. .dc "delete-other-windows" "^X\ 1"
  515. This deletes all the other windows except the current one.  This can be
  516. thought of as going back into One Window mode.
  517. .dc "delete-previous-character" "DEL and ^H"
  518. This deletes the character that's just before point (that is, the
  519. character before the cursor).  If point is at the beginning of the
  520. line, the line separator is deleted and that line is joined with the
  521. previous one.
  522. If an argument is given, that many characters are deleted and placed on the
  523. kill ring.  If the argument is negative the deletion is backwards.
  524. .dc "delete-white-space" "ESC\ \e\^"
  525. This deletes all the Tabs and Spaces around point.
  526. .dc "describe-bindings" "Not Bound"
  527. This types out a list containing each bound key and the command that gets
  528. invoked every time that key is typed.  To make a wall chart of \s-2JOVE\s0
  529. commands, set
  530. .IQ send-typeout-to-buffer
  531. to
  532. .IQ on
  533. and \s-2JOVE\s0 will
  534. store the key bindings in a buffer which you can save to a file and then
  535. print.
  536. .dc "describe-command" "ESC\ ?"
  537. This waits for you to type a command and then prints an explanation of that
  538. command, together with its current bindings.
  539. .dc "describe-key" "^X\ ?"
  540. This waits for you to type a key and then tells the name of the
  541. command that gets invoked every time that key is hit.  Once you have
  542. the name of the command you can use the
  543. .IQ describe-command
  544. command
  545. to find out exactly what it does.
  546. .dc "describe-variable" "Not Bound"
  547. This prints an explanation of a specified variable.
  548. .dc "digit" "ESC\ 0 through ESC\ 9"
  549. Starts or continues the entry of a numeric argument with the digit typed.
  550. It continues reading digits until you type some other command.
  551. Then that command is executed with the numeric argument you specified.
  552. .dc "digit-0" "Not Bound"
  553. Starts or continues the entry of a numeric argument with the digit 0.
  554. It continues reading digits until you type some other command.
  555. Then that command is executed with the numeric argument you specified.
  556. Sometimes it is handy to bind this to the 0 key on the numeric keypad.
  557. .dc "digit-1" "Not Bound"
  558. Starts or continues the entry of a numeric argument with the digit 1.
  559. It continues reading digits until you type some other command.
  560. Then that command is executed with the numeric argument you specified.
  561. Sometimes it is handy to bind this to the 1 key on the numeric keypad.
  562. .dc "digit-2" "Not Bound"
  563. Starts or continues the entry of a numeric argument with the digit 2.
  564. It continues reading digits until you type some other command.
  565. Then that command is executed with the numeric argument you specified.
  566. Sometimes it is handy to bind this to the 2 key on the numeric keypad.
  567. .dc "digit-3" "Not Bound"
  568. Starts or continues the entry of a numeric argument with the digit 3.
  569. It continues reading digits until you type some other command.
  570. Then that command is executed with the numeric argument you specified.
  571. Sometimes it is handy to bind this to the 3 key on the numeric keypad.
  572. .dc "digit-4" "Not Bound"
  573. Starts or continues the entry of a numeric argument with the digit 4.
  574. It continues reading digits until you type some other command.
  575. Then that command is executed with the numeric argument you specified.
  576. Sometimes it is handy to bind this to the 4 key on the numeric keypad.
  577. .dc "digit-5" "Not Bound"
  578. Starts or continues the entry of a numeric argument with the digit 5.
  579. It continues reading digits until you type some other command.
  580. Then that command is executed with the numeric argument you specified.
  581. Sometimes it is handy to bind this to the 5 key on the numeric keypad.
  582. .dc "digit-6" "Not Bound"
  583. Starts or continues the entry of a numeric argument with the digit 6.
  584. It continues reading digits until you type some other command.
  585. Then that command is executed with the numeric argument you specified.
  586. Sometimes it is handy to bind this to the 6 key on the numeric keypad.
  587. .dc "digit-7" "Not Bound"
  588. Starts or continues the entry of a numeric argument with the digit 7.
  589. It continues reading digits until you type some other command.
  590. Then that command is executed with the numeric argument you specified.
  591. Sometimes it is handy to bind this to the 7 key on the numeric keypad.
  592. .dc "digit-8" "Not Bound"
  593. Starts or continues the entry of a numeric argument with the digit 8.
  594. It continues reading digits until you type some other command.
  595. Then that command is executed with the numeric argument you specified.
  596. Sometimes it is handy to bind this to the 8 key on the numeric keypad.
  597. .dc "digit-9" "Not Bound"
  598. Starts or continues the entry of a numeric argument with the digit 9.
  599. It continues reading digits until you type some other command.
  600. Then that command is executed with the numeric argument you specified.
  601. Sometimes it is handy to bind this to the 9 key on the numeric keypad.
  602. .dc "digit-minus" "ESC\ \-"
  603. Starts the entry of a numeric argument with a minus sign.
  604. It continues reading digits until you type some other command.
  605. Then that command is executed with the numeric argument you specified.
  606. Sometimes it is handy to bind this to the \- key on a numeric keypad.
  607. In the absence of further digits and unless otherwise stated (e.g.
  608. .IQ next-page "),"
  609. the argument \-1 is assumed.
  610. .dc "dirs" "Not Bound"
  611. This prints out the directory stack.  See the
  612. .IQ cd ,
  613. .IQ pushd ,
  614. .IQ pushlibd
  615. and
  616. .IQ popd
  617. commands for more information.
  618. .dc "disable-biff" "(variable)"
  619. When this is set, \s-2JOVE\s0 disables biff when you're editing and enables it
  620. again when you get out of \s-2JOVE\s0, or when you pause to the parent shell
  621. or push to a new shell.  (This means arrival of new mail will not be
  622. immediately apparent but will not cause indiscriminate writing on the
  623. display).  The default is
  624. .IQ off ,
  625. although it is always safe to set it
  626. .IQ on ,
  627. even on systems that do not provide the biff facility.  Note that
  628. the variable
  629. .IQ mode-line
  630. can be set up to announce the arrival of new
  631. mail during a \s-2JOVE\s0 session.
  632. .dc "display-bad-filenames" "(variable)"
  633. This is the obsolete name for
  634. .IQ display-filenames-with-bad-extensions .
  635. .dc "display-filenames-with-bad-extensions" "(variable)"
  636. This variable affects only filename completion, in particular, what
  637. happens when \*Q?\*U is typed while prompting for a file.  When this variable
  638. is
  639. .IQ on ,
  640. any files that end with one of the extensions defined by the
  641. variable
  642. .IQ bad-filename-extensions
  643. will be displayed with an \*Q!\*U in front of their names.  When
  644. .IQ display-filenames-with-bad-extensions
  645. is
  646. .IQ off
  647. the files will not be displayed at all.  The default value
  648. is
  649. .IQ on .
  650. .dc "down-list" "ESC\ ^D"
  651. This is the opposite of
  652. .IQ backward-up-list .
  653. It enters the next list.  In other
  654. words, it moves forward to whichever of \*Q([{\*U it first encounters.
  655. Arguments are accepted, and negative arguments search backwards as in
  656. .IQ backward-up-list .
  657. .dc "dstop-process" "Proc: ^C\ ^Y"
  658. Send the signal SIGTSTP to the interactive process in the selected buffer when
  659. next it tries to read input.  This is equivalent to sending the \*Qdsusp\*U
  660. character (which most people have set to ^Y) to the process.
  661. This only works if you are in a buffer bound to an interactive process.
  662. .dc "edit-word-abbrevs" "Not Bound"
  663. This creates (if necessary) a buffer with a list of each abbreviation and
  664. the phrase
  665. it expands into, and enters a recursive edit to let you change the
  666. abbreviations or add some more.  The format of this list is
  667. \*Qabbreviation:phrase\*U so if you add some more you should follow that
  668. format.  It's probably simplest just to copy some already existing
  669. abbreviations and edit them.  Use the
  670. .IQ exit-jove
  671. command to exit the recursive edit.
  672. .dc "end-kbd-macro" "^X\ )"
  673. This stops the definition of the keyboard macro.  Because of a bug in
  674. \s-2JOVE\s0, this must be bound to \*Q^X\ )\*U, or some key sequence which is
  675. one or two characters long.  Anything else will not work properly.
  676. See
  677. .IQ begin-kbd-macro
  678. for more details.
  679. .dc "end-of-file" "ESC\ >"
  680. This moves point forward to the end of the buffer.  This sometimes
  681. prints the \*Q[Point pushed]\*U message to indicate that
  682. \s-2JOVE\s0 has set the mark so you can go back to where you were
  683. if you want.
  684. See also the variable
  685. .IQ mark-threshold .
  686. .dc "end-of-line" "^E"
  687. This moves point to the end of the current line.  If the line is too
  688. long to fit on the screen, it will be scrolled horizontally.
  689. This is described with the variables
  690. .IQ scroll-width
  691. and
  692. .IQ scroll-all-lines .
  693. .dc "end-of-window" "ESC\ ."
  694. This moves point to the last character in the active window.  If there is a
  695. numeric argument, the point moves that many lines above the bottom
  696. line.  With the default bindings, the sequence \*QESC\ .\*U is the same as
  697. \*QESC\ >\*U (\c
  698. .IQ beginning-of-file )
  699. but without the shift key on the \*Q>\*U,
  700. and can thus easily be remembered.
  701. .dc "enhanced-keyboard" "(variable)"
  702. (IBM PC version only) This is a boolean variable which can be set to
  703. enable the enhanced AT-style keyboard.  The enhanced keyboard contains
  704. function keys and key combinations that are not supported on the
  705. original IBM PCs and XTs.  The default value is determined by a bit in
  706. the BIOS data area, but this method apparently does not work with a
  707. few BIOS implementations.  WARNING: setting enhanced-keyboard
  708. .IQ on
  709. on systems without an enhanced keyboard will lock up your
  710. system and require you to reboot.
  711. .dc "eof-process" "^C\ ^D"
  712. Sends EOF to the current interactive process.  This only works on
  713. versions of \s-2JOVE\s0 running under versions of
  714. .UX
  715. with pty's.
  716. .dc "erase-buffer" "Not Bound"
  717. This erases the contents of the specified buffer.  This is like
  718. .IQ delete-buffer
  719. except it only erases the contents of the buffer, not
  720. the buffer itself.  If you try to erase a buffer that needs saving you
  721. will be asked to confirm it.
  722. .dc "error-format-string" "(variable)"
  723. This is the error format string that is used by
  724. .IQ parse-errors
  725. to find the error messages in a buffer.  The way it works is by using
  726. this string as a \s-2JOVE\s0 regular expression search string, where the
  727. \e\^(\^...\^\e) regular expression feature is used to pick out the
  728. file name and line number from the line containing an error message.  For
  729. instance, a typical error message might look like this:
  730. .sp 1
  731.     "file.c", line 540: missing semi-colon
  732. .sp 1
  733. For strings of this format, an appropriate value for
  734. .IQ error-format-string
  735. would be something like this:
  736. .sp 1
  737.     ^"\^\e\^([^"]\(**\^\e)", line \e\^([0-9]\(**\^\e):
  738. .sp 1
  739. What this means is, to find an error message, search for a line beginning
  740. with a double-quote.  Then it says that all the following characters up
  741. to another double-quote should be remembered as one unit, namely the
  742. filename that the error is in (that is why the first set of parentheses is
  743. surrounding it).  Then it says that after the filename there will be the
  744. string \*Q, line \*U followed by a line number, which should be remembered as
  745. a single unit (which is why the second set of parentheses is around that).
  746. The only constraint on the error messages is that the file name and line
  747. number appear on the same line.  Most compilers seem to do this anyway, so
  748. this is not an unreasonable restriction.
  749. .sp 1
  750. If you do not know how to use regular expressions then this variable will
  751. be hard for you to use.  Also note that you can look at the default
  752. value of this variable by printing it out, but it is a really complicated
  753. string because it is trying to accommodate the outputs of more than one
  754. compiler.
  755. .dc "error-window-size" "(variable)"
  756. This is the percentage of the screen to use for the error-window on the
  757. screen.  When you execute
  758. .IQ compile-it
  759. or
  760. .IQ spell-buffer ,
  761. .IQ error-window-size
  762. percent of the screen will go to the error window.  If the window already
  763. exists and is a different size, it is made to be this size.  The default
  764. value is 20%.
  765. .dc "exchange-point-and-mark" "^X\ ^X"
  766. This moves point to mark and makes mark the old point.  This is for
  767. quickly moving from one end of the region to the other.
  768. .dc "execute-kbd-macro" "^X\ E"
  769. This executes the keyboard macro.  If you supply a numeric argument the
  770. macro is executed that many times.
  771. See the
  772. .IQ begin-kbd-macro
  773. command for more details.
  774. .dc "execute-macro" "Not Bound"
  775. This executes a specified macro.  If you supply a numeric argument the
  776. macro is executed that many times.
  777. .dc "execute-named-command" "ESC\ X"
  778. This is the way to execute a command that isn't bound to any key.  When you
  779. are prompted with \*Q:\ \*U you can type the name of the command.  You don't
  780. have to type the entire name.  After typing a few characters, Tab will fill
  781. in as many more as it can (as will Space, but that will also obey the
  782. command if it is now unambiguous).  If you are not sure of the name of the
  783. command, type \*Q?\*U and \s-2JOVE\s0 will print a list of all the commands
  784. that you could possibly match given what you've already typed.  Once the
  785. command is unambiguous, typing Return will cause it to be obeyed.
  786.  
  787. If you don't have any idea what the command's name
  788. is but you know it has something to do with windows (for example), you
  789. can do \*QESC\ X apropos window\*U and \s-2JOVE\s0 will print a list of all
  790. the commands that are related to windows.  If you find yourself
  791. constantly executing the same commands this way you probably want to bind
  792. them to keys so that you can execute them more quickly.  See the
  793. .IQ bind-to-key
  794. command.
  795. .dc "exit-jove" "^X\ ^C"
  796. This exits \s-2JOVE\s0.  If any buffers need saving \s-2JOVE\s0 will print a warning
  797. message and ask for confirmation.  If you leave without saving your
  798. buffers all your work will be lost.  If you made a mistake and really
  799. do want to exit then you can.
  800. If there are any interactive processes running, \s-2JOVE\s0 will also ask
  801. whether they should be terminated.
  802.  
  803. If you are in a recursive editing level
  804. .IQ exit-jove
  805. will return you from that.  The selected buffer will be set back to
  806. the buffer that was current when the recursive edit was entered.
  807. Normally, point will be returned to its position at the time of
  808. entry, but if the
  809. .IQ exit-jove
  810. command is given a numeric argument,
  811. point is left at its most recent position within that buffer.
  812. .dc "expand-environment-variables" "(variable)"
  813. When this variable is
  814. .IQ on
  815. \s-2JOVE\s0 will try to expand any strings of the form
  816. \*Q$var\*U into the value of the environment variable \*Qvar\*U when asking for
  817. a filename.  For example, if you type
  818. .BQ $HOME/.joverc ,
  819. \*Q$HOME\*U will be
  820. replaced with your home directory.  The default value is
  821. .IQ on .
  822. .dc "file-creation-mode" "(variable)"
  823. This variable has an octal value.  It contains the mode (see
  824. .IQ chmod (1))
  825. with which files should be created.  This mode gets
  826. modified by your current umask setting (see
  827. .IQ umask (1)).
  828. The default value is usually
  829. 0666 or 0644.
  830. .dc "files-should-end-with-newline" "(variable)"
  831. This variable indicates that all files should always have a newline
  832. at the end.  This is often necessary for line printers and the like.
  833. When set, if \s-2JOVE\s0 is writing a file whose last character is not a
  834. newline, it will add one automatically.
  835. The default value is
  836. .IQ on .
  837. .dc "fill-comment" "Not Bound"
  838. This command fills in your C comments to make them pretty and readable.
  839. This filling is done according the variable
  840. .IQ comment-format .
  841. .DS
  842. /\(**
  843.  \(** the default format makes comments like this.
  844.  \(**/
  845. .DE
  846. This can be changed by changing the
  847. .IQ format-comment
  848. variable.  Other languages
  849. may be supported by changing the format variable appropriately.  The
  850. formatter looks backwards from point for an open comment symbol.  If
  851. found, all indentation is done relative to the position of the first character
  852. of the open symbol.  If there is a matching close symbol, the entire
  853. comment is formatted.  If not, the region between the open symbol and point
  854. is reformatted.  The original text is saved in the kill ring; a
  855. .IQ yank-pop
  856. command will undo the formatting.
  857. .dc "fill-paragraph" "ESC\ J"
  858. This rearranges words between lines so that all the lines in the current
  859. paragraph extend as close to the right margin as possible, ensuring that
  860. none of the lines will be greater than the right margin.  The default value
  861. for
  862. .IQ right-margin
  863. is 78, but can be changed with the
  864. .IQ set
  865. and
  866. .IQ right-margin-here
  867. commands.
  868.  
  869. The rearrangement may cause an end of line to be replaced by whitespace.
  870. Normally, this whitespace is a single space character.
  871. If the variable
  872. .IQ space-sentence-2
  873. is
  874. .IQ on ,
  875. and the end of the line was apparently the end of a sentence
  876. or the line ended with a colon, two spaces will be used.
  877. However, a sentence or colon followed by a single space already within
  878. a line will not be altered.
  879.  
  880. \s-2JOVE\s0 has a complicated algorithm
  881. for determining the beginning and end of the paragraph.  In the normal case
  882. \s-2JOVE\s0 will give all the lines the same indent as they currently have,
  883. but if you wish to force a new indent you can supply a numeric argument to
  884. .IQ fill-paragraph
  885. and \s-2JOVE\s0 will indent each line to the column
  886. specified by the
  887. .IQ left-margin
  888. variable.  See also the
  889. .IQ left-margin
  890. variable and
  891. .IQ left-margin-here
  892. command.
  893. .dc "fill-region" "Not Bound"
  894. This is like
  895. .IQ fill-paragraph ,
  896. except it operates on a region instead of
  897. just a paragraph.
  898. .dc "filter-region" "Not Bound"
  899. This sends the text in the region to a
  900. .UX
  901. command, and replaces the
  902. region with the output from that command.  For example, if you are
  903. lazy and don't like to take the time to write properly indented C
  904. code, you can put the region around your C file and
  905. .IQ filter-region
  906. it through
  907. .IQ cb ,
  908. the
  909. .UX
  910. C beautifier.  If you have a file that contains
  911. a bunch of lines that need to be sorted you can do that from inside
  912. \s-2JOVE\s0 too, by filtering the region through the
  913. .UX
  914. .IQ sort
  915. command.
  916. Before output from the command replaces the region \s-2JOVE\s0 stores the old
  917. text in the kill ring.  If you are unhappy with the results a
  918. .IQ yank-pop
  919. command will get back the old text.
  920. .dc "find-file" "^X\ ^F"
  921. This reads a specified file into its own buffer and then selects that buffer.
  922. If you've already read this file into a buffer, that buffer is simply
  923. selected.  If the file doesn't yet exist, \s-2JOVE\s0 will print \*Q(New file)\*U
  924. so that you know.
  925. If possible, the buffer is named after the filename (ignoring any directory
  926. part).
  927. .dc "find-tag" "^X\ T"
  928. This finds the file that contains the specified tag.  \s-2JOVE\s0 looks up
  929. tags by default in the
  930. .BQ tags
  931. file in the current directory, as created
  932. by the
  933. .UX
  934. command
  935. .IQ ctags(1) .
  936. You can change
  937. the default tag name by setting the
  938. .IQ tag-file
  939. variable to another
  940. name.  If you specify a numeric argument to this command, you will be
  941. prompted for a tag file.  This is a good way to specify another tag file
  942. without changing the default.
  943. .dc "find-tag-at-point" "Not Bound"
  944. This finds the file that contains the tag that point is currently in.
  945. See
  946. .IQ find-tag .
  947. .dc "first-non-blank" "ESC\ M"
  948. This moves point (backwards or forwards) to the indent of the current line.
  949. .dc "forward-character" "^F"
  950. This moves point forward over a single character or line-separator.
  951. Thus if point is at the end of
  952. the line it moves to the beginning of the next one.
  953. .dc "forward-list" "ESC\ ^N"
  954. This moves point forward over a list, which is any text between properly
  955. matching (\^...\^), [\^...\^] or {\^...\^}.
  956. It first searches forward for a \*Q(\*U and then moves to the matching \*Q)\*U.
  957. This is useful when you are trying to find unmatched parentheses in a program.
  958. Arguments are accepted, and negative arguments search backwards.
  959. See also
  960. .IQ forward-s-expression .
  961. .dc "forward-paragraph" "ESC\ ]"
  962. This moves point forward to the end of the current or next paragraph.
  963. Paragraphs are bounded by lines that match
  964. .IQ paragraph-delimiter-pattern
  965. (by default, those that are empty or look like troff or TeX commands).
  966. A change in indentation may also signal a break
  967. between paragraphs, except that \s-2JOVE\s0 allows the first line of a
  968. paragraph to be indented differently from the other lines.
  969. Arguments are accepted, and negative arguments search backwards.
  970. .dc "forward-s-expression" "ESC\ ^F"
  971. This moves point forward over an s-expression, that is over a Lisp atom or
  972. a C identifier (depending on the major mode) ignoring punctuation and
  973. whitespace; or, if the nearest succeeding significant character is one of
  974. \*Q([{\*U, over a list as in
  975. .IQ forward-list .
  976. Arguments are accepted, and negative arguments search backwards.
  977. .dc "forward-sentence" "ESC\ E"
  978. This moves point forward to the end of the current or next sentence.
  979. \s-2JOVE\s0 considers the end of a sentence to be the characters \*Q.\*U, \*Q!\*U or
  980. \*Q?\*U, followed possibly by \*Q'\*U, \*Q''\*U, or \*Q"\*U, followed by a
  981. Return or whitespace.
  982. Arguments are accepted, and negative arguments search backwards.
  983. .dc "forward-word" "ESC\ F"
  984. This moves point forward to the end of the current or next word.
  985. .dc "fundamental-mode" "Not Bound"
  986. This sets the major mode to Fundamental.
  987. Fundamental mode is the mode of the Minibuf, and hence of anything typed in
  988. the message line.
  989. .dc "gather-numeric-argument" "^U"
  990. This command is one of two ways to specify a numeric argument to a
  991. command.  Typing this command once means, Do the next
  992. command 4 times.  Typing it twice will do the next command 16 times, and
  993. so on.  If at any point you type a number, then that number will be used
  994. instead of 4.  For instance, ^U 3 5 means do the next command 35 times
  995. (assuming
  996. .IQ gather-numeric-argument
  997. is bound to ^U).
  998. .dc "goto-line" "ESC\ G"
  999. If a positive numeric argument is supplied, point moves to the
  1000. beginning of that line.  If the argument is negative, it indicates
  1001. how many lines from the end of the buffer to move point to.  If no
  1002. argument is supplied one is prompted for.
  1003. .dc "goto-window-with-buffer" "Not Bound"
  1004. This command prompts for a buffer name and then selects that buffer.  If
  1005. the buffer is currently being displayed in one of the windows, that
  1006. window is selected instead.
  1007. .dc "grind-s-expr" "Not Bound"
  1008. When point is positioned on a \*Q(\*U, this re-indents that LISP expression.
  1009. .dc "grow-window" "^X\ ^\^"
  1010. This makes the active window one line bigger.  This only works when
  1011. there is more than one window and provided there is room to change the
  1012. size.
  1013. See also
  1014. .IQ shrink-window .
  1015. .dc "handle-tab" "Tab"
  1016. This handles indenting to the \*Qright\*U place in C and Lisp mode, and
  1017. just inserts itself in Text mode.
  1018. .dc "highlight-attribute" "(variable)"
  1019. (IBM PC version only) This specifies how the attribute (color) of a
  1020. character is to be changed when it is highlighted.  Highlighting is indicated
  1021. by exclusive oring this value with the normal attribute for the character.
  1022. The default is 16.
  1023. .dc "highlight-mark" "(variable)"
  1024. When this is on, jove will highlight the mark if currently
  1025. visible.  The mark is highlighted with an underscore.
  1026. .dc "i-search-forward" "Not Bound"
  1027. Incremental search.  Like search-forward except that instead of prompting
  1028. for a string and searching for that string all at once, it accepts the string
  1029. one character at a time.  After each character you type as part of the search
  1030. string, it searches for the entire string so far.  When you like what it
  1031. found, type Return to finish the search.  You can take back a
  1032. character with DEL and the search will back up to the position before
  1033. that character was typed.  ^G aborts the search.
  1034. .dc "i-search-reverse" "Not Bound"
  1035. Incremental search.  Like search-reverse except that instead of prompting
  1036. for a string and searching for that string all at once, it accepts the string
  1037. one character at a time.  After each character you type as part of the search
  1038. string, it searches for the entire string so far.  When you like what it
  1039. found, type Return to finish the search.  You can take back a
  1040. character with DEL and the search will back up to the position before
  1041. that character was typed.  ^G aborts the search.
  1042. .dc "i-shell-command" "Not Bound"
  1043. This is like
  1044. .IQ shell-command
  1045. except that it launches an interactive process and so lets you continue with
  1046. your editing while the command is running.  This is really useful for long
  1047. running commands with sporadic output.
  1048. See also the variable
  1049. .IQ wrap-process-lines .
  1050. .dc "insert-file" "^X\ ^I"
  1051. This inserts a specified file into the selected buffer at point.  Point
  1052. is positioned at the beginning of the inserted file.
  1053. .dc "internal-tabstop" "(variable)"
  1054. This is the obsolete name for
  1055. .IQ tab-width .
  1056. .dc "interrupt-character" "(variable)"
  1057. This specifies what character should be used as the operating
  1058. system's tty driver interrupt character.  When this character is
  1059. typed, the tty driver generates SIGINT signal.  This will
  1060. interrupt a non-interactive process.  If no such process is
  1061. running, \s-2JOVE'S\s0 will offer you the option of continuing, or
  1062. crashing \s-2JOVE'S\s0 (trying to save your work).  This is a crude and
  1063. desperate way to stop \s-2JOVE'S\s0.  Unfortunately there is no way to
  1064. turn off the interrupt character.  The default is ^].  See also
  1065. .IQ abort-char .
  1066. .dc "interrupt-process" "Proc: ^C\ ^C"
  1067. This sends the signal SIGINT to the interactive process
  1068. in the selected buffer.  This only works if you are inside a buffer
  1069. bound to an interactive process.
  1070. .dc "kill-next-word" "ESC\ D"
  1071. This kills the text from point to the end of the current or next word.
  1072. The killed text is sent to the kill ring.
  1073. .dc "kill-previous-word" "ESC\ DEL"
  1074. This kills the text from point to the beginning of the current or
  1075. previous word.
  1076. The killed text is sent to the kill ring.
  1077. .dc "kill-process" "Not Bound"
  1078. This command prompts for a buffer name or buffer number (just as
  1079. .IQ select-buffer
  1080. does) and then sends the process in that buffer the
  1081. signal SIGKILL.
  1082. .dc "kill-region" "^W"
  1083. This deletes the text in the region and saves it on the kill ring.
  1084. Commands that delete text but save it on the kill ring all have the
  1085. word \*Qkill\*U in their names.  Use the
  1086. .IQ yank
  1087. command to get back the most recent
  1088. kill.
  1089. .dc "kill-s-expression" "ESC\ ^K"
  1090. This kills the text from point to the end of the current or next
  1091. s-expression.
  1092. The killed text is sent to the kill ring.
  1093. .dc "kill-some-buffers" "Not Bound"
  1094. This goes through all the existing buffers and asks whether or not to delete
  1095. each one.  If you decide to delete a buffer, and it turns out that the buffer is
  1096. modified, \s-2JOVE\s0 will offer to save it first.  This is useful for when \s-2JOVE\s0
  1097. runs out of memory to store lines (this only happens on PDP-11's) and you
  1098. have lots of buffers that you are no longer using.
  1099. See also the
  1100. .IQ delete-buffer
  1101. command.
  1102. .dc "kill-to-beginning-of-sentence" "^X\ DEL"
  1103. This kills from point to the beginning of the current or previous
  1104. sentence.  If a
  1105. negative numeric argument is supplied it kills from point to the
  1106. end of the current or next sentence.
  1107. The killed text is sent to the kill ring.
  1108. .dc "kill-to-end-of-line" "^K"
  1109. This kills from point to the end of the current line.  When point is
  1110. at the end of the line (discounting any white space) the line-separator
  1111. is also deleted and the next line
  1112. is joined with current one.  If a numeric argument is supplied that
  1113. many lines are killed; if the argument is negative that many lines
  1114. before point are killed; if the argument is zero the text from point
  1115. to the beginning of the line is killed.
  1116. The killed text is sent to the kill ring.
  1117. .dc "kill-to-end-of-sentence" "ESC\ K"
  1118. This kills from point to the end of the current or next sentence.  If a
  1119. negative numeric argument is supplied it kills from point to the
  1120. beginning of the current or previous sentence.
  1121. The killed text is sent to the kill ring.
  1122. .dc "lc-ctype" "(variable)"
  1123. This string variable determines how non-ASCII characters are displayed, and
  1124. which characters are to be considered as upper-case, lower-case, printable,
  1125. etc.  The default is the implementation-defined native environment; under
  1126. POSIX, it is determined by whichever of the environment variables
  1127. LC_ALL, LC_CTYPE or LANG is first found to be set, and is otherwise "C".
  1128. Some useful values of
  1129. .IQ lc-ctype
  1130. might be:
  1131. .DS
  1132. .ta \w'"iso_8859_111" 'u
  1133. ""    Default: the native environment.
  1134. "C"    Strict ASCII.  All other characters greater than \e\^177
  1135.     rendered in octal.
  1136. "iso_8859_1"    Latin-1 alphabet.
  1137. .DE
  1138. .dc "left-margin" "(variable)"
  1139. This is how far lines should be indented when Auto Indent mode is on,
  1140. or when the
  1141. .IQ newline-and-indent
  1142. command is run (usually by typing
  1143. Linefeed).  It is also used by
  1144. .IQ fill-paragraph
  1145. and Auto Fill mode.
  1146. If the value is zero (the default) then the left margin is determined
  1147. from the surrounding lines.
  1148. .dc "left-margin-here" "Not Bound"
  1149. This sets the
  1150. .IQ left-margin
  1151. variable to the current position of
  1152. point.  This is an easy way to say, \*QMake the left margin begin here,\*U
  1153. without having to count the number of spaces over it actually is.
  1154. .dc "lisp-mode" "Not Bound"
  1155. This turns on the Lisp major mode.  In Lisp mode, the characters Tab
  1156. and \*Q)\*U are treated specially, similar to the way they are treated in C mode.
  1157. Also, Auto Indent mode is affected, and handled specially.
  1158. See also the
  1159. .IQ c-mode
  1160. command.
  1161. .dc "list-buffers" "^X\ ^B"
  1162. This types out a list containing various information about each buffer.
  1163. The list looks like this:
  1164. .DS
  1165. .ta \w'NO111'u +\w'Lines1'u +\w'Scratch111'u +\w'\(**1'u +\w'commands.doc111'u
  1166. \ (\(** means the buffer needs saving)
  1167. \ NO    Lines    Type        Name    File
  1168. \ --    -----    ----        ----    ----
  1169. \ 1    1    File        Main    [No file]
  1170. \ 2    1    Scratch    \(**    Minibuf    [No file]
  1171. \ 3    519    File    \(**    commands.doc    commands.doc
  1172. .DE
  1173. The first column lists the buffer's number.  When \s-2JOVE\s0 prompts for a
  1174. buffer name you can either type in the full name, or you can simply
  1175. type the buffer's number.  The second column is the number of lines in
  1176. the buffer.  The third says what type of buffer.  There are four
  1177. types: File, Scratch, Process and I-Process.  \*QFile\*U is simply a
  1178. buffer that holds a file; \*QScratch\*U is for buffers that \s-2JOVE\s0 uses
  1179. internally; \*QProcess\*U is one that holds the output from a
  1180. .UX
  1181. command; \*QI-Process\*U is one that has an interactive process attached to
  1182. it.  The next column contains the name of the buffer.  And the last
  1183. column is the name of the file that's attached to the buffer.  In this
  1184. case, both Minibuf and commands.doc have been changed but not yet
  1185. saved.  In fact Minibuf won't be saved since it's a Scratch buffer.
  1186. .dc "list-processes" "Not Bound"
  1187. This makes a list somewhat like \*Qlist-buffers\*U does, except its
  1188. list consists of the current interactive processes.  The list
  1189. looks like this:
  1190. .DS
  1191. .ta \w'shell-111111111111'u +\w'Running1111111111'u +\w'1851211111'u
  1192. \ Buffer    Status    Pid    Command
  1193. \ ------    ------    ---    -------
  1194. \ \(**shell\(**    Running    18415    shell
  1195. \ fgrep    Done    18512    fgrep -n Buffer \(**.c
  1196. .DE
  1197. The first column has the name of the buffer to which the process is
  1198. attached.  The second has the status of the process; if a process has
  1199. exited normally the status is \*QDone\*U as in fgrep; if the process
  1200. exited with an error the status is \*QExit N\*U where N is the value of
  1201. the exit code; if the process was killed by some signal the status is
  1202. the name of the signal that was used; otherwise the process is
  1203. running.  The last column is the name of the command that is being run.
  1204. .dc "local-bind-keymap-to-key" "Not Bound"
  1205. This is like
  1206. .IQ local-bind-to-key
  1207. except that you use it to attach a key sequence to a named keymap.
  1208. The only reasonable use is to bind some extra key to
  1209. .IQ ESC-map
  1210. for keyboards that make typing ESC painful.
  1211. .dc "local-bind-macro-to-key" "Not Bound"
  1212. This is like
  1213. .IQ local-bind-to-key
  1214. except you use it to attach a key sequence to a named macro.
  1215. .dc "local-bind-to-key" "Not Bound"
  1216. This is like
  1217. .IQ bind-to-key ,
  1218. except that the binding is only enabled when the selected buffer is
  1219. the buffer that was current when the command was executed.  In other
  1220. words, the binding only applies to the selected buffer.
  1221. .dc "macify" "(variable)"
  1222. (Mac version only)
  1223. When this variable is on, \s-2JOVE\s0 will use the standard Macintosh file-selector
  1224. dialog in place of the traditional \s-2JOVE\s0 Minibuffer.
  1225. .dc "mail-check-frequency" "(variable)"
  1226. This is how often (in seconds) \s-2JOVE\s0 should check your mailbox for
  1227. incoming mail.  If you set this to zero \s-2JOVE\s0 won't check for new
  1228. mail.  See also the
  1229. .IQ mode-line ,
  1230. .IQ mailbox
  1231. and
  1232. .IQ disable-biff
  1233. variables.
  1234. The default is 60.
  1235. .dc "mailbox" "(variable)"
  1236. Set this to the full pathname of your mailbox.  \s-2JOVE\s0 will look here to
  1237. decide whether or not you have any unread mail.  This defaults to
  1238. .BQ /usr/spool/mail/$USER ,
  1239. where \*Q$USER\*U is set to your login name.
  1240. .dc "make-backup-files" "(variable)"
  1241. If this variable is set, then whenever \s-2JOVE\s0 writes out a file, it will
  1242. move the previous version of the file (if there was one) to \*Q#filename~\*U.
  1243. This is often convenient if you save a file by accident.  The default
  1244. value of this variable is
  1245. .IQ off .
  1246. .dc "make-buffer-unmodified" "ESC\ ~\^"
  1247. This makes \s-2JOVE\s0 think the selected buffer hasn't been changed even if
  1248. it has.  Use this when you accidentally change the buffer but don't
  1249. want it considered changed.  Watch the mode line to see the \(** disappear
  1250. when you use this command.
  1251. .dc "make-macro-interactive" "ESC\ I"
  1252. This command is meaningful only while you are defining a keyboard macro,
  1253. and when you are expecting input in the message line.
  1254. Ordinarily, when a command in a macro
  1255. definition requires a trailing text argument (file name, search string,
  1256. etc.), the argument you supply becomes part of the macro definition.  If
  1257. you want to be able to supply a different argument each time the macro is
  1258. used, then while you are defining it, you should give the
  1259. .IQ make-macro-interactive
  1260. command just before typing the argument which will
  1261. be used during the definition process.  Note: you must bind this command
  1262. to a key in order to use it; you can't say \*QESC\ X make-macro-interactive\*U.
  1263. .dc "mark-threshold" "(variable)"
  1264. This variable contains the number of lines point may move by before
  1265. the mark is set.  If, in a search or some other command that may move point,
  1266. point moves by more
  1267. than this many lines, the mark is set so that you may return easily.
  1268. The default value of this variable is 22 (one screenful, on most
  1269. terminals).
  1270. See also the commands
  1271. .IQ search-forward ,
  1272. .IQ search-reverse ,
  1273. .IQ beginning-of-file
  1274. and
  1275. .IQ end-of-file .
  1276. .dc "match-regular-expressions" "(variable)"
  1277. When set, \s-2JOVE\s0 will match regular expressions in search patterns.
  1278. This makes special the characters ., \(**, [ and ].
  1279. See the \s-2JOVE\s0 Manual for a full discussion of regular-expressions.
  1280. .dc "meta-key" "(variable)"
  1281. You should set this variable to
  1282. .IQ on
  1283. if your terminal has a real Meta key
  1284. which forces the 8th bit of each character.
  1285. If your terminal has such a key, then a key sequence like ESC\ Y can be
  1286. entered by holding down Meta and typing Y.
  1287. On the IBM PC, this variable affects how ALT is interpreted.
  1288. On the Macintosh, it affects how Option is interpreted.
  1289. NOTE: In some older
  1290. .UX
  1291. systems, \s-2JOVE\s0 must switch the tty to
  1292. raw mode to accept the 8-bit characters generated by a meta key.
  1293. Unfortunately, the
  1294. .IQ interrupt-character
  1295. does not generate an interrupt in raw mode.
  1296. .dc "mode-line" "(variable)"
  1297. The format of the mode line can be determined by setting this variable.
  1298. The items in the line are specified using a format similar to that used by
  1299. .IQ printf(3) ,
  1300. with the special things being marked as \*Q%x\*U.  Digits may be used
  1301. between the '%' and the 'x' to mean repeat that many times.
  1302. \&'x' may be:
  1303. .DS I
  1304. .ta .5i 1i 1.5i
  1305.     C    checks for new mail, and displays \*Q[New mail]\*U if there is any
  1306.         (see also the \c
  1307. .IQ mail-check-frequency " \c"
  1308. and \c
  1309. .IQ mailbox " \c"
  1310. variables)
  1311.     F    the current file name, with leading path stripped
  1312.     M    the current list of major and minor modes
  1313.     b    the selected buffer name
  1314.     c    the fill character (-)
  1315.     d    the current directory
  1316.     e    extra space in mode line is distributed evenly
  1317.         among the places %e is used (used for justifying,
  1318.         separating, or centering parts of the mode line)
  1319.     f    the current file name
  1320.     ixy    x, when the buffer's file has been changed behind JOVE's back,
  1321.         y, when not
  1322.     mxy    x, when the buffer is modified or y, when not
  1323.     n    the selected buffer number
  1324.     p    interactive process status for process windows
  1325.     s    space, but only if previous character is not a space
  1326.     t    the current time (updated automatically)
  1327.     w    a '>' for windows which are scrolled left
  1328.     [ ]    the square brackets printed when in a recursive edit
  1329.     ( )    items enclosed in %( ... %) will only be printed on
  1330.         the bottom mode line, rather than copied when the
  1331.         window is split
  1332. .DE
  1333. In addition, any other character is simply copied into the mode line.
  1334. Characters may be escaped with a backslash.  To get a feel for all
  1335. this, try typing \*QESC\ X print mode-line\*U and compare the result with
  1336. your current mode line.
  1337. .dc "mode-line-attribute" "(variable)"
  1338. (IBM PC version only) This specifies the screen attribute (color) for
  1339. characters in the mode line.  The default is 112 (black on white).
  1340. .dc "mode-line-should-standout" "(variable)"
  1341. If set, the mode line will be printed in reverse video, if your
  1342. terminal supports it.  The default for this variable is
  1343. .IQ on .
  1344. .dc "name-kbd-macro" "Not Bound"
  1345. This copies the keyboard macro and gives it a name freeing up the
  1346. keyboard macro so you can define some more.  Keyboard macros with
  1347. their own names can be bound to keys just like built in commands
  1348. can.  See the
  1349. .IQ define-macro ,
  1350. .IQ source
  1351. and
  1352. .IQ write-macros-to-file
  1353. commands.
  1354. .dc "newline" "Return"
  1355. This divides the current line at point moving all the text to the
  1356. right of point down onto the newly created line.  Point moves down to
  1357. the beginning of the new line.  In Auto Indent mode, the new line will
  1358. be indented to match the old line.
  1359. .dc "newline-and-backup" "^O"
  1360. This divides the current line at point moving all the text to the
  1361. right of point down onto the newly created line.  The difference
  1362. between this and
  1363. .IQ newline
  1364. is that point does not move down to the beginning of the new line.
  1365. .dc "newline-and-indent" "Linefeed"
  1366. This behaves in any mode the same way as
  1367. .IQ newline
  1368. does in Auto Indent mode.
  1369. .dc "next-error" "^X\ ^N"
  1370. This moves to the next error in the list of errors that were parsed
  1371. with
  1372. .IQ parse-errors .
  1373. In one window the list of errors is shown with the current one always at
  1374. the top.  If the file that contains the error is not already in a buffer, it
  1375. is read in.  Its buffer is displayed in another window and point
  1376. is positioned in this window on the line where the error occurred.
  1377. .dc "next-line" "^N"
  1378. This moves point down to the corresponding position on the next line (or the
  1379. end of that line if it does not extend so far).
  1380. .dc "next-page" "^V"
  1381. This displays the next page of the selected buffer by taking the bottom line of
  1382. the window and redrawing the window with it at the top.  If there isn't
  1383. another page in the buffer \s-2JOVE\s0 rings the bell.  If a numeric argument
  1384. of only \- (with no digits) is supplied, the previous page
  1385. is displayed.  Otherwise, if a numeric argument
  1386. is supplied the screen is scrolled up that many lines, exactly as in the
  1387. .IQ scroll-up
  1388. command; if the argument
  1389. is negative the screen is scrolled down.
  1390. .dc "next-window" "^X\ N"
  1391. This moves into the next window.  Windows live in a circular list so
  1392. when you're in the bottom window and you try to move to the next one
  1393. you are moved to the top window.  It is an error to use this command
  1394. with only one window.
  1395. .dc "number-lines-in-window" "Not Bound"
  1396. This displays the line numbers for each line in the buffer being
  1397. displayed.  The number isn't actually part of the text; it's just
  1398. printed before the actual buffer line is.  To turn this off you run
  1399. the command again; it toggles.
  1400. .dc "one-key-confirmation" "(variable)"
  1401. If this variable is set, a single keystroke of y or n is expected
  1402. in answer to yes/no questions.
  1403. Normally, a yes/no question must be answered with any non-empty
  1404. prefix of yes or no, followed by a Return
  1405. .dc "over-write-mode" "Not Bound"
  1406. This turns Over Write minor mode on in the selected buffer.  Without
  1407. a numeric argument, the command toggles the mode; with a zero
  1408. argument, the mode is turned off; with a non-zero argument, the
  1409. mode is turned on.  When on, this mode changes the way the
  1410. self-inserting characters work.  Instead of inserting themselves and
  1411. pushing the rest of the line over to the right, they replace or
  1412. over-write the existing character.  Also, DEL replaces the character
  1413. before point with a space instead of deleting it.  When Over Write
  1414. mode is on \*QOvrWt\*U is displayed in the mode line.
  1415. .dc "page-next-window" "ESC\ ^V"
  1416. This displays the next page in the next window.
  1417. It switches to the next window, performs a
  1418. .IQ next-page
  1419. command (with any numeric argument), and switches back to the original window.
  1420. Note that an argument of just \*Q\-\*U will thus display the previous page.
  1421. .dc "paren-flash" "\^) } ]\^"
  1422. This command causes the characters bound to it to be inserted, and then to
  1423. partake in C mode curly brace indentation, Lisp mode parenthesis
  1424. indentation, and the Show Match mode paren/curly-brace/square-bracket
  1425. flashing.
  1426. .dc "paragraph-delimiter-pattern" "(variable)"
  1427. When \s-2JOVE\s0 is searching for a paragraph boundary, if this
  1428. pattern (a regular expression) matches the start of a line, that
  1429. line is treated as a paragraph delimiter.  The default pattern
  1430. recognizes blank lines, troff control lines, and lines starting with
  1431. a TeX control sequence.
  1432.  
  1433. There is a special provision for TeX: if a line is matched by the
  1434. pattern, and the match is of exactly an initial \e, that line is
  1435. only treated as a delimiter if the next line also starts with \e.
  1436. .dc "paren-flash-delay" "(variable)"
  1437. How long, in tenths of a second, \s-2JOVE\s0 should pause on a matching
  1438. parenthesis in Show Match mode.  The default is 5.
  1439. .dc "parse-errors" "Not Bound"
  1440. This takes the list of C compilation errors (or the output from another
  1441. program in an acceptable format) in the selected buffer and parses them for
  1442. use with the
  1443. .IQ next-error ,
  1444. .IQ previous-error
  1445. and
  1446. .IQ current-error
  1447. commands.
  1448. This is a very useful tool and helps with compiling C programs or, when used
  1449. in conjunction with the
  1450. .UX
  1451. .IQ grep
  1452. command, with making changes to a bunch of files.
  1453. \s-2JOVE\s0 finds each file that has an error and remembers each line that
  1454. contains an error.  It doesn't matter if later you insert or delete
  1455. some lines in the buffers containing errors; \s-2JOVE\s0 remembers where
  1456. they are regardless.
  1457. .IQ current-error
  1458. is automatically executed after one of the parse commands, so you end up
  1459. at the first error.  The variable
  1460. .IQ error-format-string
  1461. specifies, by means of regular-expressions, the format of errors to be
  1462. recognized.  Its default value can handle messages from
  1463. .IQ cc ,
  1464. .IQ cpp ,
  1465. .IQ lint
  1466. and
  1467. .IQ "grep\ \-n" .
  1468. .dc "parse-spelling-errors-in-buffer" "Not Bound"
  1469. This parses a list of words in the selected buffer and looks them up in
  1470. another buffer that you specify.
  1471. It is invoked automatically by the
  1472. .IQ spell-buffer
  1473. command.
  1474. .dc "pause-jove" "ESC\ S"
  1475. This stops \s-2JOVE\s0 and returns control to the parent shell.  This
  1476. only works on systems that have the
  1477. job control facility.  To return to \s-2JOVE\s0 you type \*Qfg\*U to the shell.
  1478. .dc "pop-mark" "Not Bound"
  1479. \s-2JOVE\s0 remembers the last eight marks and you use
  1480. .IQ pop-mark
  1481. to go
  1482. backward through the ring of marks.  If you execute
  1483. .IQ pop-mark
  1484. enough
  1485. times you will eventually get back to where you started.
  1486. This command is also executed when you run
  1487. .IQ set-mark
  1488. with a numeric argument.
  1489. .dc "popd" "Not Bound"
  1490. This pops one entry off the directory stack.  Entries are pushed with
  1491. the
  1492. .IQ pushd
  1493. or
  1494. .IQ pushlibd
  1495. commands.  The names were stolen from the C-shell and the
  1496. behavior is the same.
  1497. .dc "previous-error" "^X\ ^P"
  1498. This is the same as
  1499. .IQ next-error
  1500. except it goes to the previous error.
  1501. See
  1502. .IQ next-error
  1503. for documentation.
  1504. .dc "previous-line" "^P"
  1505. This moves point up to the corresponding position on the previous line (or the
  1506. end of that line if it does not extend so far).
  1507. .dc "previous-page" "ESC\ V"
  1508. This displays the previous page of the selected buffer by taking the top
  1509. line and redrawing the window with it at the bottom.  If a numeric
  1510. argument of only \- (with no digits) is supplied, the next page
  1511. is displayed.  Otherwise, if a numeric
  1512. argument is supplied the screen is scrolled down that many lines, exactly as
  1513. in the
  1514. .IQ scroll-down
  1515. command; if
  1516. the argument is negative the screen is scrolled up.
  1517. .dc "previous-window" "^X\ P or ^X\ O"
  1518. This moves into the previous window.  Windows live in a circular list so
  1519. when you're in the top window and you try to move to the previous one
  1520. you are moved to the bottom window.  It is an error to use this command
  1521. with only one window.
  1522. .dc "print" "Not Bound"
  1523. This displays the value of a \s-2JOVE\s0 variable in the message line.
  1524. .dc "process-bind-keymap-to-key" "Not Bound"
  1525. This is like
  1526. .IQ process-bind-to-key
  1527. except that you use it to attach a key sequence to named keymap.
  1528. The only reasonable use is to bind some extra key to
  1529. .IQ ESC-map
  1530. for keyboards that make typing ESC\ painful.
  1531. .dc "process-bind-macro-to-key" "Not Bound"
  1532. This is like
  1533. .IQ process-bind-to-key
  1534. except you use it to attach a key sequence to a named macro.
  1535. .dc "process-bind-to-key" "Not Bound"
  1536. This command is identical to
  1537. .IQ bind-to-key ,
  1538. except that it only affects
  1539. your bindings when you are in a buffer attached to an interactive process.
  1540. When you enter the process buffer, any keys bound with this command will
  1541. automatically take their new values.  When you switch to a non-process
  1542. buffer, the old bindings for those keys will be restored.  For example,
  1543. you might want to execute
  1544. .DS I
  1545. process-bind-to-key stop-process ^C\ ^Z
  1546. process-bind-to-key interrupt-process ^C\ ^C
  1547. .DE
  1548. Then, when you start up an interactive process and switch into that
  1549. buffer, ^C\ ^Z will execute
  1550. .IQ stop-process
  1551. and ^C\ ^C will execute
  1552. .IQ interrupt-process .
  1553. Bindings effective only in process windows are shown with a \*QProc:\*U
  1554. prefix in this manual and by the
  1555. .IQ apropos
  1556. and
  1557. .IQ describe-bindings
  1558. commands.
  1559. .dc "process-dbx-output" "Not Bound"
  1560. This command only makes sense in a buffer running an interactive shell
  1561. process.  If you are running
  1562. .IQ dbx
  1563. in a window, \s-2JOVE\s0 will automatically
  1564. find the file you are currently stepping through and display it in another
  1565. window whenever you type \*Qwhere\*U or while you're stepping through a
  1566. program, or when you reach a breakpoint.  The string DBX will appear in the
  1567. mode line along with the process status when this feature is enabled.  See
  1568. also the variable
  1569. .IQ dbx-format-string .
  1570. .dc "process-newline" "Proc: Return"
  1571. This command is normally bound to Return as if by a
  1572. .IQ process-bind-to-key
  1573. so that it will only be bound in a process window.
  1574. \s-2JOVE\s0 does two different things depending on where you are when you
  1575. hit Return.  When you're in the last line of the interactive process buffer,
  1576. point moves to the end of the line, the line is terminated, and the line is
  1577. made available as input to the process.  When point is positioned in some
  1578. other line, that line is copied to the end of the buffer (with the prompt
  1579. stripped) and point is moved there with it, so you can then edit that line
  1580. before sending it to the process.  This command must be bound to the key you
  1581. usually use to enter shell commands (Return), or else you won't be able to
  1582. enter any.  See the variable
  1583. .IQ process-prompt .
  1584. .dc "process-prompt" (variable)
  1585. What a prompt looks like from the
  1586. .IQ shell
  1587. and
  1588. .IQ i-shell-command
  1589. processes.  The default is \*Q% \*U, the default C-shell prompt.  This is
  1590. actually a regular expression search string.  So you can set it to be
  1591. more than one thing at once using the \e| operator.  For instance, for
  1592. LISP hackers, the prompt can be
  1593. .DS
  1594. "% \e|-> \e|<[0-9]>: ".
  1595. .DE
  1596. .dc "process-send-data-no-return" "Not Bound"
  1597. This is like
  1598. .IQ process-newline
  1599. except it sends everything to the process without the newline.  Normally,
  1600. when you type return in a process buffer it sends everything you typed
  1601. including the Return.  This command just provides a way to send data to
  1602. the process without having to send a newline as well.
  1603. .dc "push-shell" "Not Bound"
  1604. This spawns a child shell and relinquishes control to it.
  1605. Within this shell, $1 can be used to refer to the filename (if any)
  1606. of the selected buffer.
  1607. This works on any version of
  1608. .UX ,
  1609. but this isn't as good as
  1610. .IQ pause-jove
  1611. because
  1612. it takes time to start up the new shell and you get a brand new
  1613. environment every time.  To return to \s-2JOVE\s0, simply exit the shell.
  1614. .dc "pushd" "Not Bound"
  1615. This pushes a directory onto the directory stack and cd's into it.  It
  1616. asks for the directory name but if you don't specify one it switches
  1617. the top two entries on the stack.  It purposely behaves the same as
  1618. C-shell's
  1619. .IQ pushd .
  1620. .dc "pushlibd" "Not Bound"
  1621. Performs same function as
  1622. .IQ pushd
  1623. except that it pushes the Jove
  1624. sharable library directory.  This directory holds the system-wide
  1625. .BQ jove.rc
  1626. and the text used by the
  1627. .IQ describe-command
  1628. and
  1629. .IQ describe-variable
  1630. commands.  It is mainly intended for use with the
  1631. .BQ jove.rc
  1632. file.
  1633. .dc "pwd" "Not Bound"
  1634. This prints the pathname of the working directory, as in the
  1635. .UX
  1636. .IQ pwd
  1637. command.
  1638. .dc "query-replace-string" "ESC\ Q"
  1639. This replaces strings matching a specified regular-expression
  1640. with a specified replacement string.
  1641. When a match is found, point is moved to it
  1642. and then \s-2JOVE\s0 asks what to do.  The options are:
  1643. .DS I
  1644. .ta \w'DEL, BS, or N or n11'u
  1645. Space or Y or y    to replace this match and go on to the next one.
  1646. Period    to replace this match and then stop.
  1647. DEL, BS, or N or n    to skip this match and go on to the next one.
  1648. ^R or R or r    to enter a recursive edit.  This lets you temporarily
  1649.     suspend the replace, do some editing, and then return
  1650.     to continue where you left off.  To continue with the
  1651.     \c
  1652. .IQ query-replace-string ,\c
  1653.  use the \c
  1654. .IQ exit-jove " command."
  1655. ^W    to delete the match and then enter a recursive edit.
  1656. ^U or U or u    to undo all changes to the last modified line and
  1657.     continue the search from the start of that line.
  1658. ! or P or p    to go ahead and replace the remaining matches without
  1659.     asking, as in \c
  1660. .IQ replace-string .
  1661. Return or Q or q    to stop the \c
  1662. .IQ query-replace-string .
  1663. ^L    to redraw the screen
  1664. .DE
  1665. It is often useful to include a piece of the matched string in the
  1666. replacement, especially if the piece was not matched by literal text.
  1667. To select which part of the matched string is to be used, the
  1668. corresponding part of the pattern is bracketed with \e\^( and \e).
  1669. More than one set of brackets may be used, as long as they are
  1670. properly nested.  The matching substring is selected in the
  1671. replacement string using \e followed by a digit: \e1 for the first,
  1672. \e\^2 for the second, and so on.  Conveniently, \e\^0 always stands for
  1673. the complete matched string, as if the whole regular expression were
  1674. bracketed.  For example, the following command will reverse pairs of
  1675. comma-separated numbers:
  1676. .ID
  1677. : query-replace-string \e\^([0-9]\(**\^\e),\e\^([0-9]\(**\^\e) with \e\^2,\e1
  1678. .DE
  1679. The search for a match starts at point and goes to the end of the
  1680. buffer, so to replace in the entire buffer you must first go to the
  1681. beginning.  Each subsequent search starts at the position after the
  1682. previous match; if the previous match was an empty string, the search
  1683. is first advanced one character to prevent unbounded repetition.
  1684. .dc "quit-process" "Proc: ^C\ ^\^\e\^"
  1685. Send the signal SIGQUIT to the interactive process in the selected buffer.
  1686. This is equivalent to sending the \*Qquit\*U character (which most people
  1687. have bound to ^\^\e) to the process.  This only works if you are in a buffer
  1688. bound to an interactive process.
  1689. .dc "quoted-insert" "^Q or ^^\^"
  1690. This lets you insert characters that normally would be executed as
  1691. other \s-2JOVE\s0 commands.  For example,
  1692. to insert \*Q^F\*U you type \*Q^Q ^F\*U
  1693. (assuming
  1694. .IQ quoted-insert
  1695. is bound to ^Q).
  1696. NUL cannot be represented in the buffer, so
  1697. .IQ quoted-insert
  1698. will insert \*Q^@\*U in its stead.
  1699. On the IBM PC under DOS, non-ASCII keystrokes are seen by \s-2JOVE\s0
  1700. as a hex FF character followed by another character;
  1701. .IQ quoted-insert
  1702. will quote both characters.
  1703. .dc "read-only-mode" "Not Bound"
  1704. This turns on or off the Read-only minor mode.  Without a numeric
  1705. argument, the command toggles the mode; with a zero argument, the
  1706. mode is turned off; with a non-zero argument, the mode is turned
  1707. on.  When a buffer is in Read-only mode, any attempt to modify the
  1708. buffer will fail.  When a file is found, and it's not got write
  1709. permission, \s-2JOVE\s0 automatically puts the buffer in read-only mode.
  1710. This is very helpful when you are in environments which use source
  1711. control programs like RCS and SCCS.  It prevents accidents like
  1712. making a bunch of changes and only THEN discovering that you haven't
  1713. checked the file out for making changes.
  1714. .dc "read-word-abbrev-file" "Not Bound"
  1715. This reads a specified file that contains a bunch of abbreviation
  1716. definitions, and makes those abbreviations available.
  1717. See the
  1718. .IQ word-abbrev-mode
  1719. command.
  1720. .dc "recursive-edit" "Not Bound"
  1721. This enters a recursive editing level.  This isn't really very
  1722. useful.  I don't know why it's available for public use.  I think I'll
  1723. delete it some day.
  1724. .dc "redraw-display" "^L"
  1725. This vertically centers the line containing point within the window.  If that
  1726. line is already in place, the screen is first cleared and then redrawn.
  1727. If a numeric argument is supplied, the line is positioned at that
  1728. offset from the top of the window.  For example, \*QESC\ 0 ^L\*U positions
  1729. the line containing point at the top of the window
  1730. (assuming
  1731. .IQ redraw-display
  1732. is bound to ^L).
  1733. .dc "rename-buffer" "Not Bound"
  1734. This lets you rename the selected buffer.
  1735. .dc "replace-in-region" "Not Bound"
  1736. This is the same as
  1737. .IQ replace-string
  1738. except that it is restricted
  1739. to occurrences between point and the mark.
  1740. .dc "replace-string" "ESC\ R"
  1741. This replaces all occurrences of a specified string with a specified
  1742. replacement string.  This is just like
  1743. .IQ query-replace-string
  1744. except that
  1745. it replaces without asking.
  1746. .dc "right-margin" "(variable)"
  1747. Where the right margin is for Auto Fill mode and the
  1748. .IQ fill-paragraph
  1749. and
  1750. .IQ fill-region
  1751. commands.  The default is 78.
  1752. .dc "right-margin-here" "Not Bound"
  1753. This sets the
  1754. .IQ right-margin
  1755. variable to the current position of
  1756. point.  This is an easy way to say, \*QMake the right margin begin here,\*U
  1757. without having to count the number of spaces over it actually is.
  1758. .dc "save-file" "^X\ ^S or ^X\ S or ^X\ \e\^"
  1759. This saves the selected buffer to the associated file.  This makes your
  1760. changes permanent so you should be sure you really want to do it.  If the
  1761. buffer has not been modified
  1762. .IQ save-file
  1763. refuses to do the save.  If
  1764. you really do want to write the file you must use
  1765. .IQ write-file .
  1766. .dc "scroll-all-lines" "(variable)"
  1767. When this is
  1768. .IQ off ,
  1769. (the default) horizontal scrolling will only affect the line
  1770. containing point.
  1771. When it is
  1772. .IQ on ,
  1773. horizontal scrolling will affect the whole window.  See also the
  1774. .IQ scroll-width
  1775. variable.
  1776. .dc "scroll-bar" "(variable)"
  1777. When this is turned
  1778. .IQ on ,
  1779. a section of the mode line at the foot of each window is
  1780. left in not-reverse-video, to show the position of the window relative to
  1781. the whole of the file represented by that buffer (however, if the whole of
  1782. the buffer is within the window, the whole mode line remains inverted).
  1783. .dc "scroll-down" "ESC\ Z"
  1784. This scrolls the screen one line down.  If the line containing point
  1785. moves past the bottom of the window, point is moved up to the top of
  1786. the window.  If a numeric argument is supplied that many lines are
  1787. scrolled; if the argument is negative the screen is scrolled up
  1788. instead.
  1789. See the
  1790. .IQ previous-page
  1791. command.
  1792. .dc "scroll-left" "Not Bound"
  1793. This scrolls the text in the active window to the
  1794. left.  If a numeric argument is specified then the text is scrolled that
  1795. number of columns.  Otherwise, the text is scrolled by
  1796. the number of columns specified by the variable
  1797. .IQ scroll-width .
  1798. If the variable
  1799. .IQ scroll-all-lines
  1800. is ON then
  1801. .IQ scroll-left
  1802. may actually do nothing if the scrolling would cause point not to be
  1803. visible.  A negative argument scrolls right.  If the
  1804. .IQ mode-line
  1805. variable
  1806. is suitably set, an indication that the text is scrolled will be given in
  1807. the mode line.
  1808. .dc "scroll-right" "Not Bound"
  1809. This scrolls the text in the active window to the
  1810. right.  If a numeric argument is specified then the text is scrolled that
  1811. number of columns.  Otherwise, the text is scrolled by
  1812. the number of columns specified by the variable
  1813. .IQ scroll-width .
  1814. If the variable
  1815. .IQ scroll-all-lines
  1816. is ON then
  1817. .IQ scroll-right
  1818. may actually do nothing if the scrolling would cause point not to be
  1819. visible.  A negative argument scrolls left.
  1820. .dc "scroll-step" "(variable)"
  1821. How many lines should be scrolled if the
  1822. .IQ previous-line
  1823. or
  1824. .IQ next-line
  1825. commands move you off the top or bottom of the screen.  You may wish to
  1826. decrease this variable if you are on a slow terminal.  The default value
  1827. is 0, which means to center the current line in the window.  If the value
  1828. is negative, the behavior is slightly different.  If you move off the top
  1829. of the window, and
  1830. .IQ scroll-step
  1831. is, say, \-5 then the new line will be displayed 5 lines from the bottom
  1832. of the window.  If you move off the bottom of the window, the new line
  1833. will be positioned 5 lines from the top of the window.
  1834. .dc "scroll-up" "^Z"
  1835. This scrolls the screen one line up.  If the line containing point
  1836. moves past the top of the window, point is moved down to the top of
  1837. the window.  If a numeric argument is supplied that many lines are
  1838. scrolled; if the argument is negative the screen is scrolled down
  1839. instead.
  1840. See also the
  1841. .IQ next-page
  1842. command.
  1843. .dc "scroll-width" "(variable)"
  1844. Just as a buffer may be too long to be completely displayed in a
  1845. window, a line may be too wide.  \s-2JOVE\s0 handles wide lines
  1846. through horizontal scrolling, displaying only a portion of the
  1847. line.  This variable affects horizontal scrolling.  If point is
  1848. outside the displayed portion of its line, but is within the
  1849. specified number of columns beyond either side, the line is scrolled
  1850. that much.  Otherwise, the line will be scrolled to center point.
  1851. The default value is 10.  If the variable is 0, centering will
  1852. always be used.  See also the
  1853. .IQ scroll-all-lines
  1854. variable.
  1855. .dc "search-exit-char" "(variable)"
  1856. Set this to the character you want to use to exit incremental search.  The
  1857. default is Newline, which makes
  1858. .IQ i-search
  1859. commands compatible with
  1860. normal string search.
  1861. .dc "search-forward" "^S or ^\^\e\^"
  1862. This searches forward for a specified search string and positions
  1863. point at the end of the string if it's found.  If the string is not
  1864. found point remains unchanged.  This searches from point to the end of
  1865. the buffer, so any matches before point will be missed.
  1866. If point is moved by more than the variable
  1867. .IQ mark-threshold ,
  1868. the old
  1869. point will be pushed.
  1870. .dc "search-forward-nd" "Not Bound"
  1871. This is just like
  1872. .IQ search-forward
  1873. except that it doesn't assume a default search string, and it doesn't set
  1874. the default search string.  This is useful for defining macros, when you
  1875. want to search for something, but you don't want it to affect the current
  1876. default search string.
  1877. .dc "search-reverse" "^R"
  1878. This searches backward for a specified search string and positions
  1879. point at the beginning if the string if it's found.  If the string is
  1880. not found point remains unchanged.  This searches from point to the
  1881. beginning of the buffer, so any matches after point will be missed.
  1882. If point is moved by more than the variable
  1883. .IQ mark-threshold ,
  1884. the old
  1885. point will be pushed.
  1886. .dc "search-reverse-nd" "Not Bound"
  1887. This is just like
  1888. .IQ search-reverse
  1889. except that it doesn't assume a default search string, and it doesn't set
  1890. the default search string.  This is useful for defining macros, when you
  1891. want to search for something, but you don't want it to affect the current
  1892. default search string.
  1893. .dc "select-buffer" "^X\ B"
  1894. This selects a new or already existing buffer making it the current
  1895. one.  You can type either the buffer name or number.  If you type in
  1896. the name you need only type the name until it is unambiguous, at which
  1897. point typing Tab or Space will complete it for you.  If you want to
  1898. create a new buffer you can type Return instead of Space, and a new
  1899. empty buffer will be created.
  1900. .dc "select-buffer-1" "Not Bound"
  1901. This selects buffer number 1, if it exists.
  1902. .dc "select-buffer-10" "Not Bound"
  1903. This selects buffer number 10, if it exists.
  1904. .dc "select-buffer-2" "Not Bound"
  1905. This selects buffer number 2, if it exists.
  1906. .dc "select-buffer-3" "Not Bound"
  1907. This selects buffer number 3, if it exists.
  1908. .dc "select-buffer-4" "Not Bound"
  1909. This selects buffer number 4, if it exists.
  1910. .dc "select-buffer-5" "Not Bound"
  1911. This selects buffer number 5, if it exists.
  1912. .dc "select-buffer-6" "Not Bound"
  1913. This selects buffer number 6, if it exists.
  1914. .dc "select-buffer-7" "Not Bound"
  1915. This selects buffer number 7, if it exists.
  1916. .dc "select-buffer-8" "Not Bound"
  1917. This selects buffer number 8, if it exists.
  1918. .dc "select-buffer-9" "Not Bound"
  1919. This selects buffer number 9, if it exists.
  1920. .dc "self-insert" "Most Printing Characters"
  1921. This inserts the character that invoked it into the buffer at point.
  1922. Initially all but a few of the printing characters are bound to
  1923. .IQ self-insert .
  1924. See also
  1925. .IQ paren-flash .
  1926. .dc "send-typeout-to-buffer" "(variable)"
  1927. When this is
  1928. .IQ on
  1929. \s-2JOVE\s0 will send output that normally overwrites the
  1930. screen (temporarily) to a buffer instead.  This affects commands like
  1931. .IQ list-buffers ,
  1932. .IQ list-processes ,
  1933. .IQ shell-command-with-typeout ,
  1934. and commands that use completion.  The default value is
  1935. .IQ off .
  1936. .dc "set" "Not Bound"
  1937. This sets a specified variable to a new value.
  1938. .dc "set-mark" "^@"
  1939. This sets the mark at the current position in the buffer.  It prints
  1940. the message \*Q[Point pushed]\*U on the message line.  It says that instead
  1941. of \*Q[Mark set]\*U because when you set the mark the previous mark is still
  1942. remembered on a ring of eight marks.  So \*Q[Point pushed]\*U means point is
  1943. pushed onto the ring of marks and becomes the value of \*Qthe mark\*U.
  1944. To go through the ring of marks, use the
  1945. .IQ pop-mark
  1946. command.  If you type this enough times you will get back
  1947. to where you started.
  1948. If a
  1949. .IQ set-mark
  1950. command is given a numeric argument, it acts like a
  1951. .IQ pop-mark
  1952. command.
  1953. .dc "shell" "(variable)"
  1954. The shell to be used with all the shell-\(** commands command.  If your SHELL
  1955. environment variable is set, it is used as the default value of
  1956. .IQ shell ;
  1957. otherwise \*Q/bin/csh\*U is the default.
  1958. See also the description of the
  1959. .IQ shell-flags
  1960. variable to see how to change the flags passed to this shell.
  1961. .dc "shell" "Not Bound"
  1962. This starts up an interactive shell in a window; if there is already
  1963. an interactive shell, it just selects that buffer.
  1964. \s-2JOVE\s0 uses \*Q\(**shell-n\(**\*U (where
  1965. .BQ n
  1966. is the argument of the command)
  1967. as the name of the buffer in which the interacting takes place.
  1968. Thus different argument values refer to different interactive shells.
  1969. See the \s-2JOVE\s0 manual for information on how to use interactive processes.
  1970. See also the variable
  1971. .IQ wrap-process-lines .
  1972. .dc "shell-command" "^X\ !"
  1973. This runs a
  1974. .UX
  1975. command and places the output from that command in a
  1976. buffer.
  1977. Within the command, $1 can be used to refer the the filename (if any)
  1978. of the selected buffer.
  1979. \s-2JOVE\s0 creates a buffer that matches the name of the command
  1980. you specify and then attaches that buffer to a window.  So, when you
  1981. have only one window running, this command will cause \s-2JOVE\s0 to split the
  1982. window and attach the new buffer to that window.  Otherwise, \s-2JOVE\s0
  1983. finds the most convenient of the available windows and uses that one
  1984. instead.  If the buffer already exists it is first emptied (unless a
  1985. numeric argument is specified).  If it's already holding a file, not
  1986. some output from a previous command, \s-2JOVE\s0 asks permission before
  1987. emptying the buffer.  Beware that if you go ahead, not only do you
  1988. lose any unsaved changes that you made to the buffer, but the buffer's file
  1989. name remains set, making it easy to later accidentally overwrite the
  1990. original file.
  1991. See also the variable
  1992. .IQ wrap-process-lines .
  1993. .dc "shell-command-no-buffer" "Not Bound"
  1994. This is just like
  1995. .IQ shell-command
  1996. except it just runs the command without saving the output to any buffer.
  1997. It will report the success of the command in the usual way.
  1998. .dc "shell-command-to-buffer" "Not Bound"
  1999. This is just like
  2000. .IQ shell-command
  2001. except it lets you specify the
  2002. buffer to use.
  2003. .dc "shell-command-with-typeout" "Not Bound"
  2004. This is just like
  2005. .IQ shell-command
  2006. except that instead of saving the output to a buffer, and displaying
  2007. it in a window, this just types out the output in the same way that
  2008. .IQ list-buffers
  2009. does.  Actually, how this behaves depends on the value of the variable
  2010. .IQ send-typeout-to-buffer .
  2011. If it is
  2012. .IQ on
  2013. then
  2014. .IQ shell-command-with-typeout
  2015. will behave just like
  2016. .IQ shell-command .
  2017. If a numeric argument is given, the \*Qcompleted successfully\*U
  2018. message at the end is suppressed.
  2019. .dc "shell-flags" "(variable)"
  2020. This specifies a flag argument that directs the shell to
  2021. take the next argument as a command to be executed.
  2022. The default is \*Q\-c\*U (suitable for all known
  2023. .UX
  2024. shells).
  2025. Under MSDOS, the default is \*Q/c\*U (suitable for command.com and
  2026. similar MSDOS shells).
  2027. Other MSDOS shells, such as MKS KSH require that this be changed to \*Q\-c\*U.
  2028. Under MSDOS, \s-2JOVE\s0 puts quotes around the command argument if
  2029. .IQ shell-flags
  2030. starts with \*Q\-\*U.
  2031. See the
  2032. .IQ shell
  2033. variable to change the default shell.
  2034. .dc "shift-region-left" "Not Bound"
  2035. This shifts the region left by
  2036. .IQ c-indentation-increment
  2037. OR by the numeric
  2038. argument, if one is supplied.  If a negative argument is supplied the
  2039. region is shifted the other way.
  2040. .dc "shift-region-right" "Not Bound"
  2041. This shifts the region right by
  2042. .IQ c-indentation-increment
  2043. OR by the numeric
  2044. argument, if one is supplied.  If a negative argument is supplied the
  2045. region is shifted the other way.
  2046. .dc "show-match-mode" "Not Bound"
  2047. This turns on or off the Show Match minor mode in the selected
  2048. buffer.  Without a numeric argument, the command toggles the mode;
  2049. with a zero argument, the mode is turned off; with a non-zero
  2050. argument, the mode is turned on.  This mode changes \*Q}\*U, \*Q)\*U and \*Q]\*U
  2051. so that when they are typed they are inserted as usual, and then the
  2052. cursor flashes back to the matching \*Q{\*U, \*Q(\*U or \*Q[\*U (depending on
  2053. what was typed) for about half a second, and then goes back to just
  2054. after the \*Q}\*U, \*Q)\*U or \*Q]\*U that invoked the command.  This is useful
  2055. for typing in complicated expressions in a program.  You can change
  2056. how long the cursor sits on the matching parenthesis by setting the
  2057. .IQ paren-flash-delay
  2058. variable in tenths of a second.  If the matching
  2059. \*Q{\*U, \*Q(\*U or \*Q[\*U isn't visible, the line containing the match is
  2060. displayed on the message line.
  2061. .dc "shrink-window" "Not Bound"
  2062. This makes the active window one line shorter, if possible.  Windows
  2063. must be at least 2 lines high, one for the text and the other for the
  2064. mode line.
  2065. See also
  2066. .IQ grow-window .
  2067. .dc "source" "Not Bound"
  2068. This reads a bunch of \s-2JOVE\s0 commands from a file.
  2069. If a numeric argument is supplied to the
  2070. .IQ source
  2071. command, it will quietly do nothing if it cannot read the file.
  2072.  
  2073. The format of the file is the same as that in the
  2074. .BQ jove.rc
  2075. file, or
  2076. your private
  2077. .BQ \&.joverc
  2078. in your home directory.  There should be one
  2079. command per line and it should be as though you were responding to an
  2080. .IQ execute-named-command
  2081. command while in \s-2JOVE\s0.
  2082. A command can be optionally preceded by a numeric argument.
  2083. Lines commencing with a # are treated as comments.  Control characters such
  2084. as ^R may be represented as themselves, or as \*Q^\*U followed by \*QR\*U.
  2085. ESC should be represented by ^[.
  2086.  
  2087. Sometimes it is useful to do different things in
  2088. different circumstances.
  2089. To make this possible, there are two conditional commands:
  2090. .IQ if
  2091. and
  2092. .IQ ifenv .
  2093. The
  2094. .IQ if
  2095. command takes as an operand a shell command, which it runs.
  2096. If the command succeeds, the commands after the
  2097. .IQ if ,
  2098. until a line
  2099. containing
  2100. .IQ else
  2101. or
  2102. .IQ endif ,
  2103. are performed.
  2104. Otherwise, these commands are suppressed and
  2105. the commands after any
  2106. .IQ else ,
  2107. up until an
  2108. .IQ endif ,
  2109. are executed.
  2110. Conditionals nest in the normal way.
  2111. The
  2112. .IQ ifenv
  2113. command takes as operands the name of an environment variable
  2114. and a pattern.
  2115. If the environment variable is defined and its value matches the pattern,
  2116. the
  2117. .IQ ifenv
  2118. succeeds.
  2119.  
  2120. For example, here are some lines from the file
  2121. .BQ jove.rc .
  2122. .DS I
  2123. bind-to-key pause-jove ^[S
  2124. bind-to-key pause-jove ^[s
  2125. set process-prompt ^[^%$#]*[%$#]
  2126. # source any TERMinal-specific rc file
  2127. 1 source jove.rc.$TERM
  2128. .DE
  2129. What they do is to provide two alternative key bindings for
  2130. .IQ pause-jove ,
  2131. set the variable
  2132. .IQ process-prompt ,
  2133. and attempt to call
  2134. the
  2135. .IQ source
  2136. command on the file
  2137. .BQ jove.rc.$TERM .
  2138. Because of the
  2139. numeric argument 1, there will be no complaint if this file cannot be found.
  2140. .dc "space-sentence-2" (variable)
  2141. If set
  2142. .IQ on ,
  2143. two spaces are left after each sentence by commands such as
  2144. .IQ fill-paragraph ;
  2145. otherwise, one space is left.  The default is
  2146. .IQ on .
  2147. .dc "spell-buffer" "Not Bound"
  2148. This runs the selected buffer through the
  2149. .UX
  2150. .IQ spell
  2151. program and places
  2152. the output in buffer \*QSpell\*U.  Then \s-2JOVE\s0 lets you edit the list of
  2153. words, expecting you to delete the ones that you don't care about, i.e., the
  2154. ones you know are spelled correctly.  Then the
  2155. .IQ parse-spelling-errors-in-buffer
  2156. command comes along and finds all the
  2157. misspelled words and sets things up so the error commands
  2158. .IQ next-error ,
  2159. .IQ previous-error
  2160. and
  2161. .IQ current-error
  2162. work.  See also the variable
  2163. .IQ error-window-size .
  2164. .dc "split-current-window" "^X\ 2"
  2165. This splits the active window into two equal parts (providing the
  2166. resulting windows would be big enough) and displays the selected buffer
  2167. in both windows.  Use
  2168. .IQ delete-other-windows
  2169. to go back to 1 window mode.  If a numeric
  2170. argument is supplied, the window is split \*Qevenly\*U that many times (when
  2171. possible).
  2172. .dc "start-remembering" "Not Bound"
  2173. This is just another name for the
  2174. .IQ begin-kbd-macro
  2175. command.  It is included for backward compatibility.
  2176. .dc "stop-process" "Not Bound"
  2177. Send the signal SIGTSTP to the interactive process in the selected buffer.
  2178. This is equivalent to sending the \*Qstop\*U character (which most people
  2179. have bound to ^Z) to the process.  This only works if you are in a buffer
  2180. bound to an interactive process.
  2181. .dc "stop-remembering" "Not Bound"
  2182. This is just another name for the
  2183. .IQ end-kbd-macro
  2184. command.  It is included for backward compatibility.
  2185. .dc "string-length" "Not Bound"
  2186. This prints the number of characters in the string that point sits in.
  2187. Strings are surrounded by double quotes.  \s-2JOVE\s0 knows that
  2188. \*Q\^\e\^007\*U is considered a single character, namely \*Q^G\*U, and also
  2189. knows about other common ones, like \*Q\^\e\^r\*U (Return) and \*Q\^\e\^n\*U
  2190. (Linefeed).  This is mostly useful only for C programmers.
  2191. .dc "suspend-jove" "Not Bound"
  2192. This is a synonym for
  2193. .IQ pause-jove .
  2194. .dc "sync-frequency" "(variable)"
  2195. The temporary files used by \s-2JOVE\s0 are forced out to disk every
  2196. .IQ sync-frequency
  2197. modifications.  The default is 50, which really makes
  2198. good sense.  Unless your system is very unstable, you probably
  2199. shouldn't fool with this.
  2200. .dc "tab-width" "(variable)"
  2201. When \s-2JOVE\s0 displays a Tab character, it moves point forward to the
  2202. next multiple of this variable.  If the value is 0, tab is displayed as ^I,
  2203. not whitespace.
  2204. The default value is 8.
  2205. .dc "tag-file" "(variable)"
  2206. This is the name of the file in which \s-2JOVE\s0 should look up tag
  2207. definitions.  The default value is \*Q.\^/tags\*U.
  2208. .dc "text-attribute" "(variable)"
  2209. (IBM PC version only) This specifies the screen attribute (color) for
  2210. normal text characters.  The default is 7 (white on black).
  2211. .dc "text-mode" "Not Bound"
  2212. This sets the major mode to Text.  This affects what \s-2JOVE\s0 considers
  2213. as characters that make up words.  For instance, Single-quote is not part of
  2214. a word in Fundamental mode, but is in Text mode.
  2215. .dc "tmp-file-pathname" "(variable)"
  2216. This tells \s-2JOVE\s0 where to put the tmp files, which is where \s-2JOVE\s0 stores
  2217. buffers internally.  The default is in
  2218. .BQ /tmp ,
  2219. or as set up when your system
  2220. was compiled, but if you want to
  2221. store them somewhere else, you can set this variable.  If your system
  2222. crashes a lot it might be a good idea to set this variable to somewhere
  2223. other than
  2224. .BQ /tmp
  2225. because the system removes all the files in
  2226. .BQ /tmp
  2227. upon
  2228. reboot, and so you would not be able to recover editor buffers using the
  2229. .IQ "jove -r"
  2230. command.
  2231.  
  2232. NOTE: In order for this to work correctly you must set this variable
  2233. BEFORE \s-2JOVE\s0 creates the tmp file.  You can set this in your
  2234. .BQ \&.joverc
  2235. (the closer to the beginning the better), or as soon as you
  2236. start up \s-2JOVE\s0 before you read any files.
  2237. .dc "transpose-characters" "^T"
  2238. This switches the character before point with the one after point, and
  2239. then moves forward one.  This doesn't work at the beginning of the
  2240. line, and at the end of the line it switches the two characters before
  2241. point.  Since point is moved forward, so that the character that was
  2242. before point is still before point, you can use
  2243. .IQ transpose-characters
  2244. to drag a character down the length of a line.
  2245. .dc "transpose-lines" "^X\ ^T"
  2246. This switches the current line with the one above it, and then moves
  2247. down one so that the line that was above point is still above point.
  2248. This, like
  2249. .IQ transpose-characters ,
  2250. can be used to drag a line down a page.
  2251. .dc "unbound" "Not Bound"
  2252. This command acts as if an unbound key sequence were typed.
  2253. In fact, that is its use: if you wish to unbind a key sequence,
  2254. simply bind it to this command.
  2255. .dc "update-time-frequency" "(variable)"
  2256. How often the mode line is updated (and thus the time).  The
  2257. default is 30 seconds.
  2258. .dc "use-i/d-char" "(variable)"
  2259. If your terminal has insert/delete character capability you can tell \s-2JOVE\s0
  2260. not to use it by setting this to
  2261. .IQ off .
  2262. In my opinion it is only worth using
  2263. insert/delete character at low baud rates.  WARNING: if you set this to
  2264. .IQ on
  2265. when your terminal doesn't have insert/delete character capability,
  2266. you will get weird (perhaps fatal) results.
  2267. .dc "version" "Not Bound"
  2268. Displays the version number of this \s-2JOVE\s0.
  2269. .dc "visible-bell" "(variable)"
  2270. If the terminal has a visible bell, use it instead of beeping.
  2271. .dc "visible-spaces-in-window" "Not Bound"
  2272. This displays an underscore character instead of each Space in the
  2273. window and displays a greater-than followed by spaces for each Tab
  2274. in the window.  The actual text in the buffer is not changed; only
  2275. the screen display is affected.  To turn this off you run the command
  2276. again; it toggles.
  2277. .dc "visit-file" "^X\ ^V or ^X\ ^R"
  2278. This reads a specified file into the selected buffer replacing the old
  2279. text.  If the buffer needs saving \s-2JOVE\s0 will offer to save it for you.
  2280. Sometimes you use this to start over, say if you make lots of changes
  2281. and then change your mind.  If that's the case you don't want \s-2JOVE\s0 to
  2282. save your buffer and you answer \*QNO\*U to the question.
  2283. .dc "window-find" "^X\ 4"
  2284. This lets you select another buffer in another window three
  2285. different ways.  This waits for another character which can be one of
  2286. the following:
  2287. .DS I
  2288. .ta .5i 1i 1.5i
  2289. T    Finds a tag in the other window.
  2290. ^T    Finds the tag at point in the other window
  2291. F    Finds a file in the other window.
  2292. B    Selects a buffer in the other window.
  2293. .DE
  2294. This is just a convenient short hand for
  2295. .IQ split-current-window
  2296. (or
  2297. .IQ previous-window
  2298. if there are
  2299. already two windows) followed by the appropriate sequence for invoking each
  2300. command.  With this, though, there isn't the extra overhead of having to
  2301. redisplay.  In addition, you don't have to decide whether to use
  2302. .IQ split-current-window
  2303. or
  2304. .IQ previous-window
  2305. since
  2306. .IQ window-find
  2307. does the right thing.
  2308. .dc "word-abbrev-mode" "Not Bound"
  2309. This turns on or off Word Abbrev minor mode in the selected buffer.
  2310. Without a numeric argument, the command toggles the mode; with a
  2311. zero argument, the mode is turned off; with a non-zero argument,
  2312. the mode is turned on.  Word Abbrev mode lets you specify a word (an
  2313. abbreviation) and a phrase with which \s-2JOVE\s0 should substitute
  2314. the abbreviation.  You can use this to define words to expand into
  2315. long phrases, e.g., \*Qjove\*U can expand into \*QJonathan's Own Version of Emacs\*U;
  2316. another common use is defining words that you often misspell
  2317. in the same way, e.g., \*Qthier\*U => \*Qtheir\*U or \*Qteh\*U => \*Qthe\*U.  See
  2318. the information on the
  2319. .IQ auto-case-abbrev
  2320. variable.
  2321. .sp 1
  2322. There are two kinds of abbreviations: mode specific and global.  If you
  2323. define a Mode specific abbreviation in C mode, it will expand only in
  2324. buffers that are in C mode.  This is so you can have the same
  2325. abbreviation expand to different things depending on your context.
  2326. Global abbreviations expand regardless of the major mode of the buffer.
  2327. The way it works is this: \s-2JOVE\s0 looks first in the mode specific
  2328. table, and then in the global table.  Whichever it finds it in first is
  2329. the one that's used in the expansion.  If it doesn't find the word it is
  2330. left untouched.  \s-2JOVE\s0 tries to expand words when
  2331. you type a punctuation character or Space or Return.  If you are in Auto
  2332. Fill mode the expansion will be filled as if you typed it yourself.
  2333. .dc "wrap-process-lines" "(variable)"
  2334. If this variable is
  2335. .IQ on ,
  2336. the process output that is captured in a
  2337. buffer is wrapped just before the line would have as many characters as
  2338. there are columns on the screen.
  2339. This introduces extra newlines, but it makes the output more
  2340. readable.
  2341. Note that the folding does not take into account that some
  2342. characters (notably tabs) occupy more than one column of the
  2343. display.
  2344. The output of the
  2345. .IQ filter-region
  2346. command is not processed in this way
  2347. because the extra newlines are presumed to be undesired in this case.
  2348. .dc "wrap-search" "(variable)"
  2349. If set, searches will \*Qwrap around\*U the ends of the buffer instead
  2350. of stopping at the bottom or top.  The default is
  2351. .IQ off .
  2352. .dc "write-file" "^X\ ^W"
  2353. This saves the selected buffer to a specified file, and then makes that
  2354. file the default file name for this buffer.  If you specify a file
  2355. that already exists you are asked to confirm over-writing it.
  2356. .dc "write-files-on-make" "(variable)"
  2357. When set, all modified files will be written out before calling
  2358. make when the
  2359. .IQ compile-it
  2360. command is executed.  The default is
  2361. .IQ on .
  2362. .dc "write-macros-to-file" "Not Bound"
  2363. This writes the currently defined macros to a specified file in a format
  2364. appropriate for reading them back in with the
  2365. .IQ source
  2366. command.  The purpose of this command is to allow you to define macros
  2367. once and use them in other instances of \s-2JOVE\s0.
  2368. See also the
  2369. .IQ define-macro
  2370. command.
  2371. .dc "write-modified-files" "^X\ ^M"
  2372. This saves all the buffers that need saving.  If you supply a numeric
  2373. argument it asks, for each buffer, whether you really want to save it.
  2374. .dc "write-region" "Not Bound"
  2375. This writes the text in the region to a specified file.  If the file
  2376. already exists you are asked to confirm over-writing it.
  2377. .dc "write-word-abbrev-file" "Not Bound"
  2378. This writes the currently defined abbreviations to a specified file.
  2379. They can be read back in and automatically defined with
  2380. .IQ read-word-abbrev-file .
  2381. .dc "xj-mouse-commands" "^X\ m\(**"
  2382. Programs such as XJove and JoveTool generate these commands whenever a mouse button
  2383. is pressed or released, or the mouse is moved while the button is
  2384. pressed.  They are followed by parameters giving parameters for the
  2385. button pressed, the coordinates of the mouse, etc.  They are not
  2386. intended for direct use by the normal user.
  2387. .sp 1
  2388. The individual commands will now be described.
  2389. .dc "xj-mouse-copy-cut" "^X\ m8"
  2390. Performs a
  2391. .IQ copy-region
  2392. if the CTRL key was down, or a
  2393. .IQ kill-region
  2394. if
  2395. both CTRL and SHIFT were down.
  2396. This command is normally bound to the release of button 2.
  2397. .dc "xj-mouse-line" "^X\ m7"
  2398. Sets the region to be the whole line containing the cursor.
  2399. This command is normally bound to a triple down click of button 2, and
  2400. the presumed effects of the preceding double click are first undone.
  2401. .dc "xj-mouse-mark" "^X\ m5"
  2402. Both point and mark are set to the cursor.
  2403. This command is normally bound to the pressing of button 2.
  2404. .dc "xj-mouse-point" "^X\ m[01249]"
  2405. Point is set to the cursor.
  2406. This command is normally bound to the single, double, and triple
  2407. down-click and the dragging of button 1; also the dragging of button 2.
  2408. .dc "xj-mouse-word" "^X\ m6"
  2409. Sets the region to be the word (or the gap between two words)
  2410. containing the cursor.
  2411. This command is normally bound to a double down click of button 2, and
  2412. the presumed effects of the preceding single click are first undone.
  2413. .dc "xj-mouse-yank" "^X\ m3"
  2414. Performs a
  2415. .IQ yank
  2416. if the CTRL key was down.
  2417. This command is normally bound to the release of button 1.
  2418. .dc "xt-mouse" "(variable)"
  2419. When set, \s-2JOVE\s0 sends XTerm escape sequences to enable and
  2420. disable the mouse messages at appropriate times.
  2421. Warning: due to the way XTerm encodes mouse events, if
  2422. .IQ meta-key
  2423. is set, mouse actions beyond column 95 or row 95 will be misunderstood;
  2424. in any case, mouse actions beyond column 223 or row 223 will be misunderstood.
  2425. .dc "xt-mouse-commands" "ESC\ [ M\(**"
  2426. Programs such as XTerm generate these commands whenever a mouse button
  2427. is pressed or released.
  2428. XTerm does not give the user as much power as XJove.
  2429. They are followed by parameters specifying the
  2430. button pressed, the coordinates of the mouse, etc.
  2431. They are not intended for direct use by the normal user.
  2432. Set the variable
  2433. .IQ xt-mouse
  2434. on to enable XTerm mouse mode.
  2435. .sp 1
  2436. The individual commands will now be described.
  2437. .dc "xt-mouse-mark" "^X\ m5"
  2438. Both point and mark are set to the cursor.
  2439. This command is normally bound to the pressing of button 2.
  2440. .dc "xt-mouse-point" "^X\ m[01249]"
  2441. Point is set to the cursor.
  2442. This command is normally bound to the down-click of button 1.
  2443. .dc "xt-mouse-up" "^X\ m6"
  2444. As the name implies, this command is normally bound to the release
  2445. of any button (XTerm does not specify which button was released).
  2446. Note that a normally configured XTerm will not pass on mouse events
  2447. if the CTRL or SHIFT keys are pressed.  Point is set to the cursor.
  2448. If the most recently pressed button was button 1 and the CTRL key
  2449. was down (and not the SHIFT key), this command performs a
  2450. .IQ yank .
  2451. If
  2452. the most recently pressed button was button 2 and the CTRL key was
  2453. down, this command performs a
  2454. .IQ copy-region .
  2455. If the most recently pressed
  2456. button was button 2 and the CTRL and SHIFT keys were down, this
  2457. command performs a
  2458. .IQ kill-region .
  2459. .dc "yank" "^Y"
  2460. This inserts the text at the front of the kill ring (as set by an earlier
  2461. .IQ copy-region ,
  2462. .IQ kill-region ,
  2463. etc.) at point.
  2464. When you do multiple kill commands in a row, they are
  2465. merged so that the
  2466. .IQ yank
  2467. command yanks back all of them.
  2468. .dc "yank-pop" "ESC\ Y"
  2469. \s-2JOVE\s0 has a kill ring on which the last sixteen kills are stored.
  2470. This command yanks back previous texts from the kill ring.
  2471. .IQ yank
  2472. yanks a copy of the text at the
  2473. front of the ring.  If you want one of the last sixteen kills you then use
  2474. .IQ yank-pop
  2475. which rotates the ring so another different entry is now at the
  2476. front.  You can use
  2477. .IQ yank-pop
  2478. only immediately following a
  2479. .IQ yank
  2480. or
  2481. another
  2482. .IQ yank-pop .
  2483. If you supply a negative numeric argument the ring
  2484. is rotated the other way.  If you use this command enough times in a
  2485. row you will eventually get back to where you started.
  2486.