|
|
1.1 ! root 1: .hy 0 ! 2: .TH JOVE 1 "February 12, 1986" "Lincoln Sudbury Regional High School" ! 3: .ad ! 4: .SH NAME ! 5: jove \- an interactive display-oriented text editor ! 6: .SH SYNOPSIS ! 7: .nf ! 8: jove [-d directory] [-w] [-t tag] [+n file] [-p file] [files] ! 9: jove -r ! 10: .fi ! 11: .SH DESCRIPTION ! 12: JOVE is Jonathan's Own Version of Emacs. It is based on the original EMACS ! 13: editor written at MIT by Richard Stallman. Although JOVE is meant to be ! 14: compatible with EMACS, there are some major differences between the two ! 15: editors and you shouldn't rely on their behaving identically. ! 16: .LP ! 17: JOVE works on any reasonable display terminal that is described in the ! 18: .I termcap ! 19: file (see TERMCAP(5) for more details). When you start up JOVE, it checks ! 20: to see whether you have your ! 21: .I TERM ! 22: environment variable set. On most systems that will automatically be set up ! 23: for you, but if it's not JOVE will ask you what kind of terminal you are ! 24: using. To avoid having to type this every time you run JOVE you can set your ! 25: .I TERM ! 26: environment variable yourself. How you do this depends on which shell you ! 27: are running. If you are running the C Shell, as most of you are, you type ! 28: .sp 1 ! 29: % setenv TERM ! 30: .I type ! 31: .sp 1 ! 32: and with the Bourne Shell, you type ! 33: .sp 1 ! 34: $ TERM= ! 35: .I type ! 36: ; export TERM ! 37: .sp 1 ! 38: where ! 39: .I type ! 40: is the name of the kind of terminal you are using (e.g., vt100). If ! 41: neither of these works get somebody to help you. ! 42: .SH INVOKING JOVE ! 43: If you run JOVE with no arguments you will be placed in an empty buffer, ! 44: called ! 45: .I Main. ! 46: Otherwise, any arguments you supply are considered file names and each is ! 47: "given" its own buffer. Only the first file is actually read in--reading ! 48: other files is deferred until you actually try to use the buffers they are ! 49: attached to. This is for efficiency's sake: most of the time, when you run ! 50: JOVE on a big list of files, you end up editing only a few of them. ! 51: .LP ! 52: The names of all of the files specified on the command line are saved in a ! 53: buffer, called ! 54: .I Minibuf. ! 55: The mini-buffer is a special JOVE buffer that is used when JOVE is prompting ! 56: for some input to many commands (for example, when JOVE is prompting for a ! 57: file name). When you are being prompted for a file name, you can type C-N ! 58: (that's Control-N) and C-P to cycle through the list of files that were ! 59: specified on the command line. The file name will be inserted where you are ! 60: typing and then you can edit it as if you typed it in yourself. ! 61: .LP ! 62: JOVE recognizes the following switches: ! 63: .TP ! 64: .I -d ! 65: The following argument is taken to be the name of the current directory. ! 66: This is for systems that don't have a version of C shell that automatically ! 67: maintains the ! 68: .I CWD ! 69: environment variable. If ! 70: .I -d ! 71: is not specified on a system without a modified C shell, JOVE will have to ! 72: figure out the current directory itself, and that can be VERY slow. ! 73: .TP ! 74: .I +n ! 75: Reads the file, designated by the following argument, and positions point at ! 76: the ! 77: .I n'th ! 78: line instead of the (default) 1'st line. This can be specified more than ! 79: once but it doesn't make sense to use it twice on the same file; in that ! 80: case the second one wins. ! 81: .TP ! 82: .I -p ! 83: Parses the error messages in the file designated by the following argument. ! 84: The error messages are assumed to be in a format similar to the C compiler, ! 85: LINT, or GREP output. ! 86: .TP ! 87: .I -t ! 88: Runs the ! 89: .I find-tag ! 90: command on the following argument (see ctags(1)). ! 91: .TP ! 92: .I -w ! 93: Divides the window in two. When this happens, either the same file is ! 94: displayed in both windows, or the second file in the list is read in and ! 95: displayed in its window. ! 96: .LP ! 97: As a special case, invoking JOVE with the -r option runs JOVE_RECOVER. Use ! 98: this when the system crashes, or JOVE crashes, or you accidently get logged ! 99: out while in JOVE. If there are any buffers to be recovered, this will find ! 100: them. Read the documentation for JOVE_RECOVER. ! 101: .LP ! 102: .SH GETTING HELP ! 103: Once in JOVE, there are several commands available to get help. To execute ! 104: any JOVE command, you type "<ESC> X command-name" followed by <Return>. To ! 105: get a list of all the JOVE commands you type "<ESC> X" followed by "?". The ! 106: .I describe-bindings ! 107: command can be used to get a list containing each key, and its associated ! 108: command (that is, the command that gets executed when you type that key). ! 109: If you want to save the list of bindings, you can set the jove variable ! 110: .I send-typeout-to-buffer ! 111: to ON (using the ! 112: .I set ! 113: command), and then execute the ! 114: .I describe-bindings ! 115: command. This will create a buffer and put in it the bindings list it ! 116: normally would have printed on the screen. Then you can save that buffer to ! 117: a file and print it to use as a quick reference card. (See VARIABLES below.) ! 118: .LP ! 119: Once you know the name of a command, you can find out what it does with the ! 120: .I describe-command ! 121: command, which you can invoke quickly by typing "ESC ?". The ! 122: .I apropos ! 123: command will give you a list of all the command with a specific string in ! 124: their names. For example, if you want to know the names of all the ! 125: commands that are concerned with windows, you can run "apropos" with the ! 126: keyword ! 127: .I window. ! 128: .LP ! 129: If you're not familar with the EMACS command set, it would be worth your ! 130: while to use run TEACHJOVE. Do do that, just type "teachjove" to your shell ! 131: and you will be placed in JOVE in a file which contains directions. I highly ! 132: recommend this for beginners; you may save yourself a lot of time and ! 133: headaches. ! 134: .SH KEY BINDINGS and VARIABLES ! 135: You can alter the key bindings in JOVE to fit your personal tastes. That ! 136: is, you can change what a key does every time you strike it. For example, ! 137: by default the C-N key is bound to the command ! 138: .I next-line ! 139: and so when you type it you move down a line. If you want to change a ! 140: binding or add a new one, you use the ! 141: .I bind-to-key ! 142: command. The syntax is "bind-to-key <command> key". ! 143: .LP ! 144: You can also change the way JOVE behaves in little ways by changing the ! 145: value of some variables with the ! 146: .I set ! 147: command. The syntax is "set <variable> value", where value is a number or a ! 148: string, or "on" or "off", depending on the context. For example, if you ! 149: want JOVE to make backup files, you set the "make-backup-files" variable to ! 150: "on". To see the value of a variable, use the "print <variable>" command. ! 151: .SH INITIALIZATION ! 152: JOVE automatically reads commands from an initialization file in your HOME ! 153: directory, called ".joverc". In this file you can place commands that you ! 154: would normally type in JOVE. If you like to rearrange the key bindings and ! 155: set some variables every time you get into JOVE, you should put them in your ! 156: initialization file. Here are a few lines from mine: ! 157: .nf ! 158: set match-regular-expressions on ! 159: auto-execute-command auto-fill /tmp/Re\\|.*drft ! 160: bind-to-key i-search-forward ^\\ ! 161: bind-to-key i-search-reverse ^R ! 162: bind-to-key find-tag-at-point ^[^T ! 163: bind-to-key scroll-down ^C ! 164: bind-to-key grow-window ^Xg ! 165: bind-to-key shrink-window ^Xs ! 166: .fi ! 167: (Note that the Control Characters can be either two character sequences ! 168: (e.g. ^ and C together as ^C) or the actual control character. If you want ! 169: to use an ^ by itself you must BackSlash it (e.g., bind-to-key grow-window ! 170: ^X\\^ binds grow-window to "^X^"). ! 171: .SH SOME MINOR DETAILS ! 172: You should type C-\\ instead of C-S in many instances. For example, the way ! 173: to search for a string is documented as being "C-S" but in reality you ! 174: should type "C-\\". This is because C-S is the XOFF character (what gets ! 175: sent when you type the NO SCROLL key), and clearly that won't work. The XON ! 176: character is "C-Q" (what gets sent when you type NO SCROLL again) which is ! 177: documented as the way to do a quoted-insert. The alternate key for this is ! 178: "C-^" (typed as "C-`" on vt100's and its look-alikes). If you want to ! 179: enable C-S and C-Q and you know what you are doing, you can put the line: ! 180: .nf ! 181: set allow-^S-and-^Q on ! 182: .fi ! 183: in your initialization file. ! 184: .LP ! 185: If your terminal has a metakey, JOVE will use it if you turn on the ! 186: "meta-key" variable. JOVE will automatically turn on "meta-key" if the ! 187: METAKEY environment variable exists. This is useful for if you have ! 188: different terminals (e.g., one at home and one at work) and one has a ! 189: metakey and the other doesn't. ! 190: .SH FILES ! 191: LIBDIR/.joverc - system wide initialization file ! 192: .sp 0 ! 193: ~/.joverc - personal initialization file ! 194: .sp 0 ! 195: TMPDIR - where temporary files are stored ! 196: .sp 0 ! 197: LIBDIR/teach-jove - the interactive tutorial ! 198: .sp 0 ! 199: LIBDIR/portsrv - for running shells in windows (pdp11 only) ! 200: .SH SEE ALSO ! 201: .nf ! 202: jove_recover(1) - to recover buffers after a system/editor crash ! 203: .sp 0 ! 204: ed(1) - for a description of regular expressions ! 205: .sp 0 ! 206: teachjove(1) - for an interactive JOVE tutorial. ! 207: .fi ! 208: .SH DIAGNOSTICS ! 209: JOVE diagnostics are meant to be self-explanatory, but you are advised ! 210: to seek help whenever you are confused. You can easily lose a lot of ! 211: work if you don't know EXACTLY what you are doing. ! 212: .SH BUGS ! 213: Lines can't be more than 1024 characters long. ! 214: .sp 1 ! 215: Searches can't cross line boundaries. ! 216: .SH AUTHOR ! 217: Jonathan Payne
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.