|
|
1.1 ! root 1: .bp ! 2: .NH 1 ! 3: Alphabetical List of Commands and Variables ! 4: .dc "abort-char" "(variable)" ! 5: This variable defines \s-2JOVE'S\s0 abort characer. When the abort ! 6: character is typed, the current \s-2JOVE\s0 command is aborted. The ! 7: default value is C-G. ! 8: .dc "add-lisp-special" "Not Bound" ! 9: This command is to tell \s-2JOVE\s0 what identifiers require special ! 10: indentation in lisp mode. Lisp functions like defun and let are two of ! 11: the default functions that get treated specially. This is just a kludge ! 12: to define some of your own. It prompts for the function name. ! 13: .dc "allow-^S-and-^Q" "(variable)" ! 14: This variable, when set, tells \s-2JOVE\s0 that your terminal does not need ! 15: to use the characters C-S and C-Q for flow control, and that it is ! 16: okay to bind things to them. This variable should be set depending ! 17: upon what kind of terminal you have. ! 18: .dc "allow-bad-filenames" "(variable)" ! 19: If set, this variable permits filenames to contain "bad" characters ! 20: such as those from the set *&%!"`[]{}. These files are harder to deal ! 21: with, because the characters mean something to the shell. The default ! 22: value is "off". ! 23: .dc "append-region" "Not Bound" ! 24: This appends the region to a specified file. If the file does not ! 25: already exist it is created. ! 26: .dc "apropos" "Not Bound" ! 27: This types out all the commands, variables and macros with the specific ! 28: keyword in their names. For each command and macro that contains the ! 29: string, the key sequence that can be used to execute the command or macro is ! 30: printed; with variables, the current value is printed. So, to find all the ! 31: commands that are related to windows, you type ! 32: .DS ! 33: ESC X apropos window<Return> ! 34: .DE ! 35: .dc "auto-case-abbrev" "(variable)" ! 36: When this variable is on (the default), word abbreviations are adjusted for ! 37: case automatically. For example, if "jove" were the abbreviation for ! 38: "jonathan's own version of emacs", then typing "jove" would give you ! 39: "jonathan's own version of emacs", typing "Jove" would give you "Jonathan's ! 40: own version of emacs", and typing "JOVE" would give you "Jonathan's Own ! 41: Version of Emacs". When this variable is "off", upper and lower case are ! 42: distinguished when looking for the abbreviation, i.e., in the example above, ! 43: "JOVE" and "Jove" would not be expanded unless they were defined separately. ! 44: .dc "auto-execute-command" "Not Bound" ! 45: This tells \s-2JOVE\s0 to execute a command automatically when a file whose ! 46: name matches a specified pattern is visited. The first argument is the ! 47: command you want executed and the second is a regular expression ! 48: pattern that specifies the files that apply. For example, if you want ! 49: to be in show-match-mode when you edit C source files (that is, files ! 50: that end with ".c" or ".h") you can type ! 51: .ID ! 52: ESC X auto-execute-command show-match-mode .*\.[ch]$ ! 53: .DE ! 54: .dc "auto-execute-macro" "Not Bound" ! 55: This is like ! 56: .IQ auto-execute-command ! 57: except you use it to execute macros ! 58: automatically instead of built-in commands. ! 59: .dc "auto-fill-mode" "Not Bound" ! 60: This turns on Auto Fill mode (or off if it's currently on) in the ! 61: selected buffer. When \s-2JOVE\s0 is in Auto Fill mode it automatically ! 62: breaks lines for you when you reach the right margin so you don't have ! 63: to remember to hit Return. \s-2JOVE\s0 uses 78 as the right margin but you ! 64: can change that by setting the variable ! 65: .IQ right-margin ! 66: to another ! 67: value. See the ! 68: .IQ set ! 69: command to learn how to do this. ! 70: .dc "auto-indent-mode" "Not Bound" ! 71: This turns on Auto Indent mode (or off if it's currently on) in the ! 72: selected buffer. When \s-2JOVE\s0 is in Auto Indent mode, Return indents the ! 73: new line to the same position as the line you were just on. This is ! 74: useful for lining up C code (or any other language (but what else is ! 75: there besides C?)). This is out of date because of the new command ! 76: called ! 77: .IQ newline-and-indent ! 78: but it remains because of several ! 79: "requests" on the part of, uh, enthusiastic and excitable users, that ! 80: it be left as it is. ! 81: .dc "background-color" "(variable)" ! 82: This specifies the background color of the screen (PC version only). The ! 83: default value is 0, which stands for black. ! 84: .dc "backward-character" "C-B" ! 85: This moves point backward over a single character. If point is at the ! 86: beginning of the line it moves to the end of the previous line. ! 87: .dc "backward-list" "ESC C-P" ! 88: This moves backward over a list as opposed to an s-expression. The ! 89: difference between this and ! 90: .IQ backward-s-expression ! 91: is that this first searchs for a ")" and then moves to the matching "(". ! 92: This is useful when you're trying to find unmatched parens in a program. ! 93: .dc "backward-paragraph" "ESC [" ! 94: This moves point backward to the beginning of the current or previous ! 95: paragraph. Paragraphs are bounded by lines that begin with a Period or ! 96: Tab, or by blank lines; a change in indentation may also signal a break ! 97: between paragraphs, except that \s-2JOVE\s0 allows the first line of a paragraph ! 98: to be indented differently from the other lines. ! 99: .dc "backward-s-expression" "ESC C-B" ! 100: This moves point backward over a s-expression. It is just like ! 101: .IQ forward-s-expression ! 102: with a negative argument. ! 103: .dc "backward-sentence" "ESC A" ! 104: This moves point backward to the beginning of the current or previous ! 105: sentence. \s-2JOVE\s0 considers the end of a sentence to be the characters ! 106: ".", "!" or "?" followed by a Return or by one or more spaces. ! 107: .dc "backward-up-list" "ESC C-U" ! 108: This is similar to ! 109: .IQ backward-s-expression ! 110: except it backs up and OUT of the enclosing s-expression. In other ! 111: words, it moves backward to the "(" that would match a ")" if you were to ! 112: type it right then. ! 113: .dc "backward-word" "ESC B" ! 114: This moves point backward to the beginning of the current or previous ! 115: word. ! 116: .dc "bad-filename-extensions" "(variable)" ! 117: This contains a list of words separated by spaces which are to be ! 118: considered bad filename extensions, and so will not be counted in ! 119: filename completion. The default is ".o" so if you have jove.c and ! 120: jove.o in the same directory, the filename completion will not complain ! 121: of an ambiguity because it will ignore jove.o. ! 122: .dc "begin-kbd-macro" "C-X (" ! 123: This starts defining the keyboard macro by remembering all your key ! 124: strokes until you execute ! 125: .IQ end-kbd-macro, ! 126: by typing "C-X )". Because of a bug in \s-2JOVE\s0 you shouldn't ! 127: terminate the macro by typing "ESC X end-kbd-macro"; ! 128: .IQ end-kbd-macro ! 129: must be bound to "C-X )" in order to make things work correctly. To ! 130: execute the remembered key strokes you type "C-X E" which runs the ! 131: .IQ execute-kbd-macro ! 132: command. ! 133: Sometimes you may want a macro to accept different input each time it runs. ! 134: To see how to do this, see the ! 135: .IQ make-macro-interactive ! 136: command. ! 137: .dc "beginning-of-file" "ESC <" ! 138: This moves point backward to the beginning of the buffer. This sometimes ! 139: prints the "Point Pushed" message. If the top of the buffer isn't on the ! 140: screen \s-2JOVE\s0 will set the mark so you can go back to where you were ! 141: if you want. ! 142: .dc "beginning-of-line" "C-A" ! 143: This moves point to the beginning of the current line. ! 144: .dc "beginning-of-window" "ESC ," ! 145: This moves point to the beginning of the current window. The sequence ! 146: "ESC ," is the same as "ESC <" (beginning of file) except without the shift ! 147: key on the "<", and can thus can easily be remembered. ! 148: .dc "bind-keymap-to-key" "Not Bound" ! 149: This is the way to build nested keymaps. For example, when \s-2JOVE \s0 ! 150: starts up, internally it does a ! 151: .ID ! 152: bind-keymap-to-key ESC-map ^[ ! 153: .DE ! 154: To make the arrow keys on vt100's work, you would do the following. ! 155: .ID ! 156: .nf ! 157: make-keymap vt100-map ! 158: bind-keymap-to-key vt100-map ^[[ ! 159: bind-to-key next-line ^[[A ! 160: bind-to-key previous-line ^[[B ! 161: bind-to-key forward-character ^[[C ! 162: bind-to-key backward-character ^[[D ! 163: .fi ! 164: .DE ! 165: I may have gotten the escape sequences wrong, but you get the general ! 166: idea. Theoretically you can use these keymaps to bind arbitrarily long ! 167: key sequences, like those generated by the SUN keyboards, but that is a ! 168: bit of a pain because you will have to generate a bunch of keymaps by ! 169: hand, almost one per key, because of the way the key sequences are ! 170: organized. Eventually there will be a more general way to have these ! 171: keymaps built for you. ! 172: .dc "bind-macro-to-key" "Not Bound" ! 173: This is like ! 174: .IQ bind-to-key ! 175: except you use it to attach keys to named macros. ! 176: .dc "bind-macro-to-word-abbrev" "Not Bound" ! 177: This command allows you to bind a macro to a previously defined word ! 178: abbreviation. Whenever you type the abbreviation, it will first be expanded ! 179: as an abbreviation, and then the macro will be executed. Note that if the ! 180: macro moves around, you should set the mark first (C-@) and then exchange ! 181: the point and mark last (C-X C-X). ! 182: .dc "bind-to-key" "Not Bound" ! 183: This attaches a key to an internal \s-2JOVE\s0 command so that future hits on ! 184: that key invoke that command. For example, to make "C-W" erase the ! 185: previous word, you type "ESC X bind-to-key kill-previous-word C-W". ! 186: .dc "buffer-position" "Not Bound" ! 187: This displays the current file name, current line number, total number ! 188: of lines, percentage of the way through the file, and the position of ! 189: the cursor in the current line. ! 190: .dc "c-argument-indentation" "(variable)" ! 191: This variable describes how to indent lines which are part of nested ! 192: expressions in C. The default is -1, which means to indent a continued ! 193: line by lining it up with the first argument of the current expression. ! 194: Otherwise, the line will be indented by c-argument-indentation characters ! 195: past the indent of the first line of the expression. For example, the ! 196: default value produces: ! 197: .nf ! 198: Typeout(fmt, itoa(bcount++), line_cnt(b, nbuf), ! 199: TypeNames[b->b_type], ! 200: IsModified(b) ? "*" : b->b_ntbf ? "+" : NullStr, ! 201: buf_width, b->b_name, filename(b)); ! 202: .fi ! 203: .dc "c-indentation-increment" "(variable)" ! 204: This defines a set of tabstops independent of the value of ! 205: internal-tabstops and physical-tabstops. This value will be used in C ! 206: mode, and JOVE will insert the correct number of spaces and Tabs to get ! 207: the right behavior. For programmers that like to indent with 4 spaces, ! 208: set this value to 4. Don't set internal-tabstops to 4 because that will ! 209: not work anymore. Setting internal-tabstops to 4 tells JOVE to display ! 210: Tabs as every 4 spaces. This will cause your programs to look terrible ! 211: with anyone else who displays the file with normal tabstops at every 8 ! 212: characters. Not to mention printing your program won't look right. But ! 213: all that aside, if you set c-indentation-increment to 8 (the default), ! 214: and then set internal-tabstops to 4 as well, JOVE will insert TWO Tabs to ! 215: get the indentation to 8, which is clearly not what you want. ! 216: .dc "c-mode" "Not Bound" ! 217: This turns on C mode in the currently selected buffer. This is one of ! 218: currently four possible major modes: Fundamental, Text, C, Lisp. ! 219: When in C or Lisp mode, Tab, "}", and ")" behave a little differently ! 220: from usual: They are indented to the "right" place for C (or Lisp) ! 221: programs. In \s-2JOVE\s0, the "right" place is simply the way the author ! 222: likes it (but I've got good taste). ! 223: .dc "case-character-capitalize" "Not Bound" ! 224: This capitalizes the character after point, i.e., the character under ! 225: the cursor. If a negative argument is supplied that many characters ! 226: .IQ before ! 227: point are upper cased. ! 228: .dc "case-ignore-search" "(variable)" ! 229: This variable, when set, tells \s-2JOVE\s0 to treat upper and lower case as ! 230: the same when searching. Thus "jove" and "JOVE" would match, and ! 231: "JoVe" would match either. The default value of this variable is "off". ! 232: .dc "case-region-lower" "Not Bound" ! 233: This changes all the upper case letters in the region to their lower ! 234: case equivalent. ! 235: .dc "case-region-upper" "Not Bound" ! 236: This changes all the lower case letters in the region to their upper ! 237: case equivalent. ! 238: .dc "case-word-capitalize" "ESC C" ! 239: This capitalizes the current word by making the current letter upper ! 240: case and making the rest of the word lower case. Point is moved to ! 241: the end of the word. If point is not positioned on a word it is first ! 242: moved forward to the beginning of the next word. If a negative ! 243: argument is supplied that many words ! 244: .IQ before ! 245: point are capitalized. ! 246: This is useful for correcting the word just typed without having to ! 247: move point to the beginning of the word yourself. ! 248: .dc "case-word-lower" "ESC L" ! 249: This lower-cases the current word and leaves point at the end of it. ! 250: If point is in the middle of a word the rest of the word is ! 251: converted. If point is not in a word it is first moved forward to the ! 252: beginning of the next word. If a negative argument is supplied that ! 253: many words ! 254: .IQ before ! 255: point are converted to lower case. This is useful ! 256: for correcting the word just typed without having to move point to the ! 257: beginning of the word yourself. ! 258: .dc "case-word-upper" "ESC U" ! 259: This upper-cases the current word and leaves point at the end of it. ! 260: If point is in the middle of a word the rest of the word is ! 261: converted. If point is not in a word it is first moved forward to the ! 262: beginning of the next word. If a negative argument is supplied that ! 263: many words ! 264: .IQ before ! 265: point are converted to upper case. This is useful ! 266: for correcting the word just typed without having to move point to the ! 267: beginning of the word yourself. ! 268: .dc "cd" "Not Bound" ! 269: This changes the current directory. ! 270: .dc "character-to-octal-insert" "Not Bound" ! 271: This inserts a Back-slash followed by the ascii value of the next ! 272: character typed. For example, "C-G" inserts the string "\e007". ! 273: .dc "clear-and-redraw" "ESC C-L" ! 274: This clears the entire screen and redraws all the windows. Use this ! 275: when \s-2JOVE\s0 gets confused about what's on the screen, or when the screen ! 276: gets filled with garbage characters or output from another program. ! 277: .dc "comment-format" "(variable)" ! 278: This variable tells \s-2JOVE\s0 how to format your comments when you run the ! 279: command ! 280: .IQ fill-comment. ! 281: Its format is this: ! 282: .ID ! 283: <open pattern>%!<line header>%c<line trailer>%!<close pattern> ! 284: .DE ! 285: The %!, %c, and %! must appear in the format; everything else is optional. ! 286: A newline (represented by %n) may appear in the open or close patterns. %% ! 287: is the representation for %. The default comment format is for C comments. ! 288: See ! 289: .IQ fill-comment ! 290: for more. ! 291: .dc "compile-it" "C-X C-E" ! 292: This compiles your program by running the UNIX command "make" into a buffer, ! 293: and automatically parsing the error messages that are created (if any). See ! 294: the ! 295: .IQ parse-errors ! 296: command. To compile a C program without "make", use "C-U C-X C-E" and ! 297: \s-2JOVE\s0 will prompt for a command to run instead of make. (And then ! 298: the command you type will become the default command.) You can use this ! 299: to parse the output from the C compiler or the "grep" or "lint" programs. ! 300: See also ! 301: .IQ error-format-string ! 302: to make it possible to parse errors of a different format. ! 303: .dc "continue-process" "Not Bound" ! 304: This sends SIGCONT to the current interactive process, ! 305: .IQ if ! 306: the process ! 307: is currently stopped. ! 308: .dc "copy-region" "ESC W" ! 309: This takes all the text in the region and copies it onto the kill ring ! 310: buffer. This is just like running ! 311: .IQ kill-region ! 312: followed by the ! 313: .IQ yank ! 314: command. See the ! 315: .IQ kill-region ! 316: and ! 317: .IQ yank ! 318: commands. ! 319: .dc "current-error" "Not Bound" ! 320: This moves to the current error in the list of parsed errors. See the ! 321: .IQ next-error ! 322: and ! 323: .IQ previous-error ! 324: commands for more detailed ! 325: information. ! 326: .dc "date" "Not Bound" ! 327: This prints the date on the message line. ! 328: .dc "dbx-format-string" "(variable)" ! 329: This is the default regular-expression search string used by JOVE to ! 330: parse output from dbx running in a shell process. The default format ! 331: string works when you type "where" or while you're stepping through a ! 332: program, or when you reach a breakpoint. You shouldn't have to change ! 333: this unless you are using gdb or some other symbolic debugger. ! 334: .dc "define-global-word-abbrev" "Not Bound" ! 335: This defines a global abbreviation. ! 336: .dc "define-macro" "Not Bound" ! 337: This provides a different mechanism for defining keyboard macros. ! 338: Instead of gathering keystrokes and storing them into the ! 339: "keyboard-macro" (which is how ! 340: .IQ start-kbd-macro ! 341: works), ! 342: .IQ define-macro ! 343: prompts for a macro name (terminated with Space, or Newline) and then for ! 344: the actual macro body. If you wish to specify control characters in the ! 345: macro, you may simply insert them (using the ! 346: .IQ quoted-insert ! 347: command) or by inserting the character '^' followed by the appropriate ! 348: letter for that character (e.g., ^A would be the two characters '^' ! 349: followed by 'A'). You may use Back-slash to prevent the '^' from being ! 350: interpreted as part of a control character when you really wish to insert ! 351: one (e.g., a macro body "\e^foo" would insert the string "^foo" into the ! 352: buffer, whereas the body "^foo" would be the same as typing ^F and then ! 353: inserting the string "oo"). See ! 354: .IQ write-macros-to-file ! 355: to see how to save macros. ! 356: .dc "define-mode-word-abbrev" "Not Bound" ! 357: This defines a mode-specific abbreviation. ! 358: .dc "delete-blank-lines" "C-X C-O" ! 359: This deletes all the blank lines around point. This is useful when you ! 360: previously opened many lines with "C-O" and now wish to delete the ! 361: unused ones. ! 362: .dc "delete-buffer" "C-X K" ! 363: This deletes a buffer and frees up all the memory associated with it. Be ! 364: careful(!) - once a buffer has been deleted it is gone forever. \s-2JOVE\s0 ! 365: will ask you to confirm if you try to delete a buffer that needs saving. ! 366: This command is useful for when \s-2JOVE\s0 runs out of space to store ! 367: new buffers. ! 368: .dc "delete-current-window" "C-X D" ! 369: This deletes the current window and moves point into one of the ! 370: remaining ones. It is an error to try to delete the only remaining ! 371: window. ! 372: .dc "delete-macro" "Not Bound" ! 373: This deletes a macro from the list of named macros. It is an error to ! 374: delete the keyboard-macro. Once the macro is deleted it is gone forever. ! 375: If you are about to save macros to a file and decide you don't want to save ! 376: a particular one, delete it. ! 377: .dc "delete-next-character" "C-D" ! 378: This deletes the character that's just after point (that is, the ! 379: character under the cursor). If point is at the end of a line, the ! 380: line separator is deleted and the next line is joined with the current ! 381: one. ! 382: .dc "delete-other-windows" "C-X 1" ! 383: This deletes all the other windows except the current one. This can be ! 384: thought of as going back into One Window mode. ! 385: .dc "delete-previous-character" "Rubout" ! 386: This deletes the character that's just before point (that is, the ! 387: character before the cursor). If point is at the beginning of the ! 388: line, the line separator is deleted and that line is joined with the ! 389: previous one. ! 390: .dc "delete-white-space" "ESC \e" ! 391: This deletes all the Tabs and Spaces around point. ! 392: .dc "describe-bindings" "Not Bound" ! 393: This types out a list containing each bound key and the command that gets ! 394: invoked every time that key is typed. To make a wall chart of \s-2JOVE\s0 ! 395: commands, set ! 396: .IQ send-typeout-to-buffer ! 397: to "on" and \s-2JOVE\s0 will ! 398: store the key bindings in a buffer which you can save to a file and then ! 399: print. ! 400: .dc "describe-command" "Not Bound" ! 401: This prints some info on a specified command. ! 402: .dc "describe-key" "Not Bound" ! 403: This waits for you to type a key and then tells the name of the ! 404: command that gets invoked every time that key is hit. Once you have ! 405: the name of the command you can use the ! 406: .IQ describe-command ! 407: command ! 408: to find out exactly what it does. ! 409: .dc "describe-variable" "Not Bound" ! 410: This prints some info on a specified variable. ! 411: .dc "digit" "ESC [0-9]" ! 412: This reads a numeric argument. When you type "ESC" followed by a ! 413: number, "digit" keeps reading numbers until you type some other ! 414: command. Then that command is executes with the numeric argument you ! 415: specified. ! 416: .dc "digit-1" "Not Bound" ! 417: This pretends you typed "ESC 1". This is useful for terminals that ! 418: have keypads that send special sequences for numbers typed on the ! 419: keypad as opposed to numbers typed from the keyboard. This can save ! 420: having type "ESC" when you want to specify an argument. ! 421: .dc "digit-2" "Not Bound" ! 422: This pretends you typed "ESC 2". This is useful for terminals that ! 423: have keypads that send special sequences for numbers typed on the ! 424: keypad as opposed to numbers typed from the keyboard. This can save ! 425: having type "ESC" when you want to specify an argument. ! 426: .dc "digit-3" "Not Bound" ! 427: This pretends you typed "ESC 3". This is useful for terminals that ! 428: have keypads that send special sequences for numbers typed on the ! 429: keypad as opposed to numbers typed from the keyboard. This can save ! 430: having type "ESC" when you want to specify an argument. ! 431: .dc "digit-4" "Not Bound" ! 432: This pretends you typed "ESC 4". This is useful for terminals that ! 433: have keypads that send special sequences for numbers typed on the ! 434: keypad as opposed to numbers typed from the keyboard. This can save ! 435: having type "ESC" when you want to specify an argument. ! 436: .dc "digit-5" "Not Bound" ! 437: This pretends you typed "ESC 5". This is useful for terminals that ! 438: have keypads that send special sequences for numbers typed on the ! 439: keypad as opposed to numbers typed from the keyboard. This can save ! 440: having type "ESC" when you want to specify an argument. ! 441: .dc "digit-6" "Not Bound" ! 442: This pretends you typed "ESC 6". This is useful for terminals that ! 443: have keypads that send special sequences for numbers typed on the ! 444: keypad as opposed to numbers typed from the keyboard. This can save ! 445: having type "ESC" when you want to specify an argument. ! 446: .dc "digit-7" "Not Bound" ! 447: This pretends you typed "ESC 7". This is useful for terminals that ! 448: have keypads that send special sequences for numbers typed on the ! 449: keypad as opposed to numbers typed from the keyboard. This can save ! 450: having type "ESC" when you want to specify an argument. ! 451: .dc "digit-8" "Not Bound" ! 452: This pretends you typed "ESC 8". This is useful for terminals that ! 453: have keypads that send special sequences for numbers typed on the ! 454: keypad as opposed to numbers typed from the keyboard. This can save ! 455: having type "ESC" when you want to specify an argument. ! 456: .dc "digit-9" "Not Bound" ! 457: This pretends you typed "ESC 9". This is useful for terminals that ! 458: have keypads that send special sequences for numbers typed on the ! 459: keypad as opposed to numbers typed from the keyboard. This can save ! 460: having type "ESC" when you want to specify an argument. ! 461: .dc "digit-0" "Not Bound" ! 462: This pretends you typed "ESC 0". This is useful for terminals that ! 463: have keypads that send special sequences for numbers typed on the ! 464: keypad as opposed to numbers typed from the keyboard. This can save ! 465: having type "ESC" when you want to specify an argument. ! 466: .dc "dirs" "Not Bound" ! 467: This prints out the directory stack. See the "cd", "pushd", "popd" ! 468: commands for more info. ! 469: .dc "disable-biff" "(variable)" ! 470: When this is set, \s-2JOVE\s0 disables biff when you're editing and enables it ! 471: again when you get out of \s-2JOVE\s0, or when you pause to the parent shell ! 472: or push to a new shell. (This means arrival of new mail will not be ! 473: immediately apparent but will not cause indiscriminate writing on the ! 474: display). The default is "off". ! 475: .dc "display-bad-filenames" "(variable)" ! 476: This variable affects only filename completion, in particular, what ! 477: happens when "?" is typed while prompting for a file. When this variable ! 478: is ON, any files that end with one of the extensions defined by the ! 479: variable ! 480: .IQ bad-filename-extensions ! 481: will be displayed with an "!" in front of their names. When ! 482: .IQ display-bad-filenames ! 483: is OFF the files will not be displayed at all. The default value is on. ! 484: .dc "down-list" "ESC C-D" ! 485: This is the opposite of ! 486: .IQ backward-up-list. ! 487: It's not clear to me that this command serves any useful purpose in ! 488: life. Try it out, and let me know what you think. ! 489: .dc "dstop-process" "Not Bound" ! 490: Send the "dsusp" character to the current process. This is the ! 491: character that suspends a process on the next read from the ! 492: terminal. Most people have it set to C-Y. This only works if ! 493: you have the interactive process feature, and if you are in a ! 494: buffer bound to a process. ! 495: .dc "edit-word-abbrevs" "Not Bound" ! 496: This creates a buffer with a list of each abbreviation and the phrase ! 497: it expands into, and enters a recursive edit to let you change the ! 498: abbreviations or add some more. The format of this list is ! 499: "abbreviation:phrase" so if you add some more you should follow that ! 500: format. It's probably simplest just to copy some already existing ! 501: abbreviations and edit them. When you are done you type "C-X C-C" to ! 502: exit the recursive edit. ! 503: .dc "end-kbd-macro" "C-X )" ! 504: This stops the definition of the keyboard macro. Because of a bug in ! 505: \s-2JOVE\s0, this must be bound to "C-X )", or some key sequence which is ! 506: one or two characters long. Anything else will not work properly. ! 507: .dc "end-of-file" "ESC >" ! 508: This moves point forward to the end of the buffer. This sometimes ! 509: prints the "Point Pushed" message. If the end of the buffer isn't on ! 510: the screen \s-2JOVE\s0 will set the mark so you can go back to where you were ! 511: if you want. ! 512: .dc "end-of-line" "C-E" ! 513: This moves point to the end of the current line. If the line is too ! 514: long to fit on the screen \s-2JOVE\s0 will scroll the line to the left to ! 515: make the end of the line visible. The line will slide back to its ! 516: normal position when you move backward past the leftmost visible character ! 517: or when you move off the line altogether. ! 518: .dc "end-of-window" "ESC ." ! 519: This moves point to the last character in the window. ! 520: .dc "eof-process" "Not Bound" ! 521: Sends EOF to the current interactive process. This only works on ! 522: versions of \s-2JOVE\s0 running under versions of UNIX with pty's. ! 523: .dc "erase-buffer" "Not Bound" ! 524: This erases the contents of the specified buffer. This is like ! 525: .IQ delete-buffer ! 526: except it only erases the contents of the buffer, not ! 527: the buffer itself. If you try to erase a buffer that needs saving you ! 528: will be asked to confirm it. ! 529: .dc "error-format-string" "(variable)" ! 530: This is the error format string that is used by ! 531: .IQ parse-errors ! 532: to find the error messages in a buffer. The way it works is by using ! 533: this string as a \s-2JOVE\s0 regular expression search string, where the ! 534: \e('s and \e)'s regular expression operators are used to pick out the ! 535: file name and line number from the line containing an error message. For ! 536: instance, a typical error message might look like this: ! 537: .sp 1 ! 538: "file.c", line 540: missing semi-colon ! 539: .sp 1 ! 540: For strings of this format, an appropriate value for ! 541: .IQ error-format-string ! 542: would be something like this: ! 543: .sp 1 ! 544: ^"\e([^"]*\e)", line \e([0-9]*\e): ! 545: .sp 1 ! 546: What this means is, to find an error message, search for a line beginning ! 547: with a double-quote. Then it says that all the following characters up ! 548: to another double-quote should be remembered as one unit, namely the ! 549: filename that the error is in (that's why the first set of parens are ! 550: surrounding it). Then it says that after the filename there will be the ! 551: string ", line " followed by a line number, which should be remembered as ! 552: a single unit (which is why the second set of parens is around that). ! 553: The only constraints on the error messages is that the file name and line ! 554: number appear on the same line, and that the file name appears before the ! 555: line number. Most compilers seem to do this anyway, so this is not an ! 556: unreasonable restriction. ! 557: .sp 1 ! 558: If you do not know how to use regular expressions then this variable will ! 559: be hard for you to use. Also note that you can look at the default ! 560: value of this variable by printing it out, but it is a really complicated ! 561: string because it is trying to accommodate the outputs of more than one ! 562: compiler at a time. ! 563: .dc "error-window-size" "(variable)" ! 564: This is the percentage of the screen to use for the error-window on the ! 565: screen. When you execute ! 566: .IQ compile-it, ! 567: .IQ error-window-size ! 568: percent of the screen will go to the error window. If the window already ! 569: exists and is a different size, it is made to be this size. The default ! 570: value is 20%. ! 571: .dc "exchange-point-and-mark" "C-X C-X" ! 572: This moves point to mark and makes mark the old point. This is for ! 573: quickly moving from one end of the region to another. ! 574: .dc "execute-kbd-macro" "C-X E" ! 575: This executes the keyboard macro. If you supply a numeric argument the ! 576: macro is executed that many times. ! 577: .dc "execute-macro" "Not Bound" ! 578: This executes a specified macro. If you supply a numeric argument the ! 579: macro is executed that many times. ! 580: .dc "execute-named-command" "ESC X" ! 581: This is the way to execute a command that isn't bound to any key. When ! 582: you are prompted with ": " you can type the name of the command. You ! 583: don't have to type the entire name. Once the command is unambiguous you ! 584: can type Space and \s-2JOVE\s0 will fill in the rest for you. If you are ! 585: not sure of the name of the command, type "?" and \s-2JOVE\s0 will print ! 586: a list of all the commands that you could possibly match given what ! 587: you've already typed. If you don't have any idea what the command's name ! 588: is but you know it has something to do with windows (for example), you ! 589: can do "ESC X apropos window" and \s-2JOVE\s0 will print a list of all ! 590: the commands that are related to windows. If you find yourself ! 591: constantly executing the same commands this way you probably want to bind ! 592: them to keys so that you can execute them more quickly. See the ! 593: .IQ bind-to-key ! 594: command. ! 595: .dc "exit-jove" "C-X C-C" ! 596: This exits \s-2JOVE\s0. If any buffers need saving \s-2JOVE\s0 will print a warning ! 597: message and ask for confirmation. If you leave without saving your ! 598: buffers all your work will be lost. If you made a mistake and really ! 599: do want to exit then you can. If you are in a recursive editing level ! 600: .IQ exit-jove ! 601: will return you from that. ! 602: .dc "expand-environment-variables" "Variable" ! 603: When this variable is on JOVE will try to expand any strings of the form ! 604: "$var" into the value of the environment variable "var" when in the ! 605: minibuffer. For example, if you type $HOME/.joverc, "$HOME" will be ! 606: replaced with you home directory. The default value is off. ! 607: .dc "file-creation-mode" "(variable)" ! 608: This variable has an octal value. It contains the mode (see ! 609: .IQ chmod(1) ! 610: ) with which files should be created. This mode gets modified by your ! 611: current umask setting (see ! 612: .IQ umask(1) ! 613: ). The default value is usually ! 614: .IQ 0666 ! 615: or ! 616: .IQ 0644. ! 617: .dc "files-should-end-with-newline" "(variable)" ! 618: This variable indicates that all files should always have a newline ! 619: at the end. This is often necessary for line printers and the like. ! 620: When set, if \s-2JOVE\s0 is writing a file whose last character is not a ! 621: newline, it will add one automatically. ! 622: .dc "fill-comment" "Not Bound" ! 623: This command fills in your C comments to make them pretty and readable. ! 624: This filling is done according the variable ! 625: .IQ comment-format. ! 626: .DS L ! 627: /* ! 628: * the default format makes comments like this. ! 629: */ ! 630: .DE ! 631: This can be changed by changing the format variable. Other languages ! 632: may be supported by changing the format variable appropriately. The ! 633: formatter looks backwards from dot for an open comment symbol. If ! 634: found, all indentation is done relative the position of the first character ! 635: of the open symbol. If there is a matching close symbol, the entire ! 636: comment is formatted. If not, the region between dot and the open symbol ! 637: is reformatted. ! 638: .dc "fill-paragraph" "ESC J" ! 639: This rearranges words between lines so that all the lines in the current ! 640: paragraph extend as close to the right margin as possible, ensuring that ! 641: none of the lines will be greater than the right margin. The default value ! 642: for ! 643: .IQ right-margin ! 644: is 78, but can be changed with the ! 645: .IQ set ! 646: and ! 647: .IQ right-margin-here ! 648: commands. \s-2JOVE\s0 has a complicated algorithm ! 649: for determining the beginning and end of the paragraph. In the normal case ! 650: \s-2JOVE\s0 will give all the lines the same indent as they currently have, ! 651: but if you wish to force a new indent you can supply a numeric argument to ! 652: .IQ fill-paragraph ! 653: (e.g., by typing C-U ESC J) ! 654: and \s-2JOVE\s0 will indent each line to the column ! 655: specified by the ! 656: .IQ left-margin ! 657: variable. See also the ! 658: .IQ left-margin ! 659: variable and ! 660: .IQ left-margin-here ! 661: command. ! 662: .dc "fill-region" "Not Bound" ! 663: This is like ! 664: .IQ fill-paragraph, ! 665: except it operates on a region instead of ! 666: just a paragraph. ! 667: .dc "filter-region" "Not Bound" ! 668: This sends the text in the region to a UNIX command, and replaces the ! 669: region with the output from that command. For example, if you are ! 670: lazy and don't like to take the time to write properly indented C ! 671: code, you can put the region around your C file and ! 672: .IQ filter-region ! 673: it ! 674: through ! 675: .IQ cb, ! 676: the UNIX C beautifier. If you have a file that contains ! 677: a bunch of lines that need to be sorted you can do that from inside ! 678: \s-2JOVE\s0 too, by filtering the region through the ! 679: .IQ sort ! 680: UNIX command. ! 681: Before output from the command replaces the region \s-2JOVE\s0 stores the old ! 682: text in the kill ring, so if you are unhappy with the results you can ! 683: easily get back the old text with "C-Y". ! 684: .dc "find-file" "C-X C-F" ! 685: This visits a file into its own buffer and then selects that buffer. ! 686: If you've already visited this file in another buffer, that buffer is ! 687: selected. If the file doesn't yet exist, \s-2JOVE\s0 will print "(New file)" ! 688: so that you know. ! 689: .dc "find-tag" "C-X T" ! 690: This finds the file that contains the specified tag. \s-2JOVE\s0 looks up ! 691: tags by default in the "tags" file in the current directory. You can change ! 692: the default tag name by setting the ! 693: .IQ tag-file ! 694: variable to another ! 695: name. If you specify a numeric argument to this command, you will be ! 696: prompted for a tag file. This is a good way to specify another tag file ! 697: without changing the default. If the tag cannot be found the error is ! 698: reported and point stays where it is. ! 699: .dc "find-tag-at-point" "Not Bound" ! 700: This finds the file that contains the tag that point is currently on. ! 701: See ! 702: .IQ find-tag. ! 703: .dc "first-non-blank" "ESC M" ! 704: This moves point back to the indent of the current line. ! 705: .dc "foreground-color" "(variable)" ! 706: This specifies the foreground color of the screen (PC version only). The ! 707: default is 1, which stands for white. The attribute used for writing to ! 708: the screen is formed by (bg&7)<<4 & (fg&7). ! 709: .dc "forward-character" "C-F" ! 710: This moves forward over a single character. If point is at the end of ! 711: the line it moves to the beginning of the next one. ! 712: .dc "forward-list" "ESC C-N" ! 713: This is like ! 714: .IQ forward-s-expression ! 715: except it moves over lists ONLY. What this does is search for the next ! 716: "(" and then move to the matching ")". This is useful for when you are ! 717: trying to find mismatched parentheses in a program. ! 718: .dc "forward-paragraph" "ESC ]" ! 719: This moves point forward to the end of the current or next paragraph. ! 720: Paragraphs are bounded by lines that begin with a Period or Tab, or by blank ! 721: lines; a change in indentation may also signal a break between paragraphs, ! 722: except that \s-2JOVE\s0 allows the first line of a paragraph to be indented ! 723: differently from the other lines. ! 724: .dc "forward-s-expression" "ESC C-F" ! 725: This moves point forward over a s-expression. If the first significant ! 726: character after point is "(", this moves past the matching ")". If the ! 727: character begins an identifier, this moves just past it. This is mode ! 728: dependent, so this will move over atoms in LISP mode and C identifiers in C ! 729: mode. \s-2JOVE\s0 also matches "{". ! 730: .dc "forward-sentence" "ESC E" ! 731: This moves point forward to the end of the current or next sentence. ! 732: \s-2JOVE\s0 considers the end of a sentence to be the characters ".", "!" or ! 733: "?" followed by a Return, or one or more spaces. ! 734: .dc "forward-word" "ESC F" ! 735: This moves point forward to the end of the current or next word. ! 736: .dc "fundamental-mode" "Not Bound" ! 737: This sets the major mode to Fundamental. This affects what \s-2JOVE\s0 ! 738: considers as characters that make up words. For instance, ! 739: Single-quote is not part of a word in Fundamental mode, but is in Text ! 740: mode. ! 741: .dc "gather-numeric-argument" "C-U" ! 742: This command is one of two ways to specify a numeric argument to a ! 743: command. It's usually bound to C-U. Typing C-U once means, Do the next ! 744: command 4 times. Typing C-U twice will do the next command 16 times, and ! 745: so on. If at any point you type a number, then that number will be used ! 746: instead of 4. For instance, C-U 3 5 means do the next command 35 times. ! 747: .dc "goto-line" "ESC G" ! 748: If a numeric argument is supplied point moves to the beginning of that ! 749: line. If no argument is supplied one is prompted for. ! 750: .dc "goto-window-with-buffer" "Not Bound" ! 751: This command prompts for a buffer name and then selects that buffer. If ! 752: the buffer is currently being displayed in one of the windows, that ! 753: window is selected instead. ! 754: .dc "grind-s-expr" "Not Bound" ! 755: When point is positioned on a "(", this re-indents that LISP expression. ! 756: .dc "grow-window" "C-X ^" ! 757: This makes the current window one line bigger. This only works when ! 758: there is more than one window and provided there is room to change the ! 759: size. ! 760: .dc "handle-tab" "Tab" ! 761: This handles indenting to the "right" place in C and Lisp mode, and ! 762: just inserts itself in Text mode. ! 763: .dc "i-search-forward" "Not Bound" ! 764: Incremental search. Like search-forward except that instead of prompting ! 765: for a string and searching for that string all at once, it accepts the string ! 766: one character at a time. After each character you type as part of the search ! 767: string, it searches for the entire string so far. When you like what it ! 768: found, type the Return key to finish the search. You can take back a ! 769: character with Rubout and the search will back up to the position before ! 770: that character was typed. C-G aborts the search. ! 771: .dc "i-search-reverse" "Not Bound" ! 772: Incremental search. Like search-reverse except that instead of prompting ! 773: for a string and searching for that string all at once, it accepts the string ! 774: one character at a time. After each character you type as part of the search ! 775: string, it searches for the entire string so far. When you like what it ! 776: found, type the Return key to finish the search. You can take back a ! 777: character with Rubout and the search will back up to the position before ! 778: that character was typed. C-G aborts the search. ! 779: .dc "i-shell-command" "Not Bound" ! 780: This is like ! 781: .IQ shell-command ! 782: except it lets you continue with your ! 783: editing while the command is running. This is really useful for long ! 784: running commands with sporadic output. See the manual for information ! 785: on how to use interactive processes. ! 786: .dc "insert-file" "C-X C-I" ! 787: This inserts a specified file into the current buffer at point. Point ! 788: is positioned at the beginning of the inserted file. ! 789: .dc "internal-tabstop" "(variable)" ! 790: The number of spaces \s-2JOVE\s0 should print when it displays a tab character. ! 791: The default value is 8. ! 792: .dc "interrupt-character" "(variable)" ! 793: This is set to the character that interrupts JOVE (with a signal) no matter ! 794: what JOVE is doing. It's main use is for interrupting non-interactive ! 795: processes, but it also has uses for debugging. Unfortunately there is no ! 796: way to turn off the interrupt character. ! 797: .dc "interrupt-process" "Not Bound" ! 798: This sends the interrupt character (usually C-C) to the interactive process ! 799: in the current buffer. This is only for versions of \s-2JOVE\s0 that have the ! 800: interactive processes feature. This only works when you are inside a buffer ! 801: that's attached to a process. ! 802: .dc "kill-next-word" "ESC D" ! 803: This kills the text from point to the end of the current or next word. ! 804: .dc "kill-previous-word" "ESC Rubout" ! 805: This kills the text from point to the beginning of the current or ! 806: previous word. ! 807: .dc "kill-process" "Not Bound" ! 808: This command prompts for a buffer name or buffer number (just as ! 809: select-buffer does) and then sends the process in that buffer a ! 810: kill signal (9). ! 811: .dc "kill-region" "C-W" ! 812: This deletes the text in the region and saves it on the kill ring. ! 813: Commands that delete text but save it on the kill ring all have the ! 814: word "kill" in their names. Type "C-Y" to yank back the most recent ! 815: kill. ! 816: .dc "kill-s-expression" "ESC C-K" ! 817: This kills the text from point to the end of the current or next ! 818: s-expression. ! 819: .dc "kill-some-buffers" "Not Bound" ! 820: This goes through all the existing buffers and asks whether or not to kill ! 821: them. If you decide to kill a buffer, and it turns out that the buffer is ! 822: modified, \s-2JOVE\s0 will offer to save it first. This is useful for when \s-2JOVE\s0 ! 823: runs out of memory to store lines (this only happens on PDP-11's) and you ! 824: have lots of buffers that you are no longer using. ! 825: .dc "kill-to-beginning-of-sentence" "C-X Rubout" ! 826: This kills from point to the beginning of the current or previous ! 827: sentence. ! 828: .dc "kill-to-end-of-line" "C-K" ! 829: This kills from point to the end of the current line. When point is ! 830: at the end of the line the line separator is deleted and the next line ! 831: is joined with current one. If a numeric argument is supplied that ! 832: many lines are killed; if the argument is negative that many lines ! 833: .IQ before ! 834: point are killed; if the argument is zero the text from point ! 835: to the beginning of the line is killed. ! 836: .dc "kill-to-end-of-sentence" "ESC K" ! 837: This kills from point to the end of the current or next sentence. If a ! 838: negative numeric argument is supplied it kills from point to the ! 839: beginning of the current or previous sentence. ! 840: .dc "left-margin" "(variable)" ! 841: This is how far lines should be indented when auto-indent mode is on, ! 842: or when the ! 843: .IQ newline-and-indent ! 844: command is run (usually by typing ! 845: LineFeed). It is also used by fill-paragraph and auto-fill mode. ! 846: If the value is zero (the default) then the left margin is determined ! 847: from the surrounding lines. ! 848: .dc "left-margin-here" "Not Bound" ! 849: This sets the ! 850: .IQ left-margin ! 851: variable to the current position of ! 852: point. This is an easy way to say, "Make the left margin begin here," ! 853: without having to count the number of spaces over it actually is. ! 854: .dc "lisp-mode" "Not Bound" ! 855: This turns on Lisp mode. Lisp mode is one of four mutually exclusive major ! 856: modes: Fundamental, Text, C, and Lisp. In Lisp mode, the characters Tab ! 857: and ) are treated specially, similar to the way they are treated in C mode. ! 858: Also, Auto Indent mode is affected, and handled specially. ! 859: .dc "list-buffers" "C-X C-B" ! 860: This types out a list containing various information about each buffer. ! 861: Right now that list looks like this: ! 862: .DS ! 863: .ta \w'NO111'u +\w'Lines1'u +\w'Scratch111'u +\w'*1'u +\w'commands.doc111'u ! 864: \ (* means the buffer needs saving) ! 865: \ NO Lines Type Name File ! 866: \ -- ----- ---- ---- ---- ! 867: \ 1 1 File Main [No file] ! 868: \ 2 1 Scratch * Minibuf [No file] ! 869: \ 3 519 File * commands.doc commands.doc ! 870: .DE ! 871: The first column lists the buffer's number. When \s-2JOVE\s0 prompts for a ! 872: buffer name you can either type in the full name, or you can simply ! 873: type the buffer's number. The second column is the number of lines in ! 874: the buffer. The third says what type of buffer. There are four ! 875: types: "File", "Scratch", "Process", "I-Process". "File" is simply a ! 876: buffer that holds a file; "Scratch" is for buffers that \s-2JOVE\s0 uses ! 877: internally; "Process" is one that holds the output from a UNIX ! 878: command; "I-Process" is one that has an interactive process attached to ! 879: it. The next column contains the name of the buffer. And the last ! 880: column is the name of the file that's attached to the buffer. In this ! 881: case, both Minibuf and commands.doc have been changed but not yet ! 882: saved. In fact Minibuf won't be saved since it's an internal \s-2JOVE\s0 ! 883: buffer that I don't even care about. ! 884: .dc "list-processes" "Not Bound" ! 885: This makes a list somewhat like "list-buffers" does, except its ! 886: list consists of the current interactive processes. Right now the list ! 887: looks like this: ! 888: .DS ! 889: .ta \w'shell-111111111111'u +\w'Running1111111111'u ! 890: \ Buffer Status Pid Command ! 891: \ ------ ------ --- ------- ! 892: \ *shell* Running 18415 shell ! 893: \ fgrep Done 18512 fgrep -n Buffer *.c ! 894: .DE ! 895: The first column has the name of the buffer to which the process is ! 896: attached. The second has the status of the process; if a process has ! 897: exited normally the status is "Done" as in fgrep; if the process ! 898: exited with an error the status is "Exit N" where N is the value of ! 899: the exit code; if the process was killed by some signal the status is ! 900: the name of the signal that was used; otherwise the process is ! 901: running. The last column is the name of the command that is being run. ! 902: .dc "mail-check-frequency" "(variable)" ! 903: This is how often (in seconds) \s-2JOVE\s0 should check your mailbox for ! 904: incoming mail. If you set this to \s-2ZERO\s0 JOVE won't check for new ! 905: mail. See also the ! 906: .IQ mailbox ! 907: and ! 908: .IQ disable-biff ! 909: variables. ! 910: .dc "mailbox" "(variable)" ! 911: Set this to the full pathname of your mailbox. \s-2JOVE\s0 will look here to ! 912: decide whether or not you have any unread mail. This defaults to ! 913: /usr/spool/mail/$USER, where $USER is set to your login name.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.