Subject: Vim 6.0x alpha available
From: Bram Moolenaar <[email-masked]>
To: [email-masked]
Date: Sun, 11 Mar 2001 20:49:58 +0100

The usual bug fixes and a few new items.  Many changes for
multi-byte characters, watch out for problems in that area.

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

Added expansion of curly braces in variable and function names.  This can be
used for variable names that include the value of the an option.  Or a
primitive form of arrays.  See ":help curly-braces-names". (Vince Negri)

":let &opt = val" now sets the local and global values, like ":set".  New
commands have been added to set the global or local value:
	:let &opt = val		like ":set"
	:let &g:opt = val	like ":setglobal"
	:let &l:opt = val	like ":setlocal"

Also use 'includeexpr' for "gf" and "<cfile>" when the file can't be found
without modification.  Useful for doing "gf" on the name after an include or
import statement.

When using ":cn" and ":cp" and there is a quickfix window, position the cursor
in the quickfix window on the current entry.
Highlight the line with the current entry, so that you can see where you are.

The "p" command can now be used in Visual mode.  It overwrites the selected
text with the contents of a register.

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

The 'keymap' is now loaded with 'cpoptions' set to "C".  This makes the
mappings be interpreted consistently.

Changed "FillColumn" to "VertSplit" (name used for highlighting the separator
of vertically split windows).

Use "SpecialKey" highlighting for unprintable characters instead of "NonText".
The idea is that unprintable text or any text that's displayed differently
from the characters in the file is using "SpecialKey", and "NonText" is used
for text that doesn't really exist in the file.

The "xfontset" feature isn't required for "xim".  These are now two
independent features.

Added NLS support for Win32 with the MingW compiler. (Eduardo Fernandez)

XIM: enable XIM when typing a language character (Insert mode, Search pattern,
"f" or "r" command).  Disable XIM when typing a Normal mode command.

Classification of UTF-8 characters makes it possible to use "w" and similar
commands on multi-byte characters.

Added 'm' flag to 'formatoptions': When wrapping words, allow splitting at
each multibyte character, not only at a space.

Added tooltips for the Motif GUI toolbar.  Uses the "ballooneval" feature from
the Sun Workshop integration.  Enabled that feature without including the
other workshop features.

Added a default 'errorformat' value for VMS. (Jim Bush)

When asked to display the value of a hidden option, tell it's not supported.

GTK GUI: When dropping a file on Vim, remove extra slashes from the start of
the path.  Also shorten the file name if possible.

Let "%p" in 'errorformat' (column of error indicated by a row of characters)
also accept a line of dots.

Fixes
-----

The Sniff interface didn't work.  Changed "ex_ni" to "ex_sniff" in ex_cmds.h.
(Zdenek Sekera)

When using the Sniff interface, the Vim variables used should be global.
(Zdenek Sekera)

When using the "C" command while 'virtualedit' is set to "all", the cursor
moved one character forward.

":echo input("abcd")" caused garbage to appear or crash Vim.

"g CTRL-G" didn't count correctly in Visual block mode. (Chase Tingley)

Repeating text typed for a Select-mode selection inserted a 'c' character.

Multi-byte:
- Using an any-but character range [^x] in a regexp didn't work for UTF-8.
  (Muraoka Taro)
- When backspacing over inserted characters in Replace mode multi-byte
  characters were not handled correctly. (Muraoka Taro)
- Search commands "#" and "*" didn't work with multibyte characters. (Muraoka
  Taro)
- Word completion in Insert mode didn't work with multibyte characters.
  (Muraoka Taro)
- Athena/Motif GUI: when 'linespace' is non-zero the cursor would be drawn too
  wide (number of bytes instead of cell width).
- When changing 'encoding' to "euc-jp" and inserting a character Vim would
  crash.
- For euc-jp characters positioning the cursor would sometimes be wrong.
  Also, with two characters with 0x8e leading byte only the first one would be
  displayed.
- When using DYNAMIC_ICONV on Win32 conversion might fail because of using the
  wrong error number. (Muraoka Taro)
- Using Alt-x in the GUI while 'encoding' was set to "utf-8" didn't produce
  the right character.
- When 'encoding' is changed, reload the 'keymap'.
- When using Visual block selection and only the left halve of a double-wide
  character is selected, the highlighting continued to the end of the line.
- Visual-block delete didn't work properly when deleting the right halve of a
  double-wide character.
