• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

doc/H03-May-2022-4,5573,521

filters/H12-Dec-2021-53,52147,368

icons/H03-May-2022-4138

macros/H02-Dec-2021-3,6953,346

package/H12-Dec-2021-4,4643,546

perl/H03-May-2022-6,4773,268

plugins/H17-Jun-2004-3725

visvile/H03-May-2022-2,4541,737

AUTHORSH A D26-May-2013470 1413

CHANGESH A D12-Dec-2021354.6 KiB7,2256,994

CHANGES.R3H A D17-Jan-2020123.5 KiB3,1792,261

CHANGES.R4H A D17-Jan-2020121.7 KiB2,8782,218

CHANGES.R5H A D17-Jan-202080.3 KiB2,0051,486

CHANGES.R6H A D17-Jan-202015.6 KiB358302

CHANGES.R7H A D17-Jan-202073.8 KiB1,5361,431

CHANGES.R8H A D17-Jan-202099.1 KiB1,9331,844

COPYINGH A D26-Dec-201318.1 KiB351290

INSTALLH A D22-May-19986.2 KiB155116

MANIFESTH A D06-Dec-202134.9 KiB584583

READMEH A D17-Jan-202074.8 KiB2,1531,424

README.PCH A D09-Aug-201710.9 KiB261200

README.VMSH A D13-Dec-19992.8 KiB8163

aclocal.m4H A D25-Nov-2021206.5 KiB7,1316,687

ansi.cH A D17-Jan-20208.3 KiB447371

api.cH A D17-Jan-202018.9 KiB849561

api.hH A D17-Jan-20202.7 KiB7336

basic.cH A D30-Aug-202037.2 KiB1,8641,370

bind.cH A D24-Oct-201879.5 KiB3,6582,818

blist.cH A D21-Oct-20184.3 KiB199149

blist.hH A D13-Aug-2007612 3320

borland.cH A D17-Jan-202013.8 KiB704556

btree.cH A D21-Feb-201319.5 KiB930721

btree.hH A D18-May-20101.2 KiB5642

buffer.cH A D29-Nov-202167.7 KiB3,1532,359

buglistH A D17-Jan-202061.6 KiB1,6591,197

builtflt.cH A D12-Nov-201818.5 KiB934729

charsets.cH A D21-Oct-201823.7 KiB1,043832

chgdfunc.hH A D08-Nov-20081.6 KiB6751

cmdtblH A D31-Mar-201361.3 KiB2,0342,029

config.guessH A D04-Jun-202148.2 KiB1,7491,522

config.subH A D14-Aug-202134.4 KiB1,8851,698

config_h.inH A D11-Jul-1994231 97

configureH A D09-Dec-2021914.4 KiB35,59929,797

configure.inH A D09-Dec-202130.6 KiB1,1961,061

csrch.cH A D06-Nov-20062.7 KiB205156

curses.cH A D30-Nov-202111 KiB611493

descrip.mmsH A D06-Feb-20097.8 KiB338298

df-install.inH A D31-Jan-20143 KiB11664

dirstuff.hH A D15-May-20093.3 KiB163122

display.cH A D09-May-2021116.9 KiB5,2654,178

djhandl.cH A D10-Nov-20103.6 KiB158116

dumbterm.cH A D09-Dec-20092.7 KiB184151

edef.hH A D17-Jan-202019.9 KiB567444

eightbit.cH A D06-Dec-202120.5 KiB921720

encrypt.cH A D04-Jul-20147.6 KiB324256

estruct.hH A D22-Mar-202193 KiB3,2992,362

eval.cH A D09-May-202174.2 KiB3,5112,888

exec.cH A D17-Jan-202069 KiB3,1132,355

externs.cH A D07-Apr-2011505 209

fences.cH A D19-Dec-201916.6 KiB750584

file.cH A D26-Oct-201868.4 KiB3,0152,327

filec.cH A D21-Oct-201831.9 KiB1,3671,022

fileio.cH A D21-Oct-201821.1 KiB1,014785

finderr.cH A D19-Dec-201922.9 KiB1,013772

glob.cH A D16-Jul-201624.9 KiB1,134860

globals.cH A D25-Oct-20183.2 KiB13095

gnreight.hH A D09-Feb-2019804 KiB19,70519,072

gppconio.cH A D19-Jan-202017.9 KiB766543

history.cH A D13-Mar-201517 KiB735516

input.cH A D01-Dec-202062.8 KiB2,7201,968

insert.cH A D02-Dec-202032.8 KiB1,5401,087

install-shH A D29-Nov-20037 KiB295169

isearch.cH A D29-Mar-202011 KiB371220

itbuff.cH A D29-Mar-20206.9 KiB427289

lckfiles.cH A D17-Jan-20202.7 KiB10971

line.cH A D01-Dec-202043.1 KiB2,0231,608

main.cH A D30-Aug-202074.8 KiB3,2542,537

makeargv.cH A D27-Jul-20162.3 KiB147113

makeargv.hH A D27-Jul-2016451 1710

makefile.blcH A D24-Dec-20094.7 KiB200158

makefile.djgH A D24-Dec-20093.5 KiB151110

makefile.iccH A D24-Dec-20093.8 KiB240143

makefile.inH A D03-May-202232.8 KiB1,109875

makefile.wntH A D18-Oct-201813.6 KiB489376

makeflag.wntH A D06-Nov-20183.1 KiB8780

map.cH A D21-Oct-201822.4 KiB1,025762

menu.cH A D06-Mar-201314.6 KiB663511

mkprlenv.wntH A D20-Feb-20176.4 KiB200197

mktbls.cH A D22-Mar-202158.1 KiB2,5872,184

modes.cH A D23-Aug-2020122.6 KiB5,5784,492

modetblH A D23-Aug-202031.5 KiB731693

msgs.cH A D08-Sep-20103.6 KiB171119

npopen.cH A D08-Mar-20139.7 KiB535418

ntconio.cH A D17-Jan-202038.5 KiB1,6181,180

ntwinio.cH A D01-Jan-2021111.1 KiB4,6993,639

nullterm.cH A D24-Nov-20113.8 KiB288216

oneliner.cH A D19-Dec-201913.8 KiB633504

opers.cH A D22-Aug-201510 KiB521420

os2keys.hH A D02-Oct-20052.2 KiB9367

os2pipe.cH A D10-Nov-20106.1 KiB284208

os2vio.cH A D24-Nov-201112.3 KiB628477

patchlev.hH A D19-May-2020105 54

path.cH A D17-Jan-202050.5 KiB2,3171,696

perl.xsH A D07-Dec-2021109.6 KiB4,5523,571

plink.shH A D12-Dec-20212.6 KiB9656

plugin.cH A D17-Jun-20041.4 KiB5943

plugin.hH A D16-Jun-2004409 146

proto.hH A D22-Mar-202162.7 KiB1,9331,627

pscreen.hH A D04-Nov-2011842 2214

ptypemapH A D31-Mar-2014696 3932

random.cH A D23-Oct-201852.2 KiB2,4521,820

regexp.cH A D29-Mar-202076.5 KiB3,2772,459

region.cH A D25-Oct-201831.7 KiB1,4831,129

revlistH A D12-Dec-202111.5 KiB563562

search.cH A D12-Jan-202019.7 KiB915713

select.cH A D25-Oct-201849.3 KiB2,1891,702

spawn.cH A D25-Oct-201842.8 KiB1,7211,158

statevar.cH A D29-Nov-202133 KiB1,9551,745

tags.cH A D19-Dec-201920.9 KiB1,021794

tbuff.cH A D21-Oct-201812.1 KiB689507

tcap.cH A D25-Jan-201424.1 KiB1,058843

tcap.hH A D13-Jan-20185 KiB238180

termio.cH A D29-Mar-202026.8 KiB1,292980

test_io.cH A D10-Jan-2006366 209

trace.cH A D24-Oct-201822.6 KiB1,1821,009

trace.hH A D24-Oct-20183.4 KiB13097

ucrypt.cH A D25-Oct-20182.6 KiB11779

undo.cH A D09-Mar-201325 KiB1,010713

version.cH A D06-Mar-20136.5 KiB269227

version.shH A D25-Jan-2010485 169

vile.1H A D31-Oct-201812.3 KiB423420

vile.hlpH A D30-Nov-2021354.7 KiB7,5496,128

vile.wmconfigH A D01-Nov-199999 43

vl_alloc.hH A D25-Oct-20182.6 KiB6730

vl_crypt.hH A D29-Jul-20182.5 KiB12791

vl_ctype.cH A D10-Mar-201311.3 KiB449327

vl_ctype.hH A D08-Apr-20139.2 KiB310216

vl_regex.hH A D19-Dec-20193.3 KiB9541

vl_stdio.hH A D05-May-20071.9 KiB5516

vms2unix.cH A D03-Jun-200516.5 KiB742571

vmsbuild.comH A D08-Aug-201015.7 KiB590589

vmspipe.cH A D10-Nov-20106 KiB266199

vmsvt.cH A D14-Feb-201022.7 KiB914703

w32cbrd.cH A D17-Jan-202017.9 KiB759545

w32cmd.cH A D17-Jan-202068.8 KiB2,6411,771

w32info.rcH A D01-Jan-2021895 3431

w32misc.cH A D17-Jan-202037.4 KiB1,487921

w32ole.cppH A D17-Jan-202042.9 KiB1,6141,218

w32ole.hH A D17-Jan-20203.5 KiB12181

w32ole.rcH A D26-May-2007114 64

w32oo.cppH A D05-Nov-20188.6 KiB337264

w32pipe.cH A D05-Nov-201819.1 KiB703422

w32reg.cH A D05-Nov-201815.9 KiB535403

w32reg.hH A D15-Aug-19981.2 KiB4018

w32vile.hH A D24-Mar-20141.3 KiB4834

watch.cH A D10-Nov-20102 KiB10369

wcwidth.cH A D06-Sep-201014.7 KiB363206

wcwidth.hH A D03-May-2005444 159

window.cH A D30-Aug-202031.7 KiB1,4441,041

winvile.hH A D05-Jan-20061.4 KiB4526

winvile.odlH A D01-Jun-20082.5 KiB7962

winvile.rcH A D26-May-20071.7 KiB6154

word.cH A D19-Dec-201918.1 KiB811614

wordmov.cH A D07-Feb-20106.1 KiB428379

wvwrap.cppH A D27-Jul-201610.7 KiB467332

x11.cH A D30-Nov-2021170 KiB6,5205,331

x11menu.cH A D08-Dec-202112.1 KiB478372

x11plain.cH A D28-Nov-202112.5 KiB486389

x11vile.hH A D07-Dec-202118.9 KiB730576

xftplain.cH A D07-Dec-202114.4 KiB567455

xshell.shH A D10-Nov-1997570 2513

xterm.cH A D09-Feb-20108.6 KiB349256

xtermkeys.hH A D06-Sep-20108.8 KiB343271

xvile.wmconfigH A D01-Nov-199999 43

README

