Subject: Vim 6.0i alpha available
From: Bram Moolenaar <[email-masked]>
To: [email-masked]
Date: Sun, 15 Oct 2000 21:45:24 +0200

Yet another Vim in the 6.0 series.

Major changes
-------------

The "settings" files are now called "filetype plugins".  The ":filetype
settings on" command is now ":filetype plugin on".  The directory for filetype
plugins is $VIMRUNTIME/ftplugin/<filetype>/*.vim.  This makes it possible to
add several script files for one file type.  The ones that are in the
distribution are called "default.vim".

Renamed "localmapchar" to "maplocalleader".  Just a better name.  Use <Leader>
for the value of "mapleader" and <LocalLeader> for the value of
"maplocalleader" instead of <Map>.  The default is now a backslash, to avoid
trouble with people actually using the "," command.

Removed ctags from the Vim distribution.  It's now a grown-up program by
itself, it deserves to be distributed separately.

Other changes
-------------

The "-u NONE" command line argument also disables loading plugins.
The "-u NORC" command line argument disables loading vimrc files, but doesn't
disable loading plugins.

When formatting with "=" uses 'cindent' or 'indentexpr' indenting, and there
is no change in indent, this is not counted as a change ('modified' isn't set
and there is nothing to undo).

Added first version of Korean message translations. (Sung-Hyun Nam)

In a ":highlight" listing, show "xxx" with the highlight color.

Added 'indentkeys' option: Used instead of 'cinkeys' when 'indentexpr' isn't
empty.

Win32 console: Set the window icon to Vim's icon (only for Windows 2000).
While executing a shell command, modify the window title to show this.
When exiting, restore the cursor position too.  (Craig Barkhouse)

Updated instructions for how to write a plugin.  Use two cascading mappings to
allow the user to define his own key sequence.
Added hasmapto() function to detect if a mapping to a string is already
present.
Suggest the use of "<Leader>" in plugins in the documentation.

Python interface: Allow setting the width of a vertically split window. (John
Cook)

Added foldclosed() and foldlevel() functions. (Johannes Zellner)
Added skipblank() function: skip blank lines.  Useful to for indent scripts.
Added type() function: Check the type of an expression.
Added winwidth() function. (Johannes Zellner)

Added interface to Ruby. (Shugo Maeda)

Added optional extra argument for match(), matchend() and matchstr(): Offset to
start looking for a match.
Made third argument to strpart() optional.  (Paul Moore, Zdenek Sekera)

Added configure options to install Vim, Ex and View under another name (e.g.,
vim6, ex6 and view6).

When doing Insert mode completion, when completion is finished check for a
match with words from 'cinkeys' or 'indentkeys'.
Added "=~word" to 'cinkeys' and 'indentkeys': Match while ignoring case.

Added 'n' flag for 'cpoptions': Do put text of wrapped lines in between line
numbers from 'number' option.  This makes it Vi compatible.  Also fix problems
with 'linebreak' and 'showbreak' for wrapped lines.

Put "RO" in the title for read-only files.

Fixes
-----

Win32: Console version didn't work on telnet, because of switching between two
console screens.  Now use one console screen and save/restore the contents
when needed.  (Craig Barkhouse)

When reading a file the magic number for encryption was included in the file
length. (Antonio Colombo)

The quickfix window contained leading whitespace and NULs for multi-line
messages. (David Harrison)

"make install" didn't install the indent and settings files.

ACL support didn't work under Windows 95, could cause a crash.  Only load the
advapi library on Windows NT and 2000. (Brent Fulgham)

When using cscope, redundant tags were removed.  This caused a numbering
problem, because they were all listed.  Don't remove redundant cscope tags.
(David Bustos).

Win32: Buffer overflow when adding a charset name in a font.

Cscope: Test for which matches are in the current buffer sometimes failed,
causing a jump to another match than selected. (David Bustos)

When deleting a line at the end of the file, folds would not be updated
correctly.
Setting 'foldexpr' and 'foldmethod' from a FileType autocmd event didn't make
the folds updated when using a ":bn" command.

'titlestring' and 'iconstring' were evaluating an expression in the current
context, which could be a user function, which is a problem for local
variables vs global variables.

Win32 GUI: Mapping <M-F> didn't work.  Now handle SHIFT and CTRL in
_OnSysChar().

Win32 GUI: (on no file), :vs<CR>:q<CR> left a trail of pixels down the middle.
Could also happen for the ruler.  screen_puts() didn't clear the right char in
ScreenLines[] for the bold trick.

GUI: With vertical splits the left&right scrollbars could both belong to one
window.

Win32: ":%!sort|uniq" didn't work, because the input file name touches the
"|".  Insert a space before the "|".

":silent let" made Vim hang.

OS/2: Expanding wildcards included non-existing files.  Caused ":runtime" to
fail, which caused syntax highlighting to fail.

":set go+=ga" kept duplicate 'g'.

Doing "65535p" with a single character at end of file, didn't scroll to show
part of the long line.  Only in compatible mode.

When 'equalalways' is off, closing the help window could mess up other window
positions.

Changing indent could be very slow, especially when using folding.  Don't set
the indent by deleting and inserting separate characters.  Call
changed_lines() only once for re-indenting several lines.

The configure check for GTK put the linker options -L after the -l ones, and
before the object files.  That doesn't always work.  Moved the GTK and Gnome
linker options to after the object files, first the -L and then the -l ones.

Mac: Also accept tags files in DOS format. (Axel Kielhorn)

Pasting a register containing CTRL-R on the command line could cause an
endless loop that can't be interrupted.  Now it can be stopped with CTRL-C.

Epilogue
--------

WARNING: This is really an unstable version.  Many things have been added
without proper testing.  It does crash.  It may destroy your work.

This version is for developers, thus it comes as source code only.
If you run into something that doesn't work, please try to figure out why,
try to solve it and send me a patch.  If you can't do that, at least send me
precise information to save me time.

If you don't like the syntax of a command, the name of an option or how the
new features work, let's discuss this in the vim-dev maillist.

More info for the new 6.0 features at ":help version6".

Lots of things are not working yet.  Check ":help todo" for known items.

I NEED YOUR HELP: There is still a lot of work to be done.  If I have to do it
all by myself it will take a very long time until Vim.6.0 is ready.  Please
give a hand by implementing one of the items in the todo list.

You can find it here: ftp://ftp.vim.org/pub/vim/unreleased/

unix/vim-6.0i-rt.tar.gz		runtime files
unix/vim-6.0i-src.tar.gz	sources

extra/vim-6.0i-extra.tar.gz	extra files
extra/vim-6.0i-lang.tar.gz	multi-language files

Happy Vimming!