Commit | Line | Data |
---|---|---|
9d06d9dd KB |
1 | This is version 3 of the editor. It is too large to fit on a pdp-11 |
2 | unless you have overlay code. (Such code is available for v7 unix on 2bsd.) | |
3 | ||
4 | Version 2.13 corresponds to version 3 without the enhancements in 3. | |
5 | There is no reason to use 2.13 unless you have a pdp-11 that does not have | |
6 | overlay software, since 3 contains all the bug fixes and some new features. | |
7 | ||
8 | Special installation notes for this version. | |
9 | 2) The include file varargs.h should be installed, as the printf here needs it. | |
10 | 3) The include file local/uparm.h should be installed, as ex_tune.h needs it. | |
11 | The contents of this include file can be modified if you wish to place | |
12 | the editor in a nonstandard location. | |
13 | ||
14 | Conditional compilation flags: | |
15 | -DTRACE for debugging (wont then fit on an 11) | |
16 | -DVFORK for UCB Vax/Unix with the vfork system call. | |
17 | -DCHDIR compile in undocumented old chdir (cd) command | |
18 | -DLISP compile in lisp hacks | |
19 | -DUCVISUAL compile in code to handle \ escapes for visual on | |
20 | upper case only terminals. gross. | |
21 | -DCRYPT -x option to edit encrypted files | |
22 | -DFLOCKFILE compile in advisory file locking ala 4.[23X] | |
cf775833 KB |
23 | |
24 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= | |
25 | ||
26 | Version 3.7 October 16, 1981 | |
27 | ||
28 | It is now possible to split lines with substitute commands from vi, | |
29 | by using ^V<return> in the rhs. This takes care of the last | |
30 | good reason for using ex command mode. | |
31 | ||
32 | Mode lines are now supported. Put a line containing | |
33 | ex: xxx : | |
34 | in the first or last 5 lines of the file, where xxx is any ex | |
35 | command you want executed when that file is read in. To make | |
36 | other programs happy, it should probably be inside a comment. | |
37 | You can use vi: as well as ex:. (Note: no space allowed | |
38 | between the "ex" and ":". The spaces around xxx are considered | |
39 | part of the command, and so are optional.) | |
40 | ||
41 | If there is a file .exrc in the current directory, it will be | |
42 | sourced when you enter vi, after your EXINIT or ~/.exrc. | |
43 | ||
44 | The changeable scrolling region of the vt100 is now used in | |
45 | place of insert line, resulting in much better performance. | |
46 | ||
47 | Vi uses the new AL, DL, LE, RI, DO, and UP (all upper case) | |
48 | termcap capabilities, which are parameterized versions of their | |
49 | lower case equivalents. This will results in better performance | |
50 | on ANSI terminals, and especially on the Tektronix 4025 which | |
51 | has parameterized local motions but cannot cursor address. | |
52 | ||
53 | Vi uses backtabs again. Now it knows how to handle backtabs on | |
54 | terminals that have tabs set at intervals other than 8, and it | |
55 | won't use backtabs if gtty indicates it can't use tabs. | |
56 | ||
57 | A bug causing <escape> <del> to core dump vi has been fixed. | |
58 | ||
59 | A bug causing writes to filters when editing encrypted files | |
60 | to write encrypted text has been fixed. | |
61 | ||
62 | A bug causing the message "substitution loop", when you enter a | |
63 | 1,$s/xxx/yyy/g with lots of changes, has been fixed. | |
64 | ||
65 | A bug causing the current directory to be chmodded to 0 if you | |
66 | set nomesg after starting up the editor has been fixed. Note | |
67 | that the nomesg option is intended for your EXINIT, since it only | |
68 | takes effect on entry to the editor. | |
69 | ||
70 | The eat newline glitch has been fixed so that vt100's and tab132's | |
71 | handle long lines correctly. | |
72 | ||
73 | Some internal changes have been made so that vi can run under UNIX | |
74 | on the Bell Labs 3B machine, the BBN C/70, and the IBM 370. | |
75 | ||
76 | Version 3.6 October 30, 1980 | |
77 | ||
78 | A kernel problem on the V7 pdp-11 overlay systems which causes | |
79 | bad EMT traps to happen randomly, core dumping the editor, | |
80 | has been programmed around by catching EMT traps. | |
81 | ||
82 | A bug which prevented using a screen larger than 48 lines has | |
83 | been fixed. | |
84 | ||
85 | A bug which allowed you to set window to a value larger than | |
86 | your screen size has been fixed. | |
87 | ||
88 | The screen size limit on non-VM/Unix systems has been increased | |
89 | to 66 lines or 5000 characters, to allow the Ann Arbor Ambassador | |
90 | terminal to be used. | |
91 | ||
92 | A bug which caused hangups to be ignored on USG systems has | |
93 | been fixed. | |
94 | ||
95 | A bug which caused maps with multiple changes on multiple lines | |
96 | to mess up has been fixed. | |
97 | ||
98 | If you get I/O errors, the file is considered "not edited" so | |
99 | that you don't accidently clobber the good file with a munged | |
100 | up buffer. | |
101 | ||
102 | An inefficiency in 3.5 which caused the editor to always call | |
103 | ttyname has been fixed. | |
104 | ||
105 | A bug which prevented the "source" command from working in an | |
106 | EXINIT or from visual has been fixed. | |
107 | ||
108 | A bug which caused readonly to be cleared when reading from | |
109 | a writable file with "r" has been fixed. | |
110 | ||
111 | The name "suspend" has been made an alias for "stop". | |
112 | ||
113 | The stop command now once again works correctly from command mode. | |
114 | ||
115 | On a dumb terminal at 1200 baud, "slowopen" is now the default. | |
116 | ||
117 | A bug in the shell script "makeoptions" which searched for a | |
118 | string that appeared earlier in a comment has been fixed. | |
119 | ||
120 | A bug that caused an infinite loop when you did ":s/\</&/g" | |
121 | has been fixed. | |
122 | ||
123 | A bug that caused & with no previous substitution to give | |
124 | "re internal error" has been fixed. | |
125 | ||
126 | A bug in the binary search algorithm for tags which sometimes | |
127 | prevented the last tag in the file from being found has been fixed. | |
128 | ||
129 | Error messages from expreserve no longer output a linefeed, | |
130 | messing up the screen. | |
131 | ||
132 | The message from expreserve telling you a buffer was saved when | |
133 | your phone was hung up has be amended to say the editor was | |
134 | terminated, since a kill can also produce that message. | |
135 | ||
136 | The "directory" option, which has been broken for over | |
137 | a year, has been fixed. | |
138 | ||
139 | The "r" command no longer invokes input mode macros. | |
140 | ||
141 | A bug which caused strangeness if you set wrapmargin to 1 | |
142 | and typed a line containing a backslash in column 80 has | |
143 | been fixed. | |
144 | ||
145 | A bug which caused the "r<cr>" at the wrapmargin column | |
146 | to mess up has been fixed. | |
147 | ||
148 | On terminals with both scroll reverse and insert line, | |
149 | the least expensive of the two will be used to scroll up. | |
150 | This is usually scroll reverse, which is much less annoying | |
151 | than insert line on terminals such as the mime I and mime 2a. | |
152 | ||
153 | A bug which caused vi to estimate the cost of cursor motion | |
154 | without taking into account padding has been fixed. | |
155 | ||
156 | The failure of the editor to check counts on ^F and ^B commands | |
157 | has been fixed. | |
158 | ||
159 | The "remap" option failed completely if it was turned off. | |
160 | This has been fixed. | |
161 | ||
162 | A check of the wrong limit on a buffer for the right hand side | |
163 | of substitutions has been fixed. Overflowing this buffer could | |
164 | produce a core dump. | |
165 | ||
166 | A bug causing the editor to go into insert mode if you typed | |
167 | return during an R command has been fixed. | |
168 | ||
169 | A bug preventing the + command from working when you edit a | |
170 | new file has been fixed by making it no longer an error to | |
171 | edit a new file (when you first enter the editor.) Instead | |
172 | you are told it is a new file. | |
173 | ||
174 | If an error happens when you are writing out a file, such as | |
175 | an interrupt, you are warned that the file is incomplete. | |
176 | ||
177 | Version 3.5 -- August 20, 1980 | |
178 | ||
179 | The provisions for changing the window size with a numeric | |
180 | prefix argument to certain visual commands have been deleted. | |
181 | The correct way to change the window size is to use the z | |
182 | command, for example z5<cr> to change the window to 5 lines. | |
183 | ||
184 | The code to handle the -x (encryption) option has been made | |
185 | conditionally compiled, so that ex can run on an an 11/34 (!) | |
186 | with overlays. Since this code calls getpass, stdio was | |
187 | being pulled in even without VMUNIX being defined. The | |
188 | savings from not defining CRYPT are about 4K of text and 4.5K | |
189 | of bss. | |
190 | ||
191 | Bill Joy put in a buffering scheme under the VMUNIX flag so | |
192 | that up to 64K of file is edited in-core until you make enough | |
193 | changes to force a temp file sync. This makes entry into the | |
194 | editor much faster, but also makes vi much bigger. | |
195 | ||
196 | The source to ex is now sccs'ed. | |
197 | ||
198 | An undocumented "feature" which caused the ^^ command to return | |
199 | to the previous tag, if in the current file, instead of the | |
200 | previous file, has been removed. | |
201 | ||
202 | A bug which prevented ex from compiling on systems with the new | |
203 | tty driver but no process control (such as Cory) was fixed. | |
204 | ||
205 | Version 3.4 -- June 24, 1980 | |
206 | ||
207 | The visual page motion commands ^F and ^B now treat any preceding | |
208 | counts as number of pages to move, instead of changes to the | |
209 | window size. That is, 2^F moves forward 2 pages. | |
210 | ||
211 | A :vi <file> command from visual mode is now treated the same | |
212 | as a :edit <file> or :ex <file> command. The meaning of the | |
213 | vi command from ex command mode is not affected. | |
214 | ||
215 | Provisions to handle the new process stopping features of the | |
216 | Berkeley TTY driver have been added. A new command, "stop", | |
217 | takes you out of the editor cleanly and efficiently, returning | |
218 | you to the shell. Resuming the editor puts you back in command | |
219 | or visual mode, as appropriate. If autowrite is set and there | |
220 | are outstanding changes, a write is done first unless you say | |
221 | "stop!". From visual mode, the command ^Z is the same as :stop. | |
222 | Note that if you have an arrow key that sends ^Z the stop function | |
223 | will take priority over the arrow function. If you have your | |
224 | "susp" character set to something besides ^Z, that key will be | |
225 | honored as well. | |
226 | ||
227 | A read only mode now lets you guarantee you won't clobber your | |
228 | file by accident. You can set the on/off option "readonly" (ro) | |
229 | and writes will fail unless you use an ! after the write. | |
230 | Commands such as x, ZZ, and autowrite, and in general anything | |
231 | that writes is affected. This option is turned on if you invoke | |
232 | ex with the -R flag. A new link called "view" has been created. | |
233 | View is just like vi but it sets readonly. | |
234 | ||
235 | The encryption code from the v7 editor is now part of ex. | |
236 | You invoke ex with the -x option and it will ask for a key, | |
237 | as ed. The ed "x" command (to enter encryption mode from | |
238 | within the editor) is not available. | |
239 | ||
240 | The editor now adopts the convention that a null string in the | |
241 | environment is the same as not being set. This applies to | |
242 | TERM, TERMCAP, and EXINIT. | |
243 | ||
244 | A word abbreviation mode is now available. You can define | |
245 | abbreviations with the abbreviate command | |
246 | :abbr foo find outer otter | |
247 | which maps "foo" to "find outer otter". Abbreviations can be | |
248 | turned off with the "unabbreviate" command. The syntax of these | |
249 | commands is identical to the map and unmap commands, except | |
250 | that the ! forms do not exist. Abbreviations are considered | |
251 | when in visual input mode only, and only affect whole words | |
252 | typed in, using the conservative definition. (Thus "foobar" | |
253 | will not be mapped as it would using map!) | |
254 | Abbreviate and unabbreviate can be abbreviated to "ab" and | |
255 | "una", respectively. | |
256 | ||
257 | The editor now supports certain terminals that use strings other | |
258 | then \r and \n for return and linefeed by implementing the cr | |
259 | and nl termcap options. (Thanks to UCLA for these enhancements). | |
260 | ||
261 | The termcap attribute ns is now checked for, and ex refuses to | |
262 | go into visual mode on such a terminal unless it has sf. | |
263 | ||
264 | Terminals that can cursor address but cannot go up a line | |
265 | now work in visual. | |
266 | ||
267 | If you change your start and stop characters to something other | |
268 | than the default ^S and ^Q, vi now turns them off. This causes | |
269 | people who change them to escape not to lose so badly. | |
270 | The quit character is once again turned off so that datamedias | |
271 | which send ^\ for the right arrow key work. | |
272 | ||
273 | The ~ command now repeats correctly with ".". | |
274 | ||
275 | If you type in an unmatched ) or } in showmatch mode, the editor | |
276 | will now beep to warn you about your mistake. The ) or } is | |
277 | still accepted. | |
278 | ||
279 | The way macros are undone has been improved considerably. | |
280 | The number of changes inside the macro is counted, and just | |
281 | before the second change the state before the macro is recreated | |
282 | internally and saved to allow the macro to be undoable as a unit. | |
283 | Hence, if the macro makes only one change the particular change is | |
284 | undone (which will probably not redraw the screen). If no changes | |
285 | are made (for example, the arrow keys) the previous thing that could | |
286 | be undone is not clobbered. | |
287 | ||
288 | The undomacro option has been deleted since it is no longer needed. | |
289 | ||
290 | Editor scripts can now contain comments. Begin the comments with " | |
291 | (double quote). Comments can be on their own line or come at the | |
292 | end of command lines. The comment continues to the end of the line. | |
293 | ||
294 | The 3rd version of the USG tty driver is now supported, making it | |
295 | possible on USG systems to interrupt redrawing the screen and to | |
296 | not flush output when interruptable commands take place. | |
297 | ||
298 | The rewind command has been added to the list of commands that | |
299 | the autowrite option knows about. | |
300 | ||
301 | The wrapmargin option is now usable. The way it works has been | |
302 | completely revamped. Now if you go past the margin (even in the | |
303 | middle of a word) the entire word is erased and rewritten on the | |
304 | next line. This changes the semantics of the number given to | |
305 | wrapmargin. 0 still means off. Any other number is still a | |
306 | distance from the right edge of the screen, but this location | |
307 | is now the right edge of the area where wraps can take place, | |
308 | instead of the left edge. Wrapmargin now behaves much like | |
309 | fill/nojustify mode in nroff. | |
310 | ||
311 | A bug on the USG system where hanging up the phone causes more | |
312 | than one SIGHUP to be sent has been compensated for. | |
313 | ||
314 | A bug which caused the :sh command not to send the vs and ti | |
315 | sequences when you returned has been fixed. | |
316 | ||
317 | A bug which caused a file that bombed out in the middle of | |
318 | an edit command to be considered modified has been fixed. | |
319 | ||
320 | A bug which caused the screen to be wrong after undoing a | |
321 | :move command has been fixed. | |
322 | ||
323 | A bug which messed up the buffer and the screen after | |
324 | undoing a :join command has been fixed. | |
325 | ||
326 | The source file ex_io.c has been split into ex_io.c and | |
327 | ex_unix.c to avoid a problem where many C compilers overflowed | |
328 | the symbol table. | |
329 | ||
330 | A bug which prevented turning off your prompt in your .exrc | |
331 | has been fixed. | |
332 | ||
333 | Some of the code internal to the editor has been rearranged | |
334 | and some comments added. | |
335 | ||
336 | The bug fix to the USG tty driver to output a null character | |
337 | as padding at 1200 baud has been improved to output a DEL | |
338 | at 1200 baud or above. | |
339 | ||
340 | Terminals with small screens (less than 20 columns or less | |
341 | than 5 lines) should now work. | |
342 | ||
343 | A bug which prevented you from entering the character DEL | |
344 | into the buffer if you changed your interrupt character to | |
345 | something else besides DEL has been fixed. | |
346 | ||
347 | A bug which caused the current line to be clobbered when | |
348 | you did a /, ?, or : command which mapped an input macro | |
349 | successfully has been fixed. | |
350 | ||
351 | If you map o to O and O to o and have remap set, the editor | |
352 | now catches the infinite loop. | |
353 | ||
354 | A put command after a macro now beeps instead of putting | |
355 | a copy of the whole buffer. (Note that the arrow keys | |
356 | on terminals are considered macros.) | |
357 | ||
358 | A bug which caused things like d) and d} to miss the last | |
359 | character when they should have deleted to the end of the | |
360 | buffer has been fixed. | |
361 | ||
362 | A bug which caused the last character to be lost when you | |
363 | read in a file with no newline at the end of the last line | |
364 | has been fixed. | |
365 | ||
366 | A bug that caused garbage to be in the buffer if the temp file | |
367 | overflowed has been fixed. (This only affected non-VMUNIX systems | |
368 | since the temp file cannot overflow on VMUNIX.) | |
369 | ||
370 | When a macro or global is undone, you no longer get picked up and | |
371 | dropped on line 1. | |
372 | ||
373 | The character | can now be escaped with \| in file names. | |
374 | ||
375 | A bug which prevented the confirm option to a substitution that | |
376 | was inside a source command has been fixed. | |
377 | ||
378 | A bug which caused the editor to not work if the tab stop size | |
379 | did not divide the screen width has been fixed. | |
380 | ||
381 | A bug on HP terminals that caused the screen to be messed up if | |
382 | you scrolled up something that began the same way as the echo line | |
383 | has been fixed. | |
384 | ||
385 | A macro bug which sometimes caused the next character after an | |
386 | escape to be ignored on an HP terminal has been fixed. | |
387 | ||
388 | A bug which caused unmap of strings with length 2 to fail has been | |
389 | fixed. | |
390 | ||
391 | A bug which left vi confused if you invoked a macro containing a | |
392 | quit to command mode and then did an undo has been fixed. | |
393 | ||
394 | An old ed bug which caused globals to fail when they did a substitute | |
395 | on the next line has been fixed. | |
396 | ||
397 | The % operator will now find matching square brackets the same way | |
398 | it does parentheses and braces. It will not display them in | |
399 | showmatch mode, however, and will not use a ] to match all ('s. | |
400 | ||
401 | Code has been added to handle the Beehive Superbee terminal, | |
402 | using f1 for escape and f2 for control C. | |
403 | ||
404 | The default value of the option shell is now taken from the | |
405 | environment variable SHELL, if present. | |
406 | ||
407 | Version 3.3 -- February 2, 1980 | |
408 | ||
409 | The default window sizes have been changed. At 300 baud the | |
410 | window is now 8 lines (was 1/2 the screen size). At 1200 baud | |
411 | the window is now 16 lines (was 2/3 the screen size, which was | |
412 | usually also 16 for a typical 24 line CRT). At 9600 baud the | |
413 | window is still the full screen size. Any baud rate less than | |
414 | 1200 behaves like 300, any over 1200 like 9600. | |
415 | ||
416 | A new command mode command "x" (for "xit") has been added. This | |
417 | is the same as wq but will not bother to write if there have been | |
418 | no changes to the file. The command letter was chosen for | |
419 | convenience and compatibilty with hed. | |
420 | ||
421 | The command "ZZ" from vi is the same as ":x<cr>". This is | |
422 | the recommended way to leave the editor. Z must be typed twice | |
423 | since this is two easy to type by accident and has such severe | |
424 | effects if unintentional. | |
425 | ||
426 | The options w300, w1200, and w9600 can be set. They are synonyms | |
427 | for "window", but only apply at 300, 1200, or 9600 baud, resp. | |
428 | Thus you can specify you want a 12 line window at 300 baud and | |
429 | a 23 line window at 1200 baud with | |
430 | :set w300=12 w1200=23 | |
431 | ||
432 | It is now possible to say | |
433 | :set window=5 | |
434 | and get the effect the next time the screen is redrawn from scratch. | |
435 | (^L and Hit return to continue don't start from scratch.) | |
436 | This is sort of pointless, since both | |
437 | 5:<cr> | |
438 | and | |
439 | z5<cr> | |
440 | do the same thing with better results. | |
441 | ||
442 | The editor no longer uses nondestructive space, except when in | |
443 | insert mode. It instead prints the character it would be | |
444 | moving over. This is a real win on terminals that use an | |
445 | escape sequence to nd space. | |
446 | ||
447 | It is now possible from visual to string several search expressions | |
448 | together separated by semicolons the same as command mode. For | |
449 | example, you can say | |
450 | /foo/;/bar | |
451 | from visual and it will move to the first "bar" after the next "foo". | |
452 | This also works within one line. | |
453 | ||
454 | The option "mapinput" is dead. It has been replaced by a much | |
455 | more powerful mechanism: :map! (e.g. put an ! after the map). | |
456 | Map and unmap commands with ! apply only to input, others apply | |
457 | only to command mode. | |
458 | ||
459 | The new option "timeout" (default on) causes macros to time out | |
460 | after one second. Turn it off and they will wait forever. | |
461 | ||
462 | By using map! and setting notimeout, it is possible to get the | |
463 | effect of emacs abbreviation mode. Sanity checking is turned off | |
464 | for map when ! is present. This is a crude facility and does not | |
465 | take into account things like the abbreviation being part of a longer | |
466 | word. It also does not echo until it is satisfied. | |
467 | ||
468 | The new option "remap" (default on) causes the editor to attempt | |
469 | to map the result of a macro mapping again until the mapping fails. | |
470 | This makes it possible, say, to map q to # and #1 to something else | |
471 | and get q1 mapped to something else. Turning it off makes it possible | |
472 | to map ^L to l and map ^R to ^L without having ^R map to l. | |
473 | ||
474 | The new option "undomacro" (default on) makes it possible to undo | |
475 | macros as a unit. Leaving it off causes macros not to be treated | |
476 | specially. Macros with zero or one change work better with noum, | |
477 | with two or more changes better with um. This option may go away | |
478 | if it becomes unnecessary. | |
479 | ||
480 | The new (string) valued option "tags" allows you to specify a list | |
481 | of tag files, similar to the "path" variable of csh. The files | |
482 | are separated by spaces (which are entered preceded by a backslash) | |
483 | and are searched left to right. The default value is | |
484 | "tags /usr/lib/tags", which has the same effect as before. | |
485 | It is recommended that "tags" always be the first entry. | |
486 | On Ernie, /usr/lib/tags contains entries for the system defined | |
487 | library procedures from section 3 of the manual. | |
488 | ||
489 | ^R is now the same as ^L on terminals where the right arrow key | |
490 | sends ^L (The tvi and the adm 31). | |
491 | ||
492 | Looking for a tag now uses binary search. | |
493 | ||
494 | The "q" command from visual no longer works at all. You must | |
495 | use "Q" to get to ex command mode. | |
496 | ||
497 | A minor incompatibility with the v7 ed has been fixed. Previously, | |
498 | to do a global substitute with an escaped newline in the rhs, you | |
499 | had to put two \'s in ex and one in ed. Ex now accepts the single | |
500 | form as well as the double form. For example, instead of | |
501 | g/foo/s//foo\\ | |
502 | bar/g | |
503 | (which still works), you can now type, as in ed, | |
504 | g/foo/s//foo\ | |
505 | bar/g | |
506 | This means that the following ex command, which used to "work": | |
507 | g/foo/s//foo bar\ | |
508 | .+1,/mumble/d | |
509 | won't work anymore unless you put the trailing / on the substitution. | |
510 | This usage is pretty obscure anyway. | |
511 | ||
512 | Several bugs relating to undoing macros have been fixed. | |
513 | ||
514 | A bug which caused the command "g/pattern" to print an error | |
515 | message if "pattern" occurred on the last line has been fixed. | |
516 | ||
517 | If you reply ":" to "Hit return to continue", you will again be | |
518 | asked "Hit return to continue" after the next command finishes. | |
519 | ||
520 | Limits have been raised so that an Ann Arbor terminal can be used, | |
521 | and long tags can now be accomodated. | |
522 | ||
523 | The maximum length of a string valued option has been raised from | |
524 | 32 to 64, for the benefit of the "tags" option. | |
525 | ||
526 | It is now possible to search for an escape or delete using f, F, t, | |
527 | T, ;, and ,. These characters must be quoted with ^V. | |
528 | ||
529 | The option "ttytype" is now in correct alphabetical order. | |
530 | ||
531 | A bug that caused HP terminals to mess up in insert mode when inserting | |
532 | before a tab which follows 7 or fewer characters at the beginning of a | |
533 | line (such as a tags file) has been fixed. | |
534 | ||
535 | It is now possible to include control D in your EXINIT or .exrc. | |
536 | ||
537 | A bug which caused the screen to mess up when a glob (such as xx*) | |
538 | doesn't match anything has been fixed. | |
539 | ||
540 | The editor now checks for extra junk after a /r.e./ from visual | |
541 | (other than the allowed z command) and beeps if any is found. | |
542 | Previously it was just ignored. | |
543 | ||
544 | A bug that caused j and k (up and down) to behave strangely after | |
545 | an insertion has been fixed. | |
546 | ||
547 | A bug which causes term to be displayed incorrectly and which | |
548 | caused a crash when changing terminal type when there happened | |
549 | to be several |'s and a long string in genbuf has been fixed. | |
550 | This bug was introduced in ex 2.9. | |
551 | ||
552 | The patch for echo lines longer than 80 characters has been | |
553 | repaired to do "Hit return to continue" after such lines and | |
554 | print the entire output. | |
555 | ||
556 | A bug that caused a messed up screen after a :sh command from | |
557 | open mode has been fixed. | |
558 | ||
559 | A bug which caused a tag request for a nonexistant tag to leave | |
560 | the editor in nomagic mode has been fixed. | |
561 | ||
562 | A bug which caused strange behavior if there is no default file | |
563 | name when an autowrite save is attempted has been fixed. | |
564 | ||
565 | A bug which caused the cursor to go to the wrong position when | |
566 | ^^D or 0^D is entered from column 2 in autoindent mode on terminals | |
567 | that can backspace has been fixed. | |
568 | ||
569 | Version 3.2 -- January 4, 1980 | |
570 | ||
571 | A bug that caused nomagic to be set if an error happened within | |
572 | a tag command has been fixed. | |
573 | ||
574 | A bug that caused put commands to beep after a macro containing | |
575 | an error has been fixed. | |
576 | ||
577 | The mapinput option has been placed in alphabetical order. | |
578 | ||
579 | A bug that caused undo to undo more than one macro invocation | |
580 | on the same line has been fixed. | |
581 | ||
582 | On non VM/UNIX systems, the screen size has been increased to | |
583 | allow a 40 X 80 Ann Arbor to be used. | |
584 | ||
585 | Version 3.2 -- December 28, 1980 | |
586 | ||
587 | Several limits have been increased for VM/UNIX. Longer lines, | |
588 | more characters of file names, longer regular expressions, etc. | |
589 | Huge files can now be edited directly. Larger terminals (up to | |
590 | 66 lines) can be used. | |
591 | ||
592 | An internal change has been made for VM/UNIX that causes error | |
593 | messages to be stored directly instead of in a disk file. | |
594 | This should cause faster response to errors. | |
595 | ||
596 | Version 3.1.1 -- December 13, 1979 | |
597 | ||
598 | A bug that caused nested macros not to be undoable has been fixed. | |
599 | ||
600 | A bug that caused pounding on the escape key on terminals with | |
601 | arrow keys that send escape sequences to cause undo to screw up | |
602 | has been fixed. | |
603 | ||
604 | It is now acknowledged that macros cannot contain the put command. | |
605 | This is due to the implementation of put - previously a put inside | |
606 | a macro dumped a copy of the buffer instead of the desired text and | |
607 | left the editor in a very strange state. Now such a put just beeps. | |
608 | ||
609 | Version 3.1 -- November 1, 1979 | |
610 | ||
611 | Versions from 3.1 up are too large to fit on pdp-11's. | |
612 | (Special overlay software is expected to be available soon | |
613 | for v7 pdp-11 Unix that will make it fit.) Version 2.9 | |
614 | is 3.1 with only the bug fixes and very few of the enhancements. | |
615 | 2.9 will fit on a pdp-11. Version 2.10 will come out and may | |
616 | correspond to 3.2. (It turned out to correspond to 3.3) | |
617 | ||
618 | For compatibility with ed: 's<newline>' may be used as a | |
619 | command and means '&'. If you set the option "edcompatible" | |
620 | (abbr "ed") the presense or abscence of g and c suffices is | |
621 | remembered and can be toggled by repeating the suffices. The | |
622 | suffix "r" makes the substitution into "~" instead of "&". | |
623 | ||
624 | A new command line option -w<n> sets the value of window before | |
625 | starting ex. Hence: 'vi -w5 file' makes a quick change to a file | |
626 | easier at 300 baud. | |
627 | ||
628 | Arrow keys on terminals that send more than 1 character now | |
629 | work. Home up keys are supported as are the four directions. | |
630 | Ex no longer looks at the ma= entry in termcap, but uses the | |
631 | ku, kd, kl, kr, and kh entries. (Note that the HP 2621 will | |
632 | turn on function key labels, and even then you have to hold | |
633 | shift down. To avoid turning on the labels, and to give up the | |
634 | function keys, use terminal type 2621nl instead of 2621.) | |
635 | ||
636 | A parameterless macro facility is included from visual. Briefly, | |
637 | there are two flavors of macros: | |
638 | a) Put the macro body in a buffer register, say x. Then | |
639 | type @x to invoke it. @ may be followed by another @ | |
640 | to repeat the last macro. | |
641 | This allows macros up to 512 chars. | |
642 | b) Use the map command from command mode (typically in the | |
643 | .exrc file) as follows: | |
644 | map lhs rhs | |
645 | where lhs will be mapped to rhs. | |
646 | There are restrictions: lhs's should be 1-keystroke | |
647 | (either 1 char or 1 function key) since they must be | |
648 | entered within 1 second. lhs no longer than 10 chars, | |
649 | rhs no longer than 100. To get " ", "\t", "|", or "\n" | |
650 | into lhs or rhs, escape them with ctrl V. (It may be | |
651 | necessary to escape the ctrl V with ctrl V if the map | |
652 | command is given from visual mode.) | |
653 | For 1 shot macros it is best to put the macro in a buffer register | |
654 | and map a key to '@r', since this will allow the macro to be edited. | |
655 | ||
656 | Macros can be deleted with | |
657 | unmap lhs | |
658 | ||
659 | The boolean option "mapinput" (mi) will, if on, cause macros to | |
660 | be mapped in input mode as well as command mode (in visual only). | |
661 | For example, you can define ctrl T to be four spaces with | |
662 | :map ^V^T_^V^V____ | |
663 | :set mi | |
664 | where underlines represent spaces and the ctrl V's are necessary | |
665 | to get ctrl chars and spaces past various levels, and make ^T be | |
666 | a software tab that even works in the middle of a line. | |
667 | ||
668 | If the lhs of a macro is "#0" through "#9", this maps the particular | |
669 | function key instead of the 2 char # sequence, if the terminal has | |
670 | function keys. This only works if termcap has function key entries | |
671 | for the particular terminal. For terminals without function keys, | |
672 | the sequence #x means function key x, as typed. As a special case, | |
673 | on terminals without function keys, the #x sequence need not be | |
674 | typed within one second. The character # can be changed by using | |
675 | a macro in the usual way: | |
676 | map ^V^I # | |
677 | to use tab, for example. (This won't affect the map command, which | |
678 | still uses #, but just the invocation from visual mode.) | |
679 | The undo command will undo an entire macro call as a unit. | |
680 | ||
681 | New commands in visual: ^Y and ^E. These glitch the screen up | |
682 | and down 1 line, respectively. They can be given counts, controlling | |
683 | the number of lines the screen is glitched. They differ from ^U | |
684 | and ^D in that the cursor stays over the same line in the buffer | |
685 | it was over before rather than staying in the same place on the | |
686 | screen. (^Y on a dumb terminal with a full screen will redraw the | |
687 | screen moving the cursor up a few lines.) If you're looking for | |
688 | mnemonic value in the names, try this: Y is right next to U and | |
689 | E is right next to D. | |
690 | ||
691 | More new commands in visual: '&' is a synonym for ':&<cr>'. | |
692 | '~' changes the case of the letter under the cursor and moves | |
693 | to the next character. | |
694 | ||
695 | Ex looks in your environment for EXINIT. If it finds it, that | |
696 | is used instead of looking for your .exrc. This should make | |
697 | entry into ex faster, along with the termlib feature of looking | |
698 | for a termcap entry in TERMCAP. | |
699 | ||
700 | Version 2.13 -- September 23, 1980 | |
701 | ||
702 | The provisions for changing the window size with a numeric | |
703 | prefix argument to certain visual commands have been deleted. | |
704 | The correct way to change the window size is to use the z | |
705 | command, for example z5<cr> to change the window to 5 lines. | |
706 | ||
707 | An undocumented "feature" which caused the ^^ command to return | |
708 | to the previous tag, if in the current file, instead of the | |
709 | previous file, has been removed. | |
710 | ||
711 | Version 2.12 -- July 23, 1980 | |
712 | ||
713 | A change was made to the sys_errlist array in ex_subr.c so that | |
714 | Berkeley V7 quotas will produce the right error message. | |
715 | ||
716 | A couple of minor bug fixes were made to get the editor to | |
717 | compile on version 6. The option to use 1K BUFSIZ has been | |
718 | deleted, since it is no longer used on our 1K system. | |
719 | ||
720 | Version 2.11 -- June 24, 1980 | |
721 | ||
722 | The visual page motion commands ^F and ^B now treat any preceding | |
723 | counts as number of pages to move, instead of changes to the | |
724 | window size. That is, 2^F moves forward 2 pages. | |
725 | ||
726 | A :vi <file> command from visual mode is now treated the same | |
727 | as a :edit <file> or :ex <file> command. The meaning of the | |
728 | vi command from ex command mode is not affected. | |
729 | ||
730 | A read only mode now lets you guarantee you won't clobber your | |
731 | file by accident. You can set the on/off option "readonly" (ro) | |
732 | and writes will fail unless you use an ! after the write. | |
733 | Commands such as x, ZZ, and autowrite, and in general anything | |
734 | that writes is affected. This option is turned on if you invoke | |
735 | ex with the -R flag. A new link called "view" has been created. | |
736 | View is just like vi but it sets readonly. | |
737 | ||
738 | The editor now supports certain terminals that use strings other | |
739 | then \r and \n for return and linefeed by implementing the cr | |
740 | and nl termcap options. (Thanks to UCLA for these enhancements). | |
741 | ||
742 | The termcap attribute ns is now checked for, and ex refuses to | |
743 | go into visual mode on such a terminal unless it has sf. | |
744 | ||
745 | If you change your start and stop characters to something other | |
746 | than the default ^S and ^Q, vi now turns them off. This causes | |
747 | people who change them to escape not to lose so badly. | |
748 | The quit character is once again turned off so that datamedias | |
749 | which send ^\ for the right arrow key work. | |
750 | ||
751 | If you type in an unmatched ) or } in showmatch mode, the editor | |
752 | will now beep to warn you about your mistake. The ) or } is | |
753 | still accepted. | |
754 | ||
755 | Editor scripts can now contain comments. Begin the comments with " | |
756 | (double quote). Comments can be on their own line or come at the | |
757 | end of command lines. The comment continues to the end of the line. | |
758 | ||
759 | The 3rd version of the USG tty driver is now supported, making it | |
760 | possible on USG systems to interrupt redrawing the screen and to | |
761 | not flush output when interruptable commands take place. | |
762 | ||
763 | The rewind command has been added to the list of commands that | |
764 | the autowrite option knows about. | |
765 | ||
766 | A bug on the USG system where hanging up the phone causes more | |
767 | than one SIGHUP to be sent has been compensated for. | |
768 | ||
769 | A bug which caused a file that bombed out in the middle of | |
770 | an edit command to be considered modified has been fixed. | |
771 | ||
772 | The source file ex_io.c has been split into ex_io.c and | |
773 | ex_unix.c to avoid a problem where many C compilers overflowed | |
774 | the symbol table. | |
775 | ||
776 | A bug which prevented turning off your prompt in your .exrc | |
777 | has been fixed. | |
778 | ||
779 | Some of the code internal to the editor has been rearranged | |
780 | and some comments added. | |
781 | ||
782 | The bug fix to the USG tty driver to output a null character | |
783 | as padding at 1200 baud has been improved to output a DEL | |
784 | at 1200 baud or above. | |
785 | ||
786 | Terminals with small screens (less than 20 columns or less | |
787 | than 5 lines) should now work. | |
788 | ||
789 | A bug which prevented you from entering the character DEL | |
790 | into the buffer if you changed your interrupt character to | |
791 | something else besides DEL has been fixed. | |
792 | ||
793 | A bug which caused things like d) and d} to miss the last | |
794 | character when they should have deleted to the end of the | |
795 | buffer has been fixed. | |
796 | ||
797 | A bug which caused the last character to be lost when you | |
798 | read in a file with no newline at the end of the last line | |
799 | has been fixed. | |
800 | ||
801 | A bug that caused garbage to be in the buffer if the temp file | |
802 | overflowed has been fixed. | |
803 | ||
804 | The character | can now be escaped with \| in file names. | |
805 | ||
806 | A bug which caused the editor to not work if the tab stop size | |
807 | did not divide the screen width has been fixed. | |
808 | ||
809 | A bug on HP terminals that caused the screen to be messed up if | |
810 | you scrolled up something that began the same way as the echo line | |
811 | has been fixed. | |
812 | ||
813 | An old ed bug which caused globals to fail when they did a substitute | |
814 | on the next line has been fixed. | |
815 | ||
816 | The % operator will now find matching square brackets the same way | |
817 | it does parentheses and braces. It will not display them in | |
818 | showmatch mode, however, and will not use a ] to match all ('s. | |
819 | ||
820 | Ex looks in your environment for EXINIT. If it finds it, that | |
821 | is used instead of looking for your .exrc. This should make | |
822 | entry into ex faster, along with the termlib feature of looking | |
823 | for a termcap entry in TERMCAP. | |
824 | ||
825 | Internally, it is possible to turn off about a dozen different | |
826 | options when compiling the editor to make it fit in 64K. | |
827 | See the makefile for a list of options. | |
828 | ||
829 | Version 2.10 -- February 2, 1980 (Corresponds to 3.3) | |
830 | ||
831 | The default window sizes have been changed. At 300 baud the | |
832 | window is now 8 lines (was 1/2 the screen size). At 1200 baud | |
833 | the window is now 16 lines (was 2/3 the screen size, which was | |
834 | usually also 16 for a typical 24 line CRT). At 9600 baud the | |
835 | window is still the full screen size. Any baud rate less than | |
836 | 1200 behaves like 300, any over 1200 like 9600. | |
837 | ||
838 | A new command mode command "x" (for "xit") has been added. This | |
839 | is the same as wq but will not bother to write if there have been | |
840 | no changes to the file. The command letter was chosen for | |
841 | convenience and compatibilty with hed. | |
842 | ||
843 | The command "ZZ" from vi is the same as ":x<cr>". This is | |
844 | the recommended way to leave the editor. Z must be typed twice | |
845 | since this is two easy to type by accident and has such severe | |
846 | effects if unintentional. | |
847 | ||
848 | The options w300, w1200, and w9600 can be set. They are synonyms | |
849 | for "window", but only apply at 300, 1200, or 9600 baud, resp. | |
850 | Thus you can specify you want a 12 line window at 300 baud and | |
851 | a 23 line window at 1200 baud with | |
852 | :set w300=12 w1200=23 | |
853 | ||
854 | The "q" command from visual no longer works at all. You must | |
855 | use "Q" to get to ex command mode. | |
856 | ||
857 | The editor no longer uses nondestructive space, except when in | |
858 | insert mode. It instead prints the character it would be | |
859 | moving over. This is a real win on terminals that use an | |
860 | escape sequence to nd space. | |
861 | ||
862 | A minor incompatibility with the v7 ed has been fixed. Previously, | |
863 | to do a global substitute with an escaped newline in the rhs, you | |
864 | had to put two \'s in ex and one in ed. Ex now accepts the single | |
865 | form as well as the double form. For example, instead of | |
866 | g/foo/s//foo\\ | |
867 | bar/g | |
868 | (which still works), you can now type, as in ed, | |
869 | g/foo/s//foo\ | |
870 | bar/g | |
871 | This means that the following ex command, which used to "work": | |
872 | g/foo/s//foo bar\ | |
873 | .+1,/mumble/d | |
874 | won't work anymore unless you put the trailing / on the substitution. | |
875 | This usage is pretty obscure anyway. | |
876 | ||
877 | A bug which caused the command "g/pattern" to print an error | |
878 | message if "pattern" occurred on the last line has been fixed. | |
879 | ||
880 | Limits have been raised so that an Ann Arbor terminal can be used, | |
881 | and long tags can now be accomodated. | |
882 | ||
883 | A bug that caused HP terminals to mess up in insert mode when inserting | |
884 | before a tab which follows 7 or fewer characters at the beginning of a | |
885 | line (such as a tags file) has been fixed. | |
886 | ||
887 | A bug which causes term to be displayed incorrectly and which | |
888 | caused a crash when changing terminal type when there happened | |
889 | to be several |'s and a long string in genbuf has been fixed. | |
890 | This bug was introduced in ex 2.9. | |
891 | ||
892 | The patch for echo lines longer than 80 characters has been | |
893 | repaired to do "Hit return to continue" after such lines and | |
894 | print the entire output. | |
895 | ||
896 | A bug that caused a messed up screen after a :sh command from | |
897 | open mode has been fixed. | |
898 | ||
899 | A bug which caused a tag request for a nonexistant tag to leave | |
900 | the editor in nomagic mode has been fixed. | |
901 | ||
902 | A bug which caused strange behavior if there is no default file | |
903 | name when an autowrite save is attempted has been fixed. | |
904 | ||
905 | A bug which caused the cursor to go to the wrong position when | |
906 | ^^D or 0^D is entered from column 2 in autoindent mode on terminals | |
907 | that can backspace has been fixed. | |
908 | ||
909 | In order to get 2.10 to fit on a v7 pdp-11, the following features | |
910 | have been deleted: | |
911 | The MASTERTAGS feature (undocumented use of /usr/lib/tags | |
912 | as an alternate tag file) | |
913 | Checking that a file being read in is an ascii file. | |
914 | Turning off ^Q/^S on a v7 system. | |
915 | ||
916 | Version 2.9 -- November 1, 1979 | |
917 | ||
918 | The meanings of semicolon and newline, broken in 2.8, have been fixed. | |
919 | Newline with two arguments still prints the range, unless a semicolon | |
920 | was present, in which case only the last line is printed. Semicolon | |
921 | otherwise behaves as in ed (and ex 2.7). | |
922 | ||
923 | For compatibility with ed: '%' is an abbreviation for '1,$'. | |
924 | The default starting line for 'z' is '.+1' instead of '.'. | |
925 | If 'z' is followed by a number, this number is remembered | |
926 | (by setting the scroll option). | |
927 | ||
928 | The + options to the command line invocation and to the edit | |
929 | command now also work for the next command. In addition, the | |
930 | text after the + is no longer limited to a line number or | |
931 | / or ? search string, but can be any single command. (It cannot | |
932 | contain spaces except on command line invocation, and then must | |
933 | be quoted to make the shell happy.) The only special case is | |
934 | where + is used by itself - this is the same as +$. | |
935 | ||
936 | The way window sizes and scrolling commands are based on the options | |
937 | window and scroll has been rearranged. All command mode scrolling | |
938 | commands (z and ctrl D) are based on scroll: ^D moves scroll lines, | |
939 | z moves scroll*2 lines. Everything in visual (^D, ^U, ^F, ^B, z, | |
940 | window sizes in general) are based on the window option. The | |
941 | defaults are arranged so that everything seems as before, but | |
942 | on hardcopy terminals at 300 baud the default for scroll is | |
943 | 11 instead of 6. | |
944 | ||
945 | Whether ex prompts for commands now depends on the setting of the | |
946 | prompt variable, so inside script you can say 'set prompt' and | |
947 | get ex to prompt. | |
948 | ||
949 | Tags are now searched for in nomagic mode instead of the funny | |
950 | mode where magic characters were impossible to get. | |
951 | ||
952 | Paragraphs and sections with one letter names (such as those | |
953 | used by PWB/MM) now work - use a space (escaped by a backslash) | |
954 | for the second letter. Default paragraphs and sections are included | |
955 | for both MM and MS. (Thanks to adb for this) | |
956 | ||
957 | A bug involving 16 bit arithmetic on a vax for the yank command | |
958 | has been fixed. | |
959 | ||
960 | The text of the mailed message from expreserve has been improved | |
961 | slightly. | |
962 | ||
963 | The editor now always turns off the XTABS stty bit when in visual | |
964 | mode, making terminals that do special things with ^I work. | |
965 | ||
966 | The editor now knows about terminals with destructive tabs, like | |
967 | the teleray 1061, having the xt option. | |
968 | ||
969 | A bug that caused going past column 80 on terminals with insert line | |
970 | but not insert char (like the mime, h1500, or i100) to mess up the | |
971 | screen has been fixed. | |
972 | ||
973 | A bug on 2621's that causes lines longer than 80 chars long with | |
974 | embedded tabs to mess up when a tab was inserted has been fixed. | |
975 | ||
976 | A bug that caused the wrong line to suddenly appear under very | |
977 | rare circumstances involving small window sizes and long lines | |
978 | where a search left the cursor on the top line of the screen | |
979 | has been fixed. | |
980 | ||
981 | The bug that caused inverse video to sometimes be scrolled up | |
982 | into the file from an error message has been fixed. | |
983 | ||
984 | The join command has been fixed, so that '3,3j' no longer joins | |
985 | lines 3 and 4. ('3j' still does.) Thus, '/a/;/b/-j' works right | |
986 | even if b is found on the line after a. | |
987 | ||
988 | ex -v now finds your .exrc. In related changes, the default in | |
989 | vi is now magic and nobeautify. | |
990 | ||
991 | If your buffer is empty, ex won't refuse to do an edit, quit, | |
992 | or tag command because you haven't done a write. | |
993 | ||
994 | A bug causing visual undo not to work after '1,$!cat' has been | |
995 | fixed. | |
996 | ||
997 | Ex now decides for itself whether to use CBREAK or TIOCSETN | |
998 | by whether they are defined in <sgtty.h>. This eliminates much | |
999 | of the #ifdef USG or V6 lines. One USG line remains due to a bug | |
1000 | in the USG tty driver at 1200 baud. | |
1001 | Note that this will mess up if you use libretro because <sgtty.h> | |
1002 | has CBREAK and TIOCSETN defined. Take these out of sgtty.h to fix this. | |
1003 | ||
1004 | Termcap options TI and TE have been added. These strings are | |
1005 | respectively output at the beginning and end of the editing session. | |
1006 | ||
1007 | Values for the set command may now include `\ ' for space and | |
1008 | control characters. | |
1009 | ||
1010 | Changes have been made to /etc/termcap (several new fields have | |
1011 | been added) and to termlib (it now looks for TERMCAP in the environment | |
1012 | and treats it as a termcap entry if the name of the terminal mentioned | |
1013 | is the same as TERM and the entry doesn't start with a slash. | |
1014 | If it starts with a slash it is treated as a filename, as before. | |
1015 | Termcap also checks the 512 byte entry limit and skips lines beginning | |
1016 | with # as comments. It is possible to define one terminal as being | |
1017 | similar to another one with a few differences without making two | |
1018 | copies of the description.) New termcap fields: | |
1019 | ti terminal initialization string. This should be sent | |
1020 | out at the beginning of any program that addresses | |
1021 | the cursor. | |
1022 | te Like te but at end of the program. | |
1023 | (Thanks to adb for these two fields) | |
1024 | us Start underlining. | |
1025 | ue End underlining. | |
1026 | uc Underline one character & move over it. | |
1027 | hc (bool) terminal is hardcopy | |
1028 | ns (bool) terminal doesn't scroll (tektronix) | |
1029 | ff (bool) hardcopy knows ^L means formfeed. | |
1030 | pt (bool) hardware tabs, maybe set by is | |
1031 | xt (bool) destructive tabs (teleray 1061) | |
1032 | ku sequence sent by keypad "up" arrow | |
1033 | kd "down" arrow | |
1034 | kl "left" arrow | |
1035 | kr "right" arrow | |
1036 | kh "home" arrow | |
1037 | ks sequence to make keypad send these codes | |
1038 | ke sequence to make keypad not send these codes. | |
1039 | k0-k9 sequences sent by up to 10 "other" keys | |
1040 | l0-l9 labels on k0-k9. If omitted, default = "f0" - "f9". | |
1041 | ko additional keys on keypad, in terms of their | |
1042 | termcap entry. For example, if "home down" and "clear" | |
1043 | are present and send the same codes as ll and cl, use | |
1044 | :ko=cl,ll: | |
1045 | tc This entry is a list of differences from the named | |
1046 | entry. THIS MUST BE THE LAST FIELD. Example: hp2621 | |
1047 | with no ks or ke (e.g. null string): | |
1048 | hn|hp2621nl:ks@:ke@:tc=hp2621: | |
1049 | The @ cancels the string even if it is defined later. | |
1050 | ||
1051 | Version 2.8 -- July 18, 1979 | |
1052 | ||
1053 | It is now possible to backspace over the first character (:, /, or ?) | |
1054 | on the echo line from visual. The effect is as though delete were hit | |
1055 | except the bell isn't rung. | |
1056 | ||
1057 | The trailing slash in global commands is now optional. | |
1058 | g/pat means g/pat/p | |
1059 | (This change, as well as the corresponding changes to the substitute | |
1060 | command and r.e. address are also in the latest version of ed.) | |
1061 | ||
1062 | The j, k, and l keys now move the cursor down, up, and right, | |
1063 | respectively, in visual mode, as they used to do (and still do on | |
1064 | 3a's). This is to avoid the creeping of these keys into the map | |
1065 | descriptions of terminals and to compensate for the lack of arrow | |
1066 | keys on terminals like HP's. | |
1067 | ||
1068 | Two arguments given to a newline command now print the range of | |
1069 | lines instead of just the last line (as though 'p' were appended). | |
1070 | To make forms like /foo/;/bar/ still work, the ; operator sets | |
1071 | the dot as before but then forgets everything to the left of the ;. | |
1072 | ||
1073 | The + option invoked from the shell or the edit command has | |
1074 | two new forms: +/pat and +?pat | |
1075 | These cause the initial line to be chosen by a search for the | |
1076 | pattern pat. Note that if any special characters are in the | |
1077 | argument (such as ^, $, and even ?) it must be quoted. | |
1078 | ||
1079 | Two new options are added: autowrite (aw) and hardtabs (ht). | |
1080 | Autowrite is a toggle, off by default. When on, if you have | |
1081 | unsaved changes before a context switching command, a write | |
1082 | is done automatically. The commands that may write are !, | |
1083 | next, and tag. Note that there is an equivalent way to do the | |
1084 | command with autowrite set without the write in each case: | |
1085 | shell, tag!, and edit do not write. | |
1086 | ||
1087 | Hardtabs is a numeric option,, set to 8 by default. | |
1088 | Changing this to, say, 4, tells ex that either your system | |
1089 | expands tabs to every 4 spaces, or your terminal has hardware | |
1090 | tabs set every 4 spaces. | |
1091 | ||
1092 | A bug that caused strange behaviour when an echo line contained | |
1093 | more than 79 characters (from a long : command or one or more long | |
1094 | filenames) has been patched by not printing any such characters | |
1095 | past column 79. | |
1096 | ||
1097 | Handling of systems with nonstandard locations of files (where | |
1098 | the maintainer of ex is not a superuser and cannot create files | |
1099 | with names like /usr/lib/ex2.0strings or /etc/termcap) has been | |
1100 | improved. If the file can't be found as is, it is tried in the | |
1101 | current directory. If that fails, ex tries to run without it. | |
1102 | (Previously it bombed immediately if the error message file wasn't | |
1103 | in /usr/lib.) | |
1104 | ||
1105 | Shell commands containing ! or % characters are no longer echoed | |
1106 | when in hush mode (as in 'ex -' from a shell file.) | |
1107 | ||
1108 | Version 2.7 -- June 10, 1979 | |
1109 | ||
1110 | An inefficiency introduced in version 2.3, which increased the | |
1111 | amount of time spent preparing output by approximately 30 percent | |
1112 | has been corrected. | |
1113 | ||
1114 | A bug which caused ``wrapmargin'' to work as though all hardcopy | |
1115 | terminals were 160 columns wide has been corrected. | |
1116 | ||
1117 | A bug which caused the display to become confused after the display | |
1118 | of a long line at the bottom of the screen was suppressed (being | |
1119 | replaced temporarily by an @) has been fixed. Previously, under | |
1120 | some circumstances (e.g. after a put created the situation), scrolling | |
1121 | up of the following text would cause the display of this long | |
1122 | line to be skipped, so that the @ line would remain and the line | |
1123 | itself would not be displayed. | |
1124 | ||
1125 | Version 2.6 -- June 2, 1979 | |
1126 | ||
1127 | A bug which prevented the first field separator in a tags file | |
1128 | from beginning with a blank has been fixed; if the separator | |
1129 | was a blank previously, the tag would not be found in the tags file. | |
1130 | ||
1131 | A bug which caused the display to be messed up after a ``:'' | |
1132 | escape which created long lines has been fixed. Previously | |
1133 | a substitute command which changed the last few lines on the screen | |
1134 | to be very long would leave the screen messed up. | |
1135 | ||
1136 | A bug in display after 2 successive ``undo'' commands has been fixed. | |
1137 | Previously if you opened new lines on the display, and then did | |
1138 | 2 successive undo commands, the display would be messed up after the | |
1139 | second undo if your terminal had insert/delete line. | |
1140 | ||
1141 | A bug on intelligent terminals which caused unnecessary delete | |
1142 | character commands to be sent has been fixed. This occurred when | |
1143 | you did not have ``autoindent'' set, and opened a new line | |
1144 | below an existing line with tabs. | |
1145 | ||
1146 | The change operations in open mode on hardcopy terminals has been | |
1147 | fixed. Previously there were several bugs in cursor placement | |
1148 | when the change extended to just before a tab character. | |
1149 | ||
1150 | Several bugs in the handling of tabs in insert mode on intelligent | |
1151 | terminals have been fixed. Previously, tabs would often expand | |
1152 | incorrectly, leaving the wrong amount of white space, when an | |
1153 | insert occurred just before a tab. | |
1154 | ||
1155 | A bug has been fixed which caused the editor to skip processing | |
1156 | of the ``.exrc'' file when the terminal type set in the | |
1157 | environment was unknown. The editor now processes ``.exrc'' in | |
1158 | this case. | |
1159 | ||
1160 | [[A number of formatting changes have been made to the editor code | |
1161 | to eliminate unreasonably long lines. In addition, the code | |
1162 | from the Murray Hill and USG sites has been merged in conditionally, | |
1163 | so that all sites can compile from the same source.]] | |
1164 | ||
1165 | Version 2.5 -- May 28, 1979 | |
1166 | ||
1167 | A bug which caused the VE sequence not to be sent when exiting | |
1168 | the editor via :q or :wq from visual has been fixed. | |
1169 | ||
1170 | A bug which caused the command r^Q<ESC> to be weird when it | |
1171 | was repeated has been fixed. | |
1172 | ||
1173 | The $ command now sets the column for future cursor motions to | |
1174 | effective infinity. Thus a `$' followed by up/down cursor motions | |
1175 | moves at the right margin of each line. | |
1176 | ||
1177 | [[Internal: a bug in conditional compilation without the LISP | |
1178 | features has been fixed.]] | |
1179 | ||
1180 | Several bugs relating to insert mode and intelligent terminals | |
1181 | have been fixed: | |
1182 | ||
1183 | A bug which caused inserts on HP/DATAMEDIA like terminals to act | |
1184 | strangely when the material was inserted immediately before a tab | |
1185 | has been fixed. | |
1186 | ||
1187 | A bug which caused the insertion of full tabs to not appear to | |
1188 | insert as many spaces as required (under strange circumstances) | |
1189 | has been fixed. | |
1190 | ||
1191 | A bug which caused inserts on terminals with insert/delete line | |
1192 | but no insert/delete character to act strangely if the insert | |
1193 | caused a line to overflow has been fixed. | |
1194 | ||
1195 | The ``expreserve'' program has been improved; you now will get | |
1196 | mail if a file is saved for you as a result of your phone being | |
1197 | hung up accidentally. | |
1198 | ||
1199 | Version 2.4 -- May 19, 1979 | |
1200 | ||
1201 | A bug during inserts on intelligent terminals which occasionally | |
1202 | caused double ``~~'' characters on the last few lines of the display | |
1203 | rather than just single `~' characters has been fixed. | |
1204 | ||
1205 | The w W b B e and E operations in visual now wrap around line | |
1206 | boundaries. Thus a sequence of enough w commands will get to any | |
1207 | word below the current position in the file, and b's will back | |
1208 | up to any place before. Thus these are more like the sentence | |
1209 | operations ( and ). You still can't back around line boundaries | |
1210 | duing inserts however. | |
1211 | ||
1212 | Version 2.3 -- May 13, 1979 | |
1213 | ||
1214 | The P command to ex is now a synonym for p, so that 1,$P works, | |
1215 | if you don't let up on the shift key soon enough. | |
1216 | ||
1217 | The / and ? operations within visual and open now hit later | |
1218 | (or earlier resp) occurrences of the same string on the same | |
1219 | line. This makes scans using / and ? much more useful. You | |
1220 | can move to the right on the current line by typing /pref<ESC> | |
1221 | where `pref' is a prefix of the word you wish to move to, and | |
1222 | delete to a following string `str' by doing d/str<ESC> if it is | |
1223 | on the same or succeeding line. Previously the command | |
1224 | d/pat/ | |
1225 | deleted lines through the next line containing `pat'; it now | |
1226 | deletes text up to the next instance of `pat'. To delete to | |
1227 | the next line containing `pat', do | |
1228 | d/pat/0 | |
1229 | which is short for | |
1230 | d/pat/+0 | |
1231 | In general if you use an offset after the scanning pattern, | |
1232 | whole lines will always be affected. | |
1233 | ||
1234 | Several bugs relating to the setting of the previous context mark | |
1235 | `` have been fixed, including one which caused operations such as | |
1236 | d`` or c`` to occasionally dump core. In particular, the operations | |
1237 | ( ) { } [[ ]] and % | |
1238 | now set the previous context mark correctly, and the mark is set | |
1239 | even if the motion by these operations lands in the same line. | |
1240 | ||
1241 | More optimization is now done on output cursor motions. This | |
1242 | is particularly much better on HP terminals which have | |
1243 | ridiculously long cursor addressing sequences. A new | |
1244 | capability has been added to the termcap file to aid this: | |
1245 | ``bt'' (backtab). Thanks to Chuck Haley for the new code to | |
1246 | implement this. | |
1247 | ||
1248 | A bug has been fixed on intelligent terminals which caused part | |
1249 | of the screen to be accidentally erased during insertions. | |
1250 | This occurred only on the first line on the screen, when it | |
1251 | became longer than one displayed line and only if a part of | |
1252 | the screen (at the top) was currently not in use. | |
1253 | ||
1254 | A bug has been fixed which caused the command ``dp'' to be interpreted | |
1255 | as ``delete to register p''. This normally went unnoticed since | |
1256 | the ``autoprint'' option would cause the effect which the ``p'' was | |
1257 | forcing. | |
1258 | ||
1259 | Version 2.2 -- May 6, 1979 | |
1260 | ||
1261 | "d)" now deletes a line if the current line is a sentence rather | |
1262 | than leaving an empty line. | |
1263 | ||
1264 | The command | |
1265 | :s/str | |
1266 | now deletes str if it can find it; previously it was an error. | |
1267 | ||
1268 | The editor now handles multiple ":" escapes correctly; previously | |
1269 | the screen would not be redrawn necessitating a ^L to fix it if you | |
1270 | gave a `:!command' to ``[Hit return to continue]''. | |
1271 | ||
1272 | Recursive calls to visual from within open or visual are no longer | |
1273 | permitted. Previously ``:vi'' from within open mode would eventually | |
1274 | leave the editor in a strange state. | |
1275 | ||
1276 | The %age in the status line is now correctly printed on 11's; | |
1277 | Previously internal 16-bit overflows often caused it to be incorrect. | |
1278 | ||
1279 | The editor now ignores a ":" in front of commands. | |
1280 | Thus you can say ``:read foo'' within ex. | |
1281 | ||
1282 | A bug which caused commands involving ]] to not be repeatable has | |
1283 | been fixed. Previously ``d]]'' followed by ``.'' caused an error. | |
1284 | ||
1285 | "ayw now works correctly. Previously this silently did nothing. | |
1286 | ||
1287 | Several bugs in "recover" and "ex -r" have been fixed. Thanks | |
1288 | to Andy Koenig for the fixes. | |
1289 | ||
1290 | In input mode in open and visual ^V (like tenex) is now equivalent | |
1291 | to ^Q (which is reminiscent of ITS) superquoting the next character. | |
1292 | A later version of the UNIX tty driver will implement the standard for | |
1293 | ^S ^Q handshaking and make ^Q unusable. | |
1294 | ||
1295 | There are several typos on page 3 of the ``edit'' manual section: | |
1296 | s/move "a/delete a/ | |
1297 | s/"a move ./put a/ | |
1298 | /move to copy/s//delete to yank/ | |
1299 | ||
1300 | Version 2.1 -- April 5, 1979 | |
1301 | ||
1302 | Invoking ex via | |
1303 | ex -l | |
1304 | now sets "lisp" and "showmatch". This is suitable for invocations | |
1305 | from within Franz Lisp. If you don't like "showmatch", you can | |
1306 | still use "ex -l", just put the command | |
1307 | set noshowmatch | |
1308 | in your .exrc file. | |
1309 |