From: Bram Moolenaar To: vim-dev@vim.org Subject: Vim version 5.2g ALPHA available Date: Mon, 13 Jul 98 09:07:08 +0200 Message-Id: <9807130659.AA11289@smtp02.oce.nl> Hello Vim fans! This is supposed to be the last 5.2 alpha release. This means I am stopping to add new features, and concentrate on getting the existing ones right. This is the last 5.2 version with a lot of new things. A major new addition in this version is user definable Ex commands. See ":help :command". This was implemented by Paul Moore. Another addition is the "install" program for DOS and MS-Windows. I decided to make this a C program, after running into troubles with a batch script. This is meant to be used by beginners. I know that most of you don't need this, but please try it out to check that it works on your system. Since the next version is going to be beta, I don't like changing names after that. Please have a look at the options and commands that have been added since version 5.1. If something is illogical, we can still change it now. New options in 5.2: |'allowrevins'| |'ari'| allow CTRL-_ in Insert and Comamnd-line mode |'browsedir'| |'bsdir'| which directory to start browsing in |'confirm'| |'cf'| ask what to do about unsaved/read-only files |'cscopexec'| |'csexec'| command to execute cscope |'cscopetagorder'| |'csto'| determines ":cstag" search order |'cscopeverbose'| |'csverb'| give messages when adding a cscope database |'cstagalways'| |'csta'| use cscope for tag commands |'filetype'| |'ft'| system-specific filetype information |'grepformat'| |'gfm'| format of 'grepprg' output |'grepprg'| |'gp'| program to use for ":grep" |'keymodel'| |'km'| enable starting/stopping selection with keys |'listchars'| |'lcs'| characters for displaying in list mode |'mousefocus'| |'mousef'| keyboard focus follows the mouse |'mousemodel'| |'mousem'| changes meaning of mouse buttons |'selectmode'| |'sel'| when to use Select mode instead of Visual mode |'sessionoptions'| |'ssop'| options for |:mksession| |'showfulltag'| |'sft'| show full tag pattern when completing tag |'swapfile'| |'swf'| whether to use a swapfile for a buffer |'syntax'| |'syn'| syntax to be loaded for current buffer |'ttymouse'| |'ttym'| type of mouse codes generated |'wildignore'| |'wii'| files matching these patterns are not completed |'wildmode'| |'wim'| mode for 'wilchar' command-line expansion |'winaltkeys'| |'wak'| when the windows system handles ALT keys |'winminheight'| |'wmh'| minimum number of lines for any window New Normal mode commands in 5.2: |gt| gt start Select mode |gT| gT start Select line mode |g_CTRL-T| g_CTRL-T start Select block mode |gV| gV don't reselect the previous Visual area when executing a mapping or menu in Select mode |v_CTRL-G| CTRL-G switch to Select mode |gJ| gJ join lines without inserting space New Ex commands in 5.2: |:badd| :bad[d] add file to the buffer list |:behave| :be[have] set mouse and selection behaviour |:browse| :bro[wse] use file selection dialog |:call| :cal[l] call a function |:cnewer| :cnew[er] go to newer error list |:colder| :col[der] go to older error list |:comclear| :comc[lear] clear all user-defined commands |:command| :com[mand] create user-defined command |:continue| :con[tinue] go back to :while |:confirm| :conf[irm] prompt user when confirmation required |:cscope| :cs[cope] cscope command |:cstag| :cst[ag] use cscope to jump to a tag |:delcommand| :delc[ommand] delete user-defined command |:delfunction| :delf[unction] delete a user function |:endfunction| :endf[unction] end of a user function |:function| :fu[nction] define a user function |:grep| :gr[ep] run 'grepprg' and jump to first match |:mksession| :mks[ession] write session info to a file |:Print| :P[rint] print lines |:promptfind| :promptf[ind] Search dialog |:promptrepl| :promptr[epl] Search/Replace dialog |:return| :retu[rn] return from a user function |:simalt| :si[malt] Win32 GUI: simulate Windows ALT key |:smagic| :sm[agic] :substitute with 'magic' |:snomagic| :sno[magic] :substitute with 'nomagic' |:tcl| :tcl execute Tcl command |:tcldo| :tcld[o] execute Tcl command for each line |:tclfile| :tclf[ile] execute Tcl script file |:tearoff| :te[aroff] tear-off a menu |:tmenu| :tm[enu] define menu tooltip |:tunmenu| :tu[nmenu] remove menu tooltip |:star| :* execute register Plenty of other bug fixes and new stuff. See the list below. The result is still an UNSTABLE version, ready for more changes. It is supposed to be used to make new patches against. You can use it for normal work (like me) but it's a more risky than a normal release. The files are in the "unreleased" directory, just like version 5.2f. This is a source-only release! WHERE TO GET IT --------------- You can find Vim 5.2g 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.2g-src.tar.gz source files for Unix unix/vim-5.2f-5.2g-src.diff.gz diff with version 5.2f unix/vim-5.2g-rt.tar.gz runtime files for Unix unix/vim-5.2f-5.2g-rt.diff.gz diff with version 5.2f extra/vim-5.2g-extra.tar.gz extra files extra/vim-5.2f-5.2g-extra.diff.gz diff with version 5.2f pc/vim52gsrc.zip source files for PC pc/vim52grt.zip runtime files for PC WHAT IS NEW ----------- This is the complete list of changes since version 5.2f. For a list of changes since version 5.1, see ":help version-5.2". Changed: Changed default for 'winminheight' from 0 to 1, to make it backwards compatible with version 5.1. winheight() function returns -1 for a non-existing window. It used to be zero, but that is a valid height now. 'selectmode' and 'keymodel' no longer have a different default for MS-Windows and DOS. This is compatible with version 5.1. ":function" refuses to overwrite an existing function, unless "!" is used. User functions cannot start with a lowercase letter. Removed the use of "f:" to call a user function. Added: User definable Ex commands: ":command", ":delcommand" and ":comclear". (Moore) winbufnr() and winnr() functions. (Aaron) New arguments for ":function": "range" defines a function that uses "a:firstline" and "a:lastline" itself, when ":call" is used. "abort" makes the function abort on an error, otherwise it continues with the next line. "macros/justify.vim" is an example of using user defined functions. When there is an error in a function which is called by another function, show the call stack in the error message. User functions do not change the last used search pattern or the command to be redone with ".". Optional argument to confirm(), to select type of message: "Error", "Warning", "Information" or "Question" (or just the first letter). This also means builtin functions can have a variable number of arguments. New option: 'syntax'. When it is set, the syntax by that name is loaded. Allows for setting a specific syntax from a modeline. POSIX compatible character classes for regexp patterns: [:alnum:], [:alpha:], [:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:] and [:xdigit:]. (Briscoe) Character classes (for fast syntax highlight matching): hex: \x [0-9a-fA-F] \X not hex octal: \o [0-7] \O not octal word: \w [a-zA-Z0-9_] \W not word head: \h [a-zA-Z_] \H not head alphabetic: \a [a-zA-Z] \A not alphabetic lowercase: \l [a-z] \L not lowercase uppercase: \u [A-Z] \U not uppercase ":set" now accepts "+=" and "-=": add or remove parts of a string option, add or subtract a number from a number option. A comma is automagically inserted or deleted for options that are a comma separated list. Included Exuberant Ctags 2.1.1. (Hiebert) Filetype feature, for autocommands. Uses a file type instead of a pattern to match a file. Currently only used for RISC OS. (Leonard) Made syntax highlighting a bit faster when scrolling backwards, by keeping more syncing context. Win32 GUI: Made scrolling faster by avoiding a redraw when deleting or inserting screen lines. GUI: Made scrolling faster by not redrawing the scrollbar when the thumb moved less than a pixel. Included ":highlight" in bugreport.vim. 'wildignore' option: List of patterns for files that should not be completed at all. 'swapfile' option: Whether to use a swap file for a buffer. Created install.exe program, for simplistic installation on DOS and MS-Windows. In Insert mode, and can be inserted by using CTRL-K and then the special character. New register: '_', the black hole. When writing to it, nothing happens. When reading from it, it's always empty. Can be used to avoid a delete or change command to modify the registers, or reduce memory use for big changes. For autocommands argument: is buffer number, like . On Win32 systems, use "findstr /n" as a default for 'grepprg'. Works exactly like "grep -n". Fixed: For some Motif versions setting 'browsedir' to "current" didn't work. (Marley) Using "gJ" in Visual mode caused a crash. (Roemer) Added a few more fixes for the multibyte version. Removed multbyte.rc. (Baek) While running the X11 GUI, ignore SIGHUP signals. Avoids a crash after executing an external command (in rare cases). BS key was deleting the Visual area. Should only do that in Select mode. The last added highlight group was never highlighted. (Leonard) In os_unixx.h, signal() was defined to sigset(), while it already was. Memory leak when executing autocommands (was reported as a memory leak in syntax highlighting). Didn't print source of error sometimes, because pointers were the same, although names were different. Avoid a number of UMR errors from Purify (third argument to open()). A swap file could still be created just after setting 'updatecount' to zero, when there is an empty buffer and doing ":e file". (Kutschera) Test 35 failed on 64 bit machines. (Schild) When searching for a tab, with 'hls' set, and 'list' on, tabs were highlighted with the wrong attributes. With "p" and "P" commands, redrawing was slow. "ex