Subject: Vim 6.0p alpha available
From: Bram Moolenaar <[email-masked]>
To: [email-masked]
Date: Sun, 10 Dec 2000 22:16:19 +0100

Yet another Vim in the 6.0 series.  Mostly bug fixes this time.

Warning: The functions to read and write files have been changed again.
They have been tested, but keep a backup copy of your files, just in case.

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

Added the ^ mark: Position where Insert mode stopped last time.
Added the "gi" command: Jump to the ^ mark and start Insert mode.  Also works
when the mark is just after the line.  This command should help for Insert
mode mappings that leave Insert mode, do something and want to resume
insertion at the same position.

Added the . mark: Position of the last change.

Store the ^ and . marks in the viminfo file.  Makes it possible to jump to the
last insert position or last changed text.

Added the 'debug' option.  When set to "msg" it will print error messages that
would otherwise be omitted.  Useful for debugging 'indentexpr' and 'foldexpr'.

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

Made second argument to search() a list of flags, instead of a number that
indicates wrapping at the end of the file.  The 'b' flag is used for searching
backwards.

Win32: ":silent !cmd" no longer prompts to hit return in the DOS window.

Trigger the FileChangeRO event before actually making the change.  This allows
replacing the buffer with a file obtained from RCS without flushing the
change.

Added the v:cmdarg variable: The "++cc=" and "++ff=" arguments to file
read/write commands.  Should be used for FileReadCmd autocommands that
read/write the file themselves.

MS-Windows: Moved common functions from Win16 and Win32 to os_mswin.c.  Avoids
having to change two files for one problem.  (Vince Negri)

Win32: Typing multibyte characters without IME. (Alexander Smishlajev)

Do latin-1 to UTF-8 conversion when writing a file internally.  This no longer
requires iconv().

Do Unicode to latin-1 conversion internally.  iconv() doesn't appear to handle
this well (ucs-2le to Latin-1 fails).

Also set the '[ and '] marks for the "~" and "r" commands.  These marks are
now always set when making a change with a Normal mode command.

Added exists() check for whether an autocommand exists for a certain event
and/or pattern: exists("#event") and exists("#event#pattern").
Use this to skip loading the gzip.vim plugin if an autocommand exists for the
BufReadPre event with pattern *.gz.

Included various changes from the 5.x branch.  Mostly syntax files.

Fixes
-----

"make test" loaded plugins.  Don't do this to avoid that some strange plugin
causes problems for the test.

":cd ." gave an error message.  Interpret all paths starting with "./" and
"../" as absolute, don't use 'cdpath'.

VMS: used file_info instead of write_info in buf_write().

Folding: When creating a fold that includes an existing fold, following folds
could disappear.

Amiga: Could not create a swapfile, because it was opened with O_EXCL, while
it was already created when checking for its existence.

Amiga: Got a requester for "home:" because it's in the default runtime path.
Don't bring up a requester when searching for a file in 'path', sourcing the
.vimrc file or using ":runtime".

Motif GUI: A scrollbar was created managed, which made it appear with ":split"
even when it wasn't enabled. (David Harrison)

Win16 and Win32: Considered a file "\path\file" absolute.  Can cause the same
file to appear as two different buffers.

Win32: Renaming a file to an empty string crashed Vim.  Happened when using
explorer.vim and hitting ESC at the rename prompt.

Charcode conversion with 'charconvert' didn't work at all. (Muraoka Taro)
Charcode conversion from Latin-1 to UTF-8 wasn't done, file was written in
Latin-1.

Win32: strftime() crashed when called with a "-1" value for the time.

Win32 with Borland compiler: mch_FullName() didn't work, caused tag file not
to be found.

Cscope sometimes jumped to the wrong tag. (David Bustos)

src/po/cleanup.vim was missing from the distribution.
Message translation: "make xx.po" didn't work, because the file already
exists.  Now use "make xx".

OS/2: Could not find the tags file.  mch_expand_wildcards() added another
slash to a directory name.

When editing a file "c:\name" the title would show "(c)".  Make that "(c:\)".
(Craig Barkhouse)

Sun Workshop integration: Various fixes. (Gordon Prieur)

When setting 'verbose', script-local function names were printed with strange
characters.  Now print <SNR>.

When iconv() failed while writing, the error message suggested the writing
itself failed.

When using ">>" the `] mark was not in the last column.

":set <M-b>=^[b" worked, but then mapping <M-b> didn't.  Use "KS_KEY key" for
the termcap entry name instead of "key NUL", to avoid that it's mixed up with
another KS_ special key name.  ":set termcap" showed a strange code for <M-b>.

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.0p-rt.tar.gz		runtime files
unix/vim-6.0p-src.tar.gz	sources

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

Happy Vimming!