This is a BETA version of Vim 5.8. It includes all patches that have been
sent out for 5.7, plus about 70 new syntax files.
The main reason for bringing out this beta version is that the syntax files
need testing. There are many new ones and the existing ones have been updated
and made ready for Vim 6.0 (which will still be unstable for a while). All
syntax file maintainers, please check for any problems!
If all goes well, version 5.8 will be released in about two weeks.
Note that all the files are under the "unreleased" directory at the ftp site.
It should also be available through CVS soon. See http://vim.sf.net.
WHERE TO GET IT
You can find Vim 5.8a here:
See this file for Mirrors:
FILE SYSTEM COMMENTS
unix/vim-5.8a-src.tar.gz Unix(*) Sources
unix/vim-5.7-5.8a-src.diff.gz sources diff with version 5.7
unix/vim-5.8a-rt.tar.gz Unix(*) runtime files
unix/vim-5.7-5.8a-rt.diff.gz runtime diff with version 5.7
extra/vim-5.8a-extra.tar.gz Unix(*) Extra sources and docs (Farsi, OLE, VisVim)
extra/vim-5.7-5.8a-extra.diff.gz diff with version 5.7
pc/vim58art.zip Win32 DOS and MS-Windows runtime files
pc/gvim58a.zip Win32 32 bit Windows 95/98/NT GUI binaries.
Recommended for Windows 95/98 and NT. The
best choice for syntax highlighting and
pc/gvim58aole.zip Win32 32 bit Windows 95/98/NT GUI binaries, with
OLE support and VisVim.
pc/gvim58a_s.zip Win32s 32 bit Windows 3.1/3.11 GUI binaries.
pc/vim58aw32.zip Win32 32 bit Windows console binaries.
Recommended for Windows NT, not for 95/98.
Supports long file names.
pc/vim58ad32.zip MS-DOS 32 bit protected mode binaries.
Recommended for MS-DOS, Windows 3.1 and
Windows 95/98 console. It is compiled with
DJGPP, it may need a DPMI driver (CWSDPMI
is included). Supports long file names on
pc/vim58ad16.zip MS-DOS 16 bit real mode binaries.
Runs on most MS-DOS systems, but is
restricted to using 640K memory. Small
version, without e.g., syntax highlighting
pc/vim58asrc.zip PC Sources for PC versions (with CR-LF).
os2/vim58art.zip OS/2 runtime files (same as pc/vim58art.zip)
os2/vim58aos2.zip OS/2 binaries
(use the Unix and extra archives for OS/2
amiga/vim58art.tgz Amiga runtime files
amiga/vim58abin.tgz Amiga Binary
amiga/vim58abig.tgz Amiga Binary with more features
amiga/vim58asrc.tgz Amiga Sources for Amiga
doc/vim58ahtml.zip all Documentation converted to HTML
(*) Also for BeOS, OS/2, VMS, Macintosh and Atari MiNT
The contents of the source archives depends on the specified system. To
obtain the full sources and docs, get the three Unix archives.
system file type Unpack with
Unix file.tar.gz gunzip file.tar.gz; tar xf file.tar
Amiga file.tgz gzip -d file.tgz; tar xf file.tar
PC file.zip pkunzip -d file.zip
WHAT IS NEW
This is the complete list of changes since version 5.7.
Ctags is no longer included with Vim. It has grown into a project of its own.
You can find it here: http://ctags.sf.net.
It is highly recommended as a Vim
companion when you are writing programs.
New syntax files:
acedb AceDB (Stewart Morris)
aflex Aflex (Mathieu Clabaut)
antlr Antlr (Mathieu Clabaut)
asm68k 68000 Assembly (Steve Wall)
automake Automake (John Williams)
ayacc Ayacc (Mathieu Clabaut)
b B (Mathieu Clabaut)
bindzone BIND zone (glory hump)
blank Blank (Rafal Sulejman)
cfg Configure files (Igor Prischepoff)
changelog ChangeLog (Gediminas Paulauskas)
cl Clever (Phil Uren)
crontab Crontab (John Hoelzel)
csc Essbase script (Raul Segura Acevedo)
cynlib Cynlib(C++) (Phil Derrick)
cynpp Cyn++ (Phil Derrick)
debchangelog Debian Changelog (Wichert Akkerman)
debcontrol Debian Control (Wichert Akkerman)
dns DNS zone file (Jehsom)
dtml Zope's DTML (Jean Jordaan)
dylan Dylan, Dylan-intr and Dylan-lid (Brent Fulgham)
ecd Embedix Component Description (John Beppu)
fgl Informix 4GL (Rafal Sulejman)
foxpro FoxPro (Powing Tse)
gsp GNU Server Pages (Nathaniel Harward)
hercules Hercules (Avant! Corporation) (Dana Edwards)
htmlos HTML/OS by Aestiva (Jason Rust)
iss Inno Setup (Dominique Stephan)
jam Jam (Ralf Lemke)
jess Jess (Paul Baleme)
lprolog LambdaProlog (Markus Mottl)
ia64 Intel Itanium (parth malwankar)
kix Kixtart (Nigel Gibbs)
mgp MaGic Point (Gerfried Fuchs)
mason Mason (HTML with Perl) (Andrew Smith)
mma Mathematica (Wolfgang Waltenberger)
nqc Not Quite C (Stefan Scherer)
omnimark Omnimark (Paul Terray)
openroad OpenROAD (Luis Moreno Serrano)
named BIND configuration (glory hump)
papp PApp (Marc Lehmann)
pic PIC assembly (Aleksandar Veselinovic)
ppwiz PPWizard (Stefan Schwarzer)
progress Progress (Phil Uren)
psf Product Specification File (Rex Barzee)
r R (Tom Payne)
registry MS-Windows registry (Dominique Stephan)
robots Robots.txt (Dominique Stephan)
rtf Rich Text Format (Dominique Stephan)
setl SETL (Alex Poylisher)
sgmldecl SGML Declarations (Daniel A. Molina W.)
sinda Sinda input (Adrian Nagle)
sindacmp Sinda compare (Adrian Nagle)
sindaout Sinda output (Adrian Nagle)
smith SMITH (Rafal Sulejman)
snobol4 Snobol 4 (Rafal Sulejman)
strace Strace (David Necas)
tak TAK input (Adrian Nagle)
takcmp TAK compare (Adrian Nagle)
takout TAK output (Adrian Nagle)
tasm Turbo assembly (FooLman)
texmf TeX configuration (David Necas)
trasys Trasys input (Adrian Nagle)
tssgm TSS Geometry (Adrian Nagle)
tssop TSS Optics (Adrian Nagle)
tsscl TSS Command line (Adrian Nagle)
virata Virata Configuration Script (Manuel M.H. Stol)
vsejcl VSE JCL (David Ondrejko)
wdiff Wordwise diff (Gerfried Fuchs)
wsh Windows Scripting Host (Paul Moore)
xkb X Keyboard Extension (David Necas)
Renamed php3 to php, it now also supports php4 (Lutz Eymers)
Problem: Syntax files for Vim 6.0 can't be used with 5.x.
Solution: Add the "default" argument to the ":highlight" command: Ignore the
command if highlighting was already specified.
Generate the Syntax menu with makemenu.vim, so that it doesn't have to be done
when Vim is starting up. Reduces the startup time of the GUI.
Conversion of docs to HTML didn't convert "|tag|s" to a hyperlink.
Fixed compiling under NeXT. (Jeroen C.M. Goudswaard)
optwin.vim gave an error when used in Vi compatible mode ('cpo' contains 'C').
Tcl interpreter: "buffer" command didn't check for precense of an argument.
dosinst.c: Added checks for too long file name.
Amiga: a file name starting with a colon was considered absolute but it isn't.
Amiga: ":pwd" added a slash when in the root of a drive.
Macintosh: Warnings for unused variables. (Bernhard Pruemmer)
Unix: When catching a deadly signal, handle it in such a way that it's
unlikely that Vim will hang. Call _exit() instead of exit() in case of a
Setting the window title from nothing to something didn't work after patch 29.
Check for ownership of .exrc and .vimrc was done with stat(). Use lstat() as
well for extra security.
Win32 GUI: Printing a file with 'fileformat' "unix" didn't work. Set
'fileformat' to "dos" before writing the temp file.
Unix: Could start waiting for a character when checking for a CTRL-C typed
when an X event is received.
Could not use Perl and Python at the same time on FreeBSD, because Perl used
"-lc" and Python used the threaded C library.
Previosly released patches for Vim 5.7:
Problem: When the current buffer is crypted, and another modified buffer
isn't, ":wall" will encrypt the other buffer.
Solution: In buf_write() use "buf" instead of "curbuf" to check for the
Problem: When 'showmode' is set, using "CTRL-O :r file" waits three seconds
before displaying the read text. (Wichert Akkerman)
Solution: Set "keep_msg" to the file message so that the screen is redrawn
before the three seconds wait for displaying the mode message.
Problem: Searching for "[[:cntrl:]]" doesn't work.
Solution: Exclude NUL from the matching characters, it terminates the list.
Problem: GTK: When selecting a new font, Vim can crash.
Solution: In gui_mch_init_font() unreference the old font, not the new one.
Problem: Multibyte: Inserting a wrapped line corrupts kterm screen.
Pasting TEXT/COMPOUND_TEXT into Vim does not work.
On Motif no XIM status line is displayed even though it is
Solution: Don't use xterm trick for wrapping lines for multibyte mode.
Correct a missing "break", added TEXT/COMPOUND_TEXT selection
Add XIMStatusArea fallback code.
Files: src/gui_gtk_x11.c, src/multbyte.c, src/screen.c, src/ui.c
Problem: GUI: redrawing the non-Visual selection is wrong when the window
is unobscured. (Jean-Pierre Etienne)
Solution: Redraw the selection properly and don't clear it. Added "len"
argument to clip_may_redraw_selection().
Files: src/gui.c, src/ui.c, src/proto/ui.pro
Problem: Python: Crash when using the current buffer twice.
Solution: Increase the reference count for buffer and window objects.
Problem: In Ex mode, backspacing over the first TAB doesn't work properly.
Solution: Switch the cursor on before printing the newline.
Patch 5.7.009 (extra)
Problem: Mac: Crash when using a long file.
Solution: Don't redefine malloc() and free(), because it will break using
Problem: When using CTRL-A on a very long number Vim can crash. (Michael
Solution: Truncate the length of the new number to avoid a buffer overflow.
Patch 5.7.011 (extra)
Problem: Win32 GUI on NT 5 and Win98: Displaying Hebrew is reversed.
Solution: Output each character separately, to avoid that Windows reverses
the text for some fonts. (Ron Aaron)
Problem: When using "-complete=buffer" for ":command" the user command
Solution: In a user command don't replace the buffer name with a count for
the buffer number.
Problem: "gD" didn't always find a match in the first line, depending on
the column the search started at.
Solution: Reset the column to zero before starting to search.
Problem: Rot13 encoding was done on characters with accents, which is
wrong. (Sven Gottwald)
Solution: Only do rot13 encoding on ASCII characters.
Problem: When hitting 'n' for a ":s///c" command, the ignore-case flag was
not restored, some matches were skipped. (Daniel Blaustein)
Solution: Restore the reg_ic variable when 'n' was hit.
Problem: When using a Vim script for Vim 6.0 with <SID> before a function
name, it produces an error message even when inside an "if version
>= 600". (Charles Campbell)
Solution: Ignore errors in the function name when the function is not going
to be defined.
Problem: When running "rvim" or "vim -Z" it was still possible to execute a
shell command with system() and backtick-expansion. (Antonios A.
Solution: Disallow executing a shell command in get_cmd_output() and
Files: src/misc1.c, src/os_unix.c
Problem: Multibyte: In a substitute string, a multi-byte character isn't
skipped properly, can be a problem when the second byte is a
Solution: Skip an extra byte for a double-byte character. (Muraoka Taro)
Problem: Compilation doesn't work on MacOS-X.
Solution: Add a couple of #ifdefs. (Jamie Curmi)
Files: src/regexp.c, src/ctags/general.h
Problem: Vim sometimes produces a beep when started in an xterm. Only
happens when compiled without mouse support.
Solution: Requesting the xterm version results in a K_IGNORE. This wasn't
handled when mouse support is disabled. Accept K_IGNORE always.
Problem: %v in 'statusline' is not displayed when it's equal to %c.
Solution: Check if %V or %v is used and handle them differently.
Problem: Crash when a WinLeave autocommand deletes the buffer in the other
Solution: Check that after executing the WinLeave autocommands there still
is a window to be closed. Also update the test that was supposed
to check for this problem.
Files: src/window.c, testdir/test13.in, testdir/test13.ok
Problem: Evaluating an expression for 'statusline' can have side effects.
Solution: Evaluate the expression in a sandbox.
Files: src/edit.c, src/eval.c, src/proto/eval.pro, src/ex_cmds.c,
src/ex_cmds.h, src/ex_docmd.c, src/globals.h, src/option.c,
Patch 5.7.025 (fixed)
Problem: Creating a temp file has a race condition.
Solution: Create a private directory to write the temp files in.
Files: src/fileio.c, src/misc1.c, src/proto/misc1.pro,
src/proto/fileio.pro, src/memline.c, src/os_unix.h
Patch 5.7.026 (extra)
Problem: Creating a temp file has a race condition.
Solution: Create a private directory to write the temp files in.
This is the extra part of patch 5.7.025.
Problem: Starting to edit a file can cause a crash. For example when in
Insert mode, using CTRL-O :help abbr<Tab> to scroll the screen and
then <CR>, which edits a help file. (Robert Bogomip)
Solution: Check if keep_msg is NULL before copying it.
Problem: Creating a backup or swap file could fail in rare situations.
Solution: Use O_EXCL for open().
Files: src/fileio.c, src/memfile.c
Problem: Editing a file with an extremely long name crashed Vim.
Solution: Check for length of the name when setting the window title.
Problem: A ":make" or ":grep" command with a very long argument could cause
Solution: Allocate the buffer for the shell command.
hundred-and-one symptoms of being an internet addict:
224. You set up your own Web page. You set up a Web page for each
of your kids... and your pets.
/// Bram Moolenaar -- Bram@...
((( Creator of Vim -- http://vim.sf.net
-- ftp://ftp.vim.org/pub/vim )))
\\\ Help me helping AIDS orphans in Uganda - http://iccf-holland.org