1
2README for vile, version 9.8
3----------------------------
4
5vile is a text editor which is extremely compatible with vi in terms
6of "finger feel".  in addition, it has extended capabilities in many areas,
7notably multi-file editing and viewing, key rebinding, real X window
8system support, an optional embedded perl interpreter, and robust
9support for non-Unix hosts.
10
11the authors of vile are Paul Fox, Tom Dickey, and Kevin Buettner.
12
13many patches have been contributed by a lot of users.  we thank them.
14
15more recent additions to this README appear near the bottom.  that is, most
16of the newest stuff is at the end, not up here where you are.
17
18visit
19	ftp://ftp.invisible-island.net/vile
20	http://invisible-mirror.net/archives/vile/
21to be sure it's still the latest.
22
23impatient?  just type "./configure; make", and get a cup of coffee, decaf
24if necessary.
25
26want to know more about configure options?  type "./configure --help"
27and then read doc/config.doc for further details.
28
29want X11 support?  you'd better look at doc/config.doc, although
30"./configure --with-screen=x11"; make" may well do what you want.
31
32want syntax coloring?  add "--with-builtin-filters" to your configure
33options and then read the topics "Color basics" and "Syntax coloring" in
34the file vile.hlp.
35
36want PC support?  look for precompiled binaries at the various ftp sites.
37
38want to build vile on a PC host?  refer to the file README.PC .
39
40want VMS support?  some precompiled binaries are available at
41	ftp://ftp.invisible-island.net/pub/vile
42otherwise, you'll need to build vile yourself.  In either case, refer to the
43file README.VMS .
44
45if you like vile, and wish to be informed of new releases, let me know -- i
46maintain a mailing list for that purpose (scroll down a bit for details).
47don't worry -- the volume won't fill your inbox.
48
49paul fox, pgf@foxharp.boston.ma.us (original author)
50kevin buettner, kevin@buettner.to
51tom dickey, dickey@invisible-island.net (current maintainer)
52
53------------------------------------------------------
54Up-to-date copies of vile, including executables for DOS, Win32 and
55OS/2 are found at
56	ftp://ftp.invisible-island.net/vile/
57
58which is mirrored at
59	http://invisible-mirror.net/archives/vile/
60
61Development patches are found at
62	ftp://ftp.invisible-island.net/vile/patches/
63	http://invisible-mirror.net/archives/vile/patches/
64
65In addition, we have distributed copies at other sites, including
66metalabs.unc.edu, hobbes.nmsu.edu (OS/2) and the VMS Freeware
67CDROM's.
68
69------------------------------------------------------
70
71There is a project mailing list.  You can subscribe to it here:
72    https://savannah.nongnu.org/projects/vile/
73
74To submit bug reports, either subscribe to the list (since
75non-subscribers aren't allowed to post) or use the bug system at
76that same URL.
77
78------------------------------------------------------
79
80extracts from the original README, from February, 1992:
81
82VILE -- VI Like Emacs: a vi workalike put together from Micro-Emacs by Paul Fox
83-------------------------------------------------------------------------------
84
85	This editor grew out of a frustration that although lots of
86	eager programmers have tackled rewrites of Emacs, with new and
87	better features (not to mention free source), I've not seen
88	anything similar done with the Second True Editor.  (The
89	First, of course, being /bin/ed)
90
91	...
92
93	vile retains the multiple buffer/multiple window features of
94	MicroEMACS, but the "finger-feel", if you will, is very much
95	that of vi.  It is definitely not a clone, in that some
96	substantial stuff is missing, and the screen doesn't look
97	quite the same.  But what matters most is that one's "muscle
98	memory" does the right thing to the text in front of you, and
99	that is what vile tries to do for vi users.  THIS IS NOT A
100	"CLONE"!  But it feels good.  (Put another way, the things
101	that you tend to type over and over probably work -- things
102	done less frequently, like configuring a .exrc file, are quite
103	different.)
104
105	...
106
107	The collective developers of Micro-Emacs should be
108	complimented that the changes were as easy as they were.
109	...
110
111	Paul G. Fox	June, 1991, and February, 1992
112
113p.s. By the way, I'm _not_ the same Paul Fox who wrote Crisp, the Brief
114	work-alike.
115
116
117-----------------------
118
119September, 1992
120
121I don't have much to add to the original README -- vile has gotten a lot
122better since I first released it, thanks to a lot of users and a lot of
123bug reports.  It compiles and runs without modification on most major UNIXes,
124and under DOS.  It offers vi finger feel, and most (not all) of its features.
125I hope it fills someone's need out there.  -pgf 9/92
126
127(Special thanks to Dave Lemke and Pete Rucszinski, for X and DOS support,
128and (in no particular order) to Eric Krohn, Willem Kasdorp, J.C.Webber,
129Warren Vik, Julia Harper, Chris Sherman, Thomas Woo, Yanek Martinson, Miura
130Masahiro, Tom Dickey for lots of bug reports and suggestions and patience.)
131
132------------------------------
133
134April, 1993
135
136Well, here's an update on vile.  The first release was a long time
137ago (a couple of years?).  Tom Dickey has been contributing a _whole_ lot
138of good changes.  vile now runs on VMS, and is much more stable on DOS
139thanks to Tom.  For me, vile is becoming an "old" program -- I first worked
140on it in 1989 sometime.  So it's been fun to have someone contributing
141fixes so energetically.  Thanks Tom.
142
143One thing that's changed since I first started vile is that "lots of eager
144programmers" have now tackled rewrites of vi.  There are several good work-
145alikes out there: elvis (the "king" :-), xvi, vim, stevie, and recent
146versions of vip-mode in GNU emacs.  [add "nvi" to that list.  and whatever
147happened to xvi?  -pgf 12/94]  From what little I've used any of
148these, they all seem like real good programs.  vile feels different from
149most of them, mainly due to its roots in MicroEmacs.  You may or may not
150like it.  If you don't, try one of the others.  There's certainly no reason
151to not have a vi-like editor on just about any machine you choose.  (yeah,
152I know -- I'm assuming you _want_ a vi-like editor...  :-)  Enjoy.
153
154Oh yes -- building it.  On UNIX, type "make", and choose one of the predefined
155targets.  Like "make linux". [ not anymore -- use "configure; make"  -pgf 12/94]
156
157DOS makefiles are named after the compiler they support:  makefile.tbc for
158Turbo-C, makefile.wat.  There is support in "makefile" for Microsoft-C, but
159it's next to useless -- if anyone puts together a good "nmake" makefile,
160could you pass it along?  [that support isn't there anymore.  -pgf 12/94]
161
162The Watcom C/386 v9.0 compiler should also work -- the makefile to use is
163makefile.wat.
164
165The latest version of vile is usually available for ftp at "ftp.cayman.com",
166in the pub/vile directory.  [not anymore -- it's at "id.wing.net" in the
167"pub/pgf/vile" directory.  -pgf 12/94] Sometimes there's a compiled DOS
168binary there too.  I don't maintain a mailing list, or anything like that
169to inform folks of new releases -- you just sort of have to check once in a
170while, or send me mail...  [ I've set up a mailing list -- contact me to be
171added -pgf 7/93]
172
173paul
174
175------------------------------
176
177July, 1993
178
179More new features:  infinite undo, modification time checking, and, at
180long last, primitive support for the :map command.  [:map is now fully
181functional -pgf, 12/94] I've also received patches that let vile compile
182for DOS with the DJ GCC compiler.  Have I mentioned filename completion?
183Tom Dickey provided that and variable/modename/command completion too.
184
185If you would like to be informed, via email, of new vile releases (bearing
186in mind that the newest release may be _more_ likely to be buggy, rather
187than _less_), please send me mail, and I will add you to my list.  The email
188will probably contain a capsule summary of the most recent changes to the
189code.
190
191Thanks to Tuan Dang for the Watcom and DJ GCC work.  I don't know much
192about djgpp, the DOS port of djgcc, but take a look at makefile.djg.
193
194
195pgf
196
197
198-------------------------------
199
200March, 1994
201
202The X support in xvile has been given a huge boost with contributions from
203Kevin Buettner -- scrollbars, Motif widget support make it feel like a real
204application...  We now have rectangular regions.  DOS support is getting
205better all the time.  The major version number got bumped to 4 somewhere
206along the line, because Tom and I were getting tired of 3.  There are quite
207a few new "modes", some to support vi functionality, some altogether new.
208We should have keyboard selections and highlighted regions soon...
209
210pgf, pgf@foxharp.boston.ma.us
211
212
213-------------------------------
214December, 1994
215
216hmmmm -- lets see.  new stuff.  see the CHANGES and help files for details.
217
218	- vile is now completely autoconf'ed -- you should be able to type
219	either "./configure; make" or "./configure --with-screen=x11" to build
220	it on any (unix-like) platform.
221
222	- :map and :map! are now much more complete, but still by no means
223	done.  expect to have to edit your favorite macros to make
224	them work.
225
226	- :abbr now works.
227
228	- along with proper :map support comes proper function key support.
229	function keys defined for your terminal in the termcap/info database
230	are now premapped and can be bound to as #-1 etc.  so those of
231	you with ESC [ 10 ~ style function keys should be happy now.
232
233	- mouse clicks which move the cursor now count as proper motion
234	commands in both xvile and vile-in-an-xterm.  this means, for
235	instance, that '' or `` will get you back to where you were before
236	you clicked the mouse, and you can apply operators to mouse
237	movements.  for example -- click the mouse somewhere, hit 'd' to
238	start a delete operation, and click the mouse somewhere else.  the
239	text between the two mouse-click locations will be deleted.
240
241	- on-line help (just a single line) for every function, available
242	with describe-{bindings,function,key} commands.
243
244	- new modes to better control beeping and the "working..." message.
245
246	- autowrite mode now supported, on a global or buffer-by-buffer basis.
247
248	- popup windows now adjust their size to their contents -- less screen
249	space is wasted for small window, and more is used for big windows.
250
251	- file and command completion is now more emacs/bash/tcsh-like, in
252	that possible choices are shown when you hit a second TAB key.  this
253	can be tuned via a new mode, "popup-choices"
254
255	- "quoted" motions, which highlight the text they will act on.  type
256	a 'q', and start moving around, then type another 'q'.
257
258	- various fixes to the macro language, for core dumps and usability.
259
260	- file.bak and file~ backup files now supported.
261
262	- infinite (?) screen sizes should now be supported under X.
263
264	- it's now possible to break lines by putting ^M in the replacement
265	pattern.
266
267	- selections, the modelines, and the cursor, under xvile, can all
268	have different colors.
269
270	- color support for termcap, at least on the linux console.
271
272	- put'ing from registers (i.e. 'p' and 'P' commands) should be much
273	faster.
274
275	- multiple (error) messages arising from running a macro or a startup
276	file will now accumulate in a new popup window.
277
278	- a simple, probably incomplete file-locking protocol is available,
279	but is not compiled in by default.  the organization which
280	contributed the code (Baan Development) uses it to aid their
281	multi-user development.  turn on OPT_LCKFILES in estruct.h and
282	"set usefilelock" in your .vilerc to play with it.
283
284	- Windows NT support -- console mode only.  anyone want to port this
285	to the Windows95 console?  it's probably not hard, though i haven't
286	looked into it very hard.
287
288	- lots of bug fixes
289
290-------------------------------
291Febrary, 1995
292	xvile now supports color attributes, which means we can do some
293	primitive syntax coloring of C programs, using the external filter,
294	"c-filt".  this is still pretty new stuff.  expect it to get better
295	with age.
296
297
298-------------------------------
299November, 1995
300	lots of new users in the last year, due to better advertising
301	and inclusion in some of the big linux and freebsd archives.
302	support for NT and OS/2 has gotten much better, and lots of
303	little bugs have been fixed, and features added.  Win32 support
304	is very good these days, thanks mostly to the efforts of Rick
305	Sladkey.
306
307-------------------------------
308June, 1996
309	gee, i don't remember _what_ we've done recently.  enjoy.
310
311-------------------------------
312
313September, 1996
314	tom dickey has volunteered to take over releases, and maintaining
315	"official" sources.  i'll still contribute, but more as part of the
316	"audience".  tom has done a _huge_ amount of work over the years
317	on vile -- i _really_ appreciate it...  -pgf
318
319-------------------------------
320
321May, 1998
322    vile 8.0 is released.  Major new features include:  an embedded
323    perl interpreter (available on Unix and Win32 hosts), an editable
324    mini-buffer, majormodes, enhancement of user-defined procedures to
325    the point that they may now be bound to user-defined keystrokes,
326    tag completion, and addition of a win32 gui (called winvile).
327
328-------------------------------
329
330Oct, 1998
331    vile 8.1 and 8.2 are released.  These are primarily bugfix releases.
332    Refer to the CHANGES files for details.  Tom Dickey continues to
333    improve winvile, which now supports scroll bars and two new
334    command-line options that control the editor's geometry and font.
335
336Apr, 1999
337    vile 8.3 is released.  This release includes much enhanced syntax
338    filter capabilities.  The filters are now much faster, mainly because
339    vile uses a new command attribute-from-filter to apply their output
340    directly as attributes to the buffer rather than modifying (and
341    allowing undo).
342
343    The organization of the keyword files for the syntax filters is now
344    associated with majormodes.  Syntax filters are defined for most of the
345    predefined majormodes which include:
346
347        adamode                   jsmode                    perlmode
348        awkmode                   keymode                   sccsmode
349        batmode                   latexmode                 shmode
350        cmode                     lexmode                   sqlmode
351        cshmode                   m4mode                    tcmode
352        cwebmode                  mailmode                  tclmode
353        dclmode                   makemode                  timode
354        diffmode                  mmsmode                   txtmode
355        htmlmode                  nrmode                    vilemode
356        imakemode                 pasmode                   yaccmode
357        javamode
358
359    Other changes of note (this is not an exhaustive list):
360
361    + removed/rewrote code which would prevent us from making vile available
362      under more liberal licensing.
363
364    + winvile and xvile have icons.
365
366    + new macro directives added, including:
367
368      ~local  ~hidden  ~with  ~endwith  ~elsewith
369
370    + many VMS bug fixes and enhancements.  8.3 is a keeper if you use VMS.
371
372Nov, 1999
373    vile 8.4/9.0 is released, distributed with GPL licensing.
374
375    In addition to improvements to syntax highlighting, e.g., user-definable
376    color schemes, vile's macro language has been extended
377
378    	+ procedures can be parameterized.
379
380	+ several new functions simplify handling of external filenames, and
381	  parsing strings.
382
383    Further improvements have been made to winvile: drag/drop, file open
384    dialog, better integration with the Windows Explorer and DevStudio.
385
386Jan, 2000
387    vile 9.1 is released.  Highlights since 9.0:
388
389    + continued improvement of syntax coloring (much work here)
390
391    + add an Exporter-like mechanism to Perl5 interface. Instead
392      of exposing a module's functions to the caller, it exposes them to
393      vile as registered commands.  By renaming the extensions as `.pm',
394      and making some minor changes to use Vile::Exporter, an extension
395      becomes visible by simply adding:
396          use extension;
397      to vileinit.pl.  There is also provision for only including some
398      commands provided by the extension, and for overriding the keybinding
399      defined by the developer (documented in the attached module).
400      Of course you can still say:
401           require extension;
402      and do the registering yourself if you so choose.
403
404    + vile's perl interface includes a new Vile::Window module, which may
405      be used to manipulate vile windows.  Examples of the use of this
406      module may be found in winops.pm.
407
408    + rename most .pl files to .pm (makefile.in).
409
410    + add/improve several perl scripts, including
411
412      - capture.pl - implements a perl version of capture-command.  This
413        version incrementally updates the window however.
414
415      - shell.pl - revised to use IO:Pty instead of Comm.pl (which
416        seems to be no longer maintained).
417
418      - Manual.pm - display embedded POD documentation.
419
420    + implement watchfd support for the termcap/terminfo versions of vile.
421
422    + added autocolor feature, which updates color syntax highlighting when
423      the keyboard is inactive for a specified period.
424
425    + Vileserv now also works for vile.
426
427    + changed vmsbuild.com to accept a compiler specification on the VMS
428      command line, which is much more convenient than editing the build
429      script by hand.  compiler defaults to VAXC on Vax hosts and DECC on
430      Alpha hosts.
431
432    + Several Win32-specific improvements:
433
434      - add the Win32 common dialog "save as" feature to both console
435        vile and winvile.
436
437      - modify directory.pm and dirlist.pm to make them work on win32, i.e.,
438        by not executing portions that will not work (such as mime types).
439
440      - implement autoscrolling feature for winvile, which makes the buffer
441        scroll in the direction where the mouse leaves the window,
442        automatically extending selection highlighting.
443
444    + modify backspacelimit mode to allow backspacing through a newline
445      when nobackspacelimit is specified.
446
447    + add single-quoted strings, which eliminate the need for escaping
448      backslash (useful in startup/command files)
449
450    + Added binding / support for ^X-_ aka
451      "historical-buffer-to-current-window".
452
453    + modify logic in ins_any_time() to interpret control characters which
454      are bound to GOAL or MOTION commands rather than inserting them
455      without quoting.  This allows ^E and ^Y as commands within an insert.
456
457Oct, 2000
458    vile 9.2 is released.  Highlights since 9.1 (modulo bug fixes):
459
460    + improve performance of syntax highlighting with configure option
461      for compiling-in any of the syntax filters.  Use the configure
462      --with-builtin-filters option.  Both internal (built-in) and
463      external filters are supported.
464
465    + add key binding functions for the different editing modes (insert,
466      command, minibuffer and default), making it simpler to bind a
467      space or tab to a given function without having it confused for a
468      function while in insert mode.
469
470    + Vileserv now uses the registry, so 'perl "use Vileserv"' in your
471      .vilerc automagically adds the commands startserv, stopserv, and
472      vileserv-help.
473
474    + added gdb.pm, which runs gdb in a vile window and tracks changes
475      in editor.  (Must be used with shell.pm.)
476
477    Several Win32-specific improvements:
478
479    + allow pasting of one line of text into mini-buffer.
480
481    + winopen, winopen-nocd, winsave, and winsave-nocd accept an
482      optional directory argument, which specifies the initial directory
483      opened by the Open/Save Win32 common dialogs.
484
485    Other Modes:
486
487    + add insert-exec mode to control logic in ins_any_time() which
488      interprets control characters which are bound to GOAL or MOTION
489      commands rather than inserting them without quoting (see 9.0a and
490      9.0b changes).  This restores the default behavior, since some
491      users had control characters bound to a function which was then
492      executed.
493
494    + add unique-buffers mode, which does dev/inode checking to be sure
495      files aren't edited more than once.
496
497    Syntax Filters:
498
499    + add syntax filters for sed, imake
500
501    + implement abbreviations for syntax keywords, using '*' as the
502      default delimiter.
503
504    + filters now attribute multi-line regions when appropriate, e.g.,
505      multi-line comments in C.
506
507    Macros and Scripting Support:
508
509    + add &dquery function which prompts for input with a given default
510      value.
511
512    + implement function &error, which returns true if its argument was
513      an ERROR token.  Modify built-in functions to return ERROR if an
514      argument was ERROR.
515
516    + add variable $filename-expr, to specify the actual pattern used
517      for %F in [Error Expressions].  On DOS and Win32, this is
518      initialized to a more complex pattern, to accommodate drive
519      letters.
520
521    + make the ~local directive work for modes.
522
523    + add ~trace directive, which sets or reports the value of the
524      $debug variable.  Use this to trace into internal buffer [Trace].
525
526    + add macros/shifts.rc, which implements left/right shifting of
527      words in the current line to align with the cursor.
528
529    Other Changes:
530
531    + modify color support in xvile to allow the pre-8.3s color scheme
532      as a special case:  setting bcolor to fcolor makes xvile use the
533      bcolorN resources on syntax-highlighted text rather than the color
534      selected by bcolor (which is actually taken from the fcolorN
535      resource in this case).
536
537    + added pushd, popd, dirs commands with accompanying [DirStack].
538
539June, 2002
540    vile 9.3 is released.  Highlights since 9.2 (aside from bug fixes):
541
542    + add dirs-clear and dirs-add commands
543
544    + added select-all and selection-clear commands.
545
546    + change default for $XSHELLFLAGS from "-c" to "-e", which matches the
547      documentation for $xshell-flags.
548
549    + add write-all-buffers command; writes all buffers whether modified or not
550
551    + add setenv (set-environment-variable) command.
552
553    + added a swap-title mode and $title-format variable.
554
555    + if the user specifies ":w!", and the file is not writable, vile will
556      (try to) temporarily chmod the file for writable access.
557
558    + added $findpath and $find-cmd state variables and, on win32 and unix
559      hosts, modified capturecmd (aka ^X-!) to support find operations that
560      span directory tree(s).
561
562    + reimplement ":args" command to accept a filename expression.
563
564    + add commands "ww!" and "wall!", to respectively write all changed
565      buffers and write all buffers, using the "w!" behavior of ignoring
566      readonly file permissions.
567
568    + implement three functions for working with timestamps: &ftime, &stime,
569      and &date, respectively for file modification time, system time, and
570      formatted date/time.
571
572    + extend insert-exec to allow ^A and ^X prefixes to be interpreted
573      in insert mode
574
575    + implemented support for reading/writing Macintosh files, i.e.,
576      recordseparator=cr.  New commands set-rs-cr, set-rs-lf, set-rs-crlf
577      extend the set-unix-mode and set-dos-mode commands to include Mac's.
578
579    + add &stoken function, which searches for a token in a string, e.g.,
580      "perl" in $cfgopts by
581        &stoken  "perl"  ","  $cfgopts
582
583    + add &translate function, e.g.,
584        &trans   ","     " "  "a,b"
585      to change commas to spaces
586
587    + add commands leading-detab-til and leading-entab-til, binding those
588      to ^X-' ' and ^X-^I.  Most of the logic was available internally.
589
590    + implemented '< and '> marks, which denote the limits of the
591      selection.
592
593    Perl Interface:
594
595    + add a new command to shell.pm called "xterm", which starts a shell in one
596      of vile's buffers just as "start-shell" already does, but also starts an
597      xterm through which one may (also) interact with the shell.  The shell
598      output (and echoed input) is displayed in both the xterm and a vile
599      buffer.
600
601    + implement perl/Breadcrumbs.pm
602
603    + add perl/Help.pm
604
605    + add perl/CaptHook.pm, which provides useful wrappers for Vile's
606      "hook" variables.
607
608    Win32-Specific:
609
610    + added basic win32 printing for winvile
611
612    + modify ntconio.c so that default fcolor is 7
613
614    + change paste in winvile to insert at DOT rather than after.  Also,
615      when pasting in insert mode, set DOT to the end of the inserted
616      text.
617
618    + improve paste-by-right-mouse-click operation in winvile by NOT
619      setting the insertion point at the position where the mouse happens
620      to be when executing the right-click, but rather pasting at the
621      current DOT (i.e.  right-mouse-click never sets DOT).
622
623    + when popup-menu is inactive, if text is selected, right-click copies
624      to w32clipboard; otherwise right-click pastes from w32clipboard.
625
626    + added icursor (insertion cursor) mode.
627
628    Syntax Filters:
629
630    + add Verlog and ECLiPSe (Prolog dialect) filters
631
632    + add syntax filter for BASIC, and majormodes basicmode and
633      Visual Basic (vbmode).
634
635    Other Changes:
636
637    + add 'mouse' mode for OS/2 (CSet), to disable mouse when not wanted.
638
639    + add $prompt variable, to allow changing the command-line prompt.
640
641Aug, 2003
642    vile 9.4 is released.  Highlights since 9.3 (aside from bug fixes):
643
644    General changes:
645
646    + regular expressions and searches allow null characters.
647
648    + minibuffer editing commands are more complete, implementing all of the
649      inline cursor search- and motion-commands.
650
651    + implement new editing commands in the minibuffer:  r, ~, x, X.
652
653    + use insert-mode bindings when mini-edit mode is active.  Use insert-key
654      to toggle, rather than set mini-edit mode.
655
656    + modify buffer- and filename-completion on Unix to escape backslashes
657      which are stored in the [Completions] buffer.  Doing this allows one
658      to complete a buffer or filename containing a backslash.
659
660    + improve history-editing by quoting tokens which contain embedded blanks
661      or other special characters, using that to retrieve tokens from the
662      history buffer unambiguously.
663
664    + save/restore window modes such as linewrap when rereading a file,
665      or when executing a shell command.
666
667    + use realpath() if it is available, and "$VILE_PWD" environment variable
668      rather than "." as parameter to getcwd() if it is valid, to speed up
669      operation on quasi-filesystems such as ClearCase.
670
671    + add configure option --with-screen=XawPlus for XawPlus library.
672
673    + add configure option --with-screen=ncursesw to allow building the
674      curses driver using the wide-character version of ncurses.
675
676    + add check in tcap.c for terminfo kmous capability like xterm, in case
677      we are running in screen, which also supports xterm mouse protocol.
678
679    + modify support for "^X-e" to make it use the whole line if the current
680      buffer is a directory.
681
682    Locale Improvements:
683
684    + change default for --with-locale option to yes.  Note that this
685      option is only tested if locale support is found, and it is becoming
686      less common to encounter systems with broken locale support.
687
688    + add "locale" to the "$cfgopts" variable if vile is compiled with
689      locale support.
690
691    + modify vile-manfilt to decode UTF-8 emitted by groff 1.18
692
693    + in UTF-8 locale, adjust termcap driver to use UTF-8 to display codes
694      in the 160-255 range, setting vile's locale to non-UTF-8 locale.
695      (yes, this is a short-term fix).
696
697    + add configure check for wctype functions, to work around defect in
698      glibc's ctype functions: in UTF-8 locale, the latter return useless
699      information on character classes.  This works on Solaris.
700
701    + move upper/lower case-conversion into tables so that locale support can
702      augment the built-in translation.
703
704    New Commands:
705
706    + "which-keywords" macro shows the location of files containing keywords
707      for the given majormode.
708
709    + "edit-buffer" simplifies "which-keywords" and similar macros.
710
711    + "encode-attributes-til" and "write-encoded-til" convert the syntax
712      highlighting in a region back to control/A sequences, or write the
713      corresponding data to a file.  There is a corresponding alias
714      "decode-attributes-til" for "attribute-cntl_a-sequences-til".
715
716    + "substitute-all-til" implements the "^X-s" binding.
717
718    New Modes:
719
720    + add "overlap-matches" mode, to control whether highlighting for the
721      visual-matches mode should skip to the next character, or past the
722      current match when checking.
723
724    + add "percent-crlf" mode, which controls the threshold at which the
725      whole file will be considered DOS-format (CRLF record separators)
726      if the given percentage already ends with CR/LF.
727
728    + "yankmotion" mode controls whether the cursor should be moved as in vi
729      after yanking text.
730
731    + add "xterm-title" mode.
732
733    + add logmode majormode, to distinguish some makefiles from logfiles.
734
735    + add "texmode" majormode, as a variation of latexmode.
736
737    New Variables and Functions:
738
739    + add several short-named relational operators "&geq", "&gt", "&leq",
740      "&lt", "&neq", "&sgeq", "&sgt", "&sleq", "&slt", "&sneq" to reduce
741      the need for "&not".
742
743    + add "$pathname-separator" variable.
744
745    Syntax Filters:
746
747    + add Ruby syntax filter.
748
749    + add syntax filter for rpm ".spec" files.
750
751    + add syntax filter for PostScript ".ps" files.
752
753    + add syntax filter for enscript ".st" files.
754
755    + add xml-filter based on html-filter.
756
757    + add pot-filt.l, to highlight ".po" files.  Using sh-filt.l was
758      not satisfactory since the quoting rules were not close enough.
759
760    + add syntax filters and corresponding modes for assembler (GNU and M$),
761      info and texinfo.
762
763    + add -j option to c-filt.c, to implement some java-specific features
764      such as "$" as part of an identifier, and \u escapes.
765
766    + add un-filters (atr2ansi, atr2html, atr2text) which convert encoded
767      control/A text to different forms.
768
769    + modify spell.rc, spellflt.l and select.c to allow spell filter to
770      work as a built-in filter.
771
772    + modify built-in spell filter to work with encrypted files.
773
774    + add a -t option to filters, to pass tabstop value.  Use this in
775      makefilt.l to provide better highlighting of problems with leading
776      whitespace.
777
778    + modify manpage.rc to check if the current buffer is perl, and if so,
779      to render contents using pod2man or pod2text.
780
781    + set "vilemode" for [History] buffer.
782
783    + reorder lex-based filters to allow building with flex 2.5.31, which
784      introduces several incompatibilities with respect to flex 2.5.4
785      and lex.
786
787    + add configure check/warning for flex 2.5.31, which has broken support
788      for the "-P" option used for built-in filters.
789
790    Win32 changes:
791
792    + implemented tilde-expansion on win32.  Actually it was present, but
793      globbing did not work, and the environment variables did not match
794      the Windows 2000 configuration.
795
796    VMS changes:
797
798    + filename matching is case-independent, allowing majormodes to be
799      recognized.
800
801July 2005,
802    vile 9.5 is released.  Highlights since 9.4 (aside from bug fixes):
803
804    General changes:
805
806    + syntax filters can now be dynamically loaded.  This allows the
807      main executable to be smaller, and is faster than external
808      filters.  Loadable filters are configured using the
809      "--with-loadable-filters" option to configure script.  This works
810      for several platforms using gcc.
811
812    + add configure script option for largefile support, change buffer
813      size datatypes an unsigned type to allow for reading files larger
814      than a signed value would allow.
815
816    + modify historical-buffer to allow tab/back-tab to cycle through
817      the first 9 buffers, solves the problem of seeing more than the
818      first few possibilities on the message line.  Toggling with the
819      repeated '_' selects the first buffer shown.
820
821    + modify name-completion to allow completion of filenames containing
822      a '$'.
823
824    + relax a check in ":w" by checking if the given name differs from
825      the current filename.  If so, do not require ":w!" to write a
826      readonly file to a different location.  This allows one to reuse
827      the filename history for ":w".
828
829    + modify special treatment of "#" which prevents it from being
830      shifted with ">>" by disabling that when cindent is unset.
831
832    + add a few ex-commands:  nu, j!, wq!
833
834    + modify statevars.c to make read/write of $title consistent, i.e.,
835      will warn that it cannot be set in the termcap configuration.
836
837    + modify [Messages] buffer so that it is only invisible, not a
838      scratch buffer.  The latter makes it be automatically removed
839      after viewing and closing the window.
840
841    + add pattern for "ant" (Java make-program) to a few of the patterns
842      in finderr.c
843
844    + modify PromptAndSet() to allow a cancelled prompt for variable's
845      value to store an ERROR token, which can be tested in scripts with
846      &error.
847
848    + split-out modes.rc from filters.rc to make configuration more
849      flexible, e.g., for configure --disable-filters.
850
851    + modify minubuffer editing to allow one to use ^Ga to toggle
852      miniedit mode and append to the buffer shown from a previous
853      command rather than having it erased.
854
855    + modify name-completion for majormode names used as macro
856      parameters to use the long name (with "mode" ending) rather than
857      the short name, for consistency.
858
859    + modify perl.xs to allow for $VILE_LIBDIR_PATH to be a list of
860      paths.  Only add the corresponding xxx/perl names to @INC if they
861      correspond to a real directory.
862
863    + change minimum/maximum repeat counts for regular expressions from
864      a byte to an integer.
865
866    + modify interpretation of "~local", "~with", "~elsewith" and
867      "~endwith" so they are within the normal "~if"/"~endif" hierarchy.
868
869    + modify minibuffer editing to shift the display left/right as
870      needed after doing the initial tab of a name-completion, in case
871      that left the cursor position past the end of the line.
872
873    + add experimental plugin support and example.
874
875    Locale Improvements:
876
877    + workaround for broken locale table on Solaris8 and Windows2000,
878      etc., which shows tab as both as printable and a control
879      character.  The ISO C standard states that control characters are
880      not printable.
881
882    + extend workaround for UTF-8 locale in termcap driver to translate
883      UTF-8 input to Latin-1.
884
885    + improve/extend checks for locales which correspond to 8-bit
886      character encoding, resetting to POSIX locale (ASCII) if the
887      nl_langinfo() function returns a value that does not look like
888      ASCII or ISO-8859-x.  This change applies to the termcap/terminfo
889      and X11 drivers.
890
891    + show locale and encoding values in the header of the [Printable
892      Chars] buffer.
893
894    + add $encoding and $locale variables to show what vile's internal
895      8-bit encoding and locale are set to.
896
897    + turn on locale feature on win32
898
899    New Commands:
900
901    + add macro "which-menu" to which.rc, which shows the locations that
902      xvile checks for a menu-file.
903
904    + add macro "show-each-buffer" (file showeach.rc), which splits up
905      the screen into equal chunks to display as many of the non-scratch
906      buffers as possible.
907
908    + add macro "which-filter" to show which locations would be checked
909      for an external filter.  If the filter happens to be built-in,
910      this is also noted, in the message line.
911
912    + improve "eval" command, provide for mixture of functions and other
913      tokens which are passed to the script interpreter.
914
915    + modify SpellFilter macro to use the results from [Filter Messages]
916      with the error-finder to step through the misspellings.
917
918    + add macro "show-filtermsgs" to show syntax filter messages,
919      setting the list to the error-buffer to provide simple stepping
920      through the errors which are found.
921
922    + add commands "popup-buffer" and "popdown-buffer", which open/close
923      windows for the given buffer rather than changing the current
924      window to show a different buffer.  The "popup-buffer" command is
925      a wrapper for the existing logic used for help and similar
926      commands.  The "popdown-buffer" command differs from
927      "delete-window" by closing all windows for the given buffer.
928
929    + add command "for-buffers", which performs the same command for the
930      specified buffers.
931
932    New Modes:
933
934    + add "reader-policy" mode, which allows one to control whether vile
935      will fall-back to line-by-line reading if it encounters an error.
936
937    + add mode "for-buffers", which specifies whether kill-buffer (and
938      for-buffers) command use globbing or regular expressions.
939
940    + add "filtermsgs" mode, for built-in filters to report syntax
941      errors into [Filter Messages] buffer so that one may use the error
942      finder to locate these.
943
944    + add mode "ignoresuffix", which tells vile to strip the given
945      pattern from a filename before matching majormode suffixes against
946      it.
947
948    + add mode "showchar", which turns on a field in the modeline that
949      tells what the character value is at the current editing position.
950
951    New Variables and Functions:
952
953    + add new operators to make it simpler for macros to check for
954      features:  "&isa", "&classof" and "&mclass".
955
956    + add "&match" and "&cmatch" functions for checking if a given
957      regular expression matches a string.
958
959    + add "$error-tabstop" variable, to allow changing the tabstop value
960      used when interpreting "%C" results in the error finder.  Most
961      programs assume 8, and that does not work well when editing
962      buffers with other tabstops such as 4.
963
964    + add "$goal-column" variable for debugging.
965
966    Syntax Filters:
967
968    + modify ".table" command in filters parsing to read the user's
969      color definitions, e.g., from .vile.keywords, as is done in a
970      ".source" command.
971
972    + add a ".brief" to filters parsing, which uses "?" to match zero or
973      all of the following characters, in contrast to ".abbrev" which
974      uses "*" to match zero or more of the following characters.
975
976    + several new majormodes, with corresponding syntax filters:
977
978        + ".jsp" files are really (close to) a variety of HTML files.
979          Add simple support for JSP in htmlfilt.l
980        + add iss-, nsis- and ini-modes
981        + add lispmode, to use vile-lisp-filt.
982        + add nmakemode, for special cases such as M$'s ".dsp" files.
983        + add syntax filter for AutoIt version 3 and majormode au3mode.
984        + add syntax filters for iss- and ini-modes.
985        + add vbsmode using ".vbs" suffix based on basmode.
986
987    + extend suffixes for several majormodes:
988
989        + add ".asp" to jspmode suffixes
990        + add ".cls" filetype for vbmode, add symbols for Visual Basic
991          class modules to vb.key
992        + add ".dcl" filetype for dclmode.
993        + add ".el" to suffixes for lispmode.
994        + add ".hpp" to suffixes for cppmode.
995        + add ".jad" suffix for javamode for Java Disassembler.
996        + add ".mm" to nroff mode.
997        + add ".ph" and ".pph" to esqlmode suffixes.
998        + add ".shar" to shmode suffixes.
999        + add ".termcap" and ".terminfo" suffixes for tcmode and timode
1000        + add ".tic" as a suffix for timode.
1001        + make "TODO" a txtmode file.
1002        + modify pattern for logmode to allow filenames such as gmake.out
1003
1004    + add a mode-pathname setting for cppmode, so files under (for
1005      example) /usr/include/g++ will be treated as C++.  Newer C++
1006      headers have no suffixes.
1007
1008    + add an "-s" option to c-filt.c, for JavaScript (to support
1009      jsmode).  Use this to control whether to allow regular expressions
1010      in certain cases.
1011
1012    + modify ShowFormatted macro to support "-mm" macros.
1013
1014    + modify spellflt.l to allow it to be used in winvile, using npopen,
1015      as a built-in filter.
1016
1017    + rewrote pascal syntax filter in lex, adding highlighting for
1018      numbers, and TurboC, Delphi comments.
1019
1020    + modify cppmode's suffixes to look for .C, .H and .CC only on
1021      systems where filenames are case-sensitive.
1022
1023    + split up the majormode "suffixes" into suffixes, mode-filename and
1024      mode-pathname to make it clearer how to associated regular
1025      expressions with the filename for majormodes.
1026
1027    + change highlighting for misspelled words to Error class.
1028
1029    + add environment variable VILE_SPELL_FILT to vile-spell-filt, to
1030      allow overriding the compiled-in program and options used for
1031      performing the lookup.
1032
1033    + many improvements to parsing and highlighting in existing filters
1034      (see CHANGES).
1035
1036    X11 changes:
1037
1038    + add --disable-imake option to configure script, from xterm.
1039
1040    + modify xvile's wheelScrollAmount resource to scroll by pages if
1041      the resource value is negative.
1042
1043    + revise lookup for xvile's menu file to look for dotnames in the
1044      current and home-directories, while non-dotnames may be found
1045      there and in $HOME/.vile and on $startup-path.  Combine this with
1046      changing the default for $menu-file back to ".vilemenu" as
1047      documented rather than "vilemenu.rc".  The latter name is used in
1048      the non-dotname locations if $menu-file is a dot-name.
1049
1050    Win32 changes:
1051
1052    + several changes to allow winvile to remember recent files and
1053      folders
1054
1055      + winvile remembers up to 20 of the files it has recently
1056        opened/created (feature disabled by default).
1057
1058      + winvile remembers up to 20 of the folders it has recently
1059        visited via an implicit or explicit cd (feature disabled by
1060        default).
1061
1062      + Remembered files/folders are accessible and "replayable" from
1063        winvile's system menu.
1064
1065      + Two new modes:  recent-folders and recent-files specify maximum
1066        number of folders/files that may appear in winvile's system
1067        menu.  Range is 0-20; a value of 0 disables feature.
1068
1069      + Two new commands:  purge-recent-folders and purge-recent-files
1070        clear the list of folders/files that appear in winvile's system
1071        menu.
1072
1073      + modes and commands work in console mode (minimizes conflicts
1074        when sharing a single vile.rc), but the files/folders that
1075        console vile accesses are _not_ remembered.
1076
1077    + improve the winvile resize/status window:
1078
1079      + make resize window wide enough to show geometries that exceed 99
1080        columns
1081
1082      + make resize window continually center itself over the editor's
1083        frame (NT and XP only).
1084
1085    + modify dequoting of winvile's command-line in ntwinio.c to allow
1086      for quoting to be within parameters, e.g.,
1087
1088            winvile +"100" makefile
1089
1090    + reenable SHIFT+INSERT in the win32 mini-buffer (for both vile.exe
1091      and winvile.exe).  Unfortunately, the cygwin shell eats
1092      SHIFT+INSERT for console vile (mini-buffer input only).  now, it's
1093      once again possible to:
1094
1095            $ vile somefile
1096            /<shift+insert>     <- search for string sitting on clipboard
1097
1098    + modify environment variable lookup for win32 to look in the
1099      registry for the VILE* environment variables:
1100
1101            VILEINIT
1102            VILE_HELP_FILE
1103            VILE_LIBDIR_PATH
1104            VILE_STARTUP_PATH
1105            VILE_ERROR_ABORT
1106
1107      This change is made to make it more easily installable; Windows
1108      changes to environment variables apparently do not take effect
1109      until the machine is rebooted.  Registry changes take effect
1110      immediately.
1111
1112    + add package script for winvile using Inno Setup.
1113
1114    + improve cursor display in winvile:
1115
1116        + when selecting text, show I-beam cursor.
1117
1118        + when selecting a movable mode line, show a double-headed,
1119          north-south cursor.
1120
1121        + when moving the mouse over a movable mode line, show a
1122          double-headed, north-south cursor.
1123
1124    + don't allow mouse capture if the left mouse button is pressed in
1125      the area encompassing the editor's last two lines (message line
1126      and nonmovable mode line).  Don't allow mouse capture if the left
1127      mouse button is pressed on movable mode line.  Corrects
1128      long-standing winvile bugs.
1129
1130    + add graphical change-directory to [win]vile via new command
1131      "wincd".  The graphical change-directory is also accessible via
1132      winvile's system menu and right mouse popup menu.
1133
1134    + ensure that files created via winvile's "Save As" and vile's ":f"
1135      commands are remembered in winvile's "Recent Files" list.
1136
1137    + make filename completion with cygwin ignore case.
1138
1139    VMS changes:
1140
1141    + add VMS mode record-attrs, modify logic in vms_creat() to use this
1142      information to make the default VFC files written from DCL
1143      editable.  Those use PRN (print file format) record attributes.
1144
1145    + modify which.rc to use &pcat rather than $pathname-separator,
1146      since the latter is ambiguous on VMS.
1147
1148    + modify infer_majormode() to work with VMS pathnames.
1149
1150    + correct logic for VMS pathnames so that a directory buffer will,
1151      as on Unix, give the same buffer name as the directory leaf.
1152
1153    + improve fakevms test-driver and related OPT_VMS_PATH code for VMS
1154      pathnames, making name-completion work for VMS pathnames on Unix.
1155
1156    + modify catnap() function to use IEEE floating point on IA64, since
1157      that platform does not support F-floats.
1158
1159    + modify vmsbuild.com and descrip.mms to work with IA64.
1160
1161December 2007,
1162    vile 9.6 is released.  Highlights since 9.5 (aside from bug fixes):
1163
1164    General changes:
1165
1166    + implement basic support for Unicode (see Locale Improvements).
1167
1168    + implement vi-style modeline, limited to setting buffer- and window-
1169      modes, or majormodes.
1170
1171    + implement patterns as line-specifiers in ex-mode.
1172
1173    + revised command-line option parsing to use scripting more effectively:
1174
1175      + multiple startup files are allowed.
1176
1177      + most command-line options are translated to their equivalent script
1178	and executed, rather than saving state for the most recent of each
1179	option.  This makes the -s, -S, -g, -G options obsolete (but still
1180	accepted).
1181
1182      + add "-c" option (the POSIX form of "+").
1183
1184    + disallow source'ing from the current directory if the source'd file
1185      might be writable by other users.
1186
1187    + make mouse work for curses driver just like the termcap/terminfo
1188      driver.
1189
1190    + improve majormodes for complex fences by initializing the (non-string)
1191      buffer mode values for submode groups according to the values in
1192      the submode.  This makes ignorecase work as expected in the complex
1193      fence matching for vbmode.
1194
1195    + improve name-completion by saving/restoring the original window and
1196      buffer when [Completions] closes, rather than the closest window.
1197
1198    + add named marks for decimal digits .
1199
1200    + modify ":describe-bindings" to show whether the command accepts a
1201      range, and whether it is undoable.
1202
1203    + correct comparisons used for handling bounds in regular expressions,
1204      e.g., the "2" in "\(this\|[l-m]\)\{2\}".
1205
1206    + change behavior of regular expression OR'd alternatives - only the
1207      first match was used rather than the longest one.
1208
1209    + modify "filename" shown in :show-filtermsgs to use the buffer name
1210      if no filename is available.
1211
1212    Locale Improvements:
1213
1214    + several changes to provide usable Unicode support:
1215
1216      + add mode percent-utf8 to set a threshold for file-encoding mode
1217	"auto" detection of UTF-16/UTF-32 files.
1218
1219      + file-encoding mode can be set to "auto", to detect UTF-16 files,
1220	which are loaded as UTF-8.
1221
1222      + UTF-8 files are detected based on the file-encoding mode as well.
1223
1224      + Unicode values are displayed (where no locale controls) as "\uXXXX"
1225	in 4 hexadecimal digits.
1226
1227      + add unicode-as-hex mode to override locale, forcing Unicode values
1228	to display as "\uXXXX".
1229
1230      + for buffers with UTF-8 encoding, show illegal bytes as "\?XX".
1231
1232      + Unicode values can be inserted into buffers using ^VuXXXX form.
1233
1234      + modify manfilt.c to provide UTF-8 output in a UTF-8 locale.
1235
1236      Limitations:
1237
1238      + terminal drivers support Unicode display in varying degrees:
1239
1240	+ winvile - multicolumn characters, depends on font selection
1241
1242	+ termcap/terminfo - relies on terminal emulator, knows about
1243	  multicolumn characters
1244
1245	+ xvile - displays only single-column characters
1246
1247	+ curses - depends on the curses library, e.g., ncursesw
1248
1249	+ win32 console - not yet implemented
1250
1251      + combining characters are not combined.
1252
1253      + registers hold byte data, will show the UTF-8 encoding for data
1254	rather than a \uXXXX (unless the file-encoding for [Registers]
1255	is changed).
1256
1257      + some "characters" such as the report for yanked text is still
1258	really a byte-count.
1259
1260      + inserting a \uXXXX into the minibuffer will display the UTF-8
1261	encoding.
1262
1263      + regular expressions are not wide-character aware.
1264
1265      + UTF-16 and UTF-32 files are detected based on BOM and/or the
1266	contents of the first line of the file.
1267
1268      + external syntax filters do not handle BOM or UTF-16, UTF-32.
1269
1270    + add character classes [:ident:], [:octal:] and [:path:], and change
1271      the association of \w and \W to [:ident:], making [:alnum:] no longer
1272      include "_".
1273
1274    + modify regexp.c so tab is not matched by \p or [[:print:]] for
1275      consistency with POSIX regular expressions.
1276
1277    New Commands:
1278
1279    + add rename-other-buffer command, use that to modify spell.rc so it
1280      can work with scratch buffers which otherwise would be lost, e.g.,
1281      "[Help]".
1282
1283    + add "describe-&functions" and "describe-$variables" commands.
1284
1285    + add ":goto-percent" command.
1286
1287    + add (nvi/vim) ex-commands: a!, c!, i!
1288
1289    + add ":c" as alias for ":change-til" (nvi/vim).
1290
1291    New Modes:
1292
1293    + UTF-8 is supported via new modes "byteorder-mark" and
1294      "file-encoding"
1295
1296    + add mode xterm-fkeys, to allow termcap driver to generate
1297      shift/control/alt modifiers for function keys.
1298
1299    + add "rectangle-insert-mode".
1300
1301    + add "showvariables" mode, for testing expressions used in [Variables].
1302
1303    + add "echo-to-clipboard" mode for Win32 hosts:
1304      all text selected with the mouse is automatically
1305      copied to the Windows clipboard.
1306
1307    + add "bufname-expr", "identifier-expr" and "pathname-expr" buffer modes to
1308      provide regular expression parsing of $bufname, $identifier and $pathname
1309      in the show-variables command as well as for the related expansion of
1310      tokens from the cursor position.  If the expressions are empty, the code
1311      falls through to use the corresponding older character-class parsing.
1312      Default values are provided for each *-expr mode.
1313
1314    + add cursor-tokens mode to control whether vile uses regular
1315      expressions, character classes or a combination to obtain tokens
1316      from the screen.
1317
1318    New Variables and Functions:
1319
1320    + add new symbols "$return" and "$_" which can be used to implement simple
1321      functions .
1322
1323    + add "%n" and "%N" substitutions for $title-format
1324
1325    + change "%n" in modeline substitutions to use file name (pathleaf)
1326      rather than relative path (shorten_path).  Use "%r" for the latter.
1327
1328    + add "&gtmotion" function for scripts.
1329
1330    + add $buf-fname-expr to show the combined bufname-expr, pathname-expr
1331      used to interpret ^X-e.
1332
1333    + improve handling of enumerated values by forcing all to lowercase,
1334      e.g., to eliminate the need for the special case in 9.1x to handle
1335      "TRUE" and "true".
1336
1337    + update title when doing a "cd", in case it uses %r substitution.
1338
1339    Syntax Filters:
1340
1341    + modify syntax filters to use flex's character classes.
1342
1343    + add configure check for lex's which support character classes, and
1344      add filters/noclass.sh to work around those which do not.
1345
1346    + several new majormodes, with corresponding syntax filters:
1347
1348	+ add confmode for "ordinary" config-files.
1349	+ add csmode (for C# ".cs" files).
1350	+ add csvmode for ".csv" files.
1351	+ add delphi mode
1352	+ add docbookmode
1353	+ add lua mode
1354	+ add mcrlmode for mCRL/mCRL2 modeling language.
1355	+ add midlmode, for Microsoft IDL.
1356	+ add rtfmode for RTF files.
1357	+ add wbtmode for WinBatch.
1358	+ add xpmmode
1359	+ add majormodes for bnf, css, php
1360
1361    + extend suffixes for several majormodes:
1362
1363	+ add ".ebuild" suffix for shmode.
1364
1365	+ modify preamble for xml- and html-modes to ensure that the first
1366	  tag determines the type.
1367
1368	+ add output from rcshist to diffmode.
1369
1370	+ add ".vbp" files to inimode.
1371
1372	+ add ".reg" files to inimode.
1373
1374	+ add ".ddl" suffix to sqlmode.
1375
1376	+ add ".dsr" suffix to vbmode.
1377
1378	+ add several package-related suffixes to sqlmode.
1379
1380    Other improvements to majormodes:
1381
1382    + modify majormode inferencing to check preamble for [Standard Input]
1383      and [Output] buffers.
1384
1385    + modify preamble patterns for shell modes such as awk, etc., to allow
1386      for programs without an absolute pathname, e.g., "#! awk".
1387
1388    + improved cppmode's identifier-expr.
1389
1390    + updated python keywords
1391
1392    + improve bas-filt.l by not highlighting incidental matches in the
1393      attribute section of a Visual Basic form-file.
1394
1395    + add section definitions to vbmode.
1396
1397    + add complex fences to vbmode.
1398
1399    + improve vl-filt.l based on Verilog LRM draft
1400
1401    + fill in complete list of event names for xres.key from Xt/TMParse.c
1402
1403    + fix sh-filt.l for parameter substitutions containing an escaped
1404      quote, e.g.,
1405	    VERSION=${VERSION#*VERSION \"}
1406	    VERSION=${VERSION%\"*}
1407
1408    + change htmlfilt.l to highlight character- and URI-references as
1409      numbers to make them distinct from strings with ordinary text.
1410
1411    + add "+", ",", "&", "@" and ";" to URL patterns in filters.
1412
1413    + fixes for termcap syntax highlighter, i.e., tcmode:
1414      + allow description field to be empty
1415      + color the "|" between aliases.
1416      + improve string- and escape-parsing
1417
1418    + fixes for terminfo syntax highlighter, i.e., timode:
1419      + allow description field to be empty
1420      + color the "|" between aliases.
1421      + allow aliases to contain blanks.
1422
1423    + add check in m4-filt.c for unbalanced quote, show the affected area
1424      as an error.
1425
1426    + several improvements and fixes to lex-filt.l (a rewrite which
1427      makes it very complete, however it now requires flex).
1428
1429    + minor fixes to make most of the lex filters build with "old" lex,
1430
1431    + make autocolor work for curses-driver, e.g., --with-screen=ncurses
1432
1433    + improve vilefilt.l, highlighting mode names and displaying error
1434      for unknown mode, function and state variables.
1435
1436    + modify spellflt.l to chop words according to Camel-case, so
1437      tokens such as "ChopWords" are treated by the spell checker as
1438      multiple words.
1439
1440    + modify spell- and txt-filters to allow users to add words to their
1441      respective ".keywords" files to override the builtin highlighting.
1442
1443    + make ShowFormatted macro more configurable by allowing environment
1444      variables $VILE_NROFF_FILT and $VILE_TABLE_FILT to override the
1445      choice of programs therein.
1446
1447    X11 changes:
1448
1449    + add -class option to xvile.
1450
1451    + make cursor-adjustment after paste in xvile dependent on whether the
1452      pasted text ended with a newline.
1453
1454    Win32 changes:
1455
1456    + change winvile's registry subkey for recent-folders and recent-files
1457      to match environment variable settings from 9.4r, e.g., change
1458	    "Software\winvile\MRUFiles"
1459      to
1460	    "Software\VI Like Emacs\MRUFiles"
1461
1462    + modify winvile's command-line parsing, adding "-i" option to perform
1463      the case used for "Send To": use the part of the command line after
1464      options as the filename and change working directory to match.
1465
1466    + improve paste-performance in winvile by passing whole-line chunks
1467      to the insert-function.
1468
1469    + improve repainting in winvile while processing external command.
1470      also modify keyboard handling to provide type-ahead while processing
1471      external command.
1472
1473    + correct order of evaluation from 9.4w when setting record-separator,
1474      which was setting "crlf" ending temporarily when computing the buffer
1475      size, even when "lf" was intended.  That would cause an immediate
1476      write from winvile (without change) for a buffer to write too many
1477      characters.
1478
1479    + add a character-class check to find_b_file() to prevent names such
1480      as "<vile.1>" from being canonicalized into "vile.1" on win32 via
1481      FindFirstFile().  This fixes a problem where ^X-n would sometimes
1482      display the wrong buffer.
1483
1484    + add shifted-cursor-key bindings for winvile, like xterm.
1485
1486    + add KEY_xxx definitions to OS/2 and Win32 drivers, defining up to
1487      KEY_F35 for the former and KEY_F24 for the latter .
1488
1489    + add &pquote in manpage.rc, to allow it to format html output when
1490      vile-manfilt, etc., reside in directories containing spaces in their
1491      name.
1492
1493    + correct check of return of ffread() in spellflt.l's workaround for
1494      platforms such as win32 which have no usable popen().  That made
1495      spelling checks require two ^X-i presses.
1496
1497    + modify ntwinio.c to invoke build_recent_file_and_folder_menus() in
1498      the WM_INITMENUPOPUP event rather than WM_SYSCOMMAND.  This makes
1499      winvile initialize the recent-folders and recent-files if one uses a
1500      right-click on the title of the window.
1501
1502    + modify spell filter so that it can get VILE_SPELL_FILT from the
1503      registry on win32.
1504
1505    + improved winvile's "flash".
1506
1507    + fixes for 64-bit warnings of Visual Studio .NET 2003
1508
1509    + modify wvwrap.exe to work with pathnames containing "$", "&" and "'".
1510
1511    + improve winvile.iss (Inno Setup):
1512      + use values in patchlev.h to set the package version information.
1513      + add context menu and Send To shortcuts
1514      + install the keyword files
1515
1516    VMS changes:
1517
1518    + minor build-fixes for VMS:
1519
1520      + modify vmsbuild.com to simplify workaround for broken MMS 3.8
1521
1522      + provide dummy variables for xvile to reflect modularization changes
1523	with respect to vmsvt.c
1524
1525    + move VMS-specific code from termio.c to vmsvt.c
1526
1527    Other portability:
1528
1529    + use va_copy() in dofmt() to work with Linux on powerpc
1530
1531    + modify configure script to omit lex-filt.l from build if lex is not
1532      really flex, since the tables are too large for the older program.
1533
1534    + improve os2vio.c, adding a check to distinguish between fullscreen
1535      and VIO to allow using bright background colors in the latter .
1536
1537    + modified regexp.c, add headers vl_regex.h, vl_alloc.h and vl_ctype.h
1538      to allow it to be easily built outside vile .
1539
1540    + add KEY_BackTab to the output of show-key-names
1541
1542    + fix kcod2prc() so that a shifted-tab is converted to "Shift+^I"
1543      rather than emitting a literal tab in the result.
1544
1545    Performance:
1546
1547    + modify the symbol-table lookup in filters.c to use tsearch() when
1548      available.  For an 8Mb rtf file this improved performance by about
1549      a factor of two (on Linux - Visual C++ has no tsearch).
1550
1551    + use new module blist (binary search of lists) to reduce linear
1552      searches in the places where btree is not already used.
1553
1554    + add configure check for getc_unlocked(), putc_unlocked() and
1555      tsearch() to use in performance improvements for syntax filters.
1556
1557June 2008,
1558    vile 9.7 is released.  While the goal for this release is to fix
1559    regressions and new bugs since 9.5; there are some new/modified features.
1560    Highlights since 9.6 (aside from build- and bug-fixes):
1561
1562    General changes:
1563
1564	+ modify prompt for new mode value to consistently show the mode's full
1565	  name.
1566
1567	+ modify wrapmargin mode to use negative values as a count from the
1568	  left of the screen.
1569
1570	+ modify behavior of ":ww!" to act like ":w!", allowing it to write
1571	  all files.
1572
1573	+ trim trailing blanks from text handled in modelines in case there
1574	  was a ^M.
1575
1576	+ modify treatment of ":setl dos" to behave the same as ":set-dos".
1577	  That makes it possible to put a "vile:dos" in a modeline and make
1578	  vile convert the line-endings.
1579
1580	+ flush the standard output before writing version message using the
1581	  standard error, in case there was some output pending.
1582
1583	+ modify curses-driver to avoid a curses-refresh (repainting the
1584	  whole screen) between a shell command and the "Press return to
1585	  continue" message.
1586
1587	+ improved scripting, making it simpler to save a boolean mode-value in
1588	  a variable and restore it by assignment.
1589
1590    Locale Improvements:
1591
1592	+ improve locale initialization, checking if there is no installed
1593	  narrow locale corresponding to the given (wide) locale.  In that
1594	  case, default to either ISO-8859-1 or ASCII, depending on whether
1595	  there was actually a wide locale whose encoding is UTF-8 or
1596	  ISO-8859-1, or neither.
1597
1598	+ force the [Printable Chars] buffer to use file-encoding=8bit,
1599	  makes it display consistently legal codes in the second column.
1600
1601	+ make ISO-8859-1 data display consistently in UTF-8 buffer as "\?xx".
1602
1603	+ provide workaround for systems without nl_langinfo(CODESET)).
1604
1605	+ make transpose-characters work for wide-characters.
1606
1607	+ make "~" (flip-character) and related case-conversion work for
1608	  Unicode in 0..255 range.
1609
1610    New Commands:
1611
1612	none
1613
1614    New Modes:
1615
1616	+ modify mktbls to allow special-case alias for modes which have no
1617	  convenient abbreviation.
1618
1619	+ add "fk" alias for file-encoding mode.
1620
1621	+ add a "locale" value for file-encoding, use that as the default.
1622
1623    New Variables and Functions:
1624
1625	+ add $buf-encoding symbol, to show the actual encoding used by the
1626	  current buffer vs the file-encoding which is one of vile's internal
1627	  names such as "8bit" or "locale".
1628
1629    Syntax Filters:
1630
1631	+ modify parsing of keyword files to accept an empty parameter for
1632	  "abbrev" and "brief", to disable the "*" and "?" feature.
1633
1634	+ remove obsolete lex-filters for perl and ruby (only the C versions
1635	  have been supported).
1636
1637	+ improved lisp filter:
1638
1639	  + change class color of parentheses to "Action" to make them easier
1640	    to distinguish from "String".
1641
1642	  + color binary, octal and hexadecimal constants, as well as parse
1643	    the "#\" patterns.
1644
1645	+ improved perl syntax filter:
1646
1647	  + make perlpod sections more readable by highlighting the control
1648	    lines.
1649
1650	  + add double-quote to quote-delimitors.
1651
1652	  + show interpreted symbols in double-quoted regular expressions.
1653
1654	  + if "/e" modifier is set for regular expression, show interpreted
1655	    symbols for that.
1656
1657	  + show regular expression modifiers in keyword-attribute, not string
1658
1659	  + color &foo as a variable.
1660
1661	  + color both class and member in variables such as $foo::bar
1662
1663	  + add ".t" to perlmode, using $mode-pathname
1664
1665	+ improved ruby syntax filter:
1666
1667	  + match keywords containing '!' '?' and '=' depending on the context.
1668
1669	  + remove unmatchable characters from the list of those matched
1670	    following $.
1671
1672	  + change the instance variable matching to @@?{KEYWORD} instead of
1673	    @+{KEYWORD}.
1674
1675          + highlight constants (keywords beginning with a capital) with
1676            the Type attribute.
1677
1678	  + highlight binary integers (such as 0b10101).
1679
1680	  + disable "*" and "?" abbreviation feature in ruby.key, allowing
1681	    match of "defined?", etc.
1682
1683        Other improvements to filters:
1684
1685	  + make vile's symbol-tables accessible to vilemode in winvile.
1686
1687	  + minor improvement to vbmode's fence-if to ignore lines with
1688	    continuations.
1689
1690	  + improve here-document parsing in sh-filt.l to work with "words"
1691	    which contain blanks.
1692
1693    Other improvements to majormodes:
1694
1695	+ strip redundant "mode" from majormode names, avoiding the potential
1696	  for creating foomodemode when the script says
1697		  define-majormode foomode
1698
1699	+ remove ".scm" from c-suffixes pattern.
1700
1701	+ add schememode.
1702
1703    X11 changes:
1704
1705	+ update input-method code, from xterm.
1706
1707	+ add xvile resource setting "openIm" to control whether it tries to
1708	  open input-method.
1709
1710	+ improved handling of runtime X errors, xvile will attempt to save
1711	  buffers.
1712
1713    Win32 changes:
1714
1715	+ simplify wvlwrap.exe by disabling globbing temporarily.  This allows
1716	  opening files whose names contain square brackets.
1717
1718	+ suppress part of wildcard expansion in call to expand_wild_args(),
1719	  e.g., for command-line of winvile, since that interferes with
1720	  reading files whose names contain square brackets.
1721
1722    VMS changes:
1723
1724	none
1725
1726    Other portability:
1727
1728	+ improve configure checks for iconv.
1729
1730    Performance:
1731
1732	none
1733
1734August 2010,
1735    vile 9.8 is released.  The goal of this release is to fill in the remainder
1736    of the UTF-8 support.
1737
1738    Highlights since 9.7 (aside from build- and bug-fixes):
1739
1740    General changes:
1741
1742	+ many improvements to UTF-8, for regular expressions and input.
1743
1744	+ implement user-definable operators
1745
1746	+ vile.hlp and all ".doc" plain-text files are generated from html.
1747
1748	  http://invisible-island.net/vile/vile-toc.html
1749
1750	+ highlight matches in which-keywords, etc., and put a hyperlink on the
1751	  highlighted text to view the corresponding file.
1752
1753	+ add a brief mode format "%M" for modeline-format
1754
1755	+ improve checks for insecure file permissions.
1756
1757	+ improve which-source and which-exec commands, showing which files
1758	  fail the checks for insecure permissions.
1759
1760	+ new configure script options:
1761
1762	  + --with-symlink, which augments --program-suffix to make it
1763	    simple(r) to install versioned binaries.
1764
1765	  + options for transforming program name upon install:
1766	    -- program-prefix, --program-suffix, --program-transform-name
1767
1768    Locale Improvements:
1769
1770	+ add environment variable VILE_LOCALE_MAPPING to help with special
1771	  cases of associating wide/narrow locales, e.g., where the narrow
1772	  locale is only available under a non-empty suffix.
1773
1774	+ regular expressions support character classes for UTF-8.
1775
1776	+ regular expressions support \< and \> markers for UTF-8.
1777
1778	+ format-til, lower-til, upper-til and flip-til work with UTF-8
1779
1780	+ xvile uses \uXXXX format when the font does not contain a glyph for a
1781	  given character.
1782
1783	+ accept ^VUddddd input for Unicode in decimal (base ten).
1784
1785    New Commands:
1786
1787	+ new command-line option "-F" tells vile to only run the syntax
1788	  filters for the given files, writing the attributed text to the
1789	  standard output.  Used this option to highlight the code-examples in
1790	  vile's html and documentation.
1791
1792	+ added several "list-XXX" aliases to match "show-XXX" commands, for
1793	  consistency.
1794
1795	+ "append-number", "insert-number", "overwrite-number" commands work
1796	  with characters entered as numbers.
1797
1798	+ "define-menu-entry" modifies xvile menu entries.
1799
1800	+ "set-extra-colors" allows setting extra colors for special buffers
1801	  such as [Settings].
1802
1803	+ "show-filtercolors" macro shows the class names and their colors for
1804	  the current majormode.
1805
1806	+ "show-extra-colors" shows classes and colors modified by
1807	  "set-extra-colors".
1808
1809	+ "show-local-modes" is an easier-to-remember variation for the
1810	  count+"show-modes" combination.
1811
1812	+ "show-undo-stack" shows the contents of the undo-stack.
1813
1814	+ "show-wide-printable" provides a way to see details for other "pages"
1815	  than the ASCII/Latin-1 0-255 code.
1816
1817	+ "store-operator" stores a macro which is treated as an operator.
1818
1819    New Modes:
1820
1821	+ "spaces-after-sentence" is now a buffer mode, to allow it to be part
1822	  of a majormode.
1823
1824	+ "check-access" makes the check for insecure file-permissions
1825	  configurable by the user.
1826
1827	+ "percent-autocolor" can be used to override the autocolor mode for
1828	  very large files.
1829
1830	+ "reuse-position" allows users to specify that vile should restore the
1831	  current line/column position when (re)displaying a scratch buffer
1832	  built with liststuff.
1833
1834    New Variables and Functions:
1835
1836	+ &bchanged, &fchanged and state variables $bchanged (same as
1837	  $modified) and $fchanged make it simpler for scripts to check if
1838	  buffer/file timestamps differ.
1839
1840	+ $cfgopts now shows drivers (ansi, borland, ntcons, ntwin, os2vio,
1841	  vmsvt) and other useful settings (iconv, multibyte).
1842
1843	+ $cmd-encoding variable allows control of minibuffer's encoding
1844
1845	+ $cmd-motion variable is used in user-defined operators.
1846
1847	+ $font is always available, but readonly for non-GUI configurations.
1848
1849	+ $kill-size and $kill-limit variables to improve scripting with the
1850	  $kill variable.
1851
1852	+ $latin1-expr variable specifies whether a derived narrow locale
1853	  really has Latin1 (ISO-8859-1) encoding.
1854
1855	+ $modeline-limit limits the offset into each line that vile scans for
1856	  modelines.
1857
1858	+ $term-cols, $term-lines and $term-resizes give the terminal
1859	  dimensions, and tell if it is in a resizable window.
1860
1861	+ $title-encoding controls whether vile 8-bit or UTF-8 encoding is used
1862	  when setting xterm title.
1863
1864    Syntax Filters:
1865
1866	+ new "-c" option to vile-key-filt tells it to display tokens in their
1867	  final color rather than based on syntax.
1868
1869	+ new "-Q" option for all syntax filters makes the filter write a
1870	  ".keyword" table to stderr to show the effect of the "-k" option.
1871
1872	+ extend syntax keyword parsing to allow flags to be set for each
1873	  keyword, e.g., to mark keywords that are used to delimit comments.
1874
1875	+ vile-awk-filt improvements
1876
1877	  + highlight inline comments.
1878
1879	  + highlight regular expression used as parameter, e.g., in sub().
1880
1881	  + change $0, etc., to Ident2 class for consistency with other
1882filters.
1883
1884	  + highlight some cases of unbalanced right-parenthesis or
1885	    curly-braces.
1886
1887	  + correct DSTRING expression, to handle "\\\\" value.
1888
1889	  + accept literal spaces in patterns.
1890
1891	+ vile-basic-filt improvements
1892
1893	  + allow continuation marker in comments
1894
1895	  + support .NET-style preprocessor directives.
1896
1897	+ vile-ecl-filt (ECLiPSe/Prolog)
1898
1899	  + fix typo in STARTQUERY pattern
1900
1901	  + parse based-numbers.
1902
1903	  + highlight strings and numbers.
1904
1905	+ vile-html-filt improvements
1906
1907	  + "<%" "%>" are recognized anywhere - not just outside tags.
1908
1909	  + ensure that "server" is the tag, not one of the named values, e.g.,
1910	    "<server>" vs "<foo server=bar>".
1911
1912	  + use language value in script tag, e.g., to handle C# scripts.
1913
1914	  + modify check for language value to accept anything beginning
1915	    "javascript", e.g., "javascript1.1".
1916
1917	  + check for "src" property in script tag before deciding whether to
1918	    use JavaScript keywords.
1919
1920	  + create separate table "htmlprop" for HTML properties.
1921
1922	  + highlight CSS embedded in HTML.
1923
1924	+ vile-lisp-filt (also for scheme filter)
1925
1926	  + highlight quasiquote/backtick (`), quote ('), unquote (,) and
1927	    unquote-splice (,@), including unquoted sub-expressions.
1928
1929	  + highlight the parentheses of quoted expressions in a different
1930	    color.
1931
1932	+ vile-php-filt improvements
1933
1934	  + identifiers may begin with "_".
1935
1936	  + color heredocs and nowdocs
1937
1938	  + color comments beginning with "#".
1939
1940	  + add preamble pattern for phpmode.
1941
1942	+ nroff filter allows for macro-names to be used for fonts.
1943
1944	+ spell filter now uses $TMPDIR rather than putting its temporary files
1945	  in the current directory.
1946
1947	+ vile-rpm-filter improvements:
1948
1949	  + recognize keywords ending with digits, such as "Source0".
1950
1951	  + distinguish one-liner tags from multi-line sections.
1952
1953	  + ignore case of keywords.
1954
1955	  + add keywords for %XXX variants of %{XXX} names.
1956
1957	  + highlight %XXX words in single-quotes.
1958
1959	+ vile-ruby-filt now handles stacked here-documents.
1960
1961	+ vile-scheme-filt
1962
1963	  + handle combinations of quotation literals.
1964
1965	  + highlight the unquote/unquote-splicing keywords.
1966
1967	  + handle the optional scheme parentheses extension ('[' and ']').
1968
1969	+ vile-sh-filt
1970
1971	  + handle "${number}", "$(commands)", "$((expression))",
1972	    "${name#value}", etc.
1973
1974	  + handle escape character in here-document.
1975
1976	+ vile-sql-filt improvements:
1977
1978	  + allow host variables in LEAD state.
1979
1980	  + improve parsing of "@" character.
1981
1982	  + allow newlines inside quoted strings.
1983
1984	+ vile-vile-filt improvements:
1985
1986	  + display numeric codes following a control/V as in a map-command as
1987	    numbers or errors if fewer digits were found than expected
1988
1989	+ vile-yacc-filt improvements:
1990
1991	  + highlight all of the terminal symbols with "Terminal" class.
1992
1993	  + modify keyword ".merge" directive to make it distinct from
1994	    ".source".  The former reads without modifying the table name, the
1995	    latter builds a new table.  Use this feature in the yacc syntax
1996	    filter to keep the terminal names and C keywords separate.
1997
1998	+ vile-xml-filt improvements:
1999
2000	  + use the prefixes defined by xmlns properties to select different
2001	    symbol tables.
2002
2003	  + modify the way keywords are loaded, to support multiple symbol
2004	    tables defined via the keyword files using the ".include" feature.
2005
2006    Other improvements to majormodes:
2007
2008	+ lots of new file suffixes added to existing modes, of course.
2009
2010	+ new majormodes:
2011
2012	  + "ant" and "mvn" (maven)
2013
2014	  + asp
2015
2016	  + dtd
2017
2018	  + haskell
2019
2020	  + mailcap
2021
2022	  + objc (objective-c)
2023
2024	  + vb6
2025
2026	  + xq (XQuery)
2027
2028	  + xsl
2029
2030	+ add option for C# verbatim string literals to c-filter.c
2031
2032	+ add to diffmode's preamble pattern to allow it to detect diff's in a
2033	  piped input.
2034
2035	+ vbmode and vb6mode provide try-bloc,, "with" and "select" complex
2036	  fences.
2037
2038	+ yacc.key updated to bison 2.4.1 and byacc 20100610.
2039
2040	+ modify xresmode to include shell-output from appres, e.g., ^X!appres
2041		XTerm
2042
2043	+ modify preamble settings for majormodes of the form "#!path" to make
2044	  them more distinct.
2045
2046    X11 changes:
2047
2048	+ add lxvile wrapper for xvile, which chooses a font based on locale
2049	  setting
2050
2051	+ add uxvile script, based on uxterm.
2052
2053	+ vilemenu.rc lists fonts used in uxterm for the set of ordinary fonts
2054	  if the $term-encoding is utf-8.
2055
2056	+ vilemenu.rc is scriptable; use this to work with the --disable-shell
2057	  configuration by omitting menu entries which use shell features.
2058
2059	+ vilemenu.rc provides a default-font entry, to restore the font to
2060	  whatever was given in a -fn option, or resource setting.
2061
2062	+ XVile.ad now matches Debian package.
2063
2064	+ handle XA_COMPOUND_TEXT and XA_UTF8_STRING selection types.
2065
2066	+ use Xutf8LookupString for input of UTF-8 key-events, if available.
2067
2068	+ RPM spec file configures xvile to provide menu support.
2069
2070	+ RPM spec file now installs uxvile.
2071
2072    Win32 changes:
2073
2074	+ winvile supports Unicode select/paste.
2075
2076	+ modify winvile installer to optionally refrain from putting the newly
2077	  installed directories first in $VILE_STARTUP_PATH, etc., if they
2078	  already exist in the given path.  That allows one to have vile.rc in
2079	  the first path, e.g.,
2080
2081		c:\vile;c:\program files\vi like emacs
2082
2083	+ winvile "-i" option now saves the original command string, so
2084	  filenames with embedded blanks now longer need quotes.
2085
2086	+ change Inno Setup script to install html files rather than doc files
2087	  for documentation; added a shortcut to the table of contents.
2088
2089	+ UNC-paths are recognized with Cygwin.
2090
2091	+ modify configure script, etc., to build "minvile" and "convile"
2092	  flavors using MinGW.
2093
2094	+ implement quick-launch rule in winvile.iss script.
2095
2096	+ DJGPP version provides syntax highlighting.
2097
2098	+ borland.c (used for DJGPP) now tabuluates the shift/control/alt
2099	  flavors of cursor- and function-keys, defining function keys up to
2100	  48.
2101
2102    Terminal drivers:
2103
2104	+ ansi driver supports color syntax highlighting.
2105
2106	+ curses driver supports color-schemes.
2107
2108	+ improve configuration/initialization of curses-driver to ensure that
2109	  no attempt is made to display UTF-8 using 8-bit curses.
2110
2111	+ modeline formatting supports UTF-8 filenames.
2112
2113	+ xterm-fkeys improvement:
2114
2115	  + checks for existence of shifted cursor- and editing-keys when the
2116	    unshifted keys do not use CSI format.
2117
2118	  + recognizes either form of CSI
2119
2120	+ use xterm patch #251 feature for saving/restoring title in termcap
2121	  and curses drivers.
2122
2123    Other portability:
2124
2125	+ add configure check for utf8 library, needed for some platforms to
2126	  use iconv library.
2127
2128	+ add configure check for SIGWINCH, to fix resizing on OS X
2129
2130	+ optionally use rpath feature to simplify linking against libraries in
2131	  nonstandard locations.
2132
2133	+ use pkg-config for X libraries, if available.
2134
2135	+ encryption feature works with 64-bit platforms.
2136
2137    Performance:
2138
2139	+ improve performance for show-variables and describe-bindings.
2140
2141	+ improve performance for displaying syntax highlighting of very long
2142	  lines by using a fast check on the left/right limits of single-line
2143	  regions that could be displayed, and ignoring attributed regions past
2144	  those bounds.
2145
2146	+ improve performance of on-the-fly UTF-8 regular expressions by
2147	  inlining and making checks to see if a byte is ASCII before doing
2148	  conversions.
2149
2150-------------------------------
2151$Id: README,v 1.107 2020/01/17 23:29:40 tom Exp $
2152-------------------------------
2153

README.PC

1                          --------------------
2                          Running vile on a PC
3                          --------------------
4
5vile can be built for DOS, OS/2, Windows NT/2K/XP or Win9x/ME.
6additionally, precompiled binaries are available at vile's ftp sites
7(refer to the README file for URLs).
8
9the precompiled binaries have an obvious advantage:  you don't build vile,
10which avoids the hassle of acquiring an "exotic" and/or expensive compiler.
11on the flip side, some PC environments include multiple build options that
12configure major editor features.  consequently, if you don't build vile,
13you have no control of the resultant feature set.
14
15General installation instructions
16---------------------------------
17installation of vile's PC components is the responsibility of the end user.
18put another way, _none_ of the PC makefiles include install targets and
19_none_ of the precompiled binaries include self-extracting setup programs.
20
21Installing the precompiled binaries
22-----------------------------------
231) unpack the appropriate compressed archive obtained from an ftp site.
242) copy all executables and the file vile.hlp to a directory in your PATH.
25
26Installing after a build
27------------------------
281) build the editor using the hints/information supplied below.
292) copy all resultant executables (except mktbls.exe) and the file vile.hlp
30   to a directory in your PATH.
31
32Creating a startup file
33-----------------------
34most users will configure the editor.  this is accomplished by creating a
35startup file, called "vile.rc", and adding various settings and macros as
36described in vile.hlp .  vile searches for the startup file in these
37locations (and in the order listed):
38
39	1 - current working directory
40	2 - directory specified by $HOME
41	3 - vile executable directory
42	4 - each directory specified in $VILE_STARTUP_PATH.  If
43	    this environment variable is not set, the following
44	    defaults are internally assumed:
45
46		/sys/public;/usr/bin;/bin;/
47
48	5 - each directory specified in:
49
50		$PATH
51		$VILE_LIBDIR_PATH
52
53Syntax coloring
54---------------
55syntax coloring works well on win32 hosts and everyone wants it :-) .
56configuration of this feature is described step-by-step in these vile.hlp
57topics:  "Color basics" and "Syntax coloring" .
58
59the remainder of this file describes build requirements for various PC
60environments.
61
62DOS information
63---------------
64under DOS, you're best off using a DOS extender of some kind.  either
65the Watcom or DJGPP compiler suites may be used -- DJGPP gives you a
66faster executable, but the Watcom compiler is about 10 times faster.
67you can use Turbo or Borland C as well, but neither of those support an
68extender, so you end up only being able to edit files that fit in memory.
69if you do this, be sure to '#define SMALLER 1' in estruct.h, to save as
70much code space as possible.
71
72if you build with Watcom, you'll need to have both vile.exe and dos4gw.exe
73in your path to run vile.
74
75if you build with DJGPP, you'll need to have both vile.exe and go32.exe
76in your path to run vile.  newer versions of DJGPP may rely on DPMI, and
77you might need cwsdpmi.exe instead of go32.  experiment.  have fun!
78
79let me know about bugs/oddities when you use vile on a PC -- i probably don't
80use it as much as you do.
81
82(it's quite possible that the DOS makefiles are a little out of date --
83refer to the UNIX makefile (makefile.in) for correct current list of source
84and object files.)
85
86oh -- there are three possible screen drivers in the source distribution
87that should work, with varying degrees of success:
88
89	borland.c (need #define BORLAND in estruct.h or makefile): this
90		uses the "conio" routines that come with Turbo C or Borland
91		C++.  Again, the trouble with this under DOS is that the
92		Borland compilers don't produce a dos-extender 32 bit app,
93		so you're _severely_ limited as to filesize.  but the DJGPP
94		libraries emulate the borland screen i/o routines, so this
95		screen driver is used there as well.
96
97	ansi.c (need #define ANSI in estruct.h or makefile):  uses ANSI.SYS.
98		it relies on the ansi driver for its cursor/scrolling/color
99		services.  if you can change the resolution of your screen (to
100		43 or 50 line mode) with your ansi driver, just use the
101		"screen-rows" and/or "screen-columns" vile commands to make its
102		idea of the size match your physical screen, and you'll be all
103		set.  (i've only tested it with a free/public replacement
104		program called NNANSI.  i got my copy from a simtel mirror.  i
105		can probably find you a copy if you need it.)
106
107
108OS/2 information
109----------------
110i believe vile can be built with the Borland compiler, or IBM CSET. be
111aware that vile is NOT a PM program.  the two builds use the borland.c
112or os2vio.c screen drivers, respectively.  with vile 7.3, an EMX port
113is supported (for comparison, since OS/2 VIO performs much better).
114
115we build the VIO version for the ftp downloads with IBM CSET, and the
116associate nmake utility.
117
118the makefile.emx (and associated config.emx file) are used for building
119with a minimal EMX environment.  you need gcc for this.  however, for
120best results in EMX, you should build with the autoconf version and
121ncurses.  this requires a number of tools:
122
123	+ you will have to regenerate the configure script, using
124	  autoconf 2.13, with the patches from
125
126	  http://invisible-island.net/autoconf/autoconf.html
127
128	+ you'll need ksh (build or obtain a copy of pdksh 5.2.13 or
129	  better).
130
131	+ GNU m4 (needed for autoconf), and sed.
132
133the termcap library distributed with EMX does not work well.  use ncurses:
134
135	+ ncurses 4.2 or later, with patches through September 1998, from
136
137	  http://invisible-island.net/ncurses/ncurses.faq.html
138	  ftp://ftp.invisible-island.net/ncurses/
139
140	+ use '$TERM=ansi', or start customizing from that.
141
142WIN32 information (Windows NT/2K/XP and 9x/ME)
143----------------------------------------------
144either Visual C++ (4.x or later) or the Borland compiler can be used.  use
145makefile.wnt with VC++ and makefile.blc with Borland's compiler.  with
146respect to the console-mode port (vile.exe), the screen driver is
147ntconio.c .  Both makefiles build vile.exe by default.
148
149additionally, makefile.wnt builds a handful of C-based syntax coloring
150filters.  many additional filters can be compiled and linked if lex or flex
151are available, as described below.  refer to the help file topic "Syntax
152coloring" for a description of these filters and their integration with the
153editor.
154
155as of vile 7.3, a gui called "winvile" is provided (screen driver is
156ntwinio.c), which continues to improve with successive releases of the
157editor.  currently, winvile may only be built with makefile.wnt (i.e.,
158only with VC++).
159
160as of vile 8.0, an embedded perl interpreter may be optionally included
161with the console or gui versions of the editor.  again, this feature is
162only accessible via makefile.wnt .  if perl has been installed on your
163desktop, vile's perl API documentation can be extracted from the source
164distribution with this nmake command:
165
166    nmake -f makefile.wnt vile-perl-api.doc
167
168as of vile 8.1, winvile may be built with optional OLE automation support,
169which is described in the file doc/oleauto.doc .  additionally, a DLL called
170visvile.dll can be built and installed as a Developer Studio add-in.  this
171add-in substitutes winvile as the default Developer Studio editor for
172many common editing tasks.  refer to the file doc/visvile.doc for further
173information, including build instructions.
174
175the following table summarizes the most significant makefile.wnt build
176options:
177
178component option(s)   required nmake command-line [1]
179========= =========   ===============================
180vile      <none>      nmake -f makefile.wnt
181vile      perl    [2] nmake -f makefile.wnt CFG=vile-with-perl
182winvile   <none>      nmake -f makefile.wnt CFG=winvile
183winvile   perl        nmake -f makefile.wnt CFG=winvile-with-perl
184winvile   ole         nmake -f makefile.wnt CFG=winvile OPT=ole-auto
185winvile   perl,ole[2] nmake -f makefile.wnt CFG=winvile-with-perl OPT=ole-auto
186
187[1] by default, all builds cd into the filters subdirectory and compile and
188    link a handful of C-based syntax coloring filters.  to build _all_ of
189    the editor's supported filters, acquire a copy of flex (or lex),
190    install it in a directory located in your PATH and add the following
191    command-line option:
192
193        nmake -f makefile.wnt <OPTIONS_FROM_ABOVE> FLT=1 LEX=flex  # or LEX=lex
194
195    take note that flex is a component of cygwin's GNU emulation package
196    and works quite well for this purpose.  cygwin can be obtained from
197    Redhat at http://sources.redhat.com/cygwin.  the FLT option binds
198    all syntax coloring filters into the resultant [win]vile executable.
199
200[2] this option requires prior installation of perl.  refer to the section
201    entitled "Perl preconditions" below.
202
203
204More about makefile.wnt
205-----------------------
206this makefile builds the editor from the command-line, _not_ from Developer
207Studio.  however, selected environment variables _must_ be set before
208any VC++ tool can be used (this includes nmake, cl, link, etc.).
209fortunately, microsoft supplies the file vcvars32.bat, in the Dev Studio
210bin directory, to set these variables.  you'll probably want to examine and
211edit this .bat file before using it for the first time because it usually
212modifies the PATH to include the PC's CD-ROM drive (not nice at all!).
213given all of this information, here's how to build the editor using the
214MS developer tools:
215
216a) open a dos box
217b) cd to the vile source directory
218c) run this command to initialize Dev Studio env vars:
219
220   <devstudio_root>\bin\vcvars32
221
222d) use one of the nmake command-lines shown above
223
224Perl preconditions
225------------------
226before building vile with an embedded perl interpreter:
227
2281) install a complete Win32 perl distribution[*] from this URL:
229
230       http://www.perl.com/CPAN-local/ports/win32/Standard/x86/
231
232   Included in this distribution, among many other items, is a required DLL
233   (perl.dll) and the usual perl packages.
234
2352) initialize the environment variable VILE_LIBDIR_PATH to point to a
236   writable "root" directory where vile's perl scripts will be installed.
237
238[*] Choose either a precompiled version of perl or build it yourself from
239    source.  In this context, a "complete" distribution includes the perl
240    interpreter and all "standard" packages, modules, and libraries.
241
242note 1: one of CPAN's popular perl binary releases did not export an
243important symbol.  this omission has been handled in vile's sources, but
244there is a nontrivial performance impact associated with the workaround.
245search for the symbol HAVE_BROKEN_PERL_RS in makefile.wnt to see if your
246version of perl is affected.
247
248note 2: the ActiveState port of perl is not compatible with vile's
249internal perl API--older versions won't link/compile and newer versions
250crash the editor.
251
252--------------------------------------------------------
253tom dickey, dickey@invisible-island.net
254
255--------------------------------------------------------
256paul fox, pgf@foxharp.boston.ma.us (home)
257
258------------------------
259$Id: README.PC,v 1.35 2017/08/09 08:48:59 tom Exp $
260------------------------
261

