File: readme3.0

package info (click to toggle)
jvim 3.0-2.1a-5
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 8,744 kB
  • ctags: 4,544
  • sloc: ansic: 145,262; makefile: 228; sh: 41
file content (967 lines) | stat: -rw-r--r-- 34,259 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
This file contains an overview of changes from Vim version 2.0 to 3.0

The changes new in version 2.x are marked with (2.x).
Some changes from Robert Webb are marked with (Webb 2.5).

Big improvements
================

Added multiple windows and multiple buffers! See doc/windows.doc for an
overview of the new and changed commands.

Added hidden buffers. 'hidden' option can be set to create a hidden buffer
instead of abandoning a buffer. Added ":bnext", ":bprev", ":bNext" and
"brewind" commands to go to other buffer. Added ":buffers" command to show all
buffers. Added ":bmod" command: go to next modified buffer. Added ":bdelete"
command: delete buffer from list. (2.4)

Added a lot of commands to manipulate buffers:
- Added commands to open a window for all arguments, all active buffers, all
  buffers: ":all", ":sall", ":unhide", ":sunhide", ":ball", ":sball". (2.5)
- Added ":bunload" command: Unload buffer from memory. The ":bdelete" command
  does the same plus deletes the buffer from the buffer list. (2.5)
- Arguments from command line are always put in buffer list. (2.5)
- Added ":sbuffer", ":sbnext", ":sbNext", ":sbprevious", ":sbmodified",
  ":sbrewind", ":sblast": split window and go to specified buffer. (2.5)
- Added ":wNext" and ":wprevious": write file and go back in argument list.
  (2.5)
- Added ":wqall" and ":xall", write all change buffers and exit. (2.5)


When all changes have been undone the buffer is not considered to be changed.
Vim can then be exit with ":q" instead of ":q!".

Added simple "more" facility to listings. Can be switched on/off with the
'more' option.

Added Webb's code for command line completion, with "#ifdef WEBB_COMPLETE".
(Webb 2.5)


Changes incompatible with previous versions
===========================================

Command lines starting with '#' are no longer considered to be comments. '#'
is a synonym for :number.

Embedded newline characters in command lines are considered to be the end of a
command line. To use newline characters in a command, precede it with CTRL-V
(you have to type CTRL-V two times to get one).

The ":files" command is now the same as the ":buffers" command. The file list
and the buffer list have been integrated into one list. The buffer number and
the file number are equal and will not change during an editing session. (2.5)

":buffer" does not accept a file name but a buffer number. Use ":set hid" and
":e file". (2.5)

Made 'laststatus' a numeric option. It says when to use a status line for last
window: 0 is never, 1 if more than one window, 2 is always. (2.5)

Replaced CTRL-P in insert mode by CTRL-B (for Backwards). CTRL-P can now be
used for keyword completion. (2.5)

The search pattern for the :tag command does not replace the search pattern
that is remembered for the next search command. (Webb 2.5)

Use CTRL-X instead of CTRL-S (subtract). Do not switch off xon/xoff in unix.c.
Fixes problems with CTRL-S on some terminals. (2.4)

Using >> will not shift lines that start with '#' when 'si' is set. (Webb 2.5)

"\?" in expressions (match exactly one time) replaced by "\=", makes "?\?\?"
work.

The commands "*" and "#" only search for whole words, using "\<ident\>". (Webb
2.5)

When doing a ":ta" command after CTRL-T, the tag stack is truncated, rather
than keeping old tags at the top. Now repeating CTRL-T will get you back to
the first ":ta" and stop there. (Webb 2.5)

Made argument list global, not local to each window. ":quit" works when there
are more files to edit, except when there is only one window. (2.4)

The ".vim" file is not used for recovery with the "-r" argument. Use
"Vim -s file.vim file" instead.

First page of swap file has changed, cannot recover files from older versions.
The swap file can now be recognized by its start: "b0VIM 3.0", where 3.0 is
the version number. (3.0)


New commands and functionality
==============================

Added insert-mode keyword completion commands CTRL-P and CTRL-N inside #ifdef
WEBB_KEYWORD_COMPL. (Webb 2.5)

Updated error messages for keyword completion in insert mode. (2.7)

