|
|
1.1 ! root 1: .hy 0 ! 2: .TH JOVE 1 "12 February 1986" ! 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. You ! 73: can simulate the modified C shell by putting the following lines in your ! 74: C shell initialization file (.cshrc): ! 75: .nf ! 76: .sp 1 ! 77: alias cd 'cd \e!*; setenv CWD $cwd' ! 78: alias popd 'popd \e!*; setenv CWD $cwd' ! 79: alias pushd 'pushd \e!*; setenv CWD $cwd' ! 80: .fi ! 81: .TP ! 82: .I +n ! 83: Reads the file, designated by the following argument, and positions point at ! 84: the ! 85: .I n'th ! 86: line instead of the (default) 1'st line. This can be specified more than ! 87: once but it doesn't make sense to use it twice on the same file; in that ! 88: case the second one wins. If no numeric argument is given after the +, ! 89: the point is positioned at the end of the file. ! 90: .TP ! 91: .I -p ! 92: Parses the error messages in the file designated by the following argument. ! 93: The error messages are assumed to be in a format similar to the C compiler, ! 94: LINT, or GREP output. ! 95: .TP ! 96: .I -t ! 97: Runs the ! 98: .I find-tag ! 99: command on the string of characters immediately following ! 100: the -t if there is one (as in -tTagname), or on ! 101: the following argument (as in -t Tagname) otherwise (see ctags(1)). ! 102: .TP ! 103: .I -w ! 104: Divides the window in two. When this happens, either the same file is ! 105: displayed in both windows, or the second file in the list is read in and ! 106: displayed in its window. ! 107: .SH "RECOVERING BUFFERS AFTER A CRASH" ! 108: The ! 109: .I -r ! 110: option of jove runs the JOVE recover program. Use this when the system ! 111: crashes, or JOVE crashes, or you accidently get logged out while in JOVE. ! 112: If there are any buffers to be recovered, this will find them. ! 113: .LP ! 114: Recover looks for JOVE buffers that are left around and are ! 115: owned by you. (You cannot recover other peoples' buffers, obviously.) ! 116: If there were no buffers that were modified at the time of the ! 117: crash or there were but recover can't get its hands on them, you will be ! 118: informed with the message, "There is nothing to recover." Otherwise, ! 119: recover prints the date and time of the version of the buffers it has, ! 120: and then waits for you type a command. ! 121: .LP ! 122: To get a list of the buffers recover knows about, use the ! 123: .I list ! 124: command. This will list all the buffers and the files and the number of ! 125: lines associated with them. Next to each buffer is a number. When you want ! 126: to recover a buffer, use the ! 127: .I get ! 128: command. The syntax is ! 129: .I get buffer filename ! 130: where ! 131: .I buffer ! 132: is either the buffer's name or the number at the beginning of the line. If ! 133: you don't type the buffer name or the filename, recover will prompt you ! 134: for them. ! 135: .LP ! 136: If there are a lot of buffers and you want to recover all of them, use the ! 137: .I recover ! 138: command. This will recover each buffer to the name of the buffer with ".#" ! 139: prepended to the name (so that the original isn't over-written). It asks ! 140: for each file and if you want to restore that buffer to that name you type ! 141: "yes". If you want to recover the file but to a different name, just type ! 142: the new name in. If you type "no" recover will skip that file and go on ! 143: to the next one. ! 144: .LP ! 145: If you want to look at a buffer before deciding to recover it, use the ! 146: .I print ! 147: command. The syntax for this is ! 148: .I print buffer ! 149: where ! 150: .I buffer ! 151: again is either its name or the number. You can type ^C if you want to ! 152: abort printing the file to the terminal, and recover will respond with ! 153: an appropriate message. ! 154: .LP ! 155: When you're done and have all the buffers you want, type the ! 156: .I quit ! 157: command to leave. You will then be asked whether it's okay to delete the ! 158: tmp files. Most of the time that's okay and you should type "yes". When ! 159: you say that, JOVE removes all traces of those buffers and you won't be able ! 160: to look at them again. (If you recovered some buffers they will still be ! 161: around, so don't worry.) So, if you're not sure whether you've gotten all ! 162: the buffers, you should answer "no" so that you'll be able to run ! 163: recover again at a later time (presumably after you've figured out ! 164: which ones you want to save). ! 165: .LP ! 166: If you type ^C at any time other than when you're printing a file to the ! 167: terminal, recover will exit without a word. If you do this but wish you ! 168: hadn't, just type "jove -r" to the shell again, and you will be put back ! 169: with no loss. ! 170: .SH GETTING HELP ! 171: Once in JOVE, there are several commands available to get help. To execute ! 172: any JOVE command, you type "<ESC> X command-name" followed by <Return>. To ! 173: get a list of all the JOVE commands you type "<ESC> X" followed by "?". The ! 174: .I describe-bindings ! 175: command can be used to get a list containing each key, and its associated ! 176: command (that is, the command that gets executed when you type that key). ! 177: If you want to save the list of bindings, you can set the jove variable ! 178: .I send-typeout-to-buffer ! 179: to ON (using the ! 180: .I set ! 181: command), and then execute the ! 182: .I describe-bindings ! 183: command. This will create a buffer and put in it the bindings list it ! 184: normally would have printed on the screen. Then you can save that buffer to ! 185: a file and print it to use as a quick reference card. (See VARIABLES below.) ! 186: .LP ! 187: Once you know the name of a command, you can find out what it does with the ! 188: .I describe-command ! 189: command, which you can invoke quickly by typing "ESC ?". The ! 190: .I apropos ! 191: command will give you a list of all the command with a specific string in ! 192: their names. For example, if you want to know the names of all the ! 193: commands that are concerned with windows, you can run "apropos" with the ! 194: keyword ! 195: .I window. ! 196: .LP ! 197: If you're not familar with the EMACS command set, it would be worth your ! 198: while to use run TEACHJOVE. Do do that, just type "teachjove" to your shell ! 199: and you will be placed in JOVE in a file which contains directions. I highly ! 200: recommend this for beginners; you may save yourself a lot of time and ! 201: headaches. ! 202: .SH KEY BINDINGS and VARIABLES ! 203: You can alter the key bindings in JOVE to fit your personal tastes. That ! 204: is, you can change what a key does every time you strike it. For example, ! 205: by default the C-N key is bound to the command ! 206: .I next-line ! 207: and so when you type it you move down a line. If you want to change a ! 208: binding or add a new one, you use the ! 209: .I bind-to-key ! 210: command. The syntax is "bind-to-key <command> key". ! 211: .LP ! 212: You can also change the way JOVE behaves in little ways by changing the ! 213: value of some variables with the ! 214: .I set ! 215: command. The syntax is "set <variable> value", where value is a number or a ! 216: string, or "on" or "off", depending on the context. For example, if you ! 217: want JOVE to make backup files, you set the "make-backup-files" variable to ! 218: "on". To see the value of a variable, use the "print <variable>" command. ! 219: .SH INITIALIZATION ! 220: JOVE automatically reads commands from an initialization file in your HOME ! 221: directory, called ".joverc". In this file you can place commands that you ! 222: would normally type in JOVE. If you like to rearrange the key bindings and ! 223: set some variables every time you get into JOVE, you should put them in your ! 224: initialization file. Here are a few lines from mine: ! 225: .nf ! 226: set match-regular-expressions on ! 227: auto-execute-command auto-fill /tmp/Re\e|.*drft ! 228: bind-to-key i-search-forward ^\e ! 229: bind-to-key i-search-reverse ^R ! 230: bind-to-key find-tag-at-point ^[^T ! 231: bind-to-key scroll-down ^C ! 232: bind-to-key grow-window ^Xg ! 233: bind-to-key shrink-window ^Xs ! 234: .fi ! 235: (Note that the Control Characters can be either two character sequences ! 236: (e.g. ^ and C together as ^C) or the actual control character. If you want ! 237: to use an ^ by itself you must BackSlash it (e.g., bind-to-key grow-window ! 238: ^X\e^ binds grow-window to "^X^"). ! 239: .SH SOME MINOR DETAILS ! 240: You should type C-\e instead of C-S in many instances. For example, the way ! 241: to search for a string is documented as being "C-S" but in reality you ! 242: should type "C-\e". This is because C-S is the XOFF character (what gets ! 243: sent when you type the NO SCROLL key), and clearly that won't work. The XON ! 244: character is "C-Q" (what gets sent when you type NO SCROLL again) which is ! 245: documented as the way to do a quoted-insert. The alternate key for this is ! 246: "C-^" (typed as "C-`" on vt100's and its look-alikes). If you want to ! 247: enable C-S and C-Q and you know what you are doing, you can put the line: ! 248: .nf ! 249: set allow-^S-and-^Q on ! 250: .fi ! 251: in your initialization file. ! 252: .LP ! 253: If your terminal has a metakey, JOVE will use it if you turn on the ! 254: "meta-key" variable. JOVE will automatically turn on "meta-key" if the ! 255: METAKEY environment variable exists. This is useful for if you have ! 256: different terminals (e.g., one at home and one at work) and one has a ! 257: metakey and the other doesn't. ! 258: .SH FILES ! 259: LIBDIR/.joverc - system wide initialization file ! 260: .sp 0 ! 261: ~/.joverc - personal initialization file ! 262: .sp 0 ! 263: TMPDIR - where temporary files are stored ! 264: .sp 0 ! 265: LIBDIR/teach-jove - the interactive tutorial ! 266: .sp 0 ! 267: LIBDIR/portsrv - for running shells in windows (pdp11 only) ! 268: .SH SEE ALSO ! 269: .nf ! 270: ed(1) - for a description of regular expressions ! 271: .sp 0 ! 272: teachjove(1) - for an interactive JOVE tutorial. ! 273: .fi ! 274: .SH DIAGNOSTICS ! 275: JOVE diagnostics are meant to be self-explanatory, but you are advised ! 276: to seek help whenever you are confused. You can easily lose a lot of ! 277: work if you don't know EXACTLY what you are doing. ! 278: .SH BUGS ! 279: Lines can't be more than 1024 characters long. ! 280: .sp 1 ! 281: Searches can't cross line boundaries. ! 282: .SH AUTHOR ! 283: Jonathan Payne
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.