From: Bram Moolenaar To: vim-dev@vim.org Subject: Vim version 5.2h BETA available Date: Mon, 27 Jul 98 09:46:10 +0200 Message-Id: <9807270747.AA01868@smtp02.oce.nl> Hello Vim fans! This is the first beta release of 5.2. I changed quite a few things since the last alpha release, but I don't have time to delay the beta testing. However, I'll wait with an announcement in vim-announce and comp.editors until it seems to be working for most people. Most important changes: Added the 'selection' option. When set to "inclusive" or "exclusive", the cursor can go one character past the end of the line in Visual or Select mode. This allows for including the newline in the selection. When set to "old" the old behaviour is used. When "inclusive", the character under the cursor is included in the operation. When using "exclusive", the new "ve" entry of 'guicursor' is used. The default is a vertical bar. This makes the cursor visible (used to be a black cursor on a black background). Moved the mode message ("-- INSERT --") to the last line of the screen. When 'cmdheight' is more than one, most messages will remain readable. synIDattr() takes a third argument (optionally), which tells for which terminal type to get the attributes for. This makes it possible to run 2html.vim outside of gvim (using color names instead of #RRGGBB). Plenty of other bug fixes and new stuff. See the list below. The result is still an UNSTABLE version. Please test it as much as possible. The files are in the "unreleased" directory, just like version 5.2g. WHERE TO GET IT --------------- You can find Vim 5.2h here: ftp://ftp.nl.vim.org/pub/vim/unreleased/ See this file for Mirrors: ftp://ftp.nl.vim.org/pub/vim/MIRRORS unix/vim-5.2h-src.tar.gz source files for Unix unix/vim-5.2g-5.2h-src.diff.gz diff with version 5.2g unix/vim-5.2h-rt.tar.gz runtime files for Unix unix/vim-5.2g-5.2h-rt.diff.gz diff with version 5.2g extra/vim-5.2h-extra.tar.gz extra files extra/vim-5.2g-5.2h-extra.diff.gz diff with version 5.2g pc/vim52hrt.zip runtime files for PC pc/vim52hd16.zip 16 bit DOS binaries for PC pc/vim52hd32.zip 32 bit DOS binaries for PC pc/vim52hw32.zip Win32 binaries for PC NOTE: ctags and xxd are 32 bit DOS versions, because ctags refused to compile in Win32 mode. pc/gvim52h.zip Win32 GUI binaries for PC pc/gvim52hole.zip Win32 GUI binaries with OLE for PC pc/gvim52h_s.zip Windows 3.1 GUI binaries for PC pc/vim52hsrc.zip source files for PC amiga/vim52hrt.tgz runtime files for Amiga amiga/vim52hbin.tgz binaries for Amiga amiga/vim52hbig.tgz binaries with more features for Amiga amiga/vim52hsrc.tgz source files for Amiga os2/vim52hos2.zip binaries + runtime files for OS/2 NOTE: ctags is the 16 bit DOS version, because ctags refused to compile under OS/2. WHAT IS NEW ----------- This is the complete list of changes since version 5.2g. For a list of changes since version 5.1, see ":help version-5.2". Changed: User defined commands must now start with a capital. (Moore) "-nargs" argument to user defined commands changed (? for 0-1 and + for 1-*) Renamed 'cscopexec' to 'cscopeprg' and 'cstagalways' to 'cscopetag'. Renamed 'wii' to 'wig' (short for 'wildignore'). For local variables "l:" is no longer needed (but still allowed). In a fucntion, global variables now need to be accessed with "g:". This is also allowed outside of functions. Renamed short name of 'selectmode' from 'sel' to 'slm'. The default for 'selection' is "inclusive", which makes a difference when using "$" or the mouse to move the cursor in Visual mode. Renamed "gt" to "gh", "gT" to "gH", "g^T" to "g^H". It's mnemonic is "get highlighted". In Selectmode, when using a linewise selection, operate characterwise on the whole lines. This makes a difference when pasting the text. ":q!" does not exit when there are changed buffers which are hidden. Use ":qa!" to exit anyway. Disabled the Perl/Python/Tcl interfaces by default. Not many people use them and they make the executable a lot bigger. The internal scripting language is now powerful enough for most tasks. Added: Check that a function name starts with a capital when it's defined. Otherwise it can't be called later. Win32 GUI: Tearoff entries are now (almost) aligned like normal menu entries. (Negri) Included Exuberant ctags version 2.2.1. (Hiebert) When showing the Visual area, the cursor is not switched off, so that it can be located. The Visual area is now highlighted with a grey background in the GUI. This makes the cursor visible when it's also reversed. "mswin.vim" script. Sets behaviour mostly like MS-Windows. Win32 GUI: Made CTRL-Break work as interrupt, so that CTRL-C can be used for mappings. 'maxfuncdepth' option. Restricts the depth of function calls. Avoids trouble (crash because of out-of-memory) when a function uses endless recursiveness. "set opt^=val", prepend value to a string option. For number options it multiplies the new value with the old value. matchstr() function: Return matched string. setline() function: Set a line to a string value. CTRL-V xff enters character by hex number. CTRL-V o123 enters character by octal number. (Aaron) Multi-byte code can now always be enabled. The 'fileencoding' option then decides how the text in the file is encoded. ":ascii" works for multi-byte characters. Multi-byte characters work on Windows 95, even when using the US version. (Aaron) Give an error message when a user defined command is abbreviated and matches two or more commands. (Moore) Improved performance of syntax highlighting by skipping check for "keepend" when there isn't any. Made third argument to confirm() (default choice) optional. When a tags file is not sorted, and this is detected (in a simplistic way), an error message is given. When removing or replacing a menu, compare the menu name only up to the the before the mnemonic. When listing matching files, they are also sorted on 'suffixes', such that they are listed in the same order as CTRL-N retrieves them. The PopUp menu is now split into one for each mode. Items that are not valid in this mode are not displayed. Fixed: User defined commands didn't work with "-nargs=0-1", "-nargs=0-*" or "-nargs=1-*". The command list was sorted backwards. (Moore) User defined function names were compared while ignoring case. Typing a backspace for a command line with an indent (after a ":if" or ":function") aborted the whole thing. Now the backspace is ignored. Test for readonly file failed. Misplaced ")" after an open(). Crash when making a window maximum height, when there are other windows. ":simalt" didn't work, because ":si" was recognized as ":substitute" with the "i" flag. (Negri) Prototypes for a few multibyte functions in gui_w32.pro were wrong. Made the functions static. Text pasted with the Edit/Paste menu was subject to 'textwidth' and 'autoindent'. That was inconsistent with using the mouse to paste. Now "*p is used. When using CTRL-W CTRL-] on a word that's not a tag, and then CTRL-] on a tag, window was split. Win32 GUI: A menu was not properly greyed-out when it had tearoff items. When only tearoff items remain in a menu, it was not removed. Items in the tearoff menu were not greyed out depending on the mode. (Negri) Win32 GUI: Tearing off a menu always changed the mode to Normal. ":ts" got stuck on a tags line that has two extra fields. Renamed "install.c" to "dosinst.c" to avoid problems with "make install" for some versions of make. There was no check for CTRL-C while executing user functions. Bug in :set -=: When 'su' is ".ccp,.c", ":set su-=.c" resulted in "pp,.c" instead of ".cpp". In Insert mode, with 'showmode' on, message was directly overwritten by mode message, if preceded with search command warning message. When putting the result of an expression with "=p, newlines were inserted like ^@ (NUL in the file). Now the string is split up in lines at the newline. With 'mousefocus', when using CTRL-W CTRL-W the mouse pointer was warped even when beside the window (but not when above or below it). X11 GUI: 'mousefocus' was also changed when pointer was in a scrollbar. non-Win32 GUI: A 'T' flag in 'guioptions' caused empty space to appear below the menu bar, where the toolbar would go. putenv() was declared with "const char *" in pty.c, but with "char *" in osdef2.h.in. Made the last one also "const char *". ":help ", where + is a feature, jumped to the feature list instead of where the command was explained. E.g., ":help browse", ":help autocmd". Using the "\" form in an expression only got one byte, even when using a special character that uses several bytes (e.g., "\"). Changed "\" to produce CTRL-H instead of the special key code for the backspace key. "\" produces 0x7f. ":mkvimrc" didn't write a command to set 'compatible' or 'nocompatible'. The shell syntax didn't contain a "syn sync maxlines" setting. In a long file without recognizable items, syncing took so long it looked like Vim hangs. Added a maxlines setting, and made syncing interruptable. When using a function that doesn't abort on an error, an ":enwhile" still didn't jump back to the ":while" after an error. When the first character of the first choice for a confirm() was uppercase, it could not be used. The "gs" command didn't flush output before waiting. There was no wait for return when a listing from command line completion caused a more-prompt, which was cancelled. Memory leaks for: ":if 0 | let a = b . c | endif" "let a = b[c]" ":so " where contains a ":while" Win32 GUI: When using the shift key, and 'mousehide' is set, the mouse pointer got hidden because of a blinking cursor. Now it only happens when the shift key is released. Happy Vimming! ===