ANN: vile 9.5
- From: Thomas Dickey <dickey@xxxxxxxxxxxxxxxxxx>
- Date: Tue, 26 Jul 2005 01:23:21 -0000
hello --
I've just put vile 9.5 up for ftp at:
http://www.vile.cx/
http://invisible-island.net/vile/
ftp://invisible-island.net/vile/vile-9.5.tgz
and it is mirrored at
ftp://ftp.phred.org./pub/vile/vile-9.5.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.4:
+ Bug fixes, lots. See the CHANGES file for details.
General changes
===============
+ syntax filters can now be dynamically loaded. This allows the
main executable to be smaller, and is faster than external
filters. Loadable filters are configured using the
"--with-loadable-filters" option to configure script. This works
for several platforms using gcc.
+ add configure script option for largefile support, change buffer
size datatypes an unsigned type to allow for reading files larger
than a signed value would allow.
+ modify historical-buffer to allow tab/back-tab to cycle through
the first 9 buffers, solves the problem of seeing more than the
first few possibilities on the message line. Toggling with the
repeated '_' selects the first buffer shown.
+ modify name-completion to allow completion of filenames containing
a '$'.
+ relax a check in ":w" by checking if the given name differs from
the current filename. If so, do not require ":w!" to write a
readonly file to a different location. This allows one to reuse
the filename history for ":w".
+ modify special treatment of "#" which prevents it from being
shifted with ">>" by disabling that when cindent is unset.
+ add a few ex-commands: nu, j!, wq!
+ modify statevars.c to make read/write of $title consistent, i.e.,
will warn that it cannot be set in the termcap configuration.
+ modify [Messages] buffer so that it is only invisible, not a
scratch buffer. The latter makes it be automatically removed
after viewing and closing the window.
+ add pattern for "ant" (Java make-program) to a few of the patterns
in finderr.c
+ modify PromptAndSet() to allow a cancelled prompt for variable's
value to store an ERROR token, which can be tested in scripts with
&error.
+ split-out modes.rc from filters.rc to make configuration more
flexible, e.g., for configure --disable-filters.
+ modify minubuffer editing to allow one to use ^Ga to toggle
miniedit mode and append to the buffer shown from a previous
command rather than having it erased.
+ modify name-completion for majormode names used as macro
parameters to use the long name (with "mode" ending) rather than
the short name, for consistency.
+ modify perl.xs to allow for $VILE_LIBDIR_PATH to be a list of
paths. Only add the corresponding xxx/perl names to @INC if they
correspond to a real directory.
+ change minimum/maximum repeat counts for regular expressions from
a byte to an integer.
+ modify interpretation of "~local", "~with", "~elsewith" and
"~endwith" so they are within the normal "~if"/"~endif" hierarchy.
+ modify minibuffer editing to shift the display left/right as
needed after doing the initial tab of a name-completion, in case
that left the cursor position past the end of the line.
+ add experimental plugin support and example.
Locale Improvements
===================
+ workaround for broken locale table on Solaris8 and Windows2000,
etc., which shows tab as both as printable and a control
character. The ISO C standard states that control characters are
not printable.
+ extend workaround for UTF-8 locale in termcap driver to translate
UTF-8 input to Latin-1.
+ improve/extend checks for locales which correspond to 8-bit
character encoding, resetting to POSIX locale (ASCII) if the
nl_langinfo() function returns a value that does not look like
ASCII or ISO-8859-x. This change applies to the termcap/terminfo
and X11 drivers.
+ show locale and encoding values in the header of the [Printable
Chars] buffer.
+ add $encoding and $locale variables to show what vile's internal
8-bit encoding and locale are set to.
+ turn on locale feature on win32
New Commands
============
+ add macro "which-menu" to which.rc, which shows the locations that
xvile checks for a menu-file.
+ add macro "show-each-buffer" (file showeach.rc), which splits up
the screen into equal chunks to display as many of the non-scratch
buffers as possible.
+ add macro "which-filter" to show which locations would be checked
for an external filter. If the filter happens to be built-in,
this is also noted, in the message line.
+ improve "eval" command, provide for mixture of functions and other
tokens which are passed to the script interpreter.
+ modify SpellFilter macro to use the results from [Filter Messages]
with the error-finder to step through the misspellings.
+ add macro "show-filtermsgs" to show syntax filter messages,
setting the list to the error-buffer to provide simple stepping
through the errors which are found.
+ add commands "popup-buffer" and "popdown-buffer", which open/close
windows for the given buffer rather than changing the current
window to show a different buffer. The "popup-buffer" command is
a wrapper for the existing logic used for help and similar
commands. The "popdown-buffer" command differs from
"delete-window" by closing all windows for the given buffer.
+ add command "for-buffers", which performs the same command for the
specified buffers.
New Modes
=========
+ add "reader-policy" mode, which allows one to control whether vile
will fall-back to line-by-line reading if it encounters an error.
+ add mode "for-buffers", which specifies whether kill-buffer (and
for-buffers) command use globbing or regular expressions.
+ add "filtermsgs" mode, for built-in filters to report syntax
errors into [Filter Messages] buffer so that one may use the error
finder to locate these.
+ add mode "ignoresuffix", which tells vile to strip the given
pattern from a filename before matching majormode suffixes against
it.
+ add mode "showchar", which turns on a field in the modeline that
tells what the character value is at the current editing position.
New Variables and Functions
===========================
+ add new operators to make it simpler for macros to check for
features: "&isa", "&classof" and "&mclass".
+ add "&match" and "&cmatch" functions for checking if a given
regular expression matches a string.
+ add "$error-tabstop" variable, to allow changing the tabstop value
used when interpreting "%C" results in the error finder. Most
programs assume 8, and that does not work well when editing
buffers with other tabstops such as 4.
+ add "$goal-column" variable for debugging.
Syntax Filters
==============
+ modify ".table" command in filters parsing to read the user's
color definitions, e.g., from .vile.keywords, as is done in a
".source" command.
+ add a ".brief" to filters parsing, which uses "?" to match zero or
all of the following characters, in constrast to ".abbrev" which
uses "*" to match zero or more of the following characters.
+ several new majormodes, with corresponding syntax filters:
+ ".jsp" files are really (close to) a variety of HTML files.
Add simple support for JSP in htmlfilt.l
+ add iss-, nsis- and ini-modes
+ add lispmode, to use vile-lisp-filt.
+ add nmakemode, for special cases such as M$'s ".dsp" files.
+ add syntax filter for AutoIt version 3 and majormode au3mode.
+ add syntax filters for iss- and ini-modes.
+ add vbsmode using ".vbs" suffix based on basmode.
+ extend suffixes for several majormodes:
+ add ".asp" to jspmode suffixes
+ add ".cls" filetype for vbmode, add symbols for Visual Basic
class modules to vb.key
+ add ".dcl" filetype for dclmode.
+ add ".el" to suffixes for lispmode.
+ add ".hpp" to suffixes for cppmode.
+ add ".jad" suffix for javamode for Java Disassembler.
+ add ".mm" to nroff mode.
+ add ".ph" and ".pph" to esqlmode suffixes.
+ add ".shar" to shmode suffixes.
+ add ".termcap" and ".terminfo" suffixes for tcmode and timode
+ add ".tic" as a suffix for timode.
+ make "TODO" a txtmode file.
+ modify pattern for logmode to allow filenames such as gmake.out
+ add a mode-pathname setting for cppmode, so files under (for
example) /usr/include/g++ will be treated as C++. Newer C++
headers have no suffixes.
+ add an "-s" option to c-filt.c, for JavaScript (to support
jsmode). Use this to control whether to allow regular expressions
in certain cases.
+ modify ShowFormatted macro to support "-mm" macros.
+ modify spellflt.l to allow it to be used in winvile, using npopen,
as a built-in filter.
+ rewrote pascal syntax filter in lex, adding highlighting for
numbers, and TurboC, Delphi comments.
+ modify cppmode's suffixes to look for .C, .H and .CC only on
systems where filenames are case-sensitive.
+ split up the majormode "suffixes" into suffixes, mode-filename and
mode-pathname to make it clearer how to associated regular
expressions with the filename for majormodes.
+ change highlighting for misspelled words to Error class.
+ add environment variable VILE_SPELL_FILT to vile-spell-filt, to
allow overriding the compiled-in program and options used for
performing the lookup.
+ many improvements to parsing and highlighting in existing filters
(see CHANGES).
X11 changes
===========
+ add --disable-imake option to configure script, from xterm.
+ modify xvile's wheelScrollAmount resource to scroll by pages if
the resource value is negative.
+ revise lookup for xvile's menu file to look for dotnames in the
current and home-directories, while non-dotnames may be found
there and in $HOME/.vile and on $startup-path. Combine this with
changing the default for $menu-file back to ".vilemenu" as
documented rather than "vilemenu.rc". The latter name is used in
the non-dotname locations if $menu-file is a dot-name.
Win32 changes
=============
+ several changes to allow winvile to remember recent files and
folders
+ winvile remembers up to 20 of the files it has recently
opened/created (feature disabled by default).
+ winvile remembers up to 20 of the folders it has recently
visited via an implicit or explicit cd (feature disabled by
default).
+ Remembered files/folders are accessible and "replayable" from
winvile's system menu.
+ Two new modes: recent-folders and recent-files specify maximum
number of folders/files that may appear in winvile's system
menu. Range is 0-20; a value of 0 disables feature.
+ Two new commands: purge-recent-folders and purge-recent-files
clear the list of folders/files that appear in winvile's system
menu.
+ modes and commands work in console mode (minimizes conflicts
when sharing a single vile.rc), but the files/folders that
console vile accesses are _not_ remembered.
+ improve the winvile resize/status window:
+ make resize window wide enough to show geometries that exceed 99
columns
+ make resize window continually center itself over the editor's
frame (NT and XP only).
+ modify dequoting of winvile's command-line in ntwinio.c to allow
for quoting to be within parameters, e.g.,
winvile +"100" makefile
+ reenable SHIFT+INSERT in the win32 mini-buffer (for both vile.exe
and winvile.exe). Unfortunately, the cygwin shell eats
SHIFT+INSERT for console vile (mini-buffer input only). now, it's
once again possible to:
$ vile somefile
/<shift+insert> <- search for string sitting on clipboard
+ modify environment variable lookup for win32 to look in the
registry for the VILE* environment variables:
VILEINIT
VILE_HELP_FILE
VILE_LIBDIR_PATH
VILE_STARTUP_PATH
VILE_ERROR_ABORT
This change is made to make it more easily installable; Windows
changes to environment variables apparently do not take effect
until the machine is rebooted. Registry changes take effect
immediately.
+ add package script for winvile using Inno Setup.
+ improve cursor display in winvile:
+ when selecting text, show I-beam cursor.
+ when selecting a movable mode line, show a double-headed,
north-south cursor.
+ when moving the mouse over a movable mode line, show a
double-headed, north-south cursor.
+ don't allow mouse capture if the left mouse button is pressed in
the area encompassing the editor's last two lines (message line
and nonmovable mode line). Don't allow mouse capture if the left
mouse button is pressed on movable mode line. Corrects
long-standing winvile bugs.
+ add graphical change-directory to [win]vile via new command
"wincd". The graphical change-directory is also accessible via
winvile's system menu and right mouse popup menu.
+ ensure that files created via winvile's "Save As" and vile's ":f"
commands are remembered in winvile's "Recent Files" list.
+ make filename completion with cygwin ignore case.
VMS changes
===========
+ add VMS mode record-attrs, modify logic in vms_creat() to use this
information to make the default VFC files written from DCL
editable. Those use PRN (print file format) record attributes.
+ modify which.rc to use &pcat rather than $pathname-separator,
since the latter is ambiguous on VMS.
+ modify infer_majormode() to work with VMS pathnames.
+ correct logic for VMS pathnames so that a directory buffer will,
as on Unix, give the same buffer name as the directory leaf.
+ improve fakevms test-driver and related OPT_VMS_PATH code for VMS
pathnames, making name-completion work for VMS pathnames on Unix.
+ modify catnap() function to use IEEE floating point on IA64, since
that platform does not support F-floats.
+ modify vmsbuild.com and descrip.mms to work with IA64.
--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net
.
- Prev by Date: Re: gVIM - polish keyboard
- Next by Date: [Jed] Writing @ (Alt-Gr+2) on Windows with jed.exe
- Previous by thread: gVIM - polish keyboard
- Next by thread: [Jed] Writing @ (Alt-Gr+2) on Windows with jed.exe
- Index(es):