Subject: Vim version 6.0ab ALPHA available
From: Bram Moolenaar <[email-masked]>
To: [email-masked]
Date: Mon, 16 Apr 2001 22:08:58 +0200

A large variety of items this time.

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

Added the "evim" command: Easy Vim.  Starts Vim with 'insertmode' set to allow
click-and-type editing.  Only for people who can't stand two modes.
"eview" does the same but in readonly mode.
"vim -y" does the same as "evim".  "view -y" the same as "eview".
In the GUI a CTRL-C only interrupts when busy with something, not when waiting
for a character.  Allows using CTRL-C to copy text to the clipboard.

Added the ":saveas" command.  Works like ":w file" and ":e #", but without
loading the file again and avoiding other side effects.

Modeless selection:
- When in the command-line window, use modeless selection in the other
  windows.  Makes it possible to copy visible text to the command-line window.
- Support modeless selection on the cmdline in a terminal.  Previously it was
  only possible for the GUI.
- Make double-right-click in modeless selection select a whole word.  Single
  right click doesn't use the word selection started by a double-left-click.
  Makes it work like in Visual mode.

Made ":normal" work in an event handler.  Useful when dropping a file on Vim
and for CursorHold autocommands.
Added the eventhandler() function: returns 1 when inside an event handler and
interactive commands can't be used.
":normal" does no longer hang when the argument ends in half a command.
Previously Vim would wait for more characters to be typed, without updating
the screen.  Now it pretends an <Esc> was typed.

Added gettext support for Win32.  This means messages will be translated when
the locale is set and libintl.dll can be found.  (Muraoka Taro)

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

Diff mode improvements:
- When opening a window for diff-mode, set 'foldlevel' to zero and
  'foldenable' on, to close the folds.
- Make diff'ing not give the hit-return prompt for Windows.
- Allow up to 4 buffers in diff mode (was 3).
- Added ":diffget" and "diffput" commands to remove differences.
- Added "icase" and "iwhite" to 'diffopt': ignore case or white space.

Formatting text with "gq" breaks a paragraph at a non-empty blank line.
Previously the line would be removed, which wasn't very useful.

Renamed all types ending in _t to end in _T.  Avoids potential problems with
system types.

Support dynamic loading of the Ruby interface on MS-Windows. (Muraoka Taro)
Support this for Mingw too. (Benoit Cerrina)

When scrolling isn't possible with terminal codes (e.g., for a vertically
split window) redraw from ScreenLines[].  That should be faster than going
through the lines with win_line(), especially when using syntax highlighting.

Added a GetHwnd() call to the OLE interface.  (Vince Negri)

Added the ":grepadd" command.  Works just like ":grep" but adds to the current
error list instead of defining a new list.

Added Turkish message translations. (Fatih Demir)

Included French translation of the vimtutor. (Adrien Beau)

Support menu separator lines for Athena.  (David Harrison)
Added tooltips for Athena. (David Harrison)

Added a configure check for X11 header files that implicitly define the return
type to int. (Steve Wall)

Updated the table for Unicode composing characters according to a new version
from Markus Kuhn.

Added a Perl script to filter Perl error messages to quickfix usable format.
(Joerg Ziefle)

For the MS-Windows version, don't change to the directory of the file when a
slash is used instead of a backslash.  Explorer should always use a backslash,
the user can use a slash when typing the command.

When a buffer was changed outside of Vim and regaining focus, give a dialog to
allow the user to reload the file.  Now also for other GUIs than MS-Windows.
And also used in the console, when compiled with dialog support.

GUI: For Athena, Motif and GTK look for a toolbar bitmap in the "bitmaps"
directories in 'runtimepath'.  Allows adding your own bitmaps.

Added "exclude:" in 'clipboard': Specify a pattern to match against terminal
names for which no connection should be made to the X server.  The default
currently work for FreeBSD and Linux consoles.

Disallow ":source <dirname>".  On unix it's possible to read a directory.

Fixes
-----

"loff_t" is used by others.  Renamed it to "lineoff_T".

Motif: didn't compile without fontset support. (Mary Ellen Foster)

QNX: Scrolling vertically split windows didn't work right.  And a few other
fixes. (Julian Kinraid)

Redirection to a register ":redir @a" was broken.

GUI: When blinking is disabled the cursor would often be invisible.

Motif: If a dialog was closed by clicking on the "X" of the window frame Vim
would no longer respond.

When doing a substitute and then making a change that splits the line, undo
information would be incorrect.  Undoing would keep the split line.  Only when
done by a mapping or another way that doesn't sync undo.

Configure could change the place of "/usr/local/lib" in $LDFLAGS, and
"/usr/local/include" for $CPPFLAGS.

