hello -- I've just put vile 9.4 up for ftp at: http://www.vile.cx/ http://invisible-island.net/vile/ ftp://invisible-island.net/vile/vile-9.4.tgz and it is mirrored at ftp://ftp.phred.org./pub/vile/vile-9.4.tgz PC binaries are also available for 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. Vile has an optional Perl interface for UNIX and NT. It can also be built as "xvile", which is fully X-aware, or "winvile" for Win32, with scrollbars, menus, etc. It runs under VMS, BeOS, QNX, OS/2, DOS, Win95 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 9.3: + Bug fixes, lots. See the CHANGES file for details. General changes =============== + regular expressions and searches allow null characters. + minibuffer editing commands are more complete, implementing all of the inline cursor search- and motion-commands. + implement new editing commands in the minibuffer: r, ~, x, X. + use insert-mode bindings when mini-edit mode is active. Use insert-key to toggle, rather than set mini-edit mode. + modify buffer- and filename-completion on Unix to escape backslashes which are stored in the [Completions] buffer. Doing this allows one to complete a buffer or filename containing a backslash. + improve history-editing by quoting tokens which contain embedded blanks or other special characters, using that to retrieve tokens from the history buffer unambiguously. + save/restore window modes such as linewrap when rereading a file, or when executing a shell command. + use realpath() if it is available, and "$VILE_PWD" environment variable rather than "." as parameter to getcwd() if it is valid, to speed up operation on quasi-filesystems such as ClearCase. + add configure option --with-screen=XawPlus for XawPlus library. + add configure option --with-screen=ncursesw to allow building the curses driver using the wide-character version of ncurses. + add check in tcap.c for terminfo kmous capability like xterm, in case we are running in screen, which also supports xterm mouse protocol. + modify support for "^X-e" to make it use the whole line if the current buffer is a directory. Locale Improvements =================== + change default for --with-locale option to yes. Note that this option is only tested if locale support is found, and it is becoming less common to encounter systems with broken locale support. + add "locale" to the "$cfgopts" variable if vile is compiled with locale support. + modify vile-manfilt to decode UTF-8 emitted by groff 1.18 + in UTF-8 locale, adjust termcap driver to use UTF-8 to display codes in the 160-255 range, setting vile's locale to non-UTF-8 locale. (yes, this is a short-term fix). + add configure check for wctype functions, to work around defect in glibc's ctype functions: in UTF-8 locale, the latter return useless information on character classes. This works on Solaris. + move upper/lower case-conversion into tables so that locale support can augment the built-in translation. New Commands ============ + "which-keywords" macro shows the location of files containing keywords for the given majormode. + "edit-buffer" simplifies "which-keywords" and similar macros. + "encode-attributes-til" and "write-encoded-til" convert the syntax highlighting in a region back to control/A sequences, or write the corresponding data to a file. There is a corresponding alias "decode-attributes-til" for "attribute-cntl_a-sequences-til". + "substitute-all-til" implements the "^X-s" binding. New Modes ========= + add "overlap-matches" mode, to control whether highlighting for the visual-matches mode should skip to the next character, or past the current match when checking. + add "percent-crlf" mode, which controls the threshold at which the whole file will be considered DOS-format (CRLF record separators) if the given percentage already ends with CR/LF. + "yankmotion" mode controls whether the cursor should be moved as in vi after yanking text. + add "xterm-title" mode. + add logmode majormode, to distinguish some makefiles from logfiles. + add "texmode" majormode, as a variation of latexmode. New Variables and Functions =========================== + add several short-named relational operators "&geq", ">", "&leq", "<", "&neq", "&sgeq", "&sgt", "&sleq", "&slt", "&sneq" to reduce the need for "¬". + add "$pathname-separator" variable. Syntax Filters ============== + add Ruby syntax filter. + add syntax filter for rpm ".spec" files. + add syntax filter for PostScript ".ps" files. + add syntax filter for enscript ".st" files. + add xml-filter based on html-filter. + add pot-filt.l, to highlight ".po" files. Using sh-filt.l was not satisfactory since the quoting rules were not close enough. + add syntax filters and corresponding modes for assembler (GNU and M$), info and texinfo. + add -j option to c-filt.c, to implement some java-specific features such as "$" as part of an identifier, and \u escapes. + add un-filters (atr2ansi, atr2html, atr2text) which convert encoded control/A text to different forms. + modify spell.rc, spellflt.l and select.c to allow spell filter to work as a built-in filter. + modify built-in spell filter to work with encrypted files. + add a -t option to filters, to pass tabstop value. Use this in makefilt.l to provide better highlighting of problems with leading whitespace. + modify manpage.rc to check if the current buffer is perl, and if so, to render contents using pod2man or pod2text. + set "vilemode" for [History] buffer. + reorder lex-based filters to allow building with flex 2.5.31, which introduces several incompatibilities with respect to flex 2.5.4 and lex. + add configure check/warning for flex 2.5.31, which has broken support for the "-P" option used for built-in filters. Win32 changes ============= + implemented tilde-expansion on win32. Actually it was present, but globbing did not work, and the environment variables did not match the Windows 2000 configuration. VMS changes =========== + filename matching is case-independent, allowing majormodes to be recognized.