hello -- I've just put vile 8.3 up for ftp at the usual place: http://www.clark.net/pub/dickey/vile/vile.html ftp://ftp.clark.net/pub/dickey/vile/vile-8.3.tgz and it should be mirrored soon at ftp://ftp.phred.org./pub/vile/vile-8.3.tgz PC binaries are also available for OS/2, DOS and WinNT. Vile is a text editor which is extremely compatible with vi. It has extended capabilities in many areas, including: multi-file editing and viewing, mouse support, infinite undo, additional operators, rectangular operations. optional Perl interface for UNIX and NT. It can also be built as "xvile", which is fully X-aware, with scrollbars etc. It will run under VMS, DOS, OS/2, or NT. Binaries for some PC operating systems are available. (OS/2 is currently native or EMX console mode port, NT is both console and GUI). Highlights since 8.2: + lots of bug fixes, of course + improved syntax filtering The external syntax highlighting filters are now much faster, mainly because vile uses a new command attribute-from-filter to apply their output directly as attributes to the buffer rather than modifying (and allowing undo). Changed the organization of the keyword files for the syntax filters so they are associated with the majormodes. The old-style keyword files did not distinguish keywords and the classes which they fall into. An identifier "Comment" in the old-style would be highlighted, though it is a class. Syntax filters are defined for most of the predefined majormodes which include adamode jsmode perlmode awkmode keymode sccsmode batmode latexmode shmode cmode lexmode sqlmode cshmode m4mode tcmode cwebmode mailmode tclmode dclmode makemode timode diffmode mmsmode txtmode htmlmode nrmode vilemode imakemode pasmode yaccmode javamode Because each syntax type requires a separate program, these are installed in a separate library directory, to avoid clutter. Some majormodes (e.g., C, Java, JavaScript) use the same syntax filter. The majormodes and associated filters are defined by sourcing filters.rc, which is installed. + removed/rewrote code which would prevent us from making vile available under more liberal licensing. + new module ucrypt.c uses Unix crypt(1) if available. renamed crypt.c, moved it to filters as ecrypt.c, for building standalone vile-crypt. it will be phased out. removed crypt-til operator; this could not work properly on portions of a file. + we implemented several new macro directives: ~local which saves the current value of $variables and %variables, restoring them at the end of the buffer/macro which is being executed. This does not (yet) apply to mode values. ~hidden macro directive, to suppress 'update()' logic and status check for the current macro line. ~with and ~endwith, to simplify majormode expressions. ~elsewith directive to simplify use of fences in macros. + add "group" feature to majormodes, which allows user to define new instances of certain submodes. We use the "group" feature in complex fence-if, ..., fence-fi + make C-style indent logic available as a mode 'cindent', so it can be assigned as part of a majormode. It is part of the builtin cmode but is useful for Perl. + add new terminal function to disable cursor display during screen updates and during multimotion. This makes vile display better on FTP Software's TNVTPlus wyse50 emulation. + we have icons: there are .ico, .xbm and .xpm versions of the most popular icons for xvile and winvile. + suppress type-ahead check when we have made characters available in mapungetc(). This fixes a problem where type-ahead would get into the data copied from mapgetc_ungottenchars, breaking arrow key interpretation on slow connections. Several VMS-specific improvements: Terminal driver: + add vt220 7- and 8-bit function key definitions + modify key-mappings in vmsvt.c to avoid defining VT52-style sequences, which introduce the possibility of confusing A for an arrow key + modify vmsvt.c to support video attributes bold, underline and flash + implement $sres, i.e., 80/132 column switching. we now use SMG to get control sequences for 80/132 column switching. + added "-132" and "-80" command-line switches to set screen width from command line. vile restores original terminal width when it exits (mimics the eph editor's behavior). Modes and variables: + implement modes for record-format and record-size vile now creates stream-lf files by default (in the past the editor created VARiable-record-length files). + add $pid environment variable Other changes: + correct path separator in default $startup-path for VMS, which would prevent vile from reading vile.rc from a system directory + change default search pattern for VMS to include only current versions of each file, unless mode "allversions" is set + modify VMS logic in ttopen to use "SYS$COMMAND" rather than "TT:" since the latter does not work with the PIPE command added in VMS 7.x to mimic unix cmdline pipe functionality. + correct logic of version_of() function, which did not ensure that the text really looks like a VMS version specification. + modify definition of FOPEN_READ for VMS to allow shared reads from files + vile's use of "~" as an alias for SYS$LOGIN is considerably more robust. + vile now accesses DECNET-based files without error. The fstat() call which we normally use to obtain the file size may fail in this case. Since we already know the file exists, we work around the problem. Other new features/improvements: + win32 versions of editor now support the $title environment variable (users can now set and display title from a macro). + correct parameter passed to 'access()' function to use symbols. The ffaccess() function relied on coincidence between values for FL_EXECABLE, FL_WRITEABLE, FL_READABLE and X_OK, W_OK, R_OK, which did not hold for djgpp. + add Vileserv.pm, vileget perl scripts, which give you the ability to send edit requests to a running Vile, like gnuserv does for Emacs + add directory browser extension for vile written with the perl interface + various fixes to "e!", which did not prompt or repaint properly if the current buffer was from standard input, the unnamed buffer, or a temporary buffer. + implement mode mcolor, which lets user set the color of the modelines. The choices are the same as for visual-matches. + add vtflash mode, for tcap.c and vmsvt.c + collapse starting/stopping of keyboard macro into single function, which acts as toggle. leave both key-bindings ( '^X-(' and '^X-)' ) but one is now redundant. + add new &query function, to (eventually) replace interactive @variables. + eliminate restriction on number of command-line arguments in winvile + rename VILE_LIBRARY_PATH to VILE_LIBDIR_PATH