README.VMS

1                          -------------------
2                          Running vile on VMS
3                          -------------------
4
5vile can be built using either the VAXC or DECC compiler.  use vmsbuild.com
6as the build script, which accepts this syntax:
7
8          $ @vmsbuild [vile [<compiler> [<bldtarget>]]]      ! builds vile
9          $ @vmsbuild xvile [<compiler> [<bldtarget>]]       ! builds xvile
10
11where:
12          <compiler> :== { decc | vaxc }
13          <target>   :== build target, generally used by developers
14
15the default compiler on VAX hosts is vaxc, else decc (Alpha hosts).
16
17when choosing a compiler, carefully read the "warning" section below.  if
18building _both_ vile and xvile from the _same_ directory, refer to the
19"Configuration Note" at the top of vmsbuild.com.
20
21
22Tested systems
23--------------
24    VMS system version 5.4-2
25    VAX-C version 3.2
26and
27    VMS system version 6.1, 6.2
28    DEC C version 5.0, 5.2
29and
30    VMS/VAX system version V7.1
31    DEC C V5.6-003
32
33                        +++++++++++++++++++++++++++
34                        warning   warning   warning
35                        +++++++++++++++++++++++++++
36
37when selecting a target compiler, beware of this problem:
38
39    on a VAX, the DEC-C compiler and/or its run-time library cause
40    vile to change the "Revised time" of every file the editor _reads_.
41    you won't like this when using mms or a make clone.  the VAXC
42    compiler does not suffer from this problem.
43
44    configuration where problem was observed:
45                 DEC C V5.6-003 on OpenVMS VAX V7.1
46
47General installation instructions
48---------------------------------
49installation of vile's components is the responsibility of the end user.
50
51after the build, copy all resultant executables (except mktbls.exe) and the
52file vile.hlp to a directory of your choice.  finally, create a foreign
53symbol that invokes the editor from the installation directory.  ex:
54
55      vile :== $install_disk:[install_dir]vile.exe
56
57Creating a startup file
58-----------------------
59most users will configure the editor.  this is accomplished by creating a
60startup file, called "vile.rc", and adding various settings and macros as
61described in vile.hlp .  vile searches for the startup file in these
62locations (and in the order listed):
63
64    current working directory
65    the directory specified by the symbol HOME
66    the vile executable directory   [this often does not work]
67    if the symbol VILE_STARTUP_PATH exists then
68        search each comma-delimited directory specified in this symbol
69    else search
70        sys$login
71        sys$device:[vmstools]
72        sys$library
73    end if
74    sys$system
75    sys$library
76
77VMS-specific features
78---------------------
79vile includes several useful vms-specific modes, which are described in
80vile.hlp in the section entitled "VMS specifics".
81