Subject: Vim 6.0z alpha available
From: Bram Moolenaar <[email-masked]>
To: [email-masked]
Date: Sat, 24 Mar 2001 21:09:02 +0100

I finished the todo items for multi-byte characters and vertical splits.
If you find any problems in these areas, let me know.

Hopefully I'll have something nice for
you next week...  No, not a beta release.

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

":language" can now set the messages and ctype separately.  Allows using
English messages while editing Japanese text, for example.

Added "O" command to the explorer plugin.  (Mark Waggoner)  And a mapping for
double mouse click.  Now you can use a vertical split, with an explorer in the
left window, like in many IDEs.  Double-click on a directory to move around in
the file system.  Double-click on a file name to open that file in the window
on the right side.

Added match highlighting local to a window: ":match" command.  Allows
highlighting an item in the current window without interfering with syntax
highlighting.

Added commands to move the current window to the very top (CTRL-W K), bottom
(CTRL-W J), left (CTRL-W H) and right (CTRL-W L).  In the new position the
window uses the full width/height of the screen.  Allows reorganizing the
window layout in many ways.

When resizing the Vim window, don't use 'equalalways'.  Avoids that making the
Vim window smaller makes split windows bigger.  And it's what the docs say.

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

The jumplist is now a separate feature.  It is disabled for the "small"
version (16 bit MS-DOS).

Report 'modified' as changed when 'fileencoding' or 'fileformat' was set.
Thus it reflects the possibility to abandon the buffer without losing changes.

When closing the help window restore the layout from before opening it, if the
window layout didn't change since then.
When opening the help window, only put it at the top if the current window is
less than 80 characters and not full width.

Added DSSSL syntax (Johannes Zellner)

Added runtime/delmenu.vim.  Source this to remove all menus and prepare for
loading new menus.  Useful when changing 'langmenu'.

When there is not enough room in the status line for both the file name and
the ruler, use up to half the width for the ruler.  Useful for narrow windows.

When printing a verbose message about sourcing another file, print the line
number of the script it was sourced from.

GUI: Use a vertical scroll region, to make scrolling in a vertically split
window faster.  No need to redraw the whole window.

When ":silent[!]" is used don't use a delay after showing an [error] message.
Otherwise there would be a delay without a message to be read.
Don't do 'showmatch' either.

The file name generated by ":mkview" and ":loadview" now has ".vim" at the end
to make it easy to recognize the file as a Vim script.

Added the "DarkYellow" color name.  Just to make the list of standard colors
consistent, it's not really a nice color to use.

Athena: support changing the menu font, like with Motif. (David Harrison)

Added "reconfig" as a target for make.  Useful when changing some of the
arguments that require flushing the cache, such as switching from GTK to
Motif.  Adjusted the meaning of GUI_INC_LOC and GUI_LIB_LOC to be consistent
over different GUIs.

Fixes
-----

Motif: When compiled without a toolbar was still accessing toolBar and
toolBarFrame. (Zoltan Arpadffy)

Multi-byte:
- When using double-byte 'encoding' and completing words, a word starting
  with a non-word character could include a newline (zero).  Made test 32
  fail.
- "\w" and "\W" worked different for multi-byte characters.  Now made them
  work as documented to only match [0-9A-Za-z_] or its complement.  Made test
  36 fail.
- When using a multi-byte 'encoding', searching in a hidden buffer caused a
  ml_get error.
- Couldn't compile without FEAT_MBYTE but with FEAT_KEYMAP.
- Matching "\S\+" or another character class for not being some ASCII
  character, didn't work (for any multi).
- The "from" and "to" parts in a 'keymap' line could only be 20 bytes.  That's
  not enough for <char-> constructs.  Made it 200 bytes.
- When using GTK, the ":language" command caused a "locale not supported"
  error message.  Set $LC_CTYPE and clear $LC_ALL to overrule any other value
  before calling gtk_set_locale().
- Win32 GUI: Drawing UTF-8 characters was done one at a time, which is slow.
  Now draw all characters up to a composing character at once.
- ":map" showed wrong output for special keys.
- ":mksession" couldn't write a mapping with multi-byte characters.
- When the status line doesn't have enough room, shortening the file name
  didn't work correctly.

Removed "Failed to open input method" error message, too many people got this
when they didn't want to use a XIM.

An ambiguous mapping was not used when timing out.
An ambiguous mapping was not used when there was a termcap code after a part
where another mapping matched.

GUI: When compiled without the +windows feature, the scrollbar would start
below line one.

"last | rewind" in a vimEnter autocmd caused syntax HL to disappear.  Was
caused by ":setfiletype" rejecting a new filetype even though another buffer
is being edited.

The "buffer changed since..." message was written into a fixed size buffer.
That caused a crash when the translated message was longer, e.g., German.

Motif: Setting the menu font didn't change the size of the menu items.  And
the default font was not the right one. (David Harrison)
When using ":hi menu font=name" in the .vimrc file, the font wasn't used.

Motif: the scrollbar colors for a new scrollbar were different from after a
":hi scrollbar" command.

Removed the trick with redefining character class functions from regexp.c.

Win32 GUI: Find dialog gives focus back to main window, when typing a
character mouse pointer is blanked, it didn't reappear when moving it in the
dialog window. (Vince Negri)

Folding: with expression folding, a "<1" stopped level 2 folds in the previous
line, instead of the current line.
In the fold column with two folds starting in the same column, only one got a
"-".

Crash when doing ":mksession" when a buffer was ":bdelete"d and then listed
again.

":mksession" stored mappings with script-local function calls (e.g. from the
explorer plugin), that doesn't work when they are restored.

When recording and typing a CTRL-C, no character was recorded.  When in Insert
mode or cancelling half a command, playing back the recorded sequence wouldn't
work.  Now record the CTRL-C.

When the GUI was started, mouse codes for DEC and netterm were still checked
for.

GUI: When scrolling and 'writedelay' is non-zero, the character under the
cursor was displayed in the wrong position (one line above/below with
CTRL-E/CTRL-Y).

":colder" didn't update the highlighting in the quickfix window properly.

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

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

Happy Vimming!