-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
2151 lines (1423 loc) · 74.8 KB
/
README
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
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
README for vile, version 9.8
----------------------------
vile is a text editor which is extremely compatible with vi in terms
of "finger feel". in addition, it has extended capabilities in many areas,
notably multi-file editing and viewing, key rebinding, real X window
system support, an optional embedded perl interpreter, and robust
support for non-Unix hosts.
the authors of vile are Paul Fox, Tom Dickey, and Kevin Buettner.
many patches have been contributed by a lot of users. we thank them.
more recent additions to this README appear near the bottom. that is, most
of the newest stuff is at the end, not up here where you are.
visit
ftp://invisible-island.net/vile
ftp://ftp.phred.org/pub/vile
to be sure it's still the latest.
impatient? just type "./configure; make", and get a cup of coffee, decaf
if necessary.
want to know more about configure options? type "./configure --help"
and then read doc/config.doc for further details.
want X11 support? you'd better look at doc/config.doc, although
"./configure --with-screen=x11"; make" may well do what you want.
want syntax coloring? add "--with-builtin-filters" to your configure
options and then read the topics "Color basics" and "Syntax coloring" in
the file vile.hlp.
want PC support? look for precompiled binaries at the various ftp sites.
want to build vile on a PC host? refer to the file README.PC .
want VMS support? some precompiled binaries are available at
ftp://ftp.phred.org/pub/vile. otherwise, you'll need to build vile
yourself. In either case, refer to the file README.VMS .
if you like vile, and wish to be informed of new releases, let me know -- i
maintain a mailing list for that purpose (scroll down a bit for details).
don't worry -- the volume won't fill your inbox.
paul fox, pgf@foxharp.boston.ma.us (original author)
kevin buettner, kevin@buettner.to
tom dickey, dickey@invisible-island.net (current maintainer)
------------------------------------------------------
Up-to-date copies of vile, including executables for DOS, Win32 and
OS/2 are found at
ftp://invisible-island.net/vile/
which is mirrored at
ftp://ftp.phred.org/pub/vile/
Development patches are found at
ftp://invisible-island.net/vile/patches/
ftp://ftp.phred.org/pub/vile/patches/
In addition, we have distributed copies at other sites, including
metalabs.unc.edu, hobbes.nmsu.edu (OS/2) and the VMS Freeware
CDROM's.
------------------------------------------------------
There is a project mailing list. You can subscribe to it here:
https://savannah.nongnu.org/projects/vile/
To submit bug reports, either subscribe to the list (since
non-subscribers aren't allowed to post) or use the bug system at
that same URL.
------------------------------------------------------
extracts from the original README, from February, 1992:
VILE -- VI Like Emacs: a vi workalike put together from Micro-Emacs by Paul Fox
-------------------------------------------------------------------------------
This editor grew out of a frustration that although lots of
eager programmers have tackled rewrites of Emacs, with new and
better features (not to mention free source), I've not seen
anything similar done with the Second True Editor. (The
First, of course, being /bin/ed)
...
vile retains the multiple buffer/multiple window features of
MicroEMACS, but the "finger-feel", if you will, is very much
that of vi. It is definitely not a clone, in that some
substantial stuff is missing, and the screen doesn't look
quite the same. But what matters most is that one's "muscle
memory" does the right thing to the text in front of you, and
that is what vile tries to do for vi users. THIS IS NOT A
"CLONE"! But it feels good. (Put another way, the things
that you tend to type over and over probably work -- things
done less frequently, like configuring a .exrc file, are quite
different.)
...
The collective developers of Micro-Emacs should be
complimented that the changes were as easy as they were.
...
Paul G. Fox June, 1991, and February, 1992
p.s. By the way, I'm _not_ the same Paul Fox who wrote Crisp, the Brief
work-alike.
-----------------------
September, 1992
I don't have much to add to the original README -- vile has gotten a lot
better since I first released it, thanks to a lot of users and a lot of
bug reports. It compiles and runs without modification on most major UNIXes,
and under DOS. It offers vi finger feel, and most (not all) of its features.
I hope it fills someone's need out there. -pgf 9/92
(Special thanks to Dave Lemke and Pete Rucszinski, for X and DOS support,
and (in no particular order) to Eric Krohn, Willem Kasdorp, J.C.Webber,
Warren Vik, Julia Harper, Chris Sherman, Thomas Woo, Yanek Martinson, Miura
Masahiro, Tom Dickey for lots of bug reports and suggestions and patience.)
------------------------------
April, 1993
Well, here's an update on vile. The first release was a long time
ago (a couple of years?). Tom Dickey has been contributing a _whole_ lot
of good changes. vile now runs on VMS, and is much more stable on DOS
thanks to Tom. For me, vile is becoming an "old" program -- I first worked
on it in 1989 sometime. So it's been fun to have someone contributing
fixes so energetically. Thanks Tom.
One thing that's changed since I first started vile is that "lots of eager
programmers" have now tackled rewrites of vi. There are several good work-
alikes out there: elvis (the "king" :-), xvi, vim, stevie, and recent
versions of vip-mode in GNU emacs. [add "nvi" to that list. and whatever
happened to xvi? -pgf 12/94] From what little I've used any of
these, they all seem like real good programs. vile feels different from
most of them, mainly due to its roots in MicroEmacs. You may or may not
like it. If you don't, try one of the others. There's certainly no reason
to not have a vi-like editor on just about any machine you choose. (yeah,
I know -- I'm assuming you _want_ a vi-like editor... :-) Enjoy.
Oh yes -- building it. On UNIX, type "make", and choose one of the predefined
targets. Like "make linux". [ not anymore -- use "configure; make" -pgf 12/94]
DOS makefiles are named after the compiler they support: makefile.tbc for
Turbo-C, makefile.wat. There is support in "makefile" for Microsoft-C, but
it's next to useless -- if anyone puts together a good "nmake" makefile,
could you pass it along? [that support isn't there anymore. -pgf 12/94]
The Watcom C/386 v9.0 compiler should also work -- the makefile to use is
makefile.wat.
The latest version of vile is usually available for ftp at "ftp.cayman.com",
in the pub/vile directory. [not anymore -- it's at "id.wing.net" in the
"pub/pgf/vile" directory. -pgf 12/94] Sometimes there's a compiled DOS
binary there too. I don't maintain a mailing list, or anything like that
to inform folks of new releases -- you just sort of have to check once in a
while, or send me mail... [ I've set up a mailing list -- contact me to be
added -pgf 7/93]
paul
------------------------------
July, 1993
More new features: infinite undo, modification time checking, and, at
long last, primitive support for the :map command. [:map is now fully
functional -pgf, 12/94] I've also received patches that let vile compile
for DOS with the DJ GCC compiler. Have I mentioned filename completion?
Tom Dickey provided that and variable/modename/command completion too.
If you would like to be informed, via email, of new vile releases (bearing
in mind that the newest release may be _more_ likely to be buggy, rather
than _less_), please send me mail, and I will add you to my list. The email
will probably contain a capsule summary of the most recent changes to the
code.
Thanks to Tuan Dang for the Watcom and DJ GCC work. I don't know much
about djgpp, the DOS port of djgcc, but take a look at makefile.djg.
pgf
-------------------------------
March, 1994
The X support in xvile has been given a huge boost with contributions from
Kevin Buettner -- scrollbars, Motif widget support make it feel like a real
application... We now have rectangular regions. DOS support is getting
better all the time. The major version number got bumped to 4 somewhere
along the line, because Tom and I were getting tired of 3. There are quite
a few new "modes", some to support vi functionality, some altogether new.
We should have keyboard selections and highlighted regions soon...
pgf, pgf@foxharp.boston.ma.us
-------------------------------
December, 1994
hmmmm -- lets see. new stuff. see the CHANGES and help files for details.
- vile is now completely autoconf'ed -- you should be able to type
either "./configure; make" or "./configure --with-screen=x11" to build
it on any (unix-like) platform.
- :map and :map! are now much more complete, but still by no means
done. expect to have to edit your favorite macros to make
them work.
- :abbr now works.
- along with proper :map support comes proper function key support.
function keys defined for your terminal in the termcap/info database
are now premapped and can be bound to as #-1 etc. so those of
you with ESC [ 10 ~ style function keys should be happy now.
- mouse clicks which move the cursor now count as proper motion
commands in both xvile and vile-in-an-xterm. this means, for
instance, that '' or `` will get you back to where you were before
you clicked the mouse, and you can apply operators to mouse
movements. for example -- click the mouse somewhere, hit 'd' to
start a delete operation, and click the mouse somewhere else. the
text between the two mouse-click locations will be deleted.
- on-line help (just a single line) for every function, available
with describe-{bindings,function,key} commands.
- new modes to better control beeping and the "working..." message.
- autowrite mode now supported, on a global or buffer-by-buffer basis.
- popup windows now adjust their size to their contents -- less screen
space is wasted for small window, and more is used for big windows.
- file and command completion is now more emacs/bash/tcsh-like, in
that possible choices are shown when you hit a second TAB key. this
can be tuned via a new mode, "popup-choices"
- "quoted" motions, which highlight the text they will act on. type
a 'q', and start moving around, then type another 'q'.
- various fixes to the macro language, for core dumps and usability.
- file.bak and file~ backup files now supported.
- infinite (?) screen sizes should now be supported under X.
- it's now possible to break lines by putting ^M in the replacement
pattern.
- selections, the modelines, and the cursor, under xvile, can all
have different colors.
- color support for termcap, at least on the linux console.
- put'ing from registers (i.e. 'p' and 'P' commands) should be much
faster.
- multiple (error) messages arising from running a macro or a startup
file will now accumulate in a new popup window.
- a simple, probably incomplete file-locking protocol is available,
but is not compiled in by default. the organization which
contributed the code (Baan Development) uses it to aid their
multi-user development. turn on OPT_LCKFILES in estruct.h and
"set usefilelock" in your .vilerc to play with it.
- Windows NT support -- console mode only. anyone want to port this
to the Windows95 console? it's probably not hard, though i haven't
looked into it very hard.
- lots of bug fixes
-------------------------------
Febrary, 1995
xvile now supports color attributes, which means we can do some
primitive syntax coloring of C programs, using the external filter,
"c-filt". this is still pretty new stuff. expect it to get better
with age.
-------------------------------
November, 1995
lots of new users in the last year, due to better advertising
and inclusion in some of the big linux and freebsd archives.
support for NT and OS/2 has gotten much better, and lots of
little bugs have been fixed, and features added. Win32 support
is very good these days, thanks mostly to the efforts of Rick
Sladkey.
-------------------------------
June, 1996
gee, i don't remember _what_ we've done recently. enjoy.
-------------------------------
September, 1996
tom dickey has volunteered to take over releases, and maintaining
"official" sources. i'll still contribute, but more as part of the
"audience". tom has done a _huge_ amount of work over the years
on vile -- i _really_ appreciate it... -pgf
-------------------------------
May, 1998
vile 8.0 is released. Major new features include: an embedded
perl interpreter (available on Unix and Win32 hosts), an editable
mini-buffer, majormodes, enhancement of user-defined procedures to
the point that they may now be bound to user-defined keystrokes,
tag completion, and addition of a win32 gui (called winvile).
-------------------------------
Oct, 1998
vile 8.1 and 8.2 are released. These are primarily bugfix releases.
Refer to the CHANGES files for details. Tom Dickey continues to
improve winvile, which now supports scroll bars and two new
command-line options that control the editor's geometry and font.
Apr, 1999
vile 8.3 is released. This release includes much enhanced syntax
filter capabilities. The filters are now much faster, mainly because
vile uses a new command attribute-from-filter to apply their output
directly as attributes to the buffer rather than modifying (and
allowing undo).
The organization of the keyword files for the syntax filters is now
associated with majormodes. Syntax filters are defined for most of the
predefined majormodes which include:
adamode jsmode perlmode
awkmode keymode sccsmode
batmode latexmode shmode
cmode lexmode sqlmode
cshmode m4mode tcmode
cwebmode mailmode tclmode
dclmode makemode timode
diffmode mmsmode txtmode
htmlmode nrmode vilemode
imakemode pasmode yaccmode
javamode
Other changes of note (this is not an exhaustive list):
+ removed/rewrote code which would prevent us from making vile available
under more liberal licensing.
+ winvile and xvile have icons.
+ new macro directives added, including:
~local ~hidden ~with ~endwith ~elsewith
+ many VMS bug fixes and enhancements. 8.3 is a keeper if you use VMS.
Nov, 1999
vile 8.4/9.0 is released, distributed with GPL licensing.
In addition to improvements to syntax highlighting, e.g., user-definable
color schemes, vile's macro language has been extended
+ procedures can be parameterized.
+ several new functions simplify handling of external filenames, and
parsing strings.
Further improvements have been made to winvile: drag/drop, file open
dialog, better integration with the Windows Explorer and DevStudio.
Jan, 2000
vile 9.1 is released. Highlights since 9.0:
+ continued improvement of syntax coloring (much work here)
+ add an Exporter-like mechanism to Perl5 interface. Instead
of exposing a module's functions to the caller, it exposes them to
vile as registered commands. By renaming the extensions as `.pm',
and making some minor changes to use Vile::Exporter, an extension
becomes visible by simply adding:
use extension;
to vileinit.pl. There is also provision for only including some
commands provided by the extension, and for overriding the keybinding
defined by the developer (documented in the attached module).
Of course you can still say:
require extension;
and do the registering yourself if you so choose.
+ vile's perl interface includes a new Vile::Window module, which may
be used to manipulate vile windows. Examples of the use of this
module may be found in winops.pm.
+ rename most .pl files to .pm (makefile.in).
+ add/improve several perl scripts, including
- capture.pl - implements a perl version of capture-command. This
version incrementally updates the window however.
- shell.pl - revised to use IO:Pty instead of Comm.pl (which
seems to be no longer maintained).
- Manual.pm - display embedded POD documentation.
+ implement watchfd support for the termcap/terminfo versions of vile.
+ added autocolor feature, which updates color syntax highlighting when
the keyboard is inactive for a specified period.
+ Vileserv now also works for vile.
+ changed vmsbuild.com to accept a compiler specification on the VMS
command line, which is much more convenient than editing the build
script by hand. compiler defaults to VAXC on Vax hosts and DECC on
Alpha hosts.
+ Several Win32-specific improvements:
- add the Win32 common dialog "save as" feature to both console
vile and winvile.
- modify directory.pm and dirlist.pm to make them work on win32, i.e.,
by not executing portions that will not work (such as mime types).
- implement autoscrolling feature for winvile, which makes the buffer
scroll in the direction where the mouse leaves the window,
automatically extending selection highlighting.
+ modify backspacelimit mode to allow backspacing through a newline
when nobackspacelimit is specified.
+ add single-quoted strings, which eliminate the need for escaping
backslash (useful in startup/command files)
+ Added binding / support for ^X-_ aka
"historical-buffer-to-current-window".
+ modify logic in ins_any_time() to interpret control characters which
are bound to GOAL or MOTION commands rather than inserting them
without quoting. This allows ^E and ^Y as commands within an insert.
Oct, 2000
vile 9.2 is released. Highlights since 9.1 (modulo bug fixes):
+ improve performance of syntax highlighting with configure option
for compiling-in any of the syntax filters. Use the configure
--with-builtin-filters option. Both internal (built-in) and
external filters are supported.
+ add key binding functions for the different editing modes (insert,
command, minibuffer and default), making it simpler to bind a
space or tab to a given function without having it confused for a
function while in insert mode.
+ Vileserv now uses the registry, so 'perl "use Vileserv"' in your
.vilerc automagically adds the commands startserv, stopserv, and
vileserv-help.
+ added gdb.pm, which runs gdb in a vile window and tracks changes
in editor. (Must be used with shell.pm.)
Several Win32-specific improvements:
+ allow pasting of one line of text into mini-buffer.
+ winopen, winopen-nocd, winsave, and winsave-nocd accept an
optional directory argument, which specifies the initial directory
opened by the Open/Save Win32 common dialogs.
Other Modes:
+ add insert-exec mode to control logic in ins_any_time() which
interprets control characters which are bound to GOAL or MOTION
commands rather than inserting them without quoting (see 9.0a and
9.0b changes). This restores the default behavior, since some
users had control characters bound to a function which was then
executed.
+ add unique-buffers mode, which does dev/inode checking to be sure
files aren't edited more than once.
Syntax Filters:
+ add syntax filters for sed, imake
+ implement abbreviations for syntax keywords, using '*' as the
default delimiter.
+ filters now attribute multi-line regions when appropriate, e.g.,
multi-line comments in C.
Macros and Scripting Support:
+ add &dquery function which prompts for input with a given default
value.
+ implement function &error, which returns true if its argument was
an ERROR token. Modify built-in functions to return ERROR if an
argument was ERROR.
+ add variable $filename-expr, to specify the actual pattern used
for %F in [Error Expressions]. On DOS and Win32, this is
initialized to a more complex pattern, to accommodate drive
letters.
+ make the ~local directive work for modes.
+ add ~trace directive, which sets or reports the value of the
$debug variable. Use this to trace into internal buffer [Trace].
+ add macros/shifts.rc, which implements left/right shifting of
words in the current line to align with the cursor.
Other Changes:
+ modify color support in xvile to allow the pre-8.3s color scheme
as a special case: setting bcolor to fcolor makes xvile use the
bcolorN resources on syntax-highlighted text rather than the color
selected by bcolor (which is actually taken from the fcolorN
resource in this case).
+ added pushd, popd, dirs commands with accompanying [DirStack].
June, 2002
vile 9.3 is released. Highlights since 9.2 (aside from bug fixes):
+ add dirs-clear and dirs-add commands
+ added select-all and selection-clear commands.
+ change default for $XSHELLFLAGS from "-c" to "-e", which matches the
documentation for $xshell-flags.
+ add write-all-buffers command; writes all buffers whether modified or not
+ add setenv (set-environment-variable) command.
+ added a swap-title mode and $title-format variable.
+ if the user specifies ":w!", and the file is not writable, vile will
(try to) temporarily chmod the file for writable access.
+ added $findpath and $find-cmd state variables and, on win32 and unix
hosts, modified capturecmd (aka ^X-!) to support find operations that
span directory tree(s).
+ reimplement ":args" command to accept a filename expression.
+ add commands "ww!" and "wall!", to respectively write all changed
buffers and write all buffers, using the "w!" behavior of ignoring
readonly file permissions.
+ implement three functions for working with timestamps: &ftime, &stime,
and &date, respectively for file modification time, system time, and
formatted date/time.
+ extend insert-exec to allow ^A and ^X prefixes to be interpreted
in insert mode
+ implemented support for reading/writing Macintosh files, i.e.,
recordseparator=cr. New commands set-rs-cr, set-rs-lf, set-rs-crlf
extend the set-unix-mode and set-dos-mode commands to include Mac's.
+ add &stoken function, which searches for a token in a string, e.g.,
"perl" in $cfgopts by
&stoken "perl" "," $cfgopts
+ add &translate function, e.g.,
&trans "," " " "a,b"
to change commas to spaces
+ add commands leading-detab-til and leading-entab-til, binding those
to ^X-' ' and ^X-^I. Most of the logic was available internally.
+ implemented '< and '> marks, which denote the limits of the
selection.
Perl Interface:
+ add a new command to shell.pm called "xterm", which starts a shell in one
of vile's buffers just as "start-shell" already does, but also starts an
xterm through which one may (also) interact with the shell. The shell
output (and echoed input) is displayed in both the xterm and a vile
buffer.
+ implement perl/Breadcrumbs.pm
+ add perl/Help.pm
+ add perl/CaptHook.pm, which provides useful wrappers for Vile's
"hook" variables.
Win32-Specific:
+ added basic win32 printing for winvile
+ modify ntconio.c so that default fcolor is 7
+ change paste in winvile to insert at DOT rather than after. Also,
when pasting in insert mode, set DOT to the end of the inserted
text.
+ improve paste-by-right-mouse-click operation in winvile by NOT
setting the insertion point at the position where the mouse happens
to be when executing the right-click, but rather pasting at the
current DOT (i.e. right-mouse-click never sets DOT).
+ when popup-menu is inactive, if text is selected, right-click copies
to w32clipboard; otherwise right-click pastes from w32clipboard.
+ added icursor (insertion cursor) mode.
Syntax Filters:
+ add Verlog and ECLiPSe (Prolog dialect) filters
+ add syntax filter for BASIC, and majormodes basicmode and
Visual Basic (vbmode).
Other Changes:
+ add 'mouse' mode for OS/2 (CSet), to disable mouse when not wanted.
+ add $prompt variable, to allow changing the command-line prompt.
Aug, 2003
vile 9.4 is released. Highlights since 9.3 (aside from bug fixes):
General changes:
+ regular expressions and searches allow null characters.
+ minibuffer editing commands are more complete, implementing all of the
inline cursor search- and motion-commands.
+ implement new editing commands in the minibuffer: r, ~, x, X.
+ use insert-mode bindings when mini-edit mode is active. Use insert-key
to toggle, rather than set mini-edit mode.
+ modify buffer- and filename-completion on Unix to escape backslashes
which are stored in the [Completions] buffer. Doing this allows one
to complete a buffer or filename containing a backslash.
+ improve history-editing by quoting tokens which contain embedded blanks
or other special characters, using that to retrieve tokens from the
history buffer unambiguously.
+ save/restore window modes such as linewrap when rereading a file,
or when executing a shell command.
+ use realpath() if it is available, and "$VILE_PWD" environment variable
rather than "." as parameter to getcwd() if it is valid, to speed up
operation on quasi-filesystems such as ClearCase.
+ add configure option --with-screen=XawPlus for XawPlus library.
+ add configure option --with-screen=ncursesw to allow building the
curses driver using the wide-character version of ncurses.
+ add check in tcap.c for terminfo kmous capability like xterm, in case
we are running in screen, which also supports xterm mouse protocol.
+ modify support for "^X-e" to make it use the whole line if the current
buffer is a directory.
Locale Improvements:
+ change default for --with-locale option to yes. Note that this
option is only tested if locale support is found, and it is becoming
less common to encounter systems with broken locale support.
+ add "locale" to the "$cfgopts" variable if vile is compiled with
locale support.
+ modify vile-manfilt to decode UTF-8 emitted by groff 1.18
+ in UTF-8 locale, adjust termcap driver to use UTF-8 to display codes
in the 160-255 range, setting vile's locale to non-UTF-8 locale.
(yes, this is a short-term fix).
+ add configure check for wctype functions, to work around defect in
glibc's ctype functions: in UTF-8 locale, the latter return useless
information on character classes. This works on Solaris.
+ move upper/lower case-conversion into tables so that locale support can
augment the built-in translation.
New Commands:
+ "which-keywords" macro shows the location of files containing keywords
for the given majormode.
+ "edit-buffer" simplifies "which-keywords" and similar macros.
+ "encode-attributes-til" and "write-encoded-til" convert the syntax
highlighting in a region back to control/A sequences, or write the
corresponding data to a file. There is a corresponding alias
"decode-attributes-til" for "attribute-cntl_a-sequences-til".
+ "substitute-all-til" implements the "^X-s" binding.
New Modes:
+ add "overlap-matches" mode, to control whether highlighting for the
visual-matches mode should skip to the next character, or past the
current match when checking.
+ add "percent-crlf" mode, which controls the threshold at which the
whole file will be considered DOS-format (CRLF record separators)
if the given percentage already ends with CR/LF.
+ "yankmotion" mode controls whether the cursor should be moved as in vi
after yanking text.
+ add "xterm-title" mode.
+ add logmode majormode, to distinguish some makefiles from logfiles.
+ add "texmode" majormode, as a variation of latexmode.
New Variables and Functions:
+ add several short-named relational operators "&geq", ">", "&leq",
"<", "&neq", "&sgeq", "&sgt", "&sleq", "&slt", "&sneq" to reduce
the need for "¬".
+ add "$pathname-separator" variable.
Syntax Filters:
+ add Ruby syntax filter.
+ add syntax filter for rpm ".spec" files.
+ add syntax filter for PostScript ".ps" files.
+ add syntax filter for enscript ".st" files.
+ add xml-filter based on html-filter.
+ add pot-filt.l, to highlight ".po" files. Using sh-filt.l was
not satisfactory since the quoting rules were not close enough.
+ add syntax filters and corresponding modes for assembler (GNU and M$),
info and texinfo.
+ add -j option to c-filt.c, to implement some java-specific features
such as "$" as part of an identifier, and \u escapes.
+ add un-filters (atr2ansi, atr2html, atr2text) which convert encoded
control/A text to different forms.
+ modify spell.rc, spellflt.l and select.c to allow spell filter to
work as a built-in filter.
+ modify built-in spell filter to work with encrypted files.
+ add a -t option to filters, to pass tabstop value. Use this in
makefilt.l to provide better highlighting of problems with leading
whitespace.
+ modify manpage.rc to check if the current buffer is perl, and if so,
to render contents using pod2man or pod2text.
+ set "vilemode" for [History] buffer.
+ reorder lex-based filters to allow building with flex 2.5.31, which
introduces several incompatibilities with respect to flex 2.5.4
and lex.
+ add configure check/warning for flex 2.5.31, which has broken support
for the "-P" option used for built-in filters.
Win32 changes:
+ implemented tilde-expansion on win32. Actually it was present, but
globbing did not work, and the environment variables did not match
the Windows 2000 configuration.
VMS changes:
+ filename matching is case-independent, allowing majormodes to be
recognized.
July 2005,
vile 9.5 is released. Highlights since 9.4 (aside from bug fixes):
General changes:
+ syntax filters can now be dynamically loaded. This allows the
main executable to be smaller, and is faster than external
filters. Loadable filters are configured using the
"--with-loadable-filters" option to configure script. This works
for several platforms using gcc.
+ add configure script option for largefile support, change buffer
size datatypes an unsigned type to allow for reading files larger
than a signed value would allow.
+ modify historical-buffer to allow tab/back-tab to cycle through
the first 9 buffers, solves the problem of seeing more than the
first few possibilities on the message line. Toggling with the
repeated '_' selects the first buffer shown.
+ modify name-completion to allow completion of filenames containing
a '$'.
+ relax a check in ":w" by checking if the given name differs from
the current filename. If so, do not require ":w!" to write a
readonly file to a different location. This allows one to reuse
the filename history for ":w".
+ modify special treatment of "#" which prevents it from being
shifted with ">>" by disabling that when cindent is unset.
+ add a few ex-commands: nu, j!, wq!
+ modify statevars.c to make read/write of $title consistent, i.e.,
will warn that it cannot be set in the termcap configuration.
+ modify [Messages] buffer so that it is only invisible, not a
scratch buffer. The latter makes it be automatically removed
after viewing and closing the window.
+ add pattern for "ant" (Java make-program) to a few of the patterns
in finderr.c
+ modify PromptAndSet() to allow a cancelled prompt for variable's
value to store an ERROR token, which can be tested in scripts with
&error.
+ split-out modes.rc from filters.rc to make configuration more
flexible, e.g., for configure --disable-filters.
+ modify minubuffer editing to allow one to use ^Ga to toggle
miniedit mode and append to the buffer shown from a previous
command rather than having it erased.
+ modify name-completion for majormode names used as macro
parameters to use the long name (with "mode" ending) rather than
the short name, for consistency.
+ modify perl.xs to allow for $VILE_LIBDIR_PATH to be a list of
paths. Only add the corresponding xxx/perl names to @INC if they
correspond to a real directory.
+ change minimum/maximum repeat counts for regular expressions from
a byte to an integer.
+ modify interpretation of "~local", "~with", "~elsewith" and
"~endwith" so they are within the normal "~if"/"~endif" hierarchy.
+ modify minibuffer editing to shift the display left/right as
needed after doing the initial tab of a name-completion, in case
that left the cursor position past the end of the line.
+ add experimental plugin support and example.
Locale Improvements:
+ workaround for broken locale table on Solaris8 and Windows2000,
etc., which shows tab as both as printable and a control
character. The ISO C standard states that control characters are
not printable.
+ extend workaround for UTF-8 locale in termcap driver to translate
UTF-8 input to Latin-1.
+ improve/extend checks for locales which correspond to 8-bit
character encoding, resetting to POSIX locale (ASCII) if the
nl_langinfo() function returns a value that does not look like
ASCII or ISO-8859-x. This change applies to the termcap/terminfo
and X11 drivers.
+ show locale and encoding values in the header of the [Printable
Chars] buffer.
+ add $encoding and $locale variables to show what vile's internal
8-bit encoding and locale are set to.
+ turn on locale feature on win32
New Commands:
+ add macro "which-menu" to which.rc, which shows the locations that
xvile checks for a menu-file.
+ add macro "show-each-buffer" (file showeach.rc), which splits up
the screen into equal chunks to display as many of the non-scratch
buffers as possible.
+ add macro "which-filter" to show which locations would be checked
for an external filter. If the filter happens to be built-in,
this is also noted, in the message line.
+ improve "eval" command, provide for mixture of functions and other
tokens which are passed to the script interpreter.
+ modify SpellFilter macro to use the results from [Filter Messages]
with the error-finder to step through the misspellings.
+ add macro "show-filtermsgs" to show syntax filter messages,
setting the list to the error-buffer to provide simple stepping
through the errors which are found.
+ add commands "popup-buffer" and "popdown-buffer", which open/close
windows for the given buffer rather than changing the current
window to show a different buffer. The "popup-buffer" command is
a wrapper for the existing logic used for help and similar
commands. The "popdown-buffer" command differs from
"delete-window" by closing all windows for the given buffer.
+ add command "for-buffers", which performs the same command for the
specified buffers.
New Modes:
+ add "reader-policy" mode, which allows one to control whether vile
will fall-back to line-by-line reading if it encounters an error.
+ add mode "for-buffers", which specifies whether kill-buffer (and
for-buffers) command use globbing or regular expressions.
+ add "filtermsgs" mode, for built-in filters to report syntax
errors into [Filter Messages] buffer so that one may use the error
finder to locate these.
+ add mode "ignoresuffix", which tells vile to strip the given
pattern from a filename before matching majormode suffixes against
it.
+ add mode "showchar", which turns on a field in the modeline that
tells what the character value is at the current editing position.
New Variables and Functions:
+ add new operators to make it simpler for macros to check for
features: "&isa", "&classof" and "&mclass".
+ add "&match" and "&cmatch" functions for checking if a given
regular expression matches a string.
+ add "$error-tabstop" variable, to allow changing the tabstop value
used when interpreting "%C" results in the error finder. Most
programs assume 8, and that does not work well when editing
buffers with other tabstops such as 4.
+ add "$goal-column" variable for debugging.
Syntax Filters:
+ modify ".table" command in filters parsing to read the user's
color definitions, e.g., from .vile.keywords, as is done in a
".source" command.
+ add a ".brief" to filters parsing, which uses "?" to match zero or
all of the following characters, in constrast to ".abbrev" which
uses "*" to match zero or more of the following characters.
+ several new majormodes, with corresponding syntax filters:
+ ".jsp" files are really (close to) a variety of HTML files.
Add simple support for JSP in htmlfilt.l
+ add iss-, nsis- and ini-modes
+ add lispmode, to use vile-lisp-filt.
+ add nmakemode, for special cases such as M$'s ".dsp" files.
+ add syntax filter for AutoIt version 3 and majormode au3mode.
+ add syntax filters for iss- and ini-modes.
+ add vbsmode using ".vbs" suffix based on basmode.
+ extend suffixes for several majormodes:
+ add ".asp" to jspmode suffixes
+ add ".cls" filetype for vbmode, add symbols for Visual Basic
class modules to vb.key
+ add ".dcl" filetype for dclmode.
+ add ".el" to suffixes for lispmode.
+ add ".hpp" to suffixes for cppmode.
+ add ".jad" suffix for javamode for Java Disassembler.
+ add ".mm" to nroff mode.
+ add ".ph" and ".pph" to esqlmode suffixes.
+ add ".shar" to shmode suffixes.
+ add ".termcap" and ".terminfo" suffixes for tcmode and timode
+ add ".tic" as a suffix for timode.
+ make "TODO" a txtmode file.