Fixed a few problems for 'virtualedit': (Chase Tingley)
'virtualedit' in Insert mode <BS>, CTRL-W and CTRL-U didn't work properly.
Using "C" at the end of the line and using "b" past the end of the line.

With a vertical split and scrolling a whole page would sometimes clear the
screen and redraw everything.
Dragging the scrollbar with 'diff' made the window jump up and down.

When executing a "gq" command in Visual mode that splits lines, not all Visual
highlighting would be removed.

GUI: with a vertical split and one scrollbar, going to another window didn't
update the scrollbar.

When the quickfix window is the only window, hitting <CR> on an item could
cause a crash.

In the Quickfix window the cursor line was highlighted, instead of the line
with the current error.

Doing ":help", ":only" and then ":bn" caused a hang.  Was searching for a
listed buffer but there isn't one.

When equalizing window heights and 'winheight' is equal to 'minwinheight'
mistakes would be made.  E.g., when the current window is the quickfix window.

":mkvimrc" was still writing "version 5.0" to the file.

GUI: When a non-Visual selection was used that crosses a Vertical window
split, scrolling one of the windows would mess up the highlighting.

When 'compatible' is set, using CTRL-] in a help file to jump elsewhere and
then CTRL-T to jump back didn't keep the help flag in that file.  It would be
edited like a normal file (no help highlighting, CTRL-] doesn't work).

When 'insertmode' is set, don't always open the fold under the cursor in
Insert mode.  Otherwise it's difficult to move the cursor.

GUI Athena:
- Didn't use default colors for the menu and scrollbar.  The file selection
  dialog was completely white.
- The toolbar started right of the left scrollbar, instead of at the far left.

When using CTRL-X or CTRL-A on a number with many leading zeros, Vim would
crash. (Matsumoto)

Configure would say "Sorry" and not mention the rest of the text, because it
was truncated at a comma. (Steve Wall)

Tooltips for Motif were disappearing at a 2 seconds interval.  Ignore a window
leave event when it's not a "normal" event.

When 'insertmode' is set, the mapping in mswin.vim for CTRL-V didn't work in
Select mode.  Insert mode wasn't restarted after overwriting the text.
Now allow nesting Insert mode with insert and change commands.  CTRL-O
cwfoo<Esc> now also works.

Clicking with the right mouse button in another window started Visual mode,
but used the start position of the current window.  Caused ml_get errors when
the line number was invalid.  Now stay in the same window.

A title with multi-byte characters was not truncated correctly.  Now use the
same code as for truncating messages in the middle.  The code for truncating a
message at the start also didn't work correctly for multi-byte characters.

When 'selection' is "exclusive", "gv" sometimes selected one character less.

When 'comments' contains more than one start/middle/end triplet, the optional
flags could be mixed up.  Also didn't align the end with the middle part.

Using "~" didn't work for non-ASCII alphabetical characters.

When 'autoread' is set, reloading the file didn't cause the text to be
displayed until a key was typed.

When showing a hex number as <F1> it can be confused with function key 1.  Now
use lower case letters for hex numbers.

Displaying a mapping for an illegal byte showed an unprintable character and
the "rhs" part was misaligned.

Mapping <M-A> when 'encoding' is "latin1" and then setting 'encoding' to
"utf-8" caused the first byte of a multi-byte to be mapped.  Can cause very
hard to find problems.  Disallow mapping part of a multi-byte character.

A double-width character on the command line didn't always position the cursor
correctly.  Mouse clicks were also not handled properly.

Double-right-click in Visual mode didn't update the shown mode.

When the Normal group has a font name, it was never used when starting up.
Now use it when 'guifont' and 'guifontset' are empty.
Setting a font name to a highlight group before the GUI was started didn't
work.

"make test" didn't use the name of the generated Vim executable.

'cindent' problem: Aligned with an "else" inside a do-while loop for a line
below that loop. (Meikel Brandmeyer)

When removing 'commentstring' parts from a line to show for a closed fold, a
short string like '*' or '"' could be removed several times.

Win32 GUI: mouseshape didn't return to normal after a ":set" command.
It stayed at "no entry".  Was only visible with ":set nomousehide".

When 'list' is set, 'hlsearch' didn't highlight a match at the end of the
line.  Now highlight the '$'.

Epilogue
--------

WARNING: This is really an unstable version.  Many things have been added
without proper testing.  It does crash.  It may destroy your work.  New
features may change incompatibly in the next version.

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.

More info about the new 6.0 features with ":help version6".

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.

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 Vim 6.0 here: ftp://ftp.vim.org/pub/vim/unreleased/

unix/vim-6.0ab-rt.tar.gz	runtime files
unix/vim-6.0ab-rt.tar.bz2	same, compressed with bzip2
unix/vim-6.0ab-src.tar.gz	sources
unix/vim-6.0ab-src.tar.bz2	same, compressed with bzip2

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

Happy Vimming!