- Overstrike mode for the cmdline replaced only the first byte of a multibyte
  character.
- The cursor in Replace mode (also in the cmdline) was to small on a
  double-wide character.
- When a multibyte character contained a 0x80 byte, it didn't work (was using
  a CSI byte instead). (Muraoka Taro)
- Wordwise selection with the mouse didn't work.
- Yanking a non-Visual selection of multi-byte characters didn't work.
- When 'selection' is "exclusive", selecting a word that ends in a multi-byte
  character used wrong highlighting for the following character.

Win32 GUI: CTRl-- produced CTRL-^ instead of CTRL-_.

Win32 with Make_mvc.mak: Didn't compile for debugging. (Craig Barkhouse)

Win32 GUI: When editing closed folds, dragging the scrollbar and then clicking
on a scrollbar arrow caused a jump.

Win32 GUI: When "vimrun.exe" is used to execute an external command, don't
give a message box with the return value, it was already printed by vimrun.
Also avoid printing the return value of the shell when ":silent!" is used.

Win32 console: When resizing the console in the vimrc file, Vim could get
stuck on writing characters outside of the window.

Win32 console: With ":set lines=60" in vimrc, starting with "vim -D", could
not see what happens after 'lines' changed and caused a hang.  Now ignore
errors when writing characters to the console.  Resize the console when going
to wait for a typed character.

Win32: Don't use the MS-DOS digraphs, use latin1 (Unicode).

Win32: selecting a lot of text and using the "find/replace" dialog caused a
crash.

Win32 console: The screen was flashing when executing a shell command. (Craig
Barkhouse)

X11 GUI: When typing a character with the 8th bit set and the Meta/Alt
modifier, the modifier was removed without changing the character.

Truncating a message to make it fit on the command line, using "..." for the
middle, didn't always compute the space correctly.

When inserting an expression with "CTRL-R = {expr}<CR>" a special key like
"\<Left>" was inserted as three bytes instead of being interpreted as a
command.

"\<char-0x1234>" only used the lower 8 bits of the resulting character.

The default value for 'linespace' wasn't set.

Didn't compile with the folding feature enabled and the vertical split feature
disabled.

Folding: When making changes in the text with 'foldmethod' set to "syntax",
folds below the change were not always updated.

Folding: A fold containing a long line with 'nowrap' set, cursor somewhere in
the line, "zs" and "ze" made the screen scroll, and displayed the cursor in
foldcolumn.

When 'virtualedit' is "all" and past the end of the line, "o" started
inserting too far to the right.  "coladd" wasn't reset to zero.

Balloon evaluation didn't keep the fixed string that was set.

With Visual-line highlighting, CTRL-D a few times then CTRL-U, highlighting
wasn't removed in scrolled text.

With 'list' set, $ in last column caused an empty line to appear below it.
Also caused cursor positioning to be wrong.

CTRL-^ to a file where the cursor is placed on last the line by an autocommand
drawed the first lines of the file sometimes.  A CTRL-L fixed it.

Mouse double-click-drag didn't keep wordwise selection until dragging ends.

Could not imap <C-@>.  Now it works like <Nul>.

Using ":split" in the quickfix window made it appear twice.  Now it works like
":new".

When inserting characters in a line at the bottom of the window, making it
wrap, the screen wasn't updated until the next character was typed.

Using the mouse to grab the "|" character right of the status line of a
vertically split window still dragged the status line, instead of the vertical
separator.

VMS: Fixed a few things for VAXC.  os_vms_fix.com had some strange CTRL-M
characters. (Zoltan Arpadffy and John W. Hamill)

The gzip plugin used a ":normal" command, this doesn't work when dropping a
compressed file on Vim.  Changed the ":bdel" to ":bwipeout" to completely
remove the temporary buffers.

In very rare situations a binary search for a tag would fail, because an
uninitialzed value happens to be half the size of the tag file. (Narendran)

When using BufEnter and BufLeave autocommands to enable/disable a menu, it
wasn't updated right away.

When starting Vim without a file, the window title would not be set.

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

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

Happy Vimming!

-- 
hundred-and-one symptoms of being an internet addict:
132. You come back and check this list every half-hour.

 ///  Bram Moolenaar -- [email-masked] -- http://www.moolenaar.net  \\\