Added "]f" command: Edit file whose name is under the cursor. Added CTRL-W
CTRL-F and CTRL-W f: split window and edit file whose name is
under the cursor. (Webb 2.5)

Changed "]f" into "gf". Mnemonic: goto file. (2.7)

Put "]f" and "[f" back in, they do the same as "gf". For people that have the
'g' key remapped. (2.9)

Added CTRL-W CTRL-R, CTRL-W r, CTRL-W R: rotate windows upwards/downwards
(2.5)

Added CTRL-W CTRL-X and CTRL-W x: exchange current window with next one. (Webb
2.5)

Added window title for xterm.

Added termcap options 't_so' (standout) and 't_se' (standout end). Use 't_so'
and 't_se' if inversion is not possible and for highlighting directories.
At some places standout mode is used instead of inversion. (Webb 2.5)

Do wait_return() message and the message used when asked for 'y' or 'n' is now
in standout mode. (Webb 2.5)

Added termcap option 't_ms' (save to move cursor in reverse mode). Makes
inversion work on some terminals.

Added ":mode" command. Under Amiga and Unix this only re-sets the screen
size. With MSDOS it is possible to switch screen mode.

Now also "%<", "#31<", alternate file name without extension.

Added ':' register. Contains last command line. "@:" repeats last command
line.

Added ":exit" as synonym for ":xit". More logical, isn't it?

Added ":swapname". Show swap file name for current buffer.

":args" can have arguments for redefining the argument list, just like
":next". (2.5)

When the command for the tag is a search and it fails, try searching for the
tag itself with pattern "^tag(" and "^[#a-zA-Z_].*tag(". (Webb 2.5)

"%" will now go to matching comment delimiters (/ *, * /) and find matches for
the preprocessing lines #ifdef, #else, #elif and #endif. (Webb 2.5)

Using '%' on #if/#else/#endif makes the movement linewise. (2.7)

"[p", "[P", "]p" and "]P" work like "p" and "P" but adjust the indent of the
putted lines to match the context. (Webb 2.5)

Changed put indented: "[p" and "]p" is "]p" (put forward), "[P" and "]P" is
"[p" (put backward). (2.7)