(((   Creator of Vim - http://www.vim.org -- ftp://ftp.vim.org/pub/vim   )))
 \\\  Help me helping AIDS orphans in Uganda - http://iccf-holland.org  ///

From vim-dev-return-9666-guckes=[email-masked] Sun Mar 11 20:01:33 2001
Mailing-List: contact [email-masked]; run by ezmlm
To: [email-masked]
Subject: Vim 6.0x alpha available
From: Bram Moolenaar <[email-masked]>
Date: Sun, 11 Mar 2001 20:49:58 +0100
Sender: [email-masked]
Status: RO
Content-Length: 10414
Lines: 263

The usual bug fixes and a few new items.  Many changes for multi-byte
characters, watch out for problems in that area.

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

Added expansion of curly braces in variable and function names.  This can be
used for variable names that include the value of the an option.  Or a
primitive form of arrays.  See ":help curly-braces-names". (Vince Negri)

":let &opt = val" now sets the local and global values, like ":set".  New
commands have been added to set the global or local value:
	:let &opt = val		like ":set"
	:let &g:opt = val	like ":setglobal"
	:let &l:opt = val	like ":setlocal"

Also use 'includeexpr' for "gf" and "<cfile>" when the file can't be found
without modification.  Useful for doing "gf" on the name after an include or
import statement.

When using ":cn" and ":cp" and there is a quickfix window, position the cursor
in the quickfix window on the current entry.
Highlight the line with the current entry, so that you can see where you are.

The "p" command can now be used in Visual mode.  It overwrites the selected
text with the contents of a register.

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

The 'keymap' is now loaded with 'cpoptions' set to "C".  This makes the
mappings be interpreted consistently.

Changed "FillColumn" to "VertSplit" (name used for highlighting the separator
of vertically split windows).

Use "SpecialKey" highlighting for unprintable characters instead of "NonText".
The idea is that unprintable text or any text that's displayed differently
from the characters in the file is using "SpecialKey", and "NonText" is used
for text that doesn't really exist in the file.

The "xfontset" feature isn't required for "xim".  These are now two
independent features.

Added NLS support for Win32 with the MingW compiler. (Eduardo Fernandez)

XIM: enable XIM when typing a language character (Insert mode, Search pattern,
"f" or "r" command).  Disable XIM when typing a Normal mode command.

Classification of UTF-8 characters makes it possible to use "w" and similar
commands on multi-byte characters.

Added 'm' flag to 'formatoptions': When wrapping words, allow splitting at
each multibyte character, not only at a space.

Added tooltips for the Motif GUI toolbar.  Uses the "ballooneval" feature from
the Sun Workshop integration.  Enabled that feature without including the
other workshop features.

Added a default 'errorformat' value for VMS. (Jim Bush)

When asked to display the value of a hidden option, tell it's not supported.

GTK GUI: When dropping a file on Vim, remove extra slashes from the start of
the path.  Also shorten the file name if possible.

Let "%p" in 'errorformat' (column of error indicated by a row of characters)
also accept a line of dots.

Fixes
-----

The Sniff interface didn't work.  Changed "ex_ni" to "ex_sniff" in ex_cmds.h.
(Zdenek Sekera)

When using the Sniff interface, the Vim variables used should be global.
(Zdenek Sekera)

When using the "C" command while 'virtualedit' is set to "all", the cursor
moved one character forward.

":echo input("abcd")" caused garbage to appear or crash Vim.

"g CTRL-G" didn't count correctly in Visual block mode. (Chase Tingley)

Repeating text typed for a Select-mode selection inserted a 'c' character.

Multi-byte:
- Using an any-but character range [^x] in a regexp didn't work for UTF-8.
  (Muraoka Taro)
- When backspacing over inserted characters in Replace mode multi-byte
  characters were not handled correctly. (Muraoka Taro)
- Search commands "#" and "*" didn't work with multibyte characters. (Muraoka
  Taro)
- Word completion in Insert mode didn't work with multibyte characters.
  (Muraoka Taro)
- Athena/Motif GUI: when 'linespace' is non-zero the cursor would be drawn too
  wide (number of bytes instead of cell width).
- When changing 'encoding' to "euc-jp" and inserting a character Vim would
  crash.
- For euc-jp characters positioning the cursor would sometimes be wrong.
  Also, with two characters with 0x8e leading byte only the first one would be
  displayed.
- When using DYNAMIC_ICONV on Win32 conversion might fail because of using the
  wrong error number. (Muraoka Taro)
- Using Alt-x in the GUI while 'encoding' was set to "utf-8" didn't produce
  the right character.
- When 'encoding' is changed, reload the 'keymap'.
- When using Visual block selection and only the left halve of a double-wide
  character is selected, the highlighting continued to the end of the line.
- Visual-block delete didn't work properly when deleting the right halve of a
  double-wide character.
- Overstrike mode for the cmdline replaced only the first byte of a multibyte
  character.
- The cursor in Replace mode (also in the cmdline) was to small on a
  double-wide character.
- When a multibyte character contained a 0x80 byte, it didn't work (was using
  a CSI byte instead). (Muraoka Taro)
- Wordwise selection with the mouse didn't work.
- Yanking a non-Visual selection of multi-byte characters didn't work.
- When 'selection' is "exclusive", selecting a word that ends in a multi-byte
  character used wrong highlighting for the following character.

Win32 GUI: CTRl-- produced CTRL-^ instead of CTRL-_.

Win32 with Make_mvc.mak: Didn't compile for debugging. (Craig Barkhouse)

Win32 GUI: When editing closed folds, dragging the scrollbar and then clicking
on a scrollbar arrow caused a jump.

Win32 GUI: When "vimrun.exe" is used to execute an external command, don't
give a message box with the return value, it was already printed by vimrun.
Also avoid printing the return value of the shell when ":silent!" is used.

Win32 console: When resizing the console in the vimrc file, Vim could get
stuck on writing characters outside of the window.

Win32 console: With ":set lines=60" in vimrc, starting with "vim -D", could
not see what happens after 'lines' changed and caused a hang.  Now ignore
errors when writing characters to the console.  Resize the console when going
to wait for a typed character.

Win32: Don't use the MS-DOS digraphs, use latin1 (Unicode).

Win32: selecting a lot of text and using the "find/replace" dialog caused a
crash.

Win32 console: The screen was flashing when executing a shell command. (Craig
Barkhouse)

X11 GUI: When typing a character with the 8th bit set and the Meta/Alt
modifier, the modifier was removed without changing the character.

Truncating a message to make it fit on the command line, using "..." for the
middle, didn't always compute the space correctly.

When inserting an expression with "CTRL-R = {expr}<CR>" a special key like
"\<Left>" was inserted as three bytes instead of being interpreted as a
command.

"\<char-0x1234>" only used the lower 8 bits of the resulting character.

The default value for 'linespace' wasn't set.

Didn't compile with the folding feature enabled and the vertical split feature
disabled.

Folding: When making changes in the text with 'foldmethod' set to "syntax",
folds below the change were not always updated.

Folding: A fold containing a long line with 'nowrap' set, cursor somewhere in
the line, "zs" and "ze" made the screen scroll, and displayed the cursor in
foldcolumn.

When 'virtualedit' is "all" and past the end of the line, "o" started
inserting too far to the right.  "coladd" wasn't reset to zero.

Balloon evaluation didn't keep the fixed string that was set.

With Visual-line highlighting, CTRL-D a few times then CTRL-U, highlighting
wasn't removed in scrolled text.

With 'list' set, $ in last column caused an empty line to appear below it.
Also caused cursor positioning to be wrong.

CTRL-^ to a file where the cursor is placed on last the line by an autocommand
drawed the first lines of the file sometimes.  A CTRL-L fixed it.

Mouse double-click-drag didn't keep wordwise selection until dragging ends.

Could not imap <C-@>.  Now it works like <Nul>.

Using ":split" in the quickfix window made it appear twice.  Now it works like
":new".

When inserting characters in a line at the bottom of the window, making it
wrap, the screen wasn't updated until the next character was typed.

Using the mouse to grab the "|" character right of the status line of a
vertically split window still dragged the status line, instead of the vertical
separator.

VMS: Fixed a few things for VAXC.  os_vms_fix.com had some strange CTRL-M
characters. (Zoltan Arpadffy and John W. Hamill)

The gzip plugin used a ":normal" command, this doesn't work when dropping a
compressed file on Vim.  Changed the ":bdel" to ":bwipeout" to completely
remove the temporary buffers.

In very rare situations a binary search for a tag would fail, because an
uninitialzed value happens to be half the size of the tag file. (Narendran)

When using BufEnter and BufLeave autocommands to enable/disable a menu, it
wasn't updated right away.

When starting Vim without a file, the window title would not be set.

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

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

Happy Vimming!