"[(" and "[{" may be used to go to the (count'th) last unclosed ( or {.
"])" and "]}" may be used to jump to the (count'th) next unopen) or }. Can be
used to jump to the start/end of the innermost c-code block (Webb 2.5)

Added count to ":", "count:" translates into ":.,.+(count - 1)". (Webb 2.5)

Added ":sleep" command. (2.4)

"g" is to be used for a new series of commands. First one: "gs" sleeps for a
moment (Mnemonic: Go to Sleep). Give count for that many seconds. Can be
interrupted with CTRL-C. (2.5)

Added ":last" and ":slast", go to last argument. (2.5)
Added ":argument [N]" and ":sargument [N]", go to Nth argument. (2.5)
Added ":blast" and ":sblast", go to last buffer. (2.5)

Added "-o[N]" command line argument: Open N windows on startup. (2.5)

Added ":only", CTRL-W CTRL-O, CTRL-O o: Close all but current window. (2.5)

Added default digraph: <space> <char> is meta-char. (2.4)

Digraphs with CTRL-H do not make meta characters. Use CTRL-K <space>
<char>. Fixes problem with abbreviations when 'digraph' set. (2.5)

Don't allow digraphs with ESC. Hitting ESC in digraph exits insert mode. (2.5)

Added ":snext", ":sNext", ":sprev" and ":srewind" commands, split window and
go to next/previous file in argument list. (2.4)

Added CTRL-W CTRL-P and CTRL-W p, jump to previous window. (2.4)

Added "zz", "zt" and "zb", same as "z.", "zCR" and "z-" but without moving the
cursor to the start of the line. (2.4)

":bdelete" and ":bunload" accept a range of buffers and a list of buffer
numbers. (2.7)


Improvements
============

Cursor up/down in insert mode keep the same column. Also for "CTRL-O j" and
the like.

Added column number to :file.

Improved listing of ":set" command. The columns are now sorted top to bottom.
Long string options are listed at the end (idea comes from nvi).

Renamed directory "macros" to "tools". Moved doc/vim132 to tools/vim132.

"ref" program added for "K" command (in the tools directory. Does simple
spelling check.

Vim arguments "-c command" and "+command" are now options that can be given
anywhere on the command line before the file names. Makes it possible to do
"Vim "+set ic" -t FuncTion".

Improved Usage message.

Added check for negative line numbers in colon commands.

Removed 'n' offset to search patterns. Avoiding pcmark set is now down with
tag_busy flag.

Improved error messages for file access.

":args" does not call wait_return() when message is short.

When doing :paste twice the option values are saved only once.

Accept '\n' to separate Ex commands, just like '|'.

With search also accept 'b' for begin, like 's' for start.
When 'e' used the operator is inclusive. 

Visual shift accepts a count for number of indents.

No "hit return to continue" while filtering and only once when reading/writing
files.

For Amiga and MSDOS lines longer than 32000 characters are split when reading.
Used to give problems (out of memory errors).

When ':' entered after "hit return to continue" don't redraw the screen.

In regexp: made '$' in front of '\|' also end-of-line.

Added "+command" argument to ":next", ":prev", ":rewind" and ":Next".

Give better error message when "/" did not found pattern and 'wrapscan' off.

Added message "search hit BOTTOM, continuing at TOP" when search wraps. Don't
display this message when 'terse' option is on.

Made ":&" work like ":s//~/".

Consider mapped characters for terminal codes, makes "map <key-code1>
<key-code2>" work.

Remember two search patterns: One for substitute and one for the rest. This is
how vi works. ":global" command sets both patterns.

Error messages during global command are listed below each other. (2.4)

Don't redisplay the "INSERT" message when getting out of insert mode.

With escape in insert mode and auto-indent the cursor is put in the correct
column right away instead of after one second.

Added "Permission denied" message to readfile().

Added preserve command. Writes all text into the swap file.

Named marks are saved for undo, restored for redo.

Reduced terminal I/O by using screen_char() instead of outchar() for messages.

Added count to quickfix commands :cn and :cp. :cl and :cf can be interrupted
by CTRL-C.

For MSDOS ignore CTRL-Z at end of file in textmode.

No mapping for CR when waiting for "hit return to continue".

Use 'ignorecase' option when searching for tag in tag file.

When count given for undo or redo, redraw screen only once.

Clear message on command line when scrolling, otherwise it will stay there
until the screen is cleared. (2.5)

Marks are remembered for buffers that are unloaded. (2.5)

Implemented scroll regions, using "CS" termcap entry. Also works for pc
console. Does not work for Amiga. (2.5)

Made searches starting with "\<" quite a bit faster, by using regmust in
regexp.c. (2.5)

Don't output an extra line when reading a file and screen has been scrolled up
(e.g. after CTRL-D). (2.5)

After "dG" "''" still works (when previous context mark is deleted, use
previous one). (2.5)

A count can be given after an ex command for all commands that do not use a
line number or range, e.g. ":sleep 2" is the same as :2sleep". Do not accept a
count where a file name is expected, because file names can be numbers. For
example ":next 4". (2.5)

"~/" is expanded to $HOME, wherever an environment variable is allowed. (2.5)

When the start of a filename matches $HOME, it is replaced with "~/" for the
window title, status line, message from ":read", ":write", CTRL-G, ":file",
":marks" and ":jumps". Also for string options shown with ":set" that can be a
file name. (2.5)

Previous context mark for each window instead of for each buffer. (Webb 2.5)

Set previous context mark only if line number changed. (Webb 2.5)

Made tagstack local to each window. (Webb 2.5)

In the status line of a modified buffer "[+]" is shown. (Webb 2.5)

Remember cursor position in tag stack for :tag command without argument. (Webb
2.5)

When backwards range given for ":" command, ask for confirmation to swap it
and continue. (Webb 2.5)

After CTRL-T set curswant, so we stay in that column when moving up/down.
(Webb 2.5)

With :s/../../c show ruler when waiting for reply. (Webb 2.5)

Give file name message for commands ":bnext", ":bmod" and the like. (2.5)

Made index in argument list local to each window. (2.5)

Show visual selection only in current window. (2.5)

When a window is split, redraw both windows with cursor in middle. (2.4)

Included code to save the xterm title. Need to define USE_X11, because
specific include file and library are needed. (2.4)

Made "search hit BOT.." messages redisplay after screen redraw. (2.4)

Don't do textwidth formatting when in replace mode and replacing an existing
character. (2.4)

Print message about the file when starting to edit an existing buffer. Fixes
not giving a message when doing ":n" to file being edited in other window.
(2.4)

When lines are deleted/inserted, adjust topline and cursor position of other
windows on same buffer to stay in the same place (if possible). (2.4)

If CTRL-W CTRL-] is done on a tag that does not exist, the window is not
split. (2.4)

Moved column number in CTRL-G to the end and adjusted the number. (2.4)

Added "-- more --" message to listing of mappings. (2.4)

Accept 'q' with "-- more --" message. Interrupts current listing. (2.4)

When end of Visual area is on an empty line, minlc is FALSE, makes
"d}P" and "v}dP" do the same. (2.4)

When the commands '*' and '#' do not find an identifier after the cursor, a
search is done for a non-identifier string. (2.5)

Made the ":buffers" listing nicer by putting the "line" string in column 40.
(2.7)

Updated error messages for keyword completion. (2.8)

If 'winheight' set spread extra lines over other windows. (2.8)

When 'updatecount' changed from zero to non-zero, create swap file for all
loaded buffers. (2.8)

When command line completion found more than one match, beep. (3.0)

Changed "still more files to edit" into "6 more files to edit". (2.9)

When :bdel is used with a range and errors occur, still delete the other
buffers. (3.0)

Added version string to .swp file. (3.0)

In MSDOS version: After calling a shell, check screen size. Now it is possible
to set the screen size with a command like ":!setmode xxx". (3.0)

Don't try to open an X11 display if WINDOWID is not set, makes startup a bit
quicker sometimes. (3.0)


New and changed options
=======================

Default 'updatetime' is 10000, 10sec. Default 'updatecount' is 1000. This
feels more comfortable. But if you keep on typing, more will be lost when
crashing.

Changed default for 'updatecount' to 200 (1000 was too much). Default for
'updatetime' is now four seconds (more than three seconds means that your
attention is drawn away). (2.7)

Added 'cmdheight' option ('ch'), number of lines for command line. Set it to 2
or 3 if you are annoyed by "hit return to continue" questions for long
messages.

Added 'winheight' option ('wh'), number of lines for active window. Set it to
999 to make the current window always fill the screen.

Made 'winheight' option a "minimal window height" option, only set height if
current height is smaller. (2.4)

Added 'laststatus' option ('ls'). When set to 2 last window always has a
status line. When set to 1 (which is the default) the last window only has a
status line if there are two or more windows. When set to 0 there is never a
status line. The screen looks nicer with a status line if you have several
windows, but takes another screen line.

Added optional '>' to 'directory' and 'backupdir' option, e.g. ">/tmp". When
used, 'directory' option is always used for swap file. When not used
'directory' is only used when swap file cannot be created in current
directory. The default is that the swap file will be in the current directory
when possible, in 'directory' otherwise. 'directory' defaults to "/tmp" for
unix, "t:" for Amiga and "c:\tmp" for MSDOS. The 'backupdir' option works in
the same way, but is currently only available for Unix.

Added 'nobuf' option ('nb'). When set one character is send to the terminal
at a time (does not work for MSDOS). For debugging purposes.

Added 'shellpipe' option ('sp'). String to use for the make command to store
the error messages. For Amiga and MSDOS it defaults to ">". For Unix it
defaults to "| tee". For "csh", "tcsh" and "zsh" it is changed into "|& tee".
For "sh", "ksh" and "bash" it is changed into "2>&1| tee". Fixes problem with
:make when not using csh. 

Added 'maxmem' option ('mm'), maximal Kbyte to use for one buffer.

Added 'smarttab' option ('sta'). When set a TAB in front of a line inserts
'shiftwidth' positions, 'tabstop' in other places. When not set a TAB always
inserts 'tabstop' positions, 'shiftwidth' is only used for ">>" and the like.

Added 'maxmemtot' option ('mmt'), maximal Kbyte to use for all buffers.

Added 'ttyfast' option ('tf'). When set the terminal is assumed to be fast,
scrolling windows is done by redrawing. When not set windows are scrolled with
insert/delete line commands, causing the windows below it to jump up and down
if threre is no support for a scrolling region.

Added 'equalalways' option: When windows split or closed, always do CTRL-W =.
(2.5)

Added 'splitbelow': When set new window from split is below current one. (2.5)

Added 'tagrelative' option (default ON!). When using tag file in other
directory, file names are relative to the directory where the tag file is.
(Webb 2.5)

When setting 'winheight' adjust current window straight away. Check for
negative value. (Webb 2.5)

Added 'gdefault' option: make /g default for :s command (default off). (2.4)

Added 'title' option (default on). When off, window title is not set. (2.4)

Added NOTITLE compile time option for Vera: When defined the title option is
default off. (2.7)

Added 'icon' option (default off): when set xterm icon is set to file name.
(2.4)

Added 'invertweird' option, for terminals that have a weird inversion method.
Makes the start/end invert code outputted before every character. (2.4)

Changed 'invertweird' to 'weirdinvert', because an option starting with 'inv'
is illegal. ":set invertweird" gives an error message. (2.7)

Added 'endofline' 'eol' option. If not set and in binary mode, last line will
not get an end of line when writing. (2.4)

Added 'bswrap' option: Backspace (CTRL-H) and space wrap to previous/next line
in command mode. Default is ON! Should have been added long ago! (2.4)

When 'bswrap' option set, left/right cursor keys in insert mode also wrap to
previous/next line. (2.7)

Changed toggle 'bswrap' option to number 'whichwrap' option: Add numbers to
allow specific keys to wrap to next/previous line: 1 for backspace, 2 for
space, 4 for 'h' and 'l', 8 for cursor left/right, 16 for cursor left/right in
insert mode. (2.7)

Added 'patchmode' option. Oldest version of a file is kept. (2.4)

Added 't_csc' termcap option: when set (to anything) the cursor positioning is
done relative to the start of the scrolling region. Otherwise it is relative
to the start of the screen. Unfortunately there is no termcap entry for this.
We are just guessing its value. Currently only MSDOS pcterm is know to need
this set. This fixes doing 'o' not getting the new line in the right place for
MSDOS. (2.7)

Added 'highlight' ('hl') option: Can set highlighting mode for various
occasions. 'i' for invert, 'b' for bold, 's' for standout; 'v' = visual mode,
'd' = directories in CTRL-D listing, 'e' = error messages, 's' = status lines,
'h' = help file headers, 'r' = return to continue message. They have to be
given in pairs, separated with a comma. For example:
":set hl=ds,vb,ei,si,hb,ri". Invert is used for occasions that are not
included. Default is "ds,es,hs,rs,vi,si". (2.6)

Changed the default highlight mode for directories to bold. (2.7)

Added 'n' to 'highlight' option: no highlighting. (2.7)

Added 'bold' termcap option as t_tb. (2.6)


Vi compatibility fixes
======================

":>", ":<" and ":yank" leave cursor on the last line.

Abbreviations recognized like vi, fixes abbreviation of "#i" to "#include".

"d]]" also stops at '{'.

']' and '[' are not linewise.

"z." and "z-" move cursor to start of line. "zz" does the same as "z.".

":>>" shifts two indents, ":>>>" three, etc.

When no file name yet and giving a ":read fname" command, use that file name.
(2.4) When no file name yet and giving a ":write fname" command, use that file
name. (2.5)

":3,3join" does nothing, fixes "g/^$/.,/./-j" to delete only multiple empty
lines. (2.5)

":wnext" does not go to next file in argument list if write fails. (2.5)

CTRL-W CURSOR-UP and CTRL-W CURSOR-DOWN do the same as CTRL-W k and CTRL-W j.
(2.5)

'smartindent' is improved: When '}' is typed as the first char on a line,
it is moved to line up with the line containing the matching '{' (rather than
just moving back one shift-width no matter what).  If '#' is the first
character typed on a line, then the line is moved all the way to the left.
(Webb 2.5)

When 'smartindent' set, '#' removes all indent. Now the existing indent is
remembered for the next line (like with ^ CTRL-D). (2.7)

When ESC is used to cancel a command, don't beep. (Webb 2.5)

When 'autoindent' set and inserting a CR, delete white space after the cursor.
(Webb 2.5)

Don't set curswant when 'h' or 'l' fails. (Webb 2.5)

With "70|" command set curswant to 70, also when line is shorter. (Webb 2.5)

Fixed "cc" to delete the text linewise, but keep the indent when 'ai' is set.
(2.5)

"dTx" and "dFx" do not include cursor position.

":r" without a file name specified reads current file.

"ce" when on the end of a word changes until the end of the next word
(but "cw" not).

After "dd" put cursor on first non-blank in line.

Abbreviations are never recursive, makes ":ab f f-o" work.

'#' is not the start of an ex comment but an abbreviation for ":number".

Put redo for "p" and "P" back in. It is not completely compatible, because vi
doesn't always redo putting less then a line (but that is considered to be a
bug in vi). (2.5)

Adjusted comp_col() for when 'laststatus' is set. Reduces need for "hit return
to continue". (2.5)

With ":global" command, don't display "n more lines" messages until the end.
(2.5)

Don't reset yank buffer with "." command. Makes dwu"a. work. (2.4)

Don't check for abbreviation when a (non-id) character is entered with CTRL-V.
(2.4)

With change command put deleted text in "1, even with text within one line.
(2.4)

When deleting and a register is specified, also yank into buffer "1. (2.4)

":3|" prints line 3 instead of jumping to it. (2.4)

Separated 'wrapmargin' and 'textwidth'. Both can be used, if textwidth is set
it overrides 'wrapmargin'. (2.8)


Bug fixes
=========

Fixed problem in memmove for __sgi.

Fixed ":cd" not working for unix.

Made incrementing hex numbers with CTRL-A work on systems that don't accept 0x
in scanf for "%x".

Reset p_ro in readfile() when starting to edit a new file.

inchar() also calls flushbuf when waiting for a second, fixes screen not
updated while waiting for a mapping to be completed.

Fixed ":/pat/s/x/X/"; 's' was seen as option to search command.

Fixed search patterns where delimiter is inside of a range, e.g. "/[/]".

Fixed ignoring 'ignorecase' option for "/[a-z]". Fixed mixing upper/lower case
when 'ignorecase' option not set (just slowed down the searching).

Use iswhite() instead of isspace() for "^" and set_indent().

Allow pipe in ":r !cmd" and ":w !cmd".
Adjusted check for '|' in ":e +cmd".

Fixed insertchar() lookahead for digraph not working when using mapped
characters.

Fixed :unab and :unmap for rhs with spaces.

Fixed not accepting ambiguous abbreviations.

Added check for valid abbreviations.

Fixed crash for AmigaDOS 1.3 when giving more than one file on the command
line.

Updated isidchar for meta chars.

Added setting of Changed flag to :move and :copy.

Number after search pattern (e.g. "/pattern/3") is line offset.

"cc<ESC>" when 'ai' is set, deletes the indent.

Fixed ":s/1/1^M/gc" on "111" and ":s/O/oO/gc" looping.

Fixed trailing "\" in substitute string (produced garbage).

Fixed yanking control characters (like "^B") with block visual mode.

Fixed cursor left of line with "i<ESC>" when 'number' set.

MSDOS: isdir() adjusted for trailing backslash, fixes CTRL-D listing.

MSDOS: Fixed call to lalloc() in addfile() in msdos.c, could only do 32 files.

MSDOS: Fixed setting archive bit in setperm() in msdos.c.

MSDOS: Do not eat backslashes in ":next" command.

Fixed bug in makescriptname: alloc 1 byte extra.

Fixed bug in doaddsub(): Line truncated 30 chars after number.

Fixed CTRL-O in insert mode moving cursor when it is after end of line.

Vertical movement in insert mode can put cursor one char after the line.

Fixed not inverting 0xa0 in visual mode when scrolling. This caused gaps in
the inverted region.

Fixed hangup for "?$" command.

Fixed keyword macros: ^B must be ^R.

":set all" and ":set termcap" do not look for other arguments.

{count}% puts cursor on first non-blank.

When ":ta" to tag in same file, start search in line 1. Fixes problem when
'wrapscan' is not set.

Fixed setting of pcmark for "(" and ")".

Fixed setting pcmark with :e command.

Fixed a crash on Unix when terminal type unknown. (2.5)

Fixed 'showmatch', the cursor was off. (2.5)

Solved crash when 'lines' was set in .exrc. (2.5)

Fixed memory leak for mf_xfname. (2.5)

Fixed a problem in the Unix part for making backup files. Strange that this
did not cause the compiler to complain. (2.5)

Filename expansion is now done into NameBuff instead of IObuff. Fixes bugs
where file name was scrambled or Vim crashed some time after ":next file".
(2.5)

Fixed deleting the file message when 't_tp' was set in .vimrc. (2.5)

Fixed cursor positioning problem when :s/../../gc made line go past end of
screen. (Webb 2.5)

Don't nag about swap file not existing when preserving, except for
":preserve". (2.5)

Fixed loosing changes without warning when 'hidden' option set and re-editing
the same file with a command like ":rewind". (2.5)

Clear commandline with ":buffers" command. (2.5)

Fixed ":1buf" to go to first buffer instead of second one. (2.5)

Fixed default for ":sleep" to be 1 instead of current line number. (2.5)

When the 'hidden' option is set don't give error message for changed file on
several commands (:ta). (2.5)

Update timestamp in swap file when the file has been written. (2.5)

Fixed a problem not updating the time stamp in the swap file when writing
another but the current buffer. (2.7)

Fixed bug: not-edited file could be written with ":w". (2.5)

Fixed invering Visual part when 'nowrap' set and start is left of window.
(2.4)

Fixed problem with join: Deleted leading spaces in the 2nd line when it
shouldn't. (2.4)

MSDOS: Trailing CTRL-V in sourced ex file now handled correctly. (2.4)

Improved check for readonly files, now "466" is not readonly for others. (2.4)

Fixed not inverting one char with "1v" when cursor cannot be made invisible.
(2.4)

Stop Visual mode before exiting a window. (2.4)

Changed "short_u" to "unsigned" in data block. Fixes problem with lines longer
than 64K characters on Unix. Disadvantage: Need 2 bytes extra for each line.
(2.4)

Fixed plines_win() and chartabsize() for lines that are almost 32768
characters. (2.4)

Replace MAX_INT by INT_MAX, fixes problem with "$" not getting very far. (2.4)

Status lines also redrawn after ":set". Needed when 'ruler' option was
changed. (2.4)

Fixed fname freed twice in mf_open(). Fixes crash/hang when editing a file in
a readonly directory. (2.4)

Update mf_neg_count in mf_free, fixes "line count wrong in block 1" errors.
(2.4)

Fixed bug when in replace mode and beyond the end of the line. (2.4)

Fixed a problem for 'r' with a count. Could corrupt the text in the buffer!
(2.4)

Scroll options adjusted after CTRL-W =. (2.4)

If a tag is found, but the associated file does not exist, do not start
editing an empty file. (2.4)

sc_col and ru_col cannot become negative anymore, fixes crash with ":win 1".
(2.4)

Check_winsize makes Rows at least 2. (2.4)

'o' and 'O' commands did not update marks for the line just below the new
line. (2.4)

Fixed truncated displaying of string options. (2.4)

Fixed chmod for help file in makefile.unix. (2.4)

Highlighting of directories for CTRL-D on command line no longer highlights
some spaces. (2.4)

Moved #endif in param.c from below to above p_wh, fixes problem when
COMPATIBLE is defined. (2.4)

Don't reset msg_scrolled in UpdateScreen() when redrawing is disabled. (2.4)

Fixed cursor positioning error when cursor is on first char of non-empty
cmdline. (2.4)

Fixed problem with redraw when filename completion fails under unix. (2.4)

No "hit return to continue" while editing a command line
(e.g. when filename completion fails). (2.4)

Fixed bug: Errors while reading file caused big problems. (2.4)

Don't try to preserve if there is no swap file. (2.4)

Dont' complain about .swp file existing without a file name. (2.4)

Fixed endless loop for CTRL-R a in insert mode while register a contained
CTRL-R a. Can now be interrupted with CTRL-C. (2.6)

Fixed ":n *" in MSDOS not finding file names with dot. (2.7)

Fixed cursor not moved to the right column when scrolling with CTRL-E and
CTRL-Y. (2.7)

Fixed bug when using CTRL-A to increment a decimal number after incrementing
an upper case hexadecimal number. (2.7)

Only reset the 'notedited' flag when writing to the current file name, not
when writing to another file. (2.7)

Fixed screen redraw when window resized, was sometimes done only after
character typed. (2.7)

Corrected the order of the options to be alfabetical. (2.7)

Fixed using CTRL-D on the command line when there are no matches at all. (2.7)

Fixed beeping always when doing CTRL-A on command line. (2.7)

Fixed the line number for the alternate file being used for the next command.
e.g. ":w #", ":e file" when # is file. (2.7)

Moved the fileinfo() in doecmd() to after the place where the cursor is set.
Fixes reporting the wrong cursor position when entering a hidden buffer. (2.7)

Fixed compilation problem in unix.c when compiling without WEBB_COMPLETE.
(2.7)

When going to previous line with backspace, set curswant. (2.7)

Fixed status line showing "[No File] [+] [+]": two plusses. (2.7)

The 'changed' flag was not reset for other buffers with :wall. (2.7)

Solved bug in 'r': The change was not written to the swap file, which made the
change to be lost sometimes. (2.6)

Don't ask for swapping the command line range when in global command. (2.6)

Fixed :bdelete, it did't work. :bdelete and :bunload cannot remove a buffer
with an open window, unless it is only the current window. (2.6)

Fixed .swp files not deleted when starting to edit a file when the current
buffer is empty and has no name. This also fixes the problem which happens
when starting vim without a file name and the starting to edit a file that
does not exist. (2.6)

When error encountered while loading files for "-o" option or ":all", continue
loading the other files. (2.8)

If cursor is in column 0, always reset horizontal scrolling. Makes tabs
completely visible. (2.8)

Fixed problem in mf_release_all, empty used list not detected properly. (2.8)

Fixed crash with command ":@:", repeat last command line. (2.8)

Fixed cursor in wrong column when matched string from search was just one line
below the window. (2.8)

":m+1" on the last line in the file silently deleted that line. (3.0)

Fixed command line completion of ":s<TAB>". (3.0)

The ":srewind" command did not work. (3.0)

The ":k" command did not work. (3.0)

When making windows for ":all" or "-o" argument, ignore 'splitbelow' option.
(3.0)

Fixed a problem when recovering with a swap file that has a page size
different from the default page size. (3.0)

The ":bdelete" command did not delete the last buffer. (3.0)

When using a range with ":bdelete" that included the current buffer, all the
buffers after it would get loaded before being deleted (3.0)

Fixed <SPACE>, wrapping to first char of next line, not setting the wanted
column, causing the next 'k' to go to the wrong column. Same for <BACKSPACE>
on the first column, sticking in the last column. (3.0)


Internals
=========

Renamed u_char to char_u, u_short to short_u. Avoids problems with systems
where these are already defined.

Replaced almost all char by char_u, solves some problems with characters above
127.

Removed ptr2nr(). This means that line numbers are adjusted when
inserting/deleting lines. Marks remember line number instead of pointer; undo
uses line count to compute ue_bot.

Moved all objects files into "obj" directory.

Added "window.c" for multiple window code.

Added "memfile.c" and "memline.c" for swap file code.

Moved what was remaining of "storage.c" to "undo.c", deleted "storage.c".

Deleted autoscript file stuff.

Renamed "buffers.c" to "getchar.c".

Created "buffer.c". Deleted "script.c".

Moved a few functions from "cmdline.c" to "cmdcmds.c" to reduce the size of
"cmdline.c".

Integrated file list into buffer list. ":buffers" and ":files" do the same.
Moved functions from "filelist.c" to "buffer.c", deleted "filelist.c". (2.5)

Remove mch_start_listing() and mch_stop_listing(), replaced by "--more--".
(2.5)


Portability
===========

A few patches, the file "winnt.c" and "makefile.nt" for windows NT. (2.4)

Added support for Archimedes. It probably doesn't work, because "archie.h" was
missing, and the patches are for Vim version 2.0. Included them anyway, so
people can make patches to make it working. (2.9)

Added a few changes for USL in unix.c.

Made makefile for unix more easy to change for a specific system.

Included small patches for gcc on HPUX 9. (2.4)

Set the SIGWINCH signal, when receiving that signal, for all systems. (Webb
2.5)

Changed Visual into VIsual, because it is also used by X11. (2.4)

Added some changes for USL and picky gcc. (2.4)

Included patches for SCO 3.2. (2.4)

Removed the use of the 'obj' directory from makefile.unix. Some versions of
make and cc were having problems with it. (2.7)