7814 lines
301 KiB
Text
7814 lines
301 KiB
Text
|
*version5.txt* For Vim version 7.4. Last change: 2012 Aug 08
|
||
|
|
||
|
|
||
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||
|
|
||
|
Welcome to Vim Version 5.0!
|
||
|
|
||
|
This document lists the differences between Vim 4.x and Vim 5.0.
|
||
|
Although 5.0 is mentioned here, this is also for version 5.1, 5.2, etc.
|
||
|
See |vi_diff.txt| for an overview of differences between Vi and Vim 5.0.
|
||
|
See |version4.txt| for differences between Vim 3.0 and Vim 4.0.
|
||
|
|
||
|
INCOMPATIBLE: |incompatible-5|
|
||
|
|
||
|
Default value for 'compatible' changed |cp-default|
|
||
|
Text formatting command "Q" changed |Q-command-changed|
|
||
|
Command-line arguments changed |cmdline-changed|
|
||
|
Autocommands are kept |autocmds-kept|
|
||
|
Use of 'hidden' changed |hidden-changed|
|
||
|
Text object commands changed |text-objects-changed|
|
||
|
X-Windows Resources removed |x-resources|
|
||
|
Use of $VIM |$VIM-use|
|
||
|
Use of $HOME for MS-DOS and Win32 |$HOME-use|
|
||
|
Tags file format changed |tags-file-changed|
|
||
|
Options changed |options-changed|
|
||
|
CTRL-B in Insert mode gone |i_CTRL-B-gone|
|
||
|
|
||
|
NEW FEATURES: |new-5|
|
||
|
|
||
|
Syntax highlighting |new-highlighting|
|
||
|
Built-in script language |new-script|
|
||
|
Perl and Python support |new-perl-python|
|
||
|
Win32 GUI version |added-win32-GUI|
|
||
|
VMS version |added-VMS|
|
||
|
BeOS version |added-BeOS|
|
||
|
Macintosh GUI version |added-Mac|
|
||
|
More Vi compatible |more-compatible|
|
||
|
Read input from stdin |read-stdin|
|
||
|
Regular expression patterns |added-regexp|
|
||
|
Overloaded tags |tag-overloaded|
|
||
|
New commands |new-commands|
|
||
|
New options |added-options|
|
||
|
New command-line arguments |added-cmdline-args|
|
||
|
Various additions |added-various|
|
||
|
|
||
|
IMPROVEMENTS |improvements-5|
|
||
|
|
||
|
COMPILE TIME CHANGES |compile-changes-5|
|
||
|
|
||
|
BUG FIXES |bug-fixes-5|
|
||
|
|
||
|
VERSION 5.1 |version-5.1|
|
||
|
Changed |changed-5.1|
|
||
|
Added |added-5.1|
|
||
|
Fixed |fixed-5.1|
|
||
|
|
||
|
VERSION 5.2 |version-5.2|
|
||
|
Long lines editable |long-lines|
|
||
|
File browser added |file-browser-5.2|
|
||
|
Dialogs added |dialogs-added|
|
||
|
Popup menu added |popup-menu-added|
|
||
|
Select mode added |new-Select-mode|
|
||
|
Session files added |new-session-files|
|
||
|
User defined functions and commands |new-user-defined|
|
||
|
New interfaces |interfaces-5.2|
|
||
|
New ports |ports-5.2|
|
||
|
Multi-byte support |new-multi-byte|
|
||
|
New functions |new-functions-5.2|
|
||
|
New options |new-options-5.2|
|
||
|
New Ex commands |new-ex-commands-5.2|
|
||
|
Changed |changed-5.2|
|
||
|
Added |added-5.2|
|
||
|
Fixed |fixed-5.2|
|
||
|
|
||
|
VERSION 5.3 |version-5.3|
|
||
|
Changed |changed-5.3|
|
||
|
Added |added-5.3|
|
||
|
Fixed |fixed-5.3|
|
||
|
|
||
|
VERSION 5.4 |version-5.4|
|
||
|
Runtime directory introduced |new-runtime-dir|
|
||
|
Filetype introduced |new-filetype-5.4|
|
||
|
Vim script line continuation |new-line-continuation|
|
||
|
Improved session files |improved-sessions|
|
||
|
Autocommands improved |improved-autocmds-5.4|
|
||
|
Encryption |new-encryption|
|
||
|
GTK GUI port |new-GTK-GUI|
|
||
|
Menu changes |menu-changes-5.4|
|
||
|
Viminfo improved |improved-viminfo|
|
||
|
Various new commands |new-commands-5.4|
|
||
|
Various new options |new-options-5.4|
|
||
|
Vim scripts |new-script-5.4|
|
||
|
Avoid hit-enter prompt |avoid-hit-enter|
|
||
|
Improved quickfix |improved-quickfix|
|
||
|
Regular expressions |regexp-changes-5.4|
|
||
|
Changed |changed-5.4|
|
||
|
Added |added-5.4|
|
||
|
Fixed |fixed-5.4|
|
||
|
|
||
|
VERSION 5.5 |version-5.5|
|
||
|
Changed |changed-5.5|
|
||
|
Added |added-5.5|
|
||
|
Fixed |fixed-5.5|
|
||
|
|
||
|
VERSION 5.6 |version-5.6|
|
||
|
Changed |changed-5.6|
|
||
|
Added |added-5.6|
|
||
|
Fixed |fixed-5.6|
|
||
|
|
||
|
VERSION 5.7 |version-5.7|
|
||
|
Changed |changed-5.7|
|
||
|
Added |added-5.7|
|
||
|
Fixed |fixed-5.7|
|
||
|
|
||
|
VERSION 5.8 |version-5.8|
|
||
|
Changed |changed-5.8|
|
||
|
Added |added-5.8|
|
||
|
Fixed |fixed-5.8|
|
||
|
|
||
|
==============================================================================
|
||
|
INCOMPATIBLE *incompatible-5*
|
||
|
|
||
|
Default value for 'compatible' changed *cp-default*
|
||
|
--------------------------------------
|
||
|
|
||
|
Vim version 5.0 tries to be more Vi compatible. This helps people who use Vim
|
||
|
as a drop-in replacement for Vi, but causes some things to be incompatible
|
||
|
with version 4.x.
|
||
|
|
||
|
In version 4.x the default value for the 'compatible' option was off. Now the
|
||
|
default is on. The first thing you will notice is that the "u" command undoes
|
||
|
itself. Other side effects will be that mappings may work differently or not
|
||
|
work at all.
|
||
|
|
||
|
Since a lot of people switching from Vim 4.x to 5.0 will find this annoying,
|
||
|
the 'compatible' option is switched off if Vim finds a vimrc file. This is a
|
||
|
bit of magic to make sure that 90% of the Vim users will not be bitten by
|
||
|
this change.
|
||
|
|
||
|
What does this mean?
|
||
|
- If you prefer to run in 'compatible' mode and don't have a vimrc file, you
|
||
|
don't have to do anything.
|
||
|
- If you prefer to run in 'nocompatible' mode and do have a vimrc file, you
|
||
|
don't have to do anything.
|
||
|
- If you prefer to run in 'compatible' mode and do have a vimrc file, you
|
||
|
should put this line first in your vimrc file: >
|
||
|
:set compatible
|
||
|
- If you prefer to run in 'nocompatible' mode and don't have a vimrc file,
|
||
|
you can do one of the following:
|
||
|
- Create an empty vimrc file (e.g.: "~/.vimrc" for Unix).
|
||
|
- Put this command in your .exrc file or $EXINIT: >
|
||
|
:set nocompatible
|
||
|
< - Start Vim with the "-N" argument.
|
||
|
|
||
|
If you are new to Vi and Vim, using 'nocompatible' is strongly recommended,
|
||
|
because Vi has a lot of unexpected side effects, which are avoided by this
|
||
|
setting. See 'compatible'.
|
||
|
|
||
|
If you like some things from 'compatible' and some not, you can tune the
|
||
|
compatibility with 'cpoptions'.
|
||
|
|
||
|
When you invoke Vim as "ex" or "gex", Vim always starts in compatible mode.
|
||
|
|
||
|
|
||
|
Text formatting command "Q" changed *Q-command-changed*
|
||
|
-----------------------------------
|
||
|
|
||
|
The "Q" command formerly formatted lines to the width the 'textwidth' option
|
||
|
specifies. The command for this is now "gq" (see |gq| for more info). The
|
||
|
reason for this change is that "Q" is the standard Vi command to enter "Ex"
|
||
|
mode, and Vim now does in fact have an "Ex" mode (see |Q| for more info).
|
||
|
|
||
|
If you still want to use "Q" for formatting, use this mapping: >
|
||
|
:noremap Q gq
|
||
|
And if you also want to use the functionality of "Q": >
|
||
|
:noremap gQ Q
|
||
|
|
||
|
|
||
|
Command-line arguments changed *cmdline-changed*
|
||
|
------------------------------
|
||
|
|
||
|
Command-line file-arguments and option-arguments can now be mixed. You can
|
||
|
give options after the file names. Example: >
|
||
|
vim main.c -g
|
||
|
|
||
|
This is not possible when editing a file that starts with a '-'. Use the "--"
|
||
|
argument then |---|: >
|
||
|
vim -g -- -main.c
|
||
|
|
||
|
"-v" now means to start Ex in Vi mode, use "-R" for read-only mode.
|
||
|
old: "vim -v file" |-v|
|
||
|
new: "vim -R file" |-R|
|
||
|
|
||
|
"-e" now means to start Vi in Ex mode, use "-q" for quickfix.
|
||
|
old: "vim -e errorfile" |-e|
|
||
|
new: "vim -q errorfile" |-q|
|
||
|
|
||
|
"-s" in Ex mode now means to run in silent (batch) mode. |-s-ex|
|
||
|
|
||
|
"-x" reserved for crypt, use "-f" to avoid starting a new CLI (Amiga).
|
||
|
old: "vim -x file" |-x|
|
||
|
new: "vim -f file" |-f|
|
||
|
|
||
|
Vim allows up to ten "+cmd" and "-c cmd" arguments. Previously Vim executed
|
||
|
only the last one.
|
||
|
|
||
|
"-n" now overrides any setting for 'updatecount' in a vimrc file, but not in
|
||
|
a gvimrc file.
|
||
|
|
||
|
|
||
|
Autocommands are kept *autocmds-kept*
|
||
|
---------------------
|
||
|
|
||
|
Before version 5.0, autocommands with the same event, file name pattern, and
|
||
|
command could appear only once. This was fine for simple autocommands (like
|
||
|
setting option values), but for more complicated autocommands, where the same
|
||
|
command might appear twice, this restriction caused problems. Therefore
|
||
|
Vim stores all autocommands and keeps them in the order that they are defined.
|
||
|
|
||
|
The most obvious side effect of this change is that when you source a vimrc
|
||
|
file twice, the autocommands in it will be defined twice. To avoid this, do
|
||
|
one of these:
|
||
|
|
||
|
- Remove any autocommands that might potentially defined twice before
|
||
|
defining them. Example: >
|
||
|
:au! * *.ext
|
||
|
:au BufEnter *.ext ...
|
||
|
|
||
|
- Put the autocommands inside an ":if" command. Example: >
|
||
|
if !exists("did_ext_autocmds")
|
||
|
let did_ext_autocmds = 1
|
||
|
autocmd BufEnter *.ext ...
|
||
|
endif
|
||
|
|
||
|
- Put your autocommands in a different autocommand group so you can remove
|
||
|
them before defining them |:augroup|: >
|
||
|
augroup uncompress
|
||
|
au!
|
||
|
au BufReadPost *.gz ...
|
||
|
augroup END
|
||
|
|
||
|
|
||
|
Use of 'hidden' changed *hidden-changed*
|
||
|
-----------------------
|
||
|
|
||
|
In version 4.x, only some commands used the 'hidden' option. Now all commands
|
||
|
uses it whenever a buffer disappears from a window.
|
||
|
|
||
|
Previously you could do ":buf xxx" in a changed buffer and that buffer would
|
||
|
then become hidden. Now you must set the 'hidden' option for this to work.
|
||
|
|
||
|
The new behavior is simpler: whether Vim hides buffers no longer depends on
|
||
|
the specific command that you use.
|
||
|
- with 'hidden' not set, you never get hidden buffers. Exceptions are the
|
||
|
":hide" and ":close!" commands and, in rare cases, where you would otherwise
|
||
|
lose changes to the buffer.
|
||
|
- With 'hidden' set, you almost never unload a buffer. Exceptions are the
|
||
|
":bunload" or ":bdel" commands.
|
||
|
|
||
|
":buffer" now supports a "!": abandon changes in current buffer. So do
|
||
|
":bnext", ":brewind", etc.
|
||
|
|
||
|
|
||
|
Text object commands changed *text-objects-changed*
|
||
|
----------------------------
|
||
|
|
||
|
Text object commands have new names. This allows more text objects and makes
|
||
|
characters available for other Visual mode commands. Since no more single
|
||
|
characters were available, text objects names now require two characters.
|
||
|
The first one is always 'i' or 'a'.
|
||
|
OLD NEW ~
|
||
|
a aw a word |v_aw|
|
||
|
A aW a WORD |v_aW|
|
||
|
s as a sentence |v_as|
|
||
|
p ap a paragraph |v_ap|
|
||
|
S ab a () block |v_ab|
|
||
|
P aB a {} block |v_aB|
|
||
|
|
||
|
There is another set of text objects that starts with "i", for "inner". These
|
||
|
select the same objects, but exclude white space.
|
||
|
|
||
|
|
||
|
X-Windows Resources removed *x-resources*
|
||
|
--------------------------
|
||
|
|
||
|
Vim no longer supports the following X resources:
|
||
|
- boldColor
|
||
|
- italicColor
|
||
|
- underlineColor
|
||
|
- cursorColor
|
||
|
|
||
|
Vim now uses highlight groups to set colors. This avoids the confusion of
|
||
|
using a bold Font, which would imply a certain color. See |:highlight| and
|
||
|
|gui-resources|.
|
||
|
|
||
|
|
||
|
Use of $VIM *$VIM-use*
|
||
|
-----------
|
||
|
|
||
|
Vim now uses the VIM environment variable to find all Vim system files. This
|
||
|
includes the global vimrc, gvimrc, and menu.vim files and all on-line help
|
||
|
and syntax files. See |$VIM|. Starting with version 5.4, |$VIMRUNTIME| can
|
||
|
also be used.
|
||
|
For Unix, Vim sets a default value for $VIM when doing "make install".
|
||
|
When $VIM is not set, its default value is the directory from 'helpfile',
|
||
|
excluding "/doc/help.txt".
|
||
|
|
||
|
|
||
|
Use of $HOME for MS-DOS and Win32 *$HOME-use*
|
||
|
---------------------------------
|
||
|
|
||
|
The MS-DOS and Win32 versions of Vim now first check $HOME when searching for
|
||
|
a vimrc or exrc file and for reading/storing the viminfo file. Previously Vim
|
||
|
used $VIM for these systems, but this causes trouble on a system with several
|
||
|
users. Now Vim uses $VIM only when $HOME is not set or the file is not found
|
||
|
in $HOME. See |_vimrc|.
|
||
|
|
||
|
|
||
|
Tags file format changed *tags-file-changed*
|
||
|
------------------------
|
||
|
|
||
|
Only tabs are allowed to separate fields in a tags file. This allows for
|
||
|
spaces in a file name and is still Vi compatible. In previous versions of
|
||
|
Vim, any white space was allowed to separate the fields. If you have a file
|
||
|
which doesn't use a single tab between fields, edit the tags file and execute
|
||
|
this command: >
|
||
|
:%s/\(\S*\)\s\+\(\S*\)\s\+\(.*\)/\1\t\2\t\3/
|
||
|
|
||
|
|
||
|
Options changed *options-changed*
|
||
|
---------------
|
||
|
|
||
|
The default value of 'errorfile' has changed from "errors.vim" to "errors.err".
|
||
|
The reason is that only Vim scripts should have the ".vim" extensions.
|
||
|
|
||
|
The ":make" command no longer uses the 'errorfile' option. This prevents the
|
||
|
output of the ":make" command from overwriting a manually saved error file.
|
||
|
":make" uses the 'makeef' option instead. This also allows for generating a
|
||
|
unique name, to prevent concurrently running ":make" commands from overwriting
|
||
|
each other's files.
|
||
|
|
||
|
With 'insertmode' set, a few more things change:
|
||
|
- <Esc> in Normal mode goes to Insert mode.
|
||
|
- <Esc> in Insert mode doesn't leave Insert mode.
|
||
|
- When doing ":set im", go to Insert mode immediately.
|
||
|
|
||
|
Vim considers a buffer to be changed when the 'fileformat' (formerly the
|
||
|
'textmode' option) is different from the buffer's initial format.
|
||
|
|
||
|
|
||
|
CTRL-B in Insert mode gone *i_CTRL-B-gone*
|
||
|
--------------------------
|
||
|
|
||
|
When Vim was compiled with the |+rightleft| feature, you could use CTRL-B to
|
||
|
toggle the 'revins' option. Unfortunately, some people hit the 'B' key
|
||
|
accidentally when trying to type CTRL-V or CTRL-N and then didn't know how to
|
||
|
undo this. Since toggling the 'revins' option can easily be done with the
|
||
|
mapping below, this use of the CTRL-B key is disabled. You can still use the
|
||
|
CTRL-_ key for this |i_CTRL-_|. >
|
||
|
:imap <C-B> <C-O>:set revins!<CR>
|
||
|
|
||
|
==============================================================================
|
||
|
NEW FEATURES *new-5*
|
||
|
|
||
|
Syntax highlighting *new-highlighting*
|
||
|
-------------------
|
||
|
|
||
|
Vim now has a very flexible way to highlighting just about any type of file.
|
||
|
See |syntax|. Summary: >
|
||
|
:syntax on
|
||
|
|
||
|
Colors and attributes can be set for the syntax highlighting, and also for
|
||
|
other highlighted items with the ':' flag in the 'highlight' option. All
|
||
|
highlighted items are assigned a highlight group which specifies their
|
||
|
highlighting. See |:highlight|. The default colors have been improved.
|
||
|
|
||
|
You can use the "Normal" group to set the default fore/background colors for a
|
||
|
color terminal. For the GUI, you can use this group to specify the font, too.
|
||
|
|
||
|
The "2html.vim" script can be used to convert any file that has syntax
|
||
|
highlighting to HTML. The colors will be exactly the same as how you see them
|
||
|
in Vim. With a HTML viewer you can also print the file with colors.
|
||
|
|
||
|
|
||
|
Built-in script language *new-script*
|
||
|
------------------------
|
||
|
|
||
|
A few extra commands and an expression evaluator enable you to write simple
|
||
|
but powerful scripts. Commands include ":if" and ":while". Expressions can
|
||
|
manipulate numbers and strings. You can use the '=' register to insert
|
||
|
directly the result of an expression. See |expression|.
|
||
|
|
||
|
|
||
|
Perl and Python support *new-perl-python*
|
||
|
-----------------------
|
||
|
|
||
|
Vim can call Perl commands with ":perldo", ":perl", etc. See |perl|.
|
||
|
Patches made by Sven Verdoolaege and Matt Gerassimoff.
|
||
|
|
||
|
Vim can call Python commands with ":python" and ":pyfile". See |python|.
|
||
|
|
||
|
Both of these are only available when enabled at compile time.
|
||
|
|
||
|
|
||
|
Win32 GUI version *added-win32-GUI*
|
||
|
-----------------
|
||
|
|
||
|
The GUI has been ported to MS Windows 95 and NT. All the features of the X11
|
||
|
GUI are available to Windows users now. |gui-w32|
|
||
|
This also fixes problems with running the Win32 console version under Windows
|
||
|
95, where console support has always been bad.
|
||
|
There is also a version that supports OLE automation interface. |if_ole.txt|
|
||
|
Vim can be integrated with Microsoft Developer Studio using the VisVim DLL.
|
||
|
It is possible to produce a DLL version of gvim with Borland C++ (Aaron).
|
||
|
|
||
|
|
||
|
VMS version *added-VMS*
|
||
|
-----------
|
||
|
|
||
|
Vim can now also be used on VMS systems. Port done by Henk Elbers.
|
||
|
This has not been tested much, but it should work.
|
||
|
Sorry, no documentation!
|
||
|
|
||
|
|
||
|
BeOS version *added-BeOS*
|
||
|
------------
|
||
|
|
||
|
Vim can be used on BeOS systems (including the BeBox). (Olaf Seibert)
|
||
|
See |os_beos.txt|.
|
||
|
|
||
|
|
||
|
Macintosh GUI version *added-Mac*
|
||
|
---------------------
|
||
|
|
||
|
Vim can now be used on the Macintosh. (Dany St-Amant)
|
||
|
It has not been tested much yet, be careful!
|
||
|
See |os_mac.txt|.
|
||
|
|
||
|
|
||
|
More Vi compatible *more-compatible*
|
||
|
------------------
|
||
|
|
||
|
There is now a real Ex mode. Started with the "Q" command, or by calling the
|
||
|
executable "ex" or "gex". |Ex-mode|
|
||
|
|
||
|
Always allow multi-level undo, also in Vi compatible mode. When the 'u' flag
|
||
|
in 'cpoptions' is included, CTRL-R is used for repeating the undo or redo
|
||
|
(like "." in Nvi).
|
||
|
|
||
|
|
||
|
Read input from stdin *read-stdin*
|
||
|
---------------------
|
||
|
|
||
|
When using the "-" command-line argument, Vim reads its text input from stdin.
|
||
|
This can be used for putting Vim at the end of a pipe: >
|
||
|
grep "^a.*" *.c | vim -
|
||
|
See |--|.
|
||
|
|
||
|
|
||
|
Regular expression patterns *added-regexp*
|
||
|
---------------------------
|
||
|
|
||
|
Added specifying a range for the number of matches of an atom: "\{a,b}". |/\{|
|
||
|
Added the "shortest match" regexp "\{-}" (Webb).
|
||
|
Added "\s", matches a white character. Can replace "[ \t]". |/\s|
|
||
|
Added "\S", matches a non-white character. Can replace "[^ \t]". |/\S|
|
||
|
|
||
|
|
||
|
Overloaded tags *tag-overloaded*
|
||
|
---------------
|
||
|
|
||
|
When using a language like C++, there can be several tags for the same
|
||
|
tagname. Commands have been added to be able to jump to any of these
|
||
|
overloaded tags:
|
||
|
|:tselect| List matching tags, and jump to one of them.
|
||
|
|:stselect| Idem, and split window.
|
||
|
|g_CTRL-]| Do ":tselect" with the word under the cursor.
|
||
|
|
||
|
After ":ta {tagname}" with multiple matches:
|
||
|
|:tnext| Go to next matching tag.
|
||
|
|:tprevious| Go to previous matching tag.
|
||
|
|:trewind| Go to first matching tag.
|
||
|
|:tlast| Go to last matching tag.
|
||
|
|
||
|
The ":tag" command now also accepts wildcards. When doing command-line
|
||
|
completion on tags, case-insensitive matching is also available (at the end).
|
||
|
|
||
|
|
||
|
New commands *new-commands*
|
||
|
------------
|
||
|
|
||
|
|:amenu| Define menus for all modes, inserting a CTRL-O for Insert
|
||
|
mode, ESC for Visual and CTRL-C for Cmdline mode. "amenu" is
|
||
|
used for the default menus and the Syntax menu.
|
||
|
|
||
|
|:augroup| Set group to be used for following autocommands. Allows the
|
||
|
grouping of autocommands to enable deletion of a specific
|
||
|
group.
|
||
|
|
||
|
|:crewind| Go to first error.
|
||
|
|:clast| Go to last error.
|
||
|
|
||
|
|:doautoall| Execute autocommands for all loaded buffers.
|
||
|
|
||
|
|:echo| Echo its argument, which is an expression. Can be used to
|
||
|
display messages which include variables.
|
||
|
|
||
|
|:execute| Execute its argument, which is an expression. Can be used to
|
||
|
built up an Ex command with anything.
|
||
|
|
||
|
|:hide| Works like ":close".
|
||
|
|
||
|
|:if| Conditional execution, for built-in script language.
|
||
|
|
||
|
|:intro| Show introductory message. This is always executed when Vim
|
||
|
is started without file arguments.
|
||
|
|
||
|
|:let| Assign a value to an internal variable.
|
||
|
|
||
|
|:omap| Map only in operator-pending mode. Makes it possible to map
|
||
|
text-object commands.
|
||
|
|
||
|
|:redir| Redirect output of messages to a file.
|
||
|
|
||
|
|:update| Write when buffer has changed.
|
||
|
|
||
|
|:while| While-loop for built-in script language.
|
||
|
|
||
|
Visual mode:
|
||
|
|v_O| "O" in Visual block mode, moves the cursor to the other corner
|
||
|
horizontally.
|
||
|
|v_D| "D" in Visual block mode deletes till end of line.
|
||
|
|
||
|
Insert mode:
|
||
|
|i_CTRL-]| Triggers abbreviation, without inserting any character.
|
||
|
|
||
|
|
||
|
New options *added-options*
|
||
|
-----------
|
||
|
|
||
|
'background' Used for selecting highlight color defaults. Also used in
|
||
|
"syntax.vim" for selecting the syntax colors. Often set
|
||
|
automatically, depending on the terminal used.
|
||
|
|
||
|
'complete' Specifies how Insert mode completion works.
|
||
|
|
||
|
'eventignore' Makes it possible to ignore autocommands temporarily.
|
||
|
|
||
|
'fileformat' Current file format. Replaces 'textmode'.
|
||
|
'fileformats' Possible file formats. Replaces 'textauto'.
|
||
|
New is that this also supports Macintosh format: A single <CR>
|
||
|
separates lines.
|
||
|
The default for 'fileformats' for MS-DOS, Win32 and OS/2 is
|
||
|
"dos,unix", also when 'compatible' set. Unix type files
|
||
|
didn't work anyway when 'fileformats' was empty.
|
||
|
|
||
|
'guicursor' Set the cursor shape and blinking in various modes.
|
||
|
Default is to adjust the cursor for Insert and Replace mode,
|
||
|
and when an operator is pending. Blinking is default on.
|
||
|
|
||
|
'fkmap' Farsi key mapping.
|
||
|
|
||
|
'hlsearch' Highlight all matches with the last used search pattern.
|
||
|
|
||
|
'hkmapp' Phonetic Hebrew mapping. (Ilya Dogolazky)
|
||
|
|
||
|
'iconstring' Define the name of the icon, when not empty. (Version 5.2: the
|
||
|
string is used literally, a newline can be used to make two
|
||
|
lines.)
|
||
|
|
||
|
'lazyredraw' Don't redraw the screen while executing macros, registers or
|
||
|
other not typed commands.
|
||
|
|
||
|
'makeef' Errorfile to be used for ":make". "##" is replaced with a
|
||
|
unique number. Avoids that two Vim sessions overwrite each
|
||
|
others errorfile. The Unix default is "/tmp/vim##.err"; for
|
||
|
Amiga "t:vim##.Err, for others "vim##.err".
|
||
|
|
||
|
'matchtime' 1/10s of a second to show a matching paren, when 'showmatch'
|
||
|
is set. Like Nvi.
|
||
|
|
||
|
'mousehide' Hide mouse pointer in GUI when typing text.
|
||
|
|
||
|
'nrformats' Defines what bases Vim will consider for numbers when using
|
||
|
the CTRL-A and CTRL-X commands. Default: "hex,octal".
|
||
|
|
||
|
'shellxquote' Add extra quotes around the whole shell command, including
|
||
|
redirection.
|
||
|
|
||
|
'softtabstop' Make typing behave like tabstop is set at this value, without
|
||
|
changing the value of 'tabstop'. Makes it more easy to keep
|
||
|
'ts' at 8, while still getting four spaces for a <Tab>.
|
||
|
|
||
|
'titlestring' String for the window title, when not empty. (Version 5.2:
|
||
|
this string is used literally, a newline can be used to make
|
||
|
two lines.)
|
||
|
|
||
|
'verbose' Level of verbosity. Makes it possible to show which .vimrc,
|
||
|
.exrc, .viminfo files etc. are used for initializing. Also
|
||
|
to show autocommands that are being executed. Can also be set
|
||
|
by using the "-V" command-line argument.
|
||
|
|
||
|
|
||
|
New command-line arguments *added-cmdline-args*
|
||
|
--------------------------
|
||
|
|
||
|
|-U| Set the gvimrc file to be used. Like "-u" for the vimrc.
|
||
|
|
||
|
|-V| Set the 'verbose' option. E.g. "vim -V10".
|
||
|
|
||
|
|-N| Start in non-compatible mode.
|
||
|
|
||
|
|-C| Start in compatible mode.
|
||
|
|
||
|
|-Z| Start in restricted mode, disallow shell commands. Can also
|
||
|
be done by calling the executable "rvim".
|
||
|
|
||
|
|-h| Show usage information and exit.
|
||
|
|
||
|
|
||
|
Various additions *added-various*
|
||
|
-----------------
|
||
|
|
||
|
Added support for SNiFF+ connection (submitted by Toni Leherbauer). Vim can
|
||
|
be used as an editor for SNiFF. No documentation available...
|
||
|
|
||
|
For producing a bug report, the bugreport.vim script has been included.
|
||
|
Can be used with ":so $VIMRUNTIME/bugreport.vim", which creates the file
|
||
|
"bugreport.txt" in the current directory. |bugs|
|
||
|
|
||
|
Added range to ":normal" command. Now you can repeat the same command for
|
||
|
each line in the range. |:normal-range|
|
||
|
|
||
|
Included support for the Farsi language (Shiran). Only when enabled at
|
||
|
compile time. See |farsi|.
|
||
|
|
||
|
==============================================================================
|
||
|
IMPROVEMENTS *improvements-5*
|
||
|
|
||
|
Performance:
|
||
|
- When 'showcmd' was set, mappings would execute much more slowly because the
|
||
|
output would be flushed very often. Helps a lot when executing the "life"
|
||
|
macros with 'showcmd' set.
|
||
|
- Included patches for binary searching in tags file (David O'Neill).
|
||
|
Can be disabled by resetting the 'tagbsearch' option.
|
||
|
- Don't update the ruler when repeating insert (slowed it down a lot).
|
||
|
- For Unix, file name expansion is now done internally instead of starting a
|
||
|
shell for it.
|
||
|
- Expand environment variables with expand_env(), instead of calling the
|
||
|
shell. Makes ":so $VIMRUNTIME/syntax/syntax.vim" a LOT faster.
|
||
|
- Reduced output for cursor positioning: Use CR-LF for moving to first few
|
||
|
columns in next few lines; Don't output CR twice when using termios.
|
||
|
- Optimized cursor positioning. Use CR, BS and NL when it's shorter than
|
||
|
absolute cursor positioning.
|
||
|
- Disable redrawing while repeating insert "1000ii<Esc>".
|
||
|
- Made "d$" or "D" for long lines a lot faster (delete all characters at once,
|
||
|
instead of one by one).
|
||
|
- Access option table by first letter, instead of searching from start.
|
||
|
- Made setting special highlighting attributes a lot faster by using
|
||
|
highlight_attr[], instead of searching in the 'highlight' string.
|
||
|
- Don't show the mode when redrawing is disabled.
|
||
|
- When setting an option, only redraw the screen when required.
|
||
|
- Improved performance of Ex commands by using a lookup table for the first
|
||
|
character.
|
||
|
|
||
|
Options:
|
||
|
'cinoptions' Added 'g' flag, for C++ scope declarations.
|
||
|
'cpoptions' Added 'E' flag: Disallow yanking, deleting, etc. empty text
|
||
|
area. Default is to allow empty yanks. When 'E' is included,
|
||
|
"y$" in an empty line now is handled as an error (Vi
|
||
|
compatible).
|
||
|
Added 'j' flag: Only add two spaces for a join after a '.',
|
||
|
not after a '?' or '!'.
|
||
|
Added 'A' flag: don't give ATTENTION message.
|
||
|
Added 'L' flag: When not included, and 'list' is set,
|
||
|
'textwidth' formatting works like 'list' is not set.
|
||
|
Added 'W' flag: Let ":w!" behave like Vi: don't overwrite
|
||
|
readonly files, or a file owned by someone else.
|
||
|
'highlight' Added '@' flag, for '@' characters after the last line on the
|
||
|
screen, and '$' at the end of the line when 'list' is set.
|
||
|
Added 'i' flag: Set highlighting for 'incsearch'. Default
|
||
|
uses "IncSearch" highlight group, which is linked to "Visual".
|
||
|
Disallow 'h' flag in 'highlight' (wasn't used anymore since
|
||
|
3.0).
|
||
|
'guifont' Win32 GUI only: When set to "*" brings up a font requester.
|
||
|
'guipty' Default on, because so many people need it.
|
||
|
'path' Can contain wildcards, and "**" for searching a whole tree.
|
||
|
'shortmess' Added 'I' flag to avoid the intro message.
|
||
|
'viminfo' Added '%' flag: Store buffer list in viminfo file.
|
||
|
|
||
|
- Increased defaults for 'maxmem' and 'maxmemtot' for Unix and Win32. Most
|
||
|
machines have much more RAM now that prices have dropped.
|
||
|
- Implemented ":set all&", set all options to their default value. |:set|
|
||
|
|
||
|
Swap file:
|
||
|
- Don't create a swap file for a readonly file. Then create one on the first
|
||
|
change. Also create a swapfile when the amount of memory used is getting
|
||
|
too high. |swap-file|
|
||
|
- Make swap file "hidden", if possible. On Unix this is done by prepending a
|
||
|
dot to the swap file name. When long file names are used, the DJGPP and
|
||
|
Win32 versions also prepend a dot, in case a file on a mounted Unix file
|
||
|
system is edited. |:swapname| On MSDOS the hidden file attribute is NOT
|
||
|
set, because this causes problems with share.exe.
|
||
|
- 'updatecount' always defaults to non-zero, also for Vi compatible mode.
|
||
|
This means there is a swap file, which can be used for recovery.
|
||
|
|
||
|
Tags:
|
||
|
- Included ctags 2.0 (Darren Hiebert). The syntax for static tags changed
|
||
|
from
|
||
|
{tag}:{fname} {fname} {command}
|
||
|
to
|
||
|
{tag} {fname} {command};" file:
|
||
|
Which is both faster to parse, shorter and Vi compatible. The old format is
|
||
|
also still accepted, unless disabled in src/feature.h (see OLD_STATIC_TAGS).
|
||
|
|tags-file-format|
|
||
|
- Completion of tags now also includes static tags for other files, at the
|
||
|
end.
|
||
|
- Included "shtags" from Stephen Riehm.
|
||
|
- When finding a matching tag, but the file doesn't exist, continue searching
|
||
|
for another match. Helps when using the same tags file (with links) for
|
||
|
different versions of source code.
|
||
|
- Give a tag with a global match in the current file a higher priority than a
|
||
|
global match in another file.
|
||
|
|
||
|
Included xxd version V1.8 (Juergen Weigert).
|
||
|
|
||
|
Autocommands:
|
||
|
- VimLeave autocommands are executed after writing the viminfo file, instead
|
||
|
of before. |VimLeave|
|
||
|
- Allow changing autocommands while executing them. This allows for
|
||
|
self-modifying autocommands. (idea from Goldberg)
|
||
|
- When using autocommands with two or more patterns, could not split
|
||
|
":if/:endif" over two lines. Now all matching autocommands are executed in
|
||
|
one do_cmdline().
|
||
|
- Autocommands no longer change the command repeated with ".".
|
||
|
- Search patterns are restored after executing autocommands. This avoids
|
||
|
that the 'hlsearch' highlighting is messed up by autocommands.
|
||
|
- When trying to execute an autocommand, also try matching the pattern with
|
||
|
the short file name. Helps when short file name is different from full
|
||
|
file name (expanded symbolic links). |autocmd-patterns|
|
||
|
- Made the output of ":autocmd" shorter and look better.
|
||
|
- Expand <sfile> in an ":autocmd" when it is defined. |<sfile>|
|
||
|
- Added "nested" flag to ":autocmd", allows nesting. |autocmd-nested|
|
||
|
- Added [group] argument to ":autocmd". Overrides the currently set group.
|
||
|
|autocmd-groups|
|
||
|
- new events:
|
||
|
|BufUnload| before a buffer is unloaded
|
||
|
|BufDelete| before a buffer is deleted from the buffer list
|
||
|
|FileChangedShell| when a file's modification time has changed after
|
||
|
executing a shell command
|
||
|
|User| user-defined autocommand
|
||
|
- When 'modified' was set by a BufRead* autocommand, it was reset again
|
||
|
afterwards. Now the ":set modified" is remembered.
|
||
|
|
||
|
GUI:
|
||
|
- Improved GUI scrollbar handling when redrawing is slower than the scrollbar
|
||
|
events are generated.
|
||
|
- "vim -u NONE" now also stops loading the .gvimrc and other GUI inits. |-u|
|
||
|
Use "-U" to use another gvimrc file. |-U|
|
||
|
- Handle CTRL-C for external command, also for systems where "setsid()" is
|
||
|
supported.
|
||
|
- When starting the GUI, restrict the window size to the screen size.
|
||
|
- The default menus are read from $VIMRUNTIME/menu.vim. This allows for a
|
||
|
customized default menu. |menu.vim|
|
||
|
- Improved the default menus. Added File/Print, a Window menu, Syntax menu,
|
||
|
etc.
|
||
|
- Added priority to the ":menu" command. Now each menu can be put in a place
|
||
|
where you want it, independent of the order in which the menus are defined.
|
||
|
|menu-priority|
|
||
|
|
||
|
Give a warning in the intro screen when running the Win32 console version on
|
||
|
Windows 95 because there are problems using this version under Windows 95.
|
||
|
|win32-problems|
|
||
|
|
||
|
Added 'e' flag for ":substitute" command: Don't complain when not finding a
|
||
|
match (Campbell). |:s|
|
||
|
|
||
|
When using search commands in a mapping, only the last one is kept in the
|
||
|
history. Avoids that the history is trashed by long mappings.
|
||
|
|
||
|
Ignore characters after "ex", "view" and "gvim" when checking startup mode.
|
||
|
Allows the use of "gvim5" et. al. |gvim| "gview" starts the GUI in readonly
|
||
|
mode. |gview|
|
||
|
|
||
|
When resizing windows, the cursor is kept in the same relative position, if
|
||
|
possible. (Webb)
|
||
|
|
||
|
":all" and ":ball" no longer close and then open a window for the same buffer.
|
||
|
Avoids losing options, jumplist, and other info.
|
||
|
|
||
|
"-f" command-line argument is now ignored if Vim was compiled without GUI.
|
||
|
|-f|
|
||
|
|
||
|
In Visual block mode, the right mouse button picks up the nearest corner.
|
||
|
|
||
|
Changed default mappings for DOS et al. Removed the DOS-specific mappings,
|
||
|
only use the Windows ones. Added Shift-Insert, Ctrl-Insert, Ctrl-Del and
|
||
|
Shift-Del.
|
||
|
|
||
|
Changed the numbers in the output of ":jumps", so you can see where {count}
|
||
|
CTRL-O takes you. |:jumps|
|
||
|
|
||
|
Using "~" for $HOME now works for all systems. |$HOME|
|
||
|
|
||
|
Unix: Besides using CTRL-C, also use the INTR character from the tty settings.
|
||
|
Somebody has INTR set to DEL.
|
||
|
|
||
|
Allow a <LF> in a ":help" command argument to end the help command, so another
|
||
|
command can follow.
|
||
|
|
||
|
Doing "%" on a line that starts with " #if" didn't jump to matching "#else".
|
||
|
Don't recognize "#if", "#else" etc. for '%' when 'cpo' contains the '%' flag.
|
||
|
|%|
|
||
|
|
||
|
Insert mode expansion with "CTRL-N", "CTRL-P" and "CTRL-X" improved
|
||
|
|ins-completion|:
|
||
|
- 'complete' option added.
|
||
|
- When 'nowrapscan' is set, and no match found, report the searched direction
|
||
|
in the error message.
|
||
|
- Repeating CTRL-X commands adds following words/lines after the match.
|
||
|
- When adding-expansions, accept single character matches.
|
||
|
- Made repeated CTRL-X CTRL-N not break undo, and "." repeats the whole
|
||
|
insertion. Also fixes not being able to backspace over a word that has been
|
||
|
inserted with CTRL-N.
|
||
|
|
||
|
When copying characters in Insert mode from previous/next line, with CTRL-E or
|
||
|
CTRL-Y, 'textwidth' is no longer used. |i_CTRL-E|
|
||
|
|
||
|
Commands that move in the arglist, like ":n" and ":rew", keep the old cursor
|
||
|
position of the file (this is mostly Vi compatible).
|
||
|
|
||
|
Vim now remembers the '< and '> marks for each buffer. This fixes a problem
|
||
|
that a line-delete in one buffer invalidated the '< and '> marks in another
|
||
|
buffer. |'<|
|
||
|
|
||
|
For MSDOS, Unix and OS/2: When $VIM not set, use the path from the executable.
|
||
|
When using the executable path for $VIM, remove "src/" when present. Should
|
||
|
make Vim find the docs and syntax files when it is run directly after
|
||
|
compiling. |$VIM|
|
||
|
|
||
|
When quitting Visual mode with <Esc>, the cursor is put at start of the Visual
|
||
|
area (like after executing an operator).
|
||
|
|
||
|
Win32 and Unix version: Removed 1100 character limit on external commands.
|
||
|
|
||
|
Added possibility to include a space in a ":edit +command" argument, by
|
||
|
putting a backslash before it. |+cmd|
|
||
|
|
||
|
After recovery, BufReadPost autocommands are applied. |:recover|
|
||
|
|
||
|
Added color support for "os2ansi", OS/2 console. (Slootman) |os2ansi|
|
||
|
|
||
|
Allow "%:p:h" when % is empty. |:_%|
|
||
|
|
||
|
Included "<sfile>": file name from the ":source" command. |<sfile>|
|
||
|
|
||
|
Added "<Bslash>" special character. Helps for avoiding multiple backslashes
|
||
|
in mappings and menus.
|
||
|
|
||
|
In a help window, a double-click jumps to the tag under the cursor (like
|
||
|
CTRL-]).
|
||
|
|
||
|
<C-Left> and <C-Right> now work like <S-Left> and <S-Right>, move a word
|
||
|
forward/backward (Windows compatible). |<C-Left>|
|
||
|
|
||
|
Removed the requirement for a ":version" command in a .vimrc file. It wasn't
|
||
|
used for anything. You can use ":if" to handle differences between versions.
|
||
|
|:version|
|
||
|
|
||
|
For MS-DOS, Win32 and OS/2: When comparing file names for autocommands, don't
|
||
|
make a difference between '/' and '\' for path separator.
|
||
|
|
||
|
New termcap options:
|
||
|
"mb": blink. Can only be used by assigning it to one of the other highlight
|
||
|
options. |t_mb|
|
||
|
"bc": backspace character. |t_bc|
|
||
|
"nd": Used for moving the cursor right in the GUI, to avoid removing one line
|
||
|
of pixels from the last bold character. |t_nd|
|
||
|
"xs": highlighting not erased by overwriting, for hpterm. Combined with
|
||
|
'weirdinvert'. Visual mode works on hpterm now. |t_xs|
|
||
|
|
||
|
Unix: Set time of patch and backup file same as original file. (Hiebert).
|
||
|
|
||
|
Amiga: In QuickFix mode no longer opens another window. Shell commands can be
|
||
|
used now.
|
||
|
|
||
|
Added decmouse patches from David Binette. Can now use Dec and Netterm mouse.
|
||
|
But only when enabled at compile time.
|
||
|
|
||
|
Added '#' register: Alternate file name |quote#|. Display '#' register with
|
||
|
":dis" command. |:display|
|
||
|
|
||
|
Removed ':' from 'isfname' default for Unix. Check for "://" in a file name
|
||
|
anyway. Also check for ":\\", for MS-DOS.
|
||
|
|
||
|
Added count to "K"eyword command, when 'keywordprg' is "man", is inserted in
|
||
|
the man command. "2K" results in "!man 2 <cword>". |K|
|
||
|
|
||
|
When using "gf" on a relative path name, remove "../" from the file name, like
|
||
|
it's done for file names in the tags file. |gf|
|
||
|
|
||
|
When finishing recording, don't make the recorded register the default put
|
||
|
register.
|
||
|
|
||
|
When using "!!", don't put ":5,5!" on the command-line, but ":.!". And some
|
||
|
other enhancements to replace the line number with "." or "$" when possible.
|
||
|
|
||
|
MSDOS et al.: Renamed $VIM/viminfo to $VIM/_viminfo. It's more consistent:
|
||
|
.vimrc/_vimrc and .viminfo/_viminfo
|
||
|
|
||
|
For systems where case doesn't matter in file names (MSDOS, Amiga), ignore
|
||
|
case while sorting file names. For buffer names too.
|
||
|
|
||
|
When reading from stdin doesn't work, read from stderr (helps for "foo | xargs
|
||
|
vim").
|
||
|
|
||
|
32 bit MS-DOS version: Replaced csdpmi3 by csdpmi4.
|
||
|
|
||
|
Changed <C-Left> and <C-Right> to skip a WORD instead of a word.
|
||
|
|
||
|
Warning for changed modified time when overwriting a file now also works on
|
||
|
other systems than Unix.
|
||
|
|
||
|
Unix: Changed the defaults for configure to be the same as the defaults for
|
||
|
Makefile: include GUI, Perl, and Python.
|
||
|
|
||
|
Some versions of Motif require "-lXpm". Added check for this in configure.
|
||
|
|
||
|
Don't add "-L/usr/lib" to the link line, causes problems on a few systems.
|
||
|
|
||
|
==============================================================================
|
||
|
COMPILE TIME CHANGES *compile-changes-5*
|
||
|
|
||
|
When compiling, allow a choice for minimal, normal or maximal features in an
|
||
|
easy way, by changing a single line in src/feature.h.
|
||
|
The DOS16 version has been compiled with minimal features to avoid running
|
||
|
out of memory too quickly. |dos16|
|
||
|
The Win32, DJGPP, and OS/2 versions use maximal features, because they have
|
||
|
enough memory.
|
||
|
The Amiga version is available with normal and maximal features.
|
||
|
|
||
|
Added "make test" to Unix version Makefile. Allows for a quick check if most
|
||
|
"normal" commands work properly. Also tests a few specific commands.
|
||
|
|
||
|
Added setlocale() with codepage support for DJGPP version.
|
||
|
|
||
|
autoconf:
|
||
|
- Added autoconf check for -lXdmcp.
|
||
|
- Included check for -lXmu, no longer needed to edit the Makefile for this.
|
||
|
- Switched to autoconf 2.12.
|
||
|
- Added configure check for <poll.h>. Seems to be needed when including
|
||
|
Perl on Linux?
|
||
|
- termlib is now checked before termcap.
|
||
|
- Added configure check for strncasecmp(), stricmp() and strnicmp(). Added
|
||
|
vim_stricmp() for when there's no library function for stricmp().
|
||
|
- Use "datadir" in configure, instead of our own check for HELPDIR.
|
||
|
|
||
|
Removed "make proto" from Makefile.manx. Could not make it work without a lot
|
||
|
of #ifdefs.
|
||
|
|
||
|
Removed "proto/" from paths in proto.h. Needed for the Mac port.
|
||
|
|
||
|
Drastically changed Makefile.mint. Now it includes the Unix Makefile.
|
||
|
|
||
|
Added support for Dos16 in Makefile.b32 (renamed Makefile.b32 to Makefile.bor)
|
||
|
|
||
|
All source files are now edited with a tabstop of 8 instead of 4, which is
|
||
|
better when debugging and using other tools. 'softtabstop' is set to 4, to
|
||
|
make editing easier.
|
||
|
|
||
|
Unix: Added "link.sh" script, which removes a few unnecessary libraries from
|
||
|
the link command.
|
||
|
|
||
|
Don't use HPUX digraphs by default, but only when HPUX_DIGRAPHS is defined.
|
||
|
|digraphs-default|
|
||
|
|
||
|
==============================================================================
|
||
|
BUG FIXES *bug-fixes-5*
|
||
|
|
||
|
Note: Some of these fixes may only apply to test versions which were
|
||
|
created after version 4.6, but before 5.0.
|
||
|
|
||
|
|
||
|
When doing ":bdel", try going to the next loaded buffer. Don't rewind to the
|
||
|
start of the buffer list.
|
||
|
|
||
|
mch_isdir() for Unix returned TRUE for "" on some systems.
|
||
|
|
||
|
Win32: 'shell' set to "mksnt/sh.exe" breaks ":!" commands. Don't use
|
||
|
backslashes in the temp file names.
|
||
|
|
||
|
On linux, with a FAT file system, could get spurious "file xxx changed since
|
||
|
editing started" messages, because the time is rounded off to two seconds
|
||
|
unexpectedly.
|
||
|
|
||
|
Crash in GUI, when selecting a word (double click) and then extend until an
|
||
|
empty line.
|
||
|
|
||
|
For systems where isdigit() can't handle characters > 255, get_number() caused
|
||
|
a crash when moving the mouse during the prompt for recovery.
|
||
|
|
||
|
In Insert mode, "CTRL-O P" left the cursor on the last inserted character.
|
||
|
Now the cursor is left after the last putted character.
|
||
|
|
||
|
When quickfix found an error type other than 'e' or 'w', it was never printed.
|
||
|
|
||
|
A setting for 'errorfile' in a .vimrc overruled the "-q errorfile" argument.
|
||
|
|
||
|
Some systems create a file when generating a temp file name. Filtering would
|
||
|
then create a backup file for this, which was never deleted. Now no backup
|
||
|
file is made when filtering.
|
||
|
|
||
|
simplify_filename() could remove a ".." after a link, resulting in the wrong
|
||
|
file name. Made simplify_filename also work for MSDOS. Don't use it for
|
||
|
Amiga, since it doesn't have "../".
|
||
|
|
||
|
otherfile() was unreliable when using links. Could think that reading/writing
|
||
|
was for a different file, when it was the same.
|
||
|
|
||
|
Pasting with mouse in Replace mode didn't replace anything.
|
||
|
|
||
|
Window height computed wrong when resizing a window with an autocommand (could
|
||
|
cause a crash).
|
||
|
|
||
|
":s!foo!bar!" wasn't possible (Vi compatible).
|
||
|
|
||
|
do_bang() freed memory twice when called recursively, because of autocommands
|
||
|
(test11). Thanks to Electric Fence!
|
||
|
|
||
|
"v$d" on an empty line didn't remove the "-- VISUAL --" mode message from the
|
||
|
command-line, and inverted the cursor.
|
||
|
|
||
|
":mkexrc" didn't check for failure to open the file, causing a crash.
|
||
|
(Felderhoff).
|
||
|
|
||
|
Win32 mch_write() wrote past fixed buffer, causing terminal keys no longer to
|
||
|
be recognized. Both console and GUI version.
|
||
|
|
||
|
Athena GUI: Crash when removing a menu item. Now Vim doesn't crash, but the
|
||
|
reversing of the menu item is still wrong.
|
||
|
|
||
|
Always reset 'list' option for the help window.
|
||
|
|
||
|
When 'scrolloff' is non-zero, a 'showmatch' could cause the shown match to be
|
||
|
in the wrong line and the window to be scrolled (Acevedo).
|
||
|
|
||
|
After ":set all&", 'lines' and 'ttytype' were still non-default, because the
|
||
|
defaults never got set. Now the defaults for 'lines' and 'columns' are set
|
||
|
after detecting the window size. 'term' and 'ttytype' defaults are set when
|
||
|
detecting the terminal type.
|
||
|
|
||
|
For (most) non-Unix systems, don't add file names with illegal characters when
|
||
|
expanding. Fixes "cannot open swapfile" error when doing ":e *.burp", when
|
||
|
there is no match.
|
||
|
|
||
|
In X11 GUI, drawing part of the cursor obscured the text. Now the text is
|
||
|
drawn over the cursor, like when it fills the block. (Seibert)
|
||
|
|
||
|
when started with "-c cmd -q errfile", the cursor would be left in line 1.
|
||
|
Now a ":cc" is done after executing "cmd".
|
||
|
|
||
|
":ilist" never ignored case, even when 'ignorecase' set.
|
||
|
|
||
|
"vim -r file" for a readonly file, then making a change, got ATTENTION message
|
||
|
in insert mode, display mixed up until <Esc> typed. Also don't give ATTENTION
|
||
|
message after recovering a file.
|
||
|
|
||
|
The abbreviation ":ab #i #include" could not be removed.
|
||
|
|
||
|
CTRL-L completion (longest common match) on command-line didn't work properly
|
||
|
for case-insensitive systems (MS-DOS, Windows, etc.). (suggested by Richard
|
||
|
Kilgore).
|
||
|
|
||
|
For terminals that can hide the cursor ("vi" termcap entry), resizing the
|
||
|
window caused the cursor to disappear.
|
||
|
|
||
|
Using an invalid mark in an Ex address didn't abort the command.
|
||
|
|
||
|
When 'smarttab' set, would use 'shiftround' when inserting a TAB after a
|
||
|
space. Now it always rounds to a tabstop.
|
||
|
|
||
|
Set '[ and '] marks for ":copy", ":move", ":append", ":insert", ":substitute"
|
||
|
and ":change". (Acevedo).
|
||
|
|
||
|
"d$" in an empty line still caused an error, even when 'E' is not in
|
||
|
'cpoptions'.
|
||
|
|
||
|
Help files were stored in the viminfo buffer list without a path.
|
||
|
|
||
|
GUI: Displaying cursor was not synchronized with other displaying. Caused
|
||
|
several display errors. For example, when the last two lines in the file
|
||
|
start with spaces, "dd" on the last line copied text to the (then) last line.
|
||
|
|
||
|
Win32: Needed to type CTRL-SHIFT-- to get CTRL-_.
|
||
|
|
||
|
GUI: Moving the cursor forwards over bold text would remove one column of bold
|
||
|
pixels.
|
||
|
|
||
|
X11 GUI: When a bold character in the last column was scrolled up or down, one
|
||
|
column of pixels would not be copied.
|
||
|
|
||
|
Using <BS> to move the cursor left can sometimes erase a character. Now use
|
||
|
"le" termcap entry for this.
|
||
|
|
||
|
Keyword completion with regexp didn't work. e.g., for "b.*crat".
|
||
|
|
||
|
Fixed: With CTRL-O that jumps to another file, cursor could end up just after
|
||
|
the line.
|
||
|
|
||
|
Amiga: '$' was missing from character recognized as wildcards, causing $VIM
|
||
|
sometimes not to be expanded.
|
||
|
|
||
|
":change" didn't adjust marks for deleted lines.
|
||
|
|
||
|
":help [range]" didn't work. Also for [pattern], [count] and [quotex].
|
||
|
|
||
|
For 'cindent'ing, typing "class::method" doesn't align like a label when the
|
||
|
second ':' is typed.
|
||
|
When inserting a CR with 'cindent' set (and a bunch of other conditions) the
|
||
|
cursor went to a wrong location.
|
||
|
'cindent' was wrong for a line that ends in '}'.
|
||
|
'cindent' was wrong after "else {".
|
||
|
|
||
|
While editing the cmdline in the GUI, could not use the mouse to select text
|
||
|
from the command-line itself.
|
||
|
|
||
|
When deleting lines, marks in tag stack were only adjusted for the current
|
||
|
window, not for other windows on the same buffer.
|
||
|
|
||
|
Tag guessing could find a function "some_func" instead of the "func" we were
|
||
|
looking for.
|
||
|
|
||
|
Tags file name relative to the current file didn't work.
|
||
|
|
||
|
":g/pat2/s//pat2/g", causing the number of subs to be reported, used to cause
|
||
|
a scroll up. Now you no longer have to hit <CR>.
|
||
|
|
||
|
X11 GUI: Selecting text could cause a crash.
|
||
|
|
||
|
32 bit DOS version: CTRL-C in external command killed Vim. When SHELL is set
|
||
|
to "sh.exe", external commands didn't work. Removed using of command.com, no
|
||
|
longer need to set 'shellquote'.
|
||
|
|
||
|
Fixed crash when using ":g/pat/i".
|
||
|
|
||
|
Fixed (potential) crash for X11 GUI, when using an X selection. Was giving a
|
||
|
pointer on the stack to a callback function, now it's static.
|
||
|
|
||
|
Using "#" and "*" with an operator didn't work. E.g. "c#".
|
||
|
|
||
|
Command-line expansion didn't work properly after ":*". (Acevedo)
|
||
|
|
||
|
Setting 'weirdinvert' caused highlighting to be wrong in the GUI.
|
||
|
|
||
|
":e +4 #" didn't work, because the "4" was in unallocated memory (could cause
|
||
|
a crash).
|
||
|
|
||
|
Cursor position was wrong for ":e #", after ":e #" failed, because of changes
|
||
|
to the buffer.
|
||
|
|
||
|
When doing ":buf N", going to a buffer that was edited with ":view", the
|
||
|
readonly flag was reset. Now make a difference between ":e file" and ":buf
|
||
|
file": Only set/reset 'ro' for the first one.
|
||
|
|
||
|
Avoid |hit-enter| prompt when not able to write viminfo on exit.
|
||
|
|
||
|
When giving error messages in the terminal where the GUI was started, GUI
|
||
|
escape codes would be written to the terminal. In an xterm this could be seen
|
||
|
as a '$' after the message.
|
||
|
|
||
|
Mouse would not work directly after ":gui", because full_screen isn't set,
|
||
|
which causes starttermcap() not to do its work.
|
||
|
|
||
|
'incsearch' did not scroll the window in the same way as the actual search.
|
||
|
When 'nowrap' set, incsearch didn't show a match when it was off the side of
|
||
|
the screen. Now it also shows the whole match, instead of just the cursor
|
||
|
position (if possible).
|
||
|
|
||
|
":unmap", ":unab" and ":unmenu" did not accept a double quote, it was seen as
|
||
|
the start of a comment. Now it's Vi compatible.
|
||
|
|
||
|
Using <Up><Left><Left><Up> in the command-line, when there is no previous
|
||
|
cmdline in the history, inserted a NUL on the command-line.
|
||
|
|
||
|
"i<Esc>" when on a <Tab> in column 0 left the cursor in the wrong place.
|
||
|
|
||
|
GUI Motif: When adding a lot of menu items, the menu bar goes into two rows.
|
||
|
Deleting menu items, reducing the number of rows, now also works.
|
||
|
|
||
|
With ":g/pat/s//foo/c", a match in the first line was scrolled off of the
|
||
|
screen, so you could not see it.
|
||
|
When using ":s//c", with 'nowrap' set, a match could be off the side of the
|
||
|
screen, so you could not see it.
|
||
|
|
||
|
When 'helpfile' was set to a fixed, non-absolute path in feature.h, Vim would
|
||
|
crash. mch_Fullname can now handle file names in read-only memory. (Lottem)
|
||
|
|
||
|
When using CTRL-A or CTRL-@ in Insert mode, there could be strange effects
|
||
|
when using CTRL-D next. Also, when repeating inserted text that included "0
|
||
|
CTRL-D" or "^ CTRL-D" this didn't work. (Acevedo)
|
||
|
Using CTRL-D after using CTRL-E or CTRL-Y in Insert mode that inserted a '0'
|
||
|
or '^', removed the '0' or '^' and more indent.
|
||
|
|
||
|
The command "2".p" caused the last inserted text to be executed as commands.
|
||
|
(Acevedo)
|
||
|
|
||
|
Repeating the insert of "CTRL-V 048" resulted in "^@" to be inserted.
|
||
|
|
||
|
Repeating Insert completion could fail if there are special characters in the
|
||
|
text. (Acevedo)
|
||
|
|
||
|
":normal /string<CR>" caused the window to scroll. Now all ":normal" commands
|
||
|
are executed without scrolling messages.
|
||
|
|
||
|
Redo of CTRL-E or CTRL-Y in Insert mode interpreted special characters as
|
||
|
commands.
|
||
|
|
||
|
Line wrapping for 'tw' was done one character off for insert expansion
|
||
|
inserts.
|
||
|
|
||
|
buffer_exists() function didn't work properly for buffer names with a symbolic
|
||
|
link in them (e.g. when using buffer_exists(#)).
|
||
|
|
||
|
Removed the "MOTIF_COMMENT" construction from Makefile. It now works with
|
||
|
FreeBSD make, and probably with NeXT make too.
|
||
|
|
||
|
Matching the 'define' and 'include' arguments now honor the settings for
|
||
|
'ignorecase'. (Acevedo)
|
||
|
|
||
|
When one file shown in two windows, Visual selection mixed up cursor position
|
||
|
in current window and other window.
|
||
|
|
||
|
When doing ":e file" from a help file, the 'isk' option wasn't reset properly,
|
||
|
because of a modeline in the help file.
|
||
|
|
||
|
When doing ":e!", a cursor in another window on the same buffer could become
|
||
|
invalid, leading to "ml_get: invalid lnum" errors.
|
||
|
|
||
|
Matching buffer name for when expanded name has a different path from not
|
||
|
expanded name (Brugnara).
|
||
|
|
||
|
Normal mappings didn't work after an operator. For example, with ":map Q gq",
|
||
|
"QQ" didn't work.
|
||
|
|
||
|
When ":make" resulted in zero errors, a "No Errors" error message was given
|
||
|
(which breaks mappings).
|
||
|
|
||
|
When ":sourcing" a file, line length was limited to 1024 characters. CTRL-V
|
||
|
before <EOL> was not handled Vi compatible. (Acevedo)
|
||
|
|
||
|
Unexpected exit for X11 GUI, caused by SAVE_YOURSELF event. (Heimann)
|
||
|
|
||
|
CTRL-X CTRL-I only found one match per line. (Acevedo)
|
||
|
When using an illegal CTRL-X key in Insert mode, the CTRL-X mode message
|
||
|
was stuck.
|
||
|
|
||
|
Finally managed to ignore the "Quit" menu entry of the Window manager! Now
|
||
|
Vim only exists when there are no changed buffers.
|
||
|
|
||
|
Trying to start the GUI when $DISPLAY is not set resulted in a crash.
|
||
|
When $DISPLAY is not set and gvim starts vim, title was restored to "Thanks
|
||
|
for flying Vim".
|
||
|
When $DISPLAY not set, starting "gvim" (dropping back to vim) and then
|
||
|
selecting text with the mouse caused a crash.
|
||
|
|
||
|
"J", with 'joinspaces' set, on a line ending in ". ", caused one space too
|
||
|
many to be added. (Acevedo)
|
||
|
|
||
|
In insert mode, a CTRL-R {regname} which didn't insert anything left the '"'
|
||
|
on the screen.
|
||
|
|
||
|
":z10" didn't work. (Clapp)
|
||
|
|
||
|
"Help "*" didn't work.
|
||
|
|
||
|
Renamed a lot of functions, to avoid clashes with POSIX name space.
|
||
|
|
||
|
When adding characters to a line, making it wrap, the following lines were
|
||
|
sometimes not shifted down (e.g. after a tag jump).
|
||
|
|
||
|
CTRL-E, with 'so' set and cursor on last line, now does not move cursor as
|
||
|
long as the last line is on the screen.
|
||
|
|
||
|
When there are two windows, doing "^W+^W-" in the bottom window could cause
|
||
|
the status line to be doubled (not redrawn correctly).
|
||
|
|
||
|
This command would hang: ":n `cat`". Now connect stdin of the external
|
||
|
command to /dev/null, when expanding.
|
||
|
|
||
|
Fixed lalloc(0,) error for ":echo %:e:r". (Acevedo)
|
||
|
|
||
|
The "+command" argument to ":split" didn't work when there was no file name.
|
||
|
|
||
|
When selecting text in the GUI, which is the output of a command-line command
|
||
|
or an external command, the inversion would sometimes remain.
|
||
|
|
||
|
GUI: "-mh 70" argument was broken. Now, when menuheight is specified, it is
|
||
|
not changed anymore.
|
||
|
|
||
|
GUI: When using the scrollbar or mouse while executing an external command,
|
||
|
this caused garbage characters.
|
||
|
|
||
|
Showmatch sometimes jumped to the wrong position. Was caused by a call to
|
||
|
findmatch() when redrawing the display (when syntax highlighting is on).
|
||
|
|
||
|
Search pattern "\(a *\)\{3} did not work correctly, also matched "a a".
|
||
|
Problem with brace_count not being decremented.
|
||
|
|
||
|
Wildcard expansion added too many non-matching file names.
|
||
|
|
||
|
When 'iskeyword' contains characters like '~', "*" and "#" didn't work
|
||
|
properly. (Acevedo)
|
||
|
|
||
|
On Linux, on a FAT file system, modification time can change by one second.
|
||
|
Avoid a "file has changed" warning for a one second difference.
|
||
|
|
||
|
When using the page-switching in an xterm, Vim would position the cursor on
|
||
|
the last line of the window on exit. Also removed the cursor positioning for
|
||
|
":!" commands.
|
||
|
|
||
|
":g/pat/p" command (partly) overwrote the command. Now the output is on a
|
||
|
separate line.
|
||
|
|
||
|
With 'ic' and 'scs' set, a search for "Keyword", ignore-case matches were
|
||
|
highlighted too.
|
||
|
|
||
|
"^" on a line with only white space, put cursor beyond the end of the line.
|
||
|
|
||
|
When deleting characters before where insertion started ('bs' == 2), could not
|
||
|
use abbreviations.
|
||
|
|
||
|
CTRL-E at end of file puts cursor below the file, in Visual mode, when 'so' is
|
||
|
non-zero. CTRL-E didn't work when 'so' is big and the line below the window
|
||
|
wraps. CTRL-E, when 'so' is non-zero, at end of the file, caused jumping
|
||
|
up-down.
|
||
|
|
||
|
":retab" didn't work well when 'list' is set.
|
||
|
|
||
|
Amiga: When inserting characters at the last line on the screen, causing it
|
||
|
to wrap, messed up the display. It appears that a '\n' on the last line
|
||
|
doesn't always cause a scroll up.
|
||
|
|
||
|
In Insert mode "0<C-D><C-D>" deleted an extra character, because Vim thought
|
||
|
that the "0" was still there. (Acevedo)
|
||
|
|
||
|
"z{count}l" ignored the count. Also for "zh" et. al. (Acevedo)
|
||
|
|
||
|
"S" when 'autoindent' is off didn't delete leading white space.
|
||
|
|
||
|
"/<Tab>" landed on the wrong character when 'incsearch' is set.
|
||
|
|
||
|
Asking a yes/no question could cause a |hit-enter| prompt.
|
||
|
|
||
|
When the file consists of one long line (>4100 characters), making changes
|
||
|
caused various errors and a crash.
|
||
|
|
||
|
DJGPP version could not save long lines (>64000) for undo.
|
||
|
|
||
|
"yw" on the last char in the file didn't work. Also fixed "6x" at the end of
|
||
|
the line. "6X" at the start of a line fails, but does not break a mapping. In
|
||
|
general, a movement for an operator doesn't beep or flush a mapping, but when
|
||
|
there is nothing to operate on it beeps (this is Vi compatible).
|
||
|
|
||
|
"m'" and "m`" now set the '' mark at the cursor position.
|
||
|
|
||
|
Unix: Resetting of signals for external program didn't work, because SIG_DFL
|
||
|
and NULL are the same! For "!!yes|dd count=1|, the yes command kept on
|
||
|
running.
|
||
|
|
||
|
Partly fixed: Unix GUI: Typeahead while executing an external command was lost.
|
||
|
Now it's not lost while the command is producing output.
|
||
|
|
||
|
Typing <S-Tab> in Insert mode, when it isn't mapped, inserted "<S-Tab>". Now
|
||
|
it works like a normal <Tab>, just like <C-Tab> and <M-Tab>.
|
||
|
|
||
|
Redrawing ruler didn't check for old value correctly (caused UMR warnings in
|
||
|
Purify).
|
||
|
|
||
|
Negative array index in finish_viminfo_history().
|
||
|
|
||
|
":g/^/d|mo $" deleted all the lines. The ":move" command now removes the
|
||
|
:global mark from the moved lines.
|
||
|
|
||
|
Using "vG" while the last line in the window is a "@" line, didn't update
|
||
|
correctly. Just the "v" showed "~" lines.
|
||
|
|
||
|
"daw" on the last char of the file, when it's a space, moved the cursor beyond
|
||
|
the end of the line.
|
||
|
|
||
|
When 'hlsearch' was set or reset, only the current buffer was redrawn, while
|
||
|
this affects all windows.
|
||
|
|
||
|
CTRL-^, positioning the cursor somewhere from 1/2 to 1 1/2 screen down the
|
||
|
file, put the cursor at the bottom of the window, instead of halfway.
|
||
|
|
||
|
When scrolling up for ":append" command, not all windows were updated
|
||
|
correctly.
|
||
|
|
||
|
When 'hlsearch' is set, and an auto-indent is highlighted, pressing <Esc>
|
||
|
didn't remove the highlighting, although the indent was deleted.
|
||
|
|
||
|
When 'ru' set and 'nosc', using "$j" showed a wrong ruler.
|
||
|
|
||
|
Under Xfree 3.2, Shift-Tab didn't work (wrong keysym is used).
|
||
|
|
||
|
Mapping <S-Tab> didn't work. Changed the key translations to use the shortest
|
||
|
key code possible. This makes the termcode translations and mappings more
|
||
|
consistent. Now all modifiers work in all combinations, not only with <Tab>,
|
||
|
but also with <Space>, <CR>, etc.
|
||
|
|
||
|
For Unix, restore three more signals. And Vim catches SIGINT now, so CTRL-C
|
||
|
in Ex mode doesn't make Vim exit.
|
||
|
|
||
|
""a5Y" yanked 25 lines instead of 5.
|
||
|
|
||
|
"vrxxx<Esc>" in an empty line could not be undone.
|
||
|
|
||
|
A CTRL-C that breaks ":make" caused the errorfile not to be read (annoying
|
||
|
when you want to handle what ":make" produced so far).
|
||
|
|
||
|
":0;/pat" didn't find "pat" in line 1.
|
||
|
|
||
|
Search for "/test/s+1" at first char of file gave bottom-top message, or
|
||
|
didn't work at all with 'nowrapscan'.
|
||
|
|
||
|
Bug in viminfo history. Could cause a crash on exit.
|
||
|
|
||
|
":print" didn't put cursor on first non-blank in line.
|
||
|
|
||
|
":0r !cat </dev/null" left cursor in line zero, with very strange effects.
|
||
|
|
||
|
With 'showcmd' set and 'timeoutlen' set to a few seconds, trick to position
|
||
|
the cursor leftwards didn't work.
|
||
|
|
||
|
AIX stty settings were restored to cs5 instead of cs8 (Winn).
|
||
|
|
||
|
File name completion didn't work for "zsh" versions that put spaces between
|
||
|
file names, instead of NULs.
|
||
|
|
||
|
Changed "XawChain*" to "XtChain*", should work for more systems.
|
||
|
|
||
|
Included quite a few fixes for rightleft mode (Lottem).
|
||
|
|
||
|
Didn't ask to |hit-enter| when GUI is started and error messages are printed.
|
||
|
|
||
|
When trying to edit a file in a non-existent directory, ended up with editing
|
||
|
"No file".
|
||
|
|
||
|
"gqap" to format a paragraph did too much redrawing.
|
||
|
|
||
|
When 'hlsearch' set, only the current window was updated for a new search
|
||
|
pattern.
|
||
|
|
||
|
Sometimes error messages on startup didn't cause a |hit-enter| prompt,
|
||
|
because of autocommands containing an empty line.
|
||
|
|
||
|
Was possible to select part of the window in the border, below the command
|
||
|
line.
|
||
|
|
||
|
'< and '> marks were not at the correct position after linewise Visual
|
||
|
selection.
|
||
|
|
||
|
When translating a help argument to "CTRL-x", prepend or append a '_', when
|
||
|
applicable.
|
||
|
|
||
|
Blockwise visual mode wasn't correct when moving vertically over a special
|
||
|
character (displayed as two screen characters).
|
||
|
|
||
|
Renamed "struct option" to "struct vimoption" to avoid name clash with GNU
|
||
|
getopt().
|
||
|
|
||
|
":abclear" didn't work (but ":iabclear" and ":cabclear" did work).
|
||
|
|
||
|
When 'nowrap' used, screen wasn't always updated correctly.
|
||
|
|
||
|
"vim -c split file" displayed extra lines.
|
||
|
|
||
|
After starting the GUI, searched the termcap for a "gui" term.
|
||
|
|
||
|
When 'hls' used, search for "^$" caused a hang.
|
||
|
When 'hls' was set, an error in the last regexp caused trouble.
|
||
|
|
||
|
Unix: Only output an extra <EOL> on exit when outputted something in the
|
||
|
alternate screen, or when there is a message that needs to be cleared.
|
||
|
|
||
|
"/a\{" did strange things, depending on previous search.
|
||
|
|
||
|
"c}" only redrew one line (with -u NONE).
|
||
|
|
||
|
For mappings, CTRL-META-A was shown as <M-^A> instead of <MC-A>, while :map
|
||
|
only accepts <MC-A>. Now <M-C-A> is shown.
|
||
|
|
||
|
Unix: When using full path name in a tags file, which contains a link, and
|
||
|
'hidden' set and jumping to a tag in the current file, would get bogus
|
||
|
ATTENTION message. Solved by always expanding file names, even when starting
|
||
|
with '/'.
|
||
|
|
||
|
'hlsearch' highlighting of special characters (e.g., a TAB) didn't highlight
|
||
|
the whole thing.
|
||
|
|
||
|
"r<CR>" didn't work correctly on the last char of a line.
|
||
|
|
||
|
Sometimes a window resize or other signal caused an endless loop, involving
|
||
|
set_winsize().
|
||
|
|
||
|
"vim -r" didn't work, it would just hang (using tgetent() while 'term' is
|
||
|
empty).
|
||
|
|
||
|
"gk" while 'nowrap' set moved two lines up.
|
||
|
|
||
|
When windows are split, a message that causes a scroll-up messed up one of the
|
||
|
windows, which required a CTRL-L to be typed.
|
||
|
|
||
|
Possible endless loop when using shell command in the GUI.
|
||
|
|
||
|
Menus defined in the .vimrc were removed when GUI started.
|
||
|
|
||
|
Crash when pasting with the mouse in insert mode.
|
||
|
|
||
|
Crash with ":unmenu *" in .gvimrc for Athena.
|
||
|
|
||
|
"5>>" shifted 5 lines 5 times, instead of 1 time.
|
||
|
|
||
|
CTRL-C when getting a prompt in ":global" didn't interrupt.
|
||
|
|
||
|
When 'so' is non-zero, and moving the scrollbar completely to the bottom,
|
||
|
there was a lot of flashing.
|
||
|
|
||
|
GUI: Scrollbar ident must be long for DEC Alpha.
|
||
|
|
||
|
Some functions called vim_regcomp() without setting reg_magic, which could
|
||
|
lead to unpredictable magicness.
|
||
|
|
||
|
Crash when clicking around the status line, could get a selection with a
|
||
|
backwards range.
|
||
|
|
||
|
When deleting more than one line characterwise, the last character wasn't
|
||
|
deleted.
|
||
|
|
||
|
GUI: Status line could be overwritten when moving the scrollbar quickly (or
|
||
|
when 'wd' is non-zero).
|
||
|
|
||
|
An ESC at the end of a ":normal" command caused a wait for a terminal code to
|
||
|
finish. Now, a terminal code is not recognized when its start comes from a
|
||
|
mapping or ":normal" command.
|
||
|
|
||
|
Included patches from Robert Webb for GUI. Layout of the windows is now done
|
||
|
inside Vim, instead of letting the layout manager do this. Makes Vim work
|
||
|
with Lesstif!
|
||
|
|
||
|
UMR warning in set_expand_context().
|
||
|
|
||
|
Memory leak: b_winlnum list was never freed.
|
||
|
|
||
|
Removed TIOCLSET/TIOCLGET code from os_unix.c. Was changing some of the
|
||
|
terminal settings, and looked like it wasn't doing anything good. (suggested
|
||
|
by Juergen Weigert).
|
||
|
|
||
|
Ruler overwrote "is a directory" message. When starting up, and 'cmdheight'
|
||
|
set to > 1, first message could still be in the last line.
|
||
|
|
||
|
Removed prototype for putenv() from proto.h, it's already in osdef2.h.in.
|
||
|
|
||
|
In replace mode, when moving the cursor and then backspacing, wrong characters
|
||
|
were inserted.
|
||
|
|
||
|
Win32 GUI was checking for a CTRL-C too often, making it slow.
|
||
|
|
||
|
Removed mappings for MS-DOS that were already covered by commands.
|
||
|
|
||
|
When visually selecting all lines in a file, cursor at last line, then "J".
|
||
|
Gave ml_get errors. Was a problem with scrolling down during redrawing.
|
||
|
|
||
|
When doing a linewise operator, and then an operator with a mouse click, it
|
||
|
was also linewise, instead of characterwise.
|
||
|
|
||
|
When 'list' is set, the column of the ruler was wrong.
|
||
|
|
||
|
Spurious error message for "/\(b\+\)*".
|
||
|
|
||
|
When visually selected many lines, message from ":w file" disappeared when
|
||
|
redrawing the screen.
|
||
|
|
||
|
":set <M-b>=^[b", then insert "^[b", waited for another character. And then
|
||
|
inserted "<M-b>" instead of the real <M-b> character. Was trying to insert
|
||
|
K_SPECIAL x NUL.
|
||
|
|
||
|
CTRL-W ] didn't use count to set window height.
|
||
|
|
||
|
GUI: "-font" command-line argument didn't override 'guifont' setting from
|
||
|
.gvimrc. (Acevedo)
|
||
|
|
||
|
GUI: clipboard wasn't used for "*y". And some more Win32/X11 differences
|
||
|
fixed for the clipboard (Webb).
|
||
|
|
||
|
Jumping from one help file to another help file, with 'compatible' set,
|
||
|
removed the 'help' flag from the buffer.
|
||
|
|
||
|
File-writable bit could be reset when using ":w!" for a readonly file.
|
||
|
|
||
|
There was a wait for CTRL-O n in Insert mode, because the search pattern was
|
||
|
shown.
|
||
|
Reduced wait, to allow reading a message, from 10 to 3 seconds. It seemed
|
||
|
nothing was happening.
|
||
|
|
||
|
":recover" found same swap file twice.
|
||
|
|
||
|
GUI: "*yy only worked the second time (when pasting to an xterm)."
|
||
|
|
||
|
DJGPP version (dos32): The system flags were cleared.
|
||
|
|
||
|
Dos32 version: Underscores were sometimes replaced with y-umlaut (Levin).
|
||
|
|
||
|
Version 4.1 of ncurses can't handle tputs("", ..). Avoid calling tputs() with
|
||
|
an empty string.
|
||
|
|
||
|
<S-Tab> in the command-line worked like CTRL-P when no completion started yet.
|
||
|
Now it does completion, last match first.
|
||
|
|
||
|
Unix: Could get annoying "can't write viminfo" message after doing "su". Now
|
||
|
the viminfo file is overwritten, and the user set back to the original one.
|
||
|
|
||
|
":set term=builtin_gui" started the GUI in a wrong way. Now it's not
|
||
|
allowed anymore. But "vim -T gui" does start the GUI correctly now.
|
||
|
|
||
|
GUI: Triple click after a line only put last char in selection, when it is a
|
||
|
single character word.
|
||
|
|
||
|
When the window is bigger than the screen, the scrolling up of messages was
|
||
|
wrong (e.g. ":vers", ":hi"). Also when the bottom part of the window was
|
||
|
obscured by another window.
|
||
|
|
||
|
When using a wrong option only an error message is printed, to avoid that the
|
||
|
usage information makes it scroll off the screen.
|
||
|
|
||
|
When exiting because of not being able to read from stdin, didn't preserve the
|
||
|
swap files properly.
|
||
|
|
||
|
Visual selecting all chars in more than one line, then hit "x" didn't leave an
|
||
|
empty line. For one line it did leave an empty line.
|
||
|
|
||
|
Message for which autocommand is executing messed up file write message (for
|
||
|
FileWritePost event).
|
||
|
|
||
|
"vim -h" included "-U" even when GUI is not available, and "-l" when lisp is
|
||
|
not available.
|
||
|
|
||
|
Crash for ":he <C-A>" (command-line longer than screen).
|
||
|
|
||
|
":s/this/that/gc", type "y" two times, then undo, did reset the modified
|
||
|
option, even though the file is still modified.
|
||
|
|
||
|
Empty lines in a tags file caused a ":tag" to be aborted.
|
||
|
|
||
|
When hitting 'q' at the more prompt for ":menu", still scrolled a few lines.
|
||
|
|
||
|
In an xterm that uses the bold trick a single row of characters could remain
|
||
|
after an erased bold character. Now erase one extra char after the bold char,
|
||
|
like for the GUI.
|
||
|
|
||
|
":pop!" didn't work.
|
||
|
|
||
|
When the reading a buffer was interrupted, ":w" should not be able to
|
||
|
overwrite the file, ":w!" is required.
|
||
|
|
||
|
":cf%" caused a crash.
|
||
|
|
||
|
":gui longfilename", when forking is enabled, could leave part of the
|
||
|
longfilename at the shell prompt.
|
||
|
|
||
|
==============================================================================
|
||
|
VERSION 5.1 *version-5.1*
|
||
|
|
||
|
Improvements made between version 5.0 and 5.1.
|
||
|
|
||
|
This was mostly a bug-fix release, not many new features.
|
||
|
|
||
|
|
||
|
Changed *changed-5.1*
|
||
|
-------
|
||
|
|
||
|
The expand() function now separates file names with <NL> instead of a space.
|
||
|
This avoids problems for file names with embedded spaces. To get the old
|
||
|
result, use substitute(expand(foo), "\n", " ", "g").
|
||
|
|
||
|
For Insert-expanding dictionaries allow a backslash to be used for
|
||
|
wildchars. Allows expanding "ze\kra", when 'isk' includes a backslash.
|
||
|
|
||
|
New icon for the Win32 GUI.
|
||
|
|
||
|
":tag", ":tselect" etc. only use the argument as a regexp when it starts
|
||
|
with '/'. Avoids that ":tag xx~" gives an error message: "No previous sub.
|
||
|
regexp". Also, when the :tag argument contained wildcard characters, it was
|
||
|
not Vi compatible.
|
||
|
When using '/', the argument is taken literally too, with a higher priority,
|
||
|
so it's found before wildcard matches.
|
||
|
Only when the '/' is used are matches with different case found, even though
|
||
|
'ignorecase' isn't set.
|
||
|
Changed "g^]" to only do ":tselect" when there is more than on matching tag.
|
||
|
|
||
|
Changed some of the default colors, because they were not very readable on a
|
||
|
dark background.
|
||
|
|
||
|
A character offset to a search pattern can move the cursor to the next or
|
||
|
previous line. Also fixes that "/pattern/e+2" got stuck on "pattern" at the
|
||
|
end of a line.
|
||
|
|
||
|
Double-clicks in the status line do no longer start Visual mode. Dragging a
|
||
|
status line no longer stops Visual mode.
|
||
|
|
||
|
Perl interface: Buffers() and Windows() now use more logical arguments, like
|
||
|
they are used in the rest of Vim (Moore).
|
||
|
|
||
|
Init '" mark to the first character of the first line. Makes it possible to
|
||
|
use '" in an autocommand without getting an error message.
|
||
|
|
||
|
|
||
|
Added *added-5.1*
|
||
|
-----
|
||
|
|
||
|
"shell_error" internal variable: result of last shell command.
|
||
|
|
||
|
":echohl" command: Set highlighting for ":echo".
|
||
|
|
||
|
'S' flag in 'highlight' and StatusLineNC highlight group: highlighting for
|
||
|
status line of not-current window. Default is to use bold for current
|
||
|
window.
|
||
|
|
||
|
Added buffer_name() and buffer_number() functions (Aaron).
|
||
|
Added flags argument "g" to substitute() function (Aaron).
|
||
|
Added winheight() function.
|
||
|
|
||
|
Win32: When an external command starts with "start ", no console is opened
|
||
|
for it (Aaron).
|
||
|
|
||
|
Win32 console: Use termcap codes for bold/reverse based on the current
|
||
|
console attributes.
|
||
|
|
||
|
Configure check for "strip". (Napier)
|
||
|
|
||
|
CTRL-R CTRL-R x in Insert mode: Insert the contents of a register literally,
|
||
|
instead of as typed.
|
||
|
|
||
|
Made a few "No match" error messages more informative by adding the pattern
|
||
|
that didn't match.
|
||
|
|
||
|
"make install" now also copies the macro files.
|
||
|
|
||
|
tools/tcltags, a shell script to generate a tags file from a TCL file.
|
||
|
|
||
|
"--with-tlib" setting for configure. Easy way to use termlib: "./configure
|
||
|
--with-tlib=termlib".
|
||
|
|
||
|
'u' flag in 'cino' for setting the indent for contained () parts.
|
||
|
|
||
|
When Win32 OLE version can't load the registered type library, ask the user
|
||
|
if he wants to register Vim now. (Erhardt)
|
||
|
Win32 with OLE: When registered automatically, exit Vim.
|
||
|
Included VisVim 1.1b, with a few enhancements and the new icon (Heiko
|
||
|
Erhardt).
|
||
|
|
||
|
Added patch from Vince Negri for Win32s support. Needs to be compiled with
|
||
|
VC 4.1!
|
||
|
|
||
|
Perl interface: Added $curbuf. Rationalized Buffers() and Windows().
|
||
|
(Moore) Added "group" argument to Msg().
|
||
|
|
||
|
Included Perl files in DOS source archive. Changed Makefile.bor and
|
||
|
Makefile.w32 to support building a Win32 version with Perl included.
|
||
|
|
||
|
Included new Makefile.w32 from Ken Scott. Now it's able to make all Win32
|
||
|
versions, including OLE, Perl and Python.
|
||
|
|
||
|
Added CTRL-W g ] and CTRL-W g ^]: split window and do g] or g^].
|
||
|
|
||
|
Added "g]" to always do ":tselect" for the ident under the cursor.
|
||
|
Added ":tjump" and ":stjump" commands.
|
||
|
Improved listing of ":tselect" when tag names are a bit long.
|
||
|
|
||
|
Included patches for the Macintosh version. Also for Python interface.
|
||
|
(St-Amant)
|
||
|
|
||
|
":buf foo" now also restores cursor column, when the buffer was used before.
|
||
|
|
||
|
Adjusted the Makefile for different final destinations for the syntax files
|
||
|
and scripts (for Debian Linux).
|
||
|
|
||
|
Amiga: $VIM can be used everywhere. When $VIM is not defined, "VIM:" is
|
||
|
used. This fixes that "VIM:" had to be assigned for the help files, and
|
||
|
$VIM set for the syntax files. Now either of these work.
|
||
|
|
||
|
Some xterms send vt100 compatible function keys F1-F4. Since it's not
|
||
|
possible to detect this, recognize both type of keys and translate them to
|
||
|
<F1> - <F4>.
|
||
|
|
||
|
Added "VimEnter" autocommand. Executed after loading all the startup stuff.
|
||
|
|
||
|
BeOS version now also runs on Intel CPUs (Seibert).
|
||
|
|
||
|
|
||
|
Fixed *fixed-5.1*
|
||
|
-----
|
||
|
|
||
|
":ts" changed position in the tag stack when cancelled with <CR>.
|
||
|
":ts" changed the cursor position for CTRL-T when cancelled with <CR>.
|
||
|
":tn" would always jump to the second match. Was using the wrong entry in
|
||
|
the tag stack.
|
||
|
Doing "tag foo", then ":tselect", overwrote the original cursor position in
|
||
|
the tag stack.
|
||
|
|
||
|
"make install" changed the vim.1 manpage in a wrong way, causing "doc/doc"
|
||
|
to appear for the documentation files.
|
||
|
|
||
|
When compiled with MAX_FEAT, xterm mouse handling failed. Was caused by DEC
|
||
|
mouse handling interfering.
|
||
|
|
||
|
Was leaking memory when using selection in X11.
|
||
|
|
||
|
CTRL-D halfway a command-line left some characters behind the first line(s)
|
||
|
of the listing.
|
||
|
|
||
|
When expanding directories for ":set path=", put two extra backslashes
|
||
|
before a space in a directory name.
|
||
|
|
||
|
When 'lisp' set, first line of a function would be indented. Now its indent
|
||
|
is set to zero. And use the indent of the first previous line that is at
|
||
|
the same () level. Added test33.
|
||
|
|
||
|
"so<Esc>u" in an empty file didn't work.
|
||
|
|
||
|
DOS: "seek error in swap file write" errors, when using DOS 6.2 share.exe,
|
||
|
because the swap file was made hidden. It's no longer hidden.
|
||
|
|
||
|
":global" command would sometimes not execute on a matching line. Happened
|
||
|
when a data block is full in ml_replace().
|
||
|
|
||
|
For AIX use a tgetent buffer of 2048 bytes, instead of 1024.
|
||
|
|
||
|
Win32 gvim now only sets the console size for external commands to 25x80
|
||
|
on Windows 95, not on NT.
|
||
|
|
||
|
Win32 console: Dead key could cause a crash, because of a missing "WINAPI"
|
||
|
(Deshpande).
|
||
|
|
||
|
The right mouse button started Visual mode, even when 'mouse' is empty, and
|
||
|
in the command-line, a left click moved the cursor when 'mouse' is empty.
|
||
|
In Visual mode, 'n' in 'mouse' would be used instead of 'v'.
|
||
|
|
||
|
A blinking cursor or focus change cleared a non-Visual selection.
|
||
|
|
||
|
CTRL-Home and CTRL-End didn't work for MS-DOS versions.
|
||
|
|
||
|
Could include NUL in 'iskeyword', causing a crash when doing insert mode
|
||
|
completion.
|
||
|
|
||
|
Use _dos_commit() to flush the swap file to disk for MSDOS 16 bit version.
|
||
|
|
||
|
In mappings, CTRL-H was replaced by the backspace key code. This caused
|
||
|
problems when it was used as text, e.g. ":map _U :%s/.^H//g<CR>".
|
||
|
|
||
|
":set t_Co=0" was not handled like a normal term. Now it's translated into
|
||
|
":set t_Co=", which works.
|
||
|
|
||
|
For ":syntax keyword" the "transparent" option did work, although not
|
||
|
mentioned in the help. But synID() returned wrong name.
|
||
|
|
||
|
"gqG" in a file with one-word-per-line (e.g. a dictionary) was very slow and
|
||
|
not interruptible.
|
||
|
|
||
|
"gq" operator inserted screen lines in the wrong situation. Now screen
|
||
|
lines are inserted or deleted when this speeds up displaying.
|
||
|
|
||
|
cindent was wrong when an "if" contained "((".
|
||
|
|
||
|
'r' flag in 'viminfo' was not used for '%'. Could get files in the buffer
|
||
|
list from removable media.
|
||
|
|
||
|
Win32 GUI with OLE: if_ole_vc.mak could not be converted into a project.
|
||
|
Hand-edited to fix this...
|
||
|
|
||
|
With 'nosol' set, doing "$kdw" below an empty line positioned the cursor at
|
||
|
the end of the line.
|
||
|
|
||
|
Dos32 version changed "\dir\file" into "/dir/file", to work around a DJGPP
|
||
|
bug. That bug appears to have been fixed, therefore this translation has
|
||
|
been removed.
|
||
|
|
||
|
"/^*" didn't work (find '*' in first column).
|
||
|
|
||
|
"<afile>" was not always set for autocommands. E.g., for ":au BufEnter *
|
||
|
let &tags = expand("<afile>:p:h") . "/tags".
|
||
|
|
||
|
In an xterm, the window may be a child of the outer xterm window. Use the
|
||
|
parent window when getting the title and icon names. (Smith)
|
||
|
|
||
|
When starting with "gvim -bg black -fg white", the value of 'background' is
|
||
|
only set after reading the .gvimrc file. This causes a ":syntax on" to use
|
||
|
the wrong colors. Now allow using ":gui" to open the GUI window and set the
|
||
|
colors. Previously ":gui" in a gvimrc crashed Vim.
|
||
|
|
||
|
tempname() returned the same name all the time, unless the file was actually
|
||
|
created. Now there are at least 26 different names.
|
||
|
|
||
|
File name used for <afile> was sometimes full path, sometimes file name
|
||
|
relative to current directory.
|
||
|
|
||
|
When 'background' was set after the GUI window was opened, it could change
|
||
|
colors that were set by the user in the .gvimrc file. Now it only changes
|
||
|
colors that have not been set by the user.
|
||
|
|
||
|
Ignore special characters after a CSI in the GUI version. These could be
|
||
|
interpreted as special characters in a wrong way. (St-Amant)
|
||
|
|
||
|
Memory leak in farsi code, when using search or ":s" command.
|
||
|
Farsi string reversing for a mapping was only done for new mappings. Now it
|
||
|
also works for replacing a mapping.
|
||
|
|
||
|
Crash in Win32 when using a file name longer than _MAX_PATH. (Aaron)
|
||
|
|
||
|
When BufDelete autocommands were executed, some things for the buffer were
|
||
|
already deleted (esp. Perl stuff).
|
||
|
|
||
|
Perl interface: Buffer specific items were deleted too soon; fixes "screen
|
||
|
no longer exists" messages. (Moore)
|
||
|
|
||
|
The Perl functions didn't set the 'modified' flag.
|
||
|
|
||
|
link.sh did not return an error on exit, which may cause Vim to start
|
||
|
installing, even though there is no executable to install. (Riehm)
|
||
|
|
||
|
Vi incompatibility: In Vi "." redoes the "y" command. Added the 'y' flag to
|
||
|
'cpoptions'. Only for 'compatible' mode.
|
||
|
|
||
|
":echohl" defined a new group, when the argument was not an existing group.
|
||
|
|
||
|
"syn on" and ":syn off" could move the cursor, if there is a hidden buffer
|
||
|
that is shorter that the current cursor position.
|
||
|
|
||
|
The " mark was not set when doing ":b file".
|
||
|
|
||
|
When a "nextgroup" is used with "skipwhite" in syntax highlighting, space at
|
||
|
the end of the line made the nextgroup also be found in the next line.
|
||
|
|
||
|
":he g<CTRL-D>", then ":" and backspace to the start didn't redraw.
|
||
|
|
||
|
X11 GUI: "gvim -rv" reversed the colors twice on Sun. Now Vim checks if the
|
||
|
result is really reverse video (background darker than foreground).
|
||
|
|
||
|
"cat link.sh | vim -" didn't set syntax highlighting.
|
||
|
|
||
|
Win32: Expanding "file.sw?" matched ".file.swp". This is an error of
|
||
|
FindnextFile() that we need to work around. (Kilgore)
|
||
|
|
||
|
"gqgq" gave an "Invalid lnum" error on the last line.
|
||
|
Formatting with "gq" didn't format the first line after a change of comment
|
||
|
leader.
|
||
|
|
||
|
There was no check for out-of-memory in win_alloc().
|
||
|
|
||
|
"vim -h" didn't mention "-register" and "-unregister" for the OLE version.
|
||
|
|
||
|
Could not increase 'cmdheight' when the last window is only one line. Now
|
||
|
other windows are also made smaller, when necessary.
|
||
|
|
||
|
Added a few {} to avoid "suggest braces around" warnings from gcc 2.8.x.
|
||
|
Changed return type of main() from void to int. (Nam)
|
||
|
|
||
|
Using '~' twice in a substitute pattern caused a crash.
|
||
|
|
||
|
"syn on" and ":syn off" could scroll the window, if there is a hidden buffer
|
||
|
that is shorter that the current cursor position.
|
||
|
|
||
|
":if 0 | if 1 | endif | endif" didn't work. Same for ":while" and "elseif".
|
||
|
|
||
|
With two windows on modified files, with 'autowrite' set, cursor in second
|
||
|
window, ":qa" gave a warning for the file in the first window, but then
|
||
|
auto-wrote the file in the second window. (Webb)
|
||
|
|
||
|
Win32 GUI scrollbar could only handle 32767 lines. Also makes the
|
||
|
intellimouse wheel use the configurable number of scrolls. (Robinson)
|
||
|
|
||
|
When using 'patchmode', and the backup file is on another partition, the file
|
||
|
copying messed up the write-file message.
|
||
|
|
||
|
GUI X11: Alt-Backspace and Alt-Delete didn't work.
|
||
|
|
||
|
"`0" could put the cursor after the last character in the line, causing
|
||
|
trouble for other commands, like "i".
|
||
|
|
||
|
When completing tags in insert mode with ^X^], some matches were skipped,
|
||
|
because the compare with other tags was wrong. E.g., when "mnuFileSave" was
|
||
|
already there, "mnuFile" would be skipped. (Negri)
|
||
|
|
||
|
When scrolling up/down, a syntax item with "keepend" didn't work properly.
|
||
|
Now the flags are also stored for the syntax state at the start of each line.
|
||
|
|
||
|
When 'ic' was changed while 'hlsearch' is on, there was no redraw to show the
|
||
|
effect.
|
||
|
|
||
|
Win32 GUI: Don't display "No write since last chance" in a message box, but in
|
||
|
the Vim window.
|
||
|
|
||
|
==============================================================================
|
||
|
VERSION 5.2 *version-5.2*
|
||
|
|
||
|
Improvements made between version 5.1 and 5.2.
|
||
|
|
||
|
|
||
|
Long lines editable *long-lines*
|
||
|
-------------------
|
||
|
|
||
|
A single long line that doesn't fit in the window doesn't show a line of @@@
|
||
|
anymore. Redrawing starts at a character further on in the line, such that
|
||
|
the text around the cursor can be seen. This makes it possible to edit these
|
||
|
long lines when wrapping is on.
|
||
|
|
||
|
|
||
|
File browser added *file-browser-5.2*
|
||
|
------------------
|
||
|
|
||
|
The Win32, Athena and Motif GUI bring up a file requester if the user asks to
|
||
|
":browse" for the ":e", ":w", ":r", ":so", ":redirect" and
|
||
|
":mkexrc/vimrc/vsess" commands. ::browse e /foo/bar" opens the requester in
|
||
|
the /foo/bar directory, so you can have nice mapping rhs's like ":browse so
|
||
|
$vim/macros". If no initial dir specified for ":browse e", can be compiled to
|
||
|
either begin in the current directory, or that of the current buffer. (Negri
|
||
|
and Kahn)
|
||
|
Added the 'browsedir' option, with value "current", "last" or "buffer". Tells
|
||
|
whether a browse dialog starts in last used dir, dir of current buffer, or
|
||
|
current dir. ":browse w" is unaffected.
|
||
|
The default menus have been changed to use the ":browse" command.
|
||
|
|
||
|
|
||
|
Dialogs added *dialogs-added*
|
||
|
-------------
|
||
|
|
||
|
Added the ":confirm" command. Works on ":e", ":q", ":w", ":cl". Win32,
|
||
|
Athena and Motif GUI uses a window-dialog. All other platforms can use
|
||
|
prompt in command-line. ":confirm qa" offers a choice to save all modified
|
||
|
files.
|
||
|
|
||
|
confirm() function: allows user access to the confirm engine.
|
||
|
|
||
|
Added 'v' flag to 'guioptions'. When included, a vertical button layout is
|
||
|
always used for the Win32 GUI dialog. Otherwise, a horizontal layout is
|
||
|
preferred.
|
||
|
|
||
|
Win32 GUI: ":promptfind" and ":promptrepl" pop up a dialog to find/replace.
|
||
|
To be used from a menu entry. (Negri)
|
||
|
|
||
|
|
||
|
Popup menu added *popup-menu-added*
|
||
|
----------------
|
||
|
|
||
|
When the 'mousemodel' option is set to "popup", the right mouse button
|
||
|
displays the top level menu headed with "PopUp" as pop-up context menu. The
|
||
|
"PopUp" menu is not displayed in the normal menu bar. This currently only
|
||
|
works for Win32 and Athena GUI.
|
||
|
|
||
|
|
||
|
Select mode added *new-Select-mode*
|
||
|
-----------------
|
||
|
|
||
|
A new mode has been added: "Select mode". It is like Visual mode, but typing
|
||
|
a printable character replaces the selection.
|
||
|
- CTRL-G can be used to toggle between Visual mode and Select mode.
|
||
|
- CTRL-O can be used to switch from Select mode to Visual mode for one command.
|
||
|
- Added 'selectmode' option: tells when to start Select mode instead of Visual
|
||
|
mode.
|
||
|
- Added 'mousemodel' option: Change use of mouse buttons.
|
||
|
- Added 'keymodel' option: tells to use shifted special keys to start a
|
||
|
Visual or Select mode selection.
|
||
|
- Added ":behave". Can be used to quickly set 'selectmode', 'mousemodel'
|
||
|
and 'keymodel' for MS-Windows and xterm behavior.
|
||
|
- The xterm-like selection is now called modeless selection.
|
||
|
- Visual mode mappings and menus are used in Select mode. They automatically
|
||
|
switch to Visual mode first. Afterwards, reselect the area, unless it was
|
||
|
deleted. The "gV" command can be used in a mapping to skip the reselection.
|
||
|
- Added the "gh", "gH" and "g^H" commands: start Select (highlight) mode.
|
||
|
- Backspace in Select mode deletes the selected area.
|
||
|
|
||
|
"mswin.vim" script. Sets behavior mostly like MS-Windows.
|
||
|
|
||
|
|
||
|
Session files added *new-session-files*
|
||
|
-------------------
|
||
|
|
||
|
":mks[ession]" acts like "mkvimrc", but also writes the full filenames of the
|
||
|
currently loaded buffers and current directory, so that :so'ing the file
|
||
|
re-loads those files and cd's to that directory. Also stores and restores
|
||
|
windows. File names are made relative to session file.
|
||
|
The 'sessionoptions' option sets behavior of ":mksession". (Negri)
|
||
|
|
||
|
|
||
|
User defined functions and commands *new-user-defined*
|
||
|
-----------------------------------
|
||
|
|
||
|
Added user defined functions. Defined with ":function" until ":endfunction".
|
||
|
Called with "Func()". Allows the use of a variable number of arguments.
|
||
|
Included support for local variables "l:name". Return a value with ":return".
|
||
|
See |:function|.
|
||
|
Call a function with ":call". When using a range, the function is called for
|
||
|
each line in the range. |:call|
|
||
|
"macros/justify.vim" is an example of using user defined functions.
|
||
|
User functions do not change the last used search pattern or the command to be
|
||
|
redone with ".".
|
||
|
'maxfuncdepth' option. Restricts the depth of function calls. Avoids trouble
|
||
|
(crash because of out-of-memory) when a function uses endless recursion.
|
||
|
|
||
|
User definable Ex commands: ":command", ":delcommand" and ":comclear".
|
||
|
(Moore) See |user-commands|.
|
||
|
|
||
|
|
||
|
New interfaces *interfaces-5.2*
|
||
|
--------------
|
||
|
|
||
|
Tcl interface. (Wilken) See |tcl|.
|
||
|
Uses the ":tcl", ":tcldo" and "tclfile" commands.
|
||
|
|
||
|
Cscope support. (Kahn) (Sekera) See |cscope|.
|
||
|
Uses the ":cscope" and ":cstag" commands. Uses the options 'cscopeprg',
|
||
|
'cscopetag', 'cscopetagorder' and 'cscopeverbose'.
|
||
|
|
||
|
|
||
|
New ports *ports-5.2*
|
||
|
---------
|
||
|
|
||
|
Amiga GUI port. (Nielsen) Not tested much yet!
|
||
|
|
||
|
RISC OS version. (Thomas Leonard) See |riscos|.
|
||
|
This version can run either with a GUI or in text mode, depending upon where
|
||
|
it is invoked.
|
||
|
Deleted the "os_archie" files, they were not working anyway.
|
||
|
|
||
|
|
||
|
Multi-byte support *new-multi-byte*
|
||
|
------------------
|
||
|
|
||
|
MultiByte support for Win32 GUI. (Baek)
|
||
|
The 'fileencoding' option 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)
|
||
|
Needs to be enabled in feature.h.
|
||
|
This has not been tested much yet!
|
||
|
|
||
|
|
||
|
New functions *new-functions-5.2*
|
||
|
-------------
|
||
|
|
||
|
|browse()| puts up a file requester when available. (Negri)
|
||
|
|escape()| escapes characters in a string with a backslash.
|
||
|
|fnamemodify()| modifies a file name.
|
||
|
|input()| asks the user to enter a line. (Aaron) There is a separate
|
||
|
history for lines typed for the input() function.
|
||
|
|argc()|
|
||
|
|argv()| can be used to access the argument list.
|
||
|
|winbufnr()| buffer number of a window. (Aaron)
|
||
|
|winnr()| window number. (Aaron)
|
||
|
|matchstr()| Return matched string.
|
||
|
|setline()| Set a line to a string value.
|
||
|
|
||
|
|
||
|
New options *new-options-5.2*
|
||
|
-----------
|
||
|
|
||
|
'allowrevins' Enable the CTRL-_ command in Insert and Command-line mode.
|
||
|
'browsedir' Tells in which directory a browse dialog starts.
|
||
|
'confirm' when set, :q :w and :e commands always act as if ":confirm"
|
||
|
is used. (Negri)
|
||
|
'cscopeprg'
|
||
|
'cscopetag'
|
||
|
'cscopetagorder'
|
||
|
'cscopeverbose' Set the |cscope| behavior.
|
||
|
'filetype' RISC-OS specific type of file.
|
||
|
'grepformat'
|
||
|
'grepprg' For the |:grep| command.
|
||
|
'keymodel' Tells to use shifted special keys to start a Visual or Select
|
||
|
mode selection.
|
||
|
'listchars' Set character to show in 'list' mode for end-of-line, tabs and
|
||
|
trailing spaces. (partly by Smith) Also sets character to
|
||
|
display if a line doesn't fit when 'nowrap' is set.
|
||
|
'matchpairs' Allows matching '<' with '>', and other single character
|
||
|
pairs.
|
||
|
'mousefocus' Window focus follows mouse (partly by Terhaar). Changing the
|
||
|
focus with a keyboard command moves the pointer to that
|
||
|
window. Also move the pointer when changing the window layout
|
||
|
(split window, change window height, etc.).
|
||
|
'mousemodel' Change use of mouse buttons.
|
||
|
'selection' When set to "inclusive" or "exclusive", the cursor can go one
|
||
|
character past the end of the line in Visual or Select mode.
|
||
|
When set to "old" the old behavior 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.
|
||
|
'selectmode' Tells when to start Select mode instead of Visual mode.
|
||
|
'sessionoptions' Sets behavior of ":mksession". (Negri)
|
||
|
'showfulltag' When completing a tag in Insert mode, show the tag search
|
||
|
pattern (tidied up) as a choice as well (if there is one).
|
||
|
'swapfile' Whether to use a swap file for a buffer.
|
||
|
'syntax' When it is set, the syntax by that name is loaded. Allows for
|
||
|
setting a specific syntax from a modeline.
|
||
|
'ttymouse' Allows using xterm mouse codes for terminals which name
|
||
|
doesn't start with "xterm".
|
||
|
'wildignore' List of patterns for files that should not be completed at
|
||
|
all.
|
||
|
'wildmode' Can be used to set the type of expansion for 'wildchar'.
|
||
|
Replaces the CTRL-T command for command line completion.
|
||
|
Don't beep when listing all matches.
|
||
|
'winaltkeys' Win32 and Motif GUI. When "yes", ALT keys are handled
|
||
|
entirely by the window system. When "no", ALT keys are never
|
||
|
used by the window system. When "menu" it depends on whether
|
||
|
a key is a menu shortcut.
|
||
|
'winminheight' Minimal height for each window. Default is 1. Set to 0 if
|
||
|
you want zero-line windows. Scrollbar is removed for
|
||
|
zero-height windows. (Negri)
|
||
|
|
||
|
|
||
|
|
||
|
New Ex commands *new-ex-commands-5.2*
|
||
|
---------------
|
||
|
|
||
|
|:badd| Add file name to buffer list without side effects. (Negri)
|
||
|
|:behave| Quickly set MS-Windows or xterm behavior.
|
||
|
|:browse| Use file selection dialog.
|
||
|
|:call| Call a function, optionally with a range.
|
||
|
|:cnewer|
|
||
|
|:colder| To access a stack of quickfix error lists.
|
||
|
|:comclear| Clear all user-defined commands.
|
||
|
|:command| Define a user command.
|
||
|
|:continue| Go back to ":while".
|
||
|
|:confirm| Ask confirmation if something unexpected happens.
|
||
|
|:cscope| Execute cscope command.
|
||
|
|:cstag| Use cscope to jump to a tag.
|
||
|
|:delcommand| Delete a user-defined command.
|
||
|
|:delfunction| Delete a user-defined function.
|
||
|
|:endfunction| End of user-defined function.
|
||
|
|:function| Define a user function.
|
||
|
|:grep| Works similar to ":make". (Negri)
|
||
|
|:mksession| Create a session file.
|
||
|
|:nohlsearch| Stop 'hlsearch' highlighting for a moment.
|
||
|
|:Print| This is Vi compatible. Does the same as ":print".
|
||
|
|:promptfind| Search dialog (Win32 GUI).
|
||
|
|:promptrepl| Search/replace dialog (Win32 GUI).
|
||
|
|:return| Return from a user-defined function.
|
||
|
|:simalt| Win32 GUI: Simulate alt-key pressed. (Negri)
|
||
|
|:smagic| Like ":substitute", but always use 'magic'.
|
||
|
|:snomagic| Like ":substitute", but always use 'nomagic'.
|
||
|
|:tcl| Execute TCL command.
|
||
|
|:tcldo| Execute TCL command for a range of lines.
|
||
|
|:tclfile| Execute a TCL script file.
|
||
|
|:tearoff| Tear-off a menu (Win32 GUI).
|
||
|
|:tmenu|
|
||
|
|:tunmenu| Win32 GUI: menu tooltips. (Negri)
|
||
|
|:star| :* Execute a register.
|
||
|
|
||
|
|
||
|
Changed *changed-5.2*
|
||
|
-------
|
||
|
|
||
|
Renamed functions:
|
||
|
buffer_exists() -> bufexists()
|
||
|
buffer_name() -> bufname()
|
||
|
buffer_number() -> bufnr()
|
||
|
file_readable() -> filereadable()
|
||
|
highlight_exists() -> hlexists()
|
||
|
highlightID() -> hlID()
|
||
|
last_buffer_nr() -> bufnr("$")
|
||
|
The old ones are still there, for backwards compatibility.
|
||
|
|
||
|
The CTRL-_ command in Insert and Command-line mode is only available when the
|
||
|
new 'allowrevins' option is set. Avoids that people who want to type SHIFT-_
|
||
|
accidentally enter reverse Insert mode, and don't know how to get out.
|
||
|
|
||
|
When a file name path in ":tselect" listing is too long, remove a part in the
|
||
|
middle and put "..." there.
|
||
|
|
||
|
Win32 GUI: Made font selector appear inside Vim window, not just any odd
|
||
|
place. (Negri)
|
||
|
|
||
|
":bn" skips help buffers, unless currently in a help buffer. (Negri)
|
||
|
|
||
|
When there is a status line and only one window, don't show '^' in the status
|
||
|
line of the current window.
|
||
|
|
||
|
":*" used to be used for "'<,'>", the Visual area. But in Vi it's used as an
|
||
|
alternative for ":@". When 'cpoptions' includes '*' this is Vi compatible.
|
||
|
|
||
|
When 'insertmode' is set, using CTRL-O to execute a mapping will work like
|
||
|
'insertmode' was not set. This allows "normal" mappings to be used even when
|
||
|
'insertmode' is set.
|
||
|
|
||
|
When 'mouse' was set already (e.g., in the .vimrc file), don't automatically
|
||
|
set 'mouse' when the GUI starts.
|
||
|
|
||
|
Removed the 'N', 'I' and 'A' flags from the 'mouse' option.
|
||
|
|
||
|
Renamed "toggle option" to "boolean option". Some people thought that ":set
|
||
|
xyz" would toggle 'xyz' on/off each time.
|
||
|
|
||
|
The internal variable "shell_error" contains the error code from the shell,
|
||
|
instead of just 0 or 1.
|
||
|
|
||
|
When inserting or replacing, typing CTRL-V CTRL-<CR> used to insert "<C-CR>".
|
||
|
That is not very useful. Now the CTRL key is ignored and a <CR> is inserted.
|
||
|
Same for all other "normal" keys with modifiers. Mapping these modified key
|
||
|
combinations is still possible.
|
||
|
In Insert mode, <C-CR> and <S-Space> can be inserted by using CTRL-K and then
|
||
|
the special character.
|
||
|
|
||
|
Moved "quotes" file to doc/quotes.txt, and "todo" file to doc/todo.txt. They
|
||
|
are now installed like other documentation files.
|
||
|
|
||
|
winheight() function returns -1 for a non-existing window. It used to be
|
||
|
zero, but that is a valid height now.
|
||
|
|
||
|
The default for 'selection' is "inclusive", which makes a difference when
|
||
|
using "$" or the mouse to move the cursor in Visual mode.
|
||
|
|
||
|
":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.
|
||
|
|
||
|
The strings from the 'titlestring' and 'iconstring' options are used
|
||
|
untranslated for the Window title and icon. This allows for including a <CR>.
|
||
|
Previously a <CR> would be shown as "^M" (two characters).
|
||
|
|
||
|
When a mapping is started in Visual or Select mode which was started from
|
||
|
Insert mode (the mode shows "(insert) Visual"), don't return to Insert mode
|
||
|
until the mapping has ended. Makes it possible to use a mapping in Visual
|
||
|
mode that also works when the Visual mode was started from Select mode.
|
||
|
|
||
|
Menus in $VIMRUNTIME/menu.vim no longer overrule existing menus. This helps
|
||
|
when defining menus in the .vimrc file, or when sourcing mswin.vim.
|
||
|
|
||
|
Unix: Use /var/tmp for .swp files, if it exists. Files there survive a
|
||
|
reboot (at least on Linux).
|
||
|
|
||
|
|
||
|
Added *added-5.2*
|
||
|
-----
|
||
|
|
||
|
--with-motif-lib configure argument. Allows for using a static Motif library.
|
||
|
|
||
|
Support for mapping numeric keypad +,-,*,/ keys. (Negri)
|
||
|
When not mapped, they produce the normal character.
|
||
|
|
||
|
Win32 GUI: When directory dropped on Gvim, cd there and edit new buffer.
|
||
|
(Negri)
|
||
|
|
||
|
Win32 GUI: Made CTRL-Break work as interrupt, so that CTRL-C can be
|
||
|
used for mappings.
|
||
|
|
||
|
In the output of ":map", highlight the "*" to make clear it's not part of the
|
||
|
rhs. (Roemer)
|
||
|
|
||
|
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.
|
||
|
|
||
|
Win32: When started with single full pathname (e.g. via double-clicked file),
|
||
|
cd to that file's directory. (Negri)
|
||
|
|
||
|
Win32 GUI: Tear-off menus, with ":tearoff <menu-name>" command. (Negri)
|
||
|
't' option to 'guioptions': Add tearoff menu items for Win32 GUI and Motif.
|
||
|
It's included by default.
|
||
|
Win32 GUI: tearoff menu with submenus is indicated with a ">>". (Negri)
|
||
|
|
||
|
Added ^Kaa and ^KAA digraphs.
|
||
|
Added "euro" symbol to digraph.c. (Corry)
|
||
|
|
||
|
Support for Motif menu shortcut keys, using '&' like MS-Windows (Ollis).
|
||
|
Other GUIs ignore '&' in a menu name.
|
||
|
|
||
|
DJGPP: Faster screen updating (John Lange).
|
||
|
|
||
|
Clustering of syntax groups ":syntax cluster" (Bigham).
|
||
|
Including syntax files: ":syntax include" (Bigham).
|
||
|
|
||
|
Keep column when switching buffers, when 'nosol' is set (Radics).
|
||
|
|
||
|
Number function for Perl interface.
|
||
|
|
||
|
Support for Intellimouse in Athena GUI. (Jensen)
|
||
|
|
||
|
":sleep" also accepts an argument in milliseconds, when "m" is used.
|
||
|
|
||
|
Added 'p' flag in 'guioptions': Install callbacks for enter/leave window
|
||
|
events. Makes cursor blinking work for Terhaar, breaks it for me.
|
||
|
|
||
|
"--help" and "--version" command-line arguments.
|
||
|
|
||
|
Non-text in ":list" output is highlighted with NonText.
|
||
|
|
||
|
Added text objects: "i(" and "i)" as synonym for "ib". "i{" and "i}" as
|
||
|
synonym for "iB". New: "i<" and "i>", to select <thing>. All this also for
|
||
|
"a" objects.
|
||
|
|
||
|
'O' flag in 'shortmess': message for reading a file overwrites any previous
|
||
|
message. (Negri)
|
||
|
|
||
|
Win32 GUI: 'T' flag in 'guioptions': switch toolbar on/off.
|
||
|
Included a list with self-made toolbar bitmaps. (Negri)
|
||
|
|
||
|
Added menu priority for sub-menus. Implemented for Win32 and Motif GUI.
|
||
|
Display menu priority with ":menu" command.
|
||
|
Default and Syntax menus now include priority for items. Allows inserting
|
||
|
menu items in between the default ones.
|
||
|
|
||
|
When the 'number' option is on, highlight line numbers with the LineNr group.
|
||
|
|
||
|
"Ignore" highlight group: Text highlighted with this is made blank. It is
|
||
|
used to hide special characters in the help text.
|
||
|
|
||
|
Included Exuberant Ctags version 2.3, with C++ support, Java support and
|
||
|
recurse into directories. (Hiebert)
|
||
|
|
||
|
When a tags file is not sorted, and this is detected (in a simplistic way), an
|
||
|
error message is given.
|
||
|
|
||
|
":unlet" accepts a "!", to ignore non-existing variables, and accepts more
|
||
|
than one argument. (Roemer)
|
||
|
Completion of variable names for ":unlet". (Roemer)
|
||
|
|
||
|
When there is an error in a function which is called by another function, show
|
||
|
the call stack in the error message.
|
||
|
|
||
|
New file name modifiers:
|
||
|
":.": reduce file name to be relative to current dir.
|
||
|
":~": reduce file name to be relative to home dir.
|
||
|
":s?pat?sub?": substitute "pat" with "sub" once.
|
||
|
":gs?pat?sub?": substitute "pat" with "sub" globally.
|
||
|
|
||
|
New configure arguments: --enable-min-features and --enable-max-features.
|
||
|
Easy way to switch to minimum or maximum features.
|
||
|
|
||
|
New compile-time feature: modify_fname. For file name modifiers, e.g,
|
||
|
"%:p:h". Can be disabled to save some code (16 bit DOS).
|
||
|
|
||
|
When using whole-line completion in Insert mode, and 'cindent' is set, indent
|
||
|
the line properly.
|
||
|
|
||
|
MSDOS and Win32 console: 'guicursor' sets cursor thickness. (Negri)
|
||
|
|
||
|
Included new set of Farsi fonts. (Shiran)
|
||
|
|
||
|
Accelerator text now also works in Motif. All menus can be defined with & for
|
||
|
mnemonic and TAB for accelerator text. They are ignored on systems that don't
|
||
|
support them.
|
||
|
When removing or replacing a menu, compare the menu name only up to the <Tab>
|
||
|
before the mnemonic.
|
||
|
|
||
|
'i' and 'I' flags after ":substitute": ignore case or not.
|
||
|
|
||
|
"make install" complains if the runtime files are missing.
|
||
|
|
||
|
Unix: When finding an existing swap file that can't be opened, mention the
|
||
|
owner of the file in the ATTENTION message.
|
||
|
|
||
|
The 'i', 't' and 'k' options in 'complete' now also print the place where they
|
||
|
are looking for matches. (Acevedo)
|
||
|
|
||
|
"gJ" command: Join lines without inserting a space.
|
||
|
|
||
|
Setting 'keywordprg' to "man -s" is handled specifically. The "-s" is removed
|
||
|
when no count given, the count is added otherwise. Configure checks if "man
|
||
|
-s 2 read" works, and sets the default for 'keywordprg' accordingly.
|
||
|
|
||
|
If you do a ":bd" and there is only one window open, Vim tries to move to a
|
||
|
buffer of the same type (i.e. non-help to non-help, help to help), for
|
||
|
consistent behavior to :bnext/:bprev. (Negri)
|
||
|
|
||
|
Allow "<Nop>" to be used as the rhs of a mapping. ":map xx <Nop>", maps "xx"
|
||
|
to nothing at all.
|
||
|
|
||
|
In a ":menu" command, "<Tab>" can be used instead of a real tab, in the menu
|
||
|
path. This makes it more easy to type, no backslash needed.
|
||
|
|
||
|
POSIX compatible character classes for regexp patterns: [:alnum:], [:alpha:],
|
||
|
[:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:],
|
||
|
[:space:], [:upper:] and [:xdigit:]. (Briscoe)
|
||
|
|
||
|
regexp character classes (for fast syntax highlight matching):
|
||
|
digits: \d [0-9] \D not digit (Roemer)
|
||
|
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.
|
||
|
|
||
|
Filetype feature, for autocommands. Uses a file type instead of a pattern to
|
||
|
match a file. Currently only used for RISC OS. (Leonard)
|
||
|
|
||
|
In a pattern for an autocommand, environment variables can be used. They are
|
||
|
expanded when the autocommand is defined.
|
||
|
|
||
|
"BufFilePre" and "BufFilePost" autocommand evens: Before and after applying
|
||
|
the ":file" command to change the name of a buffer.
|
||
|
"VimLeavePre" autocommand event: before writing the .viminfo file.
|
||
|
|
||
|
For autocommands argument: <abuf> is buffer number, like <afile>.
|
||
|
|
||
|
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.
|
||
|
|
||
|
Created install.exe program, for simplistic installation on DOS and
|
||
|
MS-Windows.
|
||
|
|
||
|
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.
|
||
|
|
||
|
CTRL-V xff enters character by hex number. CTRL-V o123 enters character by
|
||
|
octal number. (Aaron)
|
||
|
|
||
|
Improved performance of syntax highlighting by skipping check for "keepend"
|
||
|
when there isn't any.
|
||
|
|
||
|
Moved the mode message ("-- INSERT --") to the last line of the screen. When
|
||
|
'cmdheight' is more than one, messages will remain readable.
|
||
|
|
||
|
When listing matching files, they are also sorted on 'suffixes', such that
|
||
|
they are listed in the same order as CTRL-N retrieves them.
|
||
|
|
||
|
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).
|
||
|
|
||
|
Memory profiling, only for debugging. Prints at exit, and with "g^A" command.
|
||
|
(Kahn)
|
||
|
|
||
|
DOS: When using a file in the current drive, remove the drive name:
|
||
|
"A:\dir\file" -> "\dir\file". This helps when moving a session file on a
|
||
|
floppy from "A:\dir" to "B:\dir".
|
||
|
|
||
|
Increased number of remembered jumps from 30 to 50 per window.
|
||
|
|
||
|
Command to temporarily disable 'hls' highlighting until the next search:
|
||
|
":nohlsearch".
|
||
|
|
||
|
"gp" and "gP" commands: like "p" and "P", but leave the cursor just after the
|
||
|
inserted text. Used for the CTRL-V command in MS-Windows mode.
|
||
|
|
||
|
|
||
|
Fixed *fixed-5.2*
|
||
|
-----
|
||
|
|
||
|
Win32 GUI: Could draw text twice in one place, for fake-bold text. Removed
|
||
|
this, Windows will handle the bold text anyway. (Negri)
|
||
|
|
||
|
patch 5.1.1: Win32s GUI: pasting caused a crash (Negri)
|
||
|
|
||
|
patch 5.1.2: When entering another window, where characters before the cursor
|
||
|
have been deleted, could have a cursor beyond the end of the line.
|
||
|
|
||
|
patch 5.1.3: Win32s GUI: Didn't wait for external command to finish. (Negri)
|
||
|
|
||
|
patch 5.1.4: Makefile.w32 can now also be used to generate the OLE version
|
||
|
(Scott).
|
||
|
|
||
|
patch 5.1.5: Crashed when using syntax highlighting: cursor on a line that
|
||
|
doesn't fit in the window, and splitting that line in two.
|
||
|
|
||
|
patch 5.1.6: Visual highlighting bug: After ":set nowrap", go to end of line
|
||
|
(so that the window scrolls horizontally), ":set wrap". Following Visual
|
||
|
selection was wrong.
|
||
|
|
||
|
patch 5.1.7: When 'tagbsearch' off, and 'ignorecase' off, still could do
|
||
|
binary searching.
|
||
|
|
||
|
patch 5.1.8: Win32 GUI: dragging the scrollbar didn't update the ruler.
|
||
|
|
||
|
patch 5.1.9: Using ":gui" in .vimrc, caused xterm cursor to disappear.
|
||
|
|
||
|
patch 5.1.10: A CTRL-N in Insert mode could cause a crash, when a buffer
|
||
|
without a name exists.
|
||
|
|
||
|
patch 5.1.11: "make test" didn't work in the shadow directory. Also adjusted
|
||
|
"make shadow" for the links in the ctags directory.
|
||
|
|
||
|
patch 5.1.12: "buf 123foo" used "123" as a count, instead as the start of a
|
||
|
buffer name.
|
||
|
|
||
|
patch 5.1.13: When completing file names on the command-line, reallocating the
|
||
|
command-line may go wrong.
|
||
|
|
||
|
patch 5.1.14: ":[nvci]unmenu" removed menu for all modes, when full menu patch
|
||
|
specified.
|
||
|
|
||
|
Graceful handling of NULLs in drag-dropped file list. Handle passing NULL to
|
||
|
Fullname_save(). (Negri)
|
||
|
|
||
|
Win32: ":!start" to invoke a program without opening a console, swapping
|
||
|
screens, or waiting for completion in either console or gui version, e.g. you
|
||
|
can type ":!start winfile". ALSO fixes "can't delete swapfile after spawning
|
||
|
a shell" bug. (enhancement of Aaron patch) (Negri)
|
||
|
|
||
|
Win32 GUI: Fix CTRL-X default keymapping to be more Windows-like. (Negri)
|
||
|
|
||
|
Shorten filenames on startup. If in /foo/bar, entering "vim ../bar/bang.c"
|
||
|
displays "bang.c" in status bar, not "/foo/bar/bang.c" (Negri)
|
||
|
|
||
|
Win32 GUI: No copy to Windows clipboard when it's not desired.
|
||
|
|
||
|
Win32s: Fix pasting from clipboard - made an assumption not valid under
|
||
|
Win32s. (Negri)
|
||
|
|
||
|
Win32 GUI: Speed up calls to gui_mch_draw_string() and cursor drawing
|
||
|
functions. (Negri)
|
||
|
|
||
|
Win32 GUI: Middle mouse button emulation now works in GUI! (Negri)
|
||
|
|
||
|
Could skip messages when combining commands in one line, e.g.:
|
||
|
":echo "hello" | write".
|
||
|
|
||
|
Perl interpreter was disabled before executing VimLeave autocommands. Could
|
||
|
not use ":perl" in them. (Aaron)
|
||
|
|
||
|
Included patch for the Intellimouse (Aaron/Robinson).
|
||
|
|
||
|
Could not set 'ls' to one, when last window has only one line. (Mitterand)
|
||
|
|
||
|
Fixed a memory leak when removing menus.
|
||
|
|
||
|
After ":only" the ruler could overwrite a message.
|
||
|
|
||
|
Dos32: removed changing of __system_flags. It appears to work better when
|
||
|
it's left at the default value.
|
||
|
|
||
|
p_aleph was an int instead of along, caused trouble on systems where
|
||
|
sizeof(int) != sizeof(long). (Schmidt)
|
||
|
|
||
|
Fixed enum problems for Ultrix. (Seibert)
|
||
|
|
||
|
Small redraw problem: "dd" on last line in file cleared wrong line.
|
||
|
|
||
|
Didn't interpret "cmd | endif" when "cmd" starts with a range. E.g. "if 0 |
|
||
|
.d | endif".
|
||
|
|
||
|
Command "+|" on the last line of the file caused ml_get errors.
|
||
|
|
||
|
Memory underrun in eval_vars(). (Aaron)
|
||
|
|
||
|
Don't rename files in a difficult way, except on Windows 95 (was also done on
|
||
|
Windows NT).
|
||
|
|
||
|
Win32 GUI: An external command that produces an error code put the error
|
||
|
message in a dialog box. had to close the window and close the dialog. Now
|
||
|
the error code is displayed in the console. (Negri)
|
||
|
|
||
|
"comctl32.lib" was missing from the GUI libraries in Makefile.w32. (Battle)
|
||
|
|
||
|
In Insert mode, when entering a window in Insert mode, allow the cursor to be
|
||
|
one char beyond the text.
|
||
|
|
||
|
Renamed machine dependent rename() to mch_rename(). Define mch_rename() to
|
||
|
rename() when it works properly.
|
||
|
|
||
|
Rename vim_chdir() to mch_chdir(), because it's machine dependent.
|
||
|
|
||
|
When using an arglist, and editing file 5 of 4, ":q" could cause "-1 more
|
||
|
files to edit" error.
|
||
|
|
||
|
In if_python.c, VimCommand() caused an assertion when a do_cmdline() failed.
|
||
|
Moved the Python_Release_Vim() to before the VimErrorCheck(). (Harkins)
|
||
|
|
||
|
Give an error message for an unknown argument after "--". E.g. for "vim
|
||
|
--xyz".
|
||
|
|
||
|
The FileChangedShell autocommand didn't set <afile> to the name of the changed
|
||
|
file.
|
||
|
|
||
|
When doing ":e file", causing the attention message, there sometimes was no
|
||
|
hit-enter prompt. Caused by empty line or "endif" at end of sourced file.
|
||
|
|
||
|
A large number of patches for the VMS version. (Hunsaker)
|
||
|
|
||
|
When CTRL-L completion (find longest match) results in a shorter string, no
|
||
|
completion is done (happens with ":help").
|
||
|
|
||
|
Crash in Win32 GUI version, when using an Ex "@" command, because
|
||
|
LinePointers[] was used while not initialized.
|
||
|
|
||
|
Win32 GUI: allow mapping of Alt-Space.
|
||
|
|
||
|
Output from "vim -h" was sent to stderr. Sending it to stdout is better, so
|
||
|
one can use "vim -h | more".
|
||
|
|
||
|
In command-line mode, ":vi[!]" should reload the file, just like ":e[!]".
|
||
|
In Ex mode, ":vi" stops Ex mode, but doesn't reload the file. This is Vi
|
||
|
compatible.
|
||
|
|
||
|
When using a ":set ls=1" in the .gvimrc file, would get a status line for a
|
||
|
single window. (Robinson)
|
||
|
|
||
|
Didn't give an error message for ":set ai,xx". (Roemer)
|
||
|
Didn't give an error message for ":set ai?xx", ":set ai&xx", ":set ai!xx".
|
||
|
|
||
|
Non-Unix systems: That a file exists but is unreadable is recognized as "new
|
||
|
file". Now check for existence when file can't be opened (like Unix).
|
||
|
|
||
|
Unix: osdef.sh didn't handle declarations where the function name is at the
|
||
|
first column of the line.
|
||
|
|
||
|
DJGPP: Shortening of file names didn't work properly, because get_cwd()
|
||
|
returned a path with backslashes. (Negri)
|
||
|
|
||
|
When using a 'comments' part where a space is required after the middle part,
|
||
|
always insert a space when starting a new line. Helps for C comments, below a
|
||
|
line with "/****".
|
||
|
|
||
|
Replacing path of home directory with "~/" could be wrong for file names
|
||
|
with embedded spaces or commas.
|
||
|
|
||
|
A few fixes for the Sniff interface. (Leherbauer)
|
||
|
|
||
|
When asking to hit 'y' or 'n' (e.g. for ":3,1d"), using the mouse caused
|
||
|
trouble. Same for ":s/x/y/c" prompt.
|
||
|
|
||
|
With 'nowrap' and 'list', a Tab halfway on the screen was displayed as blanks,
|
||
|
instead of the characters specified with 'listchars'. Also for other
|
||
|
characters that take more than one screen character.
|
||
|
|
||
|
When setting 'guifont' to an unknown font name, the previous font was lost and
|
||
|
a default font would be used. (Steed)
|
||
|
|
||
|
DOS: Filenames in the root directory didn't get shortened properly. (Negri)
|
||
|
|
||
|
DJGPP: making a full path name out of a file name didn't work properly when
|
||
|
there is no _fullpath() function. (Negri)
|
||
|
|
||
|
Win32 console: ":sh" caused a crash. (Negri)
|
||
|
|
||
|
Win32 console: Setting 'lines' and/or 'columns' in the _vimrc failed miserably
|
||
|
(could hang Windows 95). (Negri)
|
||
|
|
||
|
Win32: The change-drive function was not correct, went to the wrong drive.
|
||
|
(Tsindlekht)
|
||
|
|
||
|
GUI: When editing a command line in Ex mode, Tabs were sometimes not
|
||
|
backspaced properly, and unprintable characters were displayed directly.
|
||
|
non-GUI can still be wrong, because a system function is called for this.
|
||
|
|
||
|
":set" didn't stop after an error. For example ":set no ai" gave an error for
|
||
|
"no", but still set "ai". Now ":set" stops after the first error.
|
||
|
|
||
|
When running configure for ctags, $LDFLAGS wasn't passed to it, causing
|
||
|
trouble for IRIX.
|
||
|
|
||
|
"@%" and "@#" when file name not set gave an error message. Now they just
|
||
|
return an empty string. (Steed)
|
||
|
|
||
|
CTRL-X and CTRL-A didn't work correctly with negative hex and octal numbers.
|
||
|
(Steed)
|
||
|
|
||
|
":echo" always started with a blank.
|
||
|
|
||
|
Updating GUI cursor shape didn't always work (e.g., when blinking is off).
|
||
|
|
||
|
In silent Ex mode ("ex -s" or "ex <file") ":s///p" didn't print a line. Also
|
||
|
a few other commands that explicitly print a text line didn't work. Made this
|
||
|
Vi compatible.
|
||
|
|
||
|
Win32 version of _chdrive() didn't return correct value. (Tsindlekht)
|
||
|
|
||
|
When using 't' in 'complete' option, no longer give an error message for a
|
||
|
missing tags file.
|
||
|
|
||
|
Unix: tgoto() can return NULL, which was not handled correctly in configure.
|
||
|
|
||
|
When doing ":help" from a buffer where 'binary' is set, also edited the help
|
||
|
file in binary mode. Caused extra ^Ms for DOS systems.
|
||
|
|
||
|
Cursor position in a file was reset to 1 when closing a window.
|
||
|
|
||
|
":!ls" in Ex mode switched off echo.
|
||
|
|
||
|
When doing a double click in window A, while currently in window B, first
|
||
|
click would reset double click time, had to click three times to select a
|
||
|
word.
|
||
|
|
||
|
When using <F11> in mappings, ":mkexrc" produced an exrc file that can't be
|
||
|
used in Vi compatible mode. Added setting of 'cpo' to avoid this. Also, add
|
||
|
a CTRL-V in front of a '<', to avoid a normal string to be interpreted as a
|
||
|
special key name.
|
||
|
|
||
|
Gave confusing error message for ":set guifont=-*-lucida-*": first "font is
|
||
|
not fixed width", then "Unknown font".
|
||
|
|
||
|
Some options were still completely left out, instead of included as hidden
|
||
|
options.
|
||
|
|
||
|
While running the X11 GUI, ignore SIGHUP signals. Avoids a crash after
|
||
|
executing an external command (in rare cases).
|
||
|
|
||
|
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)
|
||
|
|
||
|
With "p" and "P" commands, redrawing was slow.
|
||
|
|
||
|
Awk script for html documentation didn't work correctly with AIX awk.
|
||
|
Replaced "[ ,.);\] ]" with "[] ,.); ]". (Briscoe)
|
||
|
The makehtml.awk script had a small problem, causing extra lines to be
|
||
|
inserted. (Briscoe)
|
||
|
|
||
|
"gqgq" could not be repeated. Repeating for "gugu" and "gUgU" worked in a
|
||
|
wrong way. Also made "gqq" work to be consistent with "guu".
|
||
|
|
||
|
C indent was wrong after "case ':':".
|
||
|
|
||
|
":au BufReadPre *.c put": Line from put text was deleted, because the buffer
|
||
|
was still assumed to be empty.
|
||
|
|
||
|
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.
|
||
|
|
||
|
":ts" got stuck on a tags line that has two extra fields.
|
||
|
|
||
|
In Insert mode, with 'showmode' on, <C-O><C-G> message was directly
|
||
|
overwritten by mode message, if preceded with search command warning message.
|
||
|
|
||
|
When putting the result of an expression with "=<expr>p, newlines were
|
||
|
inserted like ^@ (NUL in the file). Now the string is split up in lines at
|
||
|
the newline.
|
||
|
|
||
|
putenv() was declared with "const char *" in pty.c, but with "char *" in
|
||
|
osdef2.h.in. Made the last one also "const char *".
|
||
|
|
||
|
":help {word}", where +{word} is a feature, jumped to the feature list instead
|
||
|
of where the command was explained. E.g., ":help browse", ":help autocmd".
|
||
|
|
||
|
Using the "\<xx>" form in an expression only got one byte, even when using a
|
||
|
special character that uses several bytes (e.g., "\<F9>").
|
||
|
Changed "\<BS>" to produce CTRL-H instead of the special key code for the
|
||
|
backspace key. "\<Del>" 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 interruptible.
|
||
|
|
||
|
The "gs" command didn't flush output before waiting.
|
||
|
|
||
|
Memory leaks for:
|
||
|
":if 0 | let a = b . c | endif"
|
||
|
"let a = b[c]"
|
||
|
":so {file}" where {file} contains a ":while"
|
||
|
|
||
|
GUI: allocated fonts were never released. (Leonard)
|
||
|
|
||
|
Makefile.bor:
|
||
|
- Changed $(DEFINES) into a list of "-D" options, so that it can also be used
|
||
|
for the resource compiler. (not tested!)
|
||
|
- "bcc.cfg" was used for all configurations. When building for another
|
||
|
configuration, the settings for the previous one would be used. Moved
|
||
|
"bcc.cfg" to the object directory. (Geddes)
|
||
|
- Included targets for vimrun, install, ctags and xxd. Changed the default to
|
||
|
use the Borland DLL Runtime Library, makes Vim.exe a log smaller. (Aaron)
|
||
|
|
||
|
"2*" search for the word under the cursor with "2" prepended. (Leonard)
|
||
|
|
||
|
When deleting into a specific register, would still overwrite the non-Win32
|
||
|
GUI selection. Now ""x"*P works.
|
||
|
|
||
|
When deleting into the "" register, would write to the last used register.
|
||
|
Now ""x always writes to the unnamed register.
|
||
|
|
||
|
GUI Athena: A submenu with a '.' in it didn't work. E.g.,
|
||
|
":amenu Syntax.XY\.Z.foo lll".
|
||
|
|
||
|
When first doing ":tag foo" and then ":tnext" and/or ":tselect" the order of
|
||
|
matching tags could change, because the current file is different. Now the
|
||
|
existing matches are kept in the same order, newly found matches are added
|
||
|
after them, not matter what the current file is.
|
||
|
|
||
|
":ta" didn't find the second entry in a tags file, if the second entry was
|
||
|
longer than the first one.
|
||
|
|
||
|
When using ":set si tw=7" inserting "foo {^P}" made the "}" inserted at the
|
||
|
wrong position. can_si was still TRUE when the cursor is not in the indent of
|
||
|
the line.
|
||
|
|
||
|
Running an external command in Win32 version had the problem that Vim exits
|
||
|
when the X on the console is hit (and confirmed). Now use the "vimrun"
|
||
|
command to start the external command indirectly. (Negri)
|
||
|
|
||
|
Win32 GUI: When running an external filter, do it in a minimized DOS box.
|
||
|
(Negri)
|
||
|
|
||
|
":let" listed variables without translation into printable characters.
|
||
|
|
||
|
Win32 console: When resizing the window, switching back to the old size
|
||
|
(when exiting or executing an external command) sometimes failed. (Negri)
|
||
|
This appears to also fix a "non fixable" problem:
|
||
|
Win32 console in NT 4.0: When running Vim in a cmd window with a scrollbar,
|
||
|
the scrollbar disappeared and was not restored when Vim exits. This does work
|
||
|
under NT 3.51, it appears not to be a Vim problem.
|
||
|
|
||
|
When executing BufDelete and BufUnload autocommands for a buffer without a
|
||
|
name, the name of the current buffer was used for <afile>.
|
||
|
|
||
|
When jumping to a tag it reported "tag 1 of >2", while in fact there could be
|
||
|
only two matches. Changed to "tag 1 of 2 or more".
|
||
|
|
||
|
":tjump tag" did a linear search in the tags file, which can be slow.
|
||
|
|
||
|
Configure didn't find "LibXm.so.2.0", a Xm library with a version number.
|
||
|
|
||
|
Win32 GUI: When using a shifted key with ALT, the shift modifier would remain
|
||
|
set, even when it was already used by changing the used key. E.g., "<M-S-9>"
|
||
|
resulted in "<M-S-(>", but it should be "<M-(>". (Negri)
|
||
|
|
||
|
A call to ga_init() was often followed by setting growsize and itemsize.
|
||
|
Created ga_init2() for this, which looks better. (Aaron)
|
||
|
|
||
|
Function filereadable() could call fopen() with an empty string, which might
|
||
|
be illegal.
|
||
|
|
||
|
X Windows GUI: When executing an external command that outputs text, could
|
||
|
write one character beyond the end of a buffer, which caused a crash. (Kohan)
|
||
|
|
||
|
When using "*" or "#" on a string that includes '/' or '?' (when these are
|
||
|
included in 'isk'), they were not escaped. (Parmelan)
|
||
|
|
||
|
When adding a ToolBar menu in the Motif GUI, the submenu_id field was not
|
||
|
cleared, causing random problems.
|
||
|
|
||
|
When adding a menu, the check if this menu (or submenu) name already exists
|
||
|
didn't compare with the simplified version (no mnemonic or accelerator) of the
|
||
|
new menu. Could get two menus with the same name, e.g., "File" and "&File".
|
||
|
|
||
|
Breaking a line because of 'textwidth' at the last line in the window caused a
|
||
|
redraw of the whole window instead of a scroll. Speeds up normal typing with
|
||
|
'textwidth' a lot for slow terminals.
|
||
|
|
||
|
An invalid line number produced an "invalid range" error, even when it wasn't
|
||
|
to be executed (inside "if 0").
|
||
|
|
||
|
When the unnamed, first buffer is re-used, the "BufDelete" autocommand was
|
||
|
not called. It would stick in a buffer list menu.
|
||
|
|
||
|
When doing "%" on the NUL after the line, a "{" or "}" in the last character
|
||
|
of the line was not found.
|
||
|
|
||
|
The Insert mode menu was not used for the "s" command, the Operator-pending
|
||
|
menu was used instead.
|
||
|
|
||
|
With 'compatible' set, some syntax highlighting was not correct, because of
|
||
|
using "[\t]" for a search pattern. Now use the regexps for syntax
|
||
|
highlighting like the 'cpoptions' option is empty (as was documented already).
|
||
|
|
||
|
When using "map <M-Space> ms" or "map <Space> sss" the output of ":map" didn't
|
||
|
show any lhs for the mapping (if 'isprint' includes 160). Now always use
|
||
|
<Space> and <M-Space>, even when they are printable.
|
||
|
|
||
|
Adjusted the Syntax menu, so that the lowest entry fits on a small screen (for
|
||
|
Athena, where menus don't wrap).
|
||
|
|
||
|
When using CTRL-E or CTRL-Y in Insert mode for characters like 'o', 'x' and
|
||
|
digits, repeating the insert didn't work.
|
||
|
|
||
|
The file "tools/ccfilter.README.txt" could not be unpacked when using short
|
||
|
file names, because of the two dots. Renamed it to
|
||
|
"tools/ccfilter_README.txt".
|
||
|
|
||
|
For a dark 'background', using Blue for Directory and SpecialKey highlight
|
||
|
groups is not very readable. Use Cyan instead.
|
||
|
|
||
|
In the function uc_scan_attr() in ex_docmd.c there was a goto that jumped into
|
||
|
a block with a local variable. That's illegal for some compilers.
|
||
|
|
||
|
Win32 GUI: There was a row of pixels at the bottom of the window which was not
|
||
|
drawn. (Aaron)
|
||
|
|
||
|
Under DOS, editing "filename/" created a swap file of "filename/.swp". Should
|
||
|
be "filename/_swp".
|
||
|
|
||
|
Win32 GUI: pointer was hidden when executing an external command.
|
||
|
|
||
|
When 'so' is 999, "J" near the end of the file didn't redisplay correctly.
|
||
|
|
||
|
":0a" inserted after the first line, instead of before the first line.
|
||
|
|
||
|
Unix: Wildcard expansion didn't handle single quotes and {} patterns. Now
|
||
|
":file 'window.c'" removes the quotes and ":e 'main*.c'" works (literal '*').
|
||
|
":file {o}{n}{e}" now results in file name "one".
|
||
|
|
||
|
Memory leak when setting a string option back to its default value.
|
||
|
|
||
|
==============================================================================
|
||
|
VERSION 5.3 *version-5.3*
|
||
|
|
||
|
Version 5.3 was a bug-fix version of 5.2. There are not many changes.
|
||
|
Improvements made between version 5.2 and 5.3:
|
||
|
|
||
|
Changed *changed-5.3*
|
||
|
-------
|
||
|
|
||
|
Renamed "IDE" menu to "Tools" menu.
|
||
|
|
||
|
|
||
|
Added *added-5.3*
|
||
|
-----
|
||
|
|
||
|
Win32 GUI: Give a warning when Vim is activated, and one of the files changed
|
||
|
since editing started. (Negri)
|
||
|
|
||
|
|
||
|
Fixed *fixed-5.3*
|
||
|
-----
|
||
|
|
||
|
5.2.1: Win32 GUI: space for external command was not properly allocated, could
|
||
|
cause a crash. (Aaron) This was the reason to bring out 5.3 quickly after
|
||
|
5.2.
|
||
|
|
||
|
5.2.2: Some commands didn't complain when used without an argument, although
|
||
|
they need one: ":badd", ":browse", ":call", ":confirm", ":behave",
|
||
|
":delfunction", ":delcommand" and ":tearoff".
|
||
|
":endfunction" outside of a function gave wrong error message: "Command not
|
||
|
implemented". Should be ":endfunction not inside a function".
|
||
|
|
||
|
5.2.3: Win32 GUI: When gvim was installed in "Program files", or another path
|
||
|
with a space in it, executing external commands with vimrun didn't work.
|
||
|
|
||
|
5.2.4: Pasting with the mouse in Insert mode left the cursor on the last
|
||
|
pasted character, instead of behind it.
|
||
|
|
||
|
5.2.5: In Insert mode, cursor after the end of the line, a shift-cursor-left
|
||
|
didn't include the last character in the selection.
|
||
|
|
||
|
5.2.6: When deleting text from Insert mode (with "<C-O>D" or the mouse), which
|
||
|
includes the last character in the line, the cursor could be left on the last
|
||
|
character in the line, instead of just after it.
|
||
|
|
||
|
5.2.7: Win32 GUI: scrollbar was one pixel too big.
|
||
|
|
||
|
5.2.8: Completion of "PopUp" menu showed the derivatives "PopUpc", "PopUPi",
|
||
|
etc. ":menu" also showed these.
|
||
|
|
||
|
5.2.9: When using two input() functions on a row, the prompt would not be
|
||
|
drawn in column 0.
|
||
|
|
||
|
5.2.10: A loop with input() could not be broken with CTRL-C.
|
||
|
|
||
|
5.2.11: ":call asdf" and ":call asdf(" didn't give an error message.
|
||
|
|
||
|
5.2.12: Recursively using ":normal" crashes Vim after a while. E.g.:
|
||
|
":map gq :normal gq<CR>"
|
||
|
|
||
|
5.2.13: Syntax highlighting used 'iskeyword' from wrong buffer. When using
|
||
|
":help", then "/\k*" in another window with 'hlsearch' set.
|
||
|
|
||
|
5.2.14: When using ":source" from a function, global variables would not be
|
||
|
available unless "g:" was used.
|
||
|
|
||
|
5.2.15: XPM files can have the extension ".pm", which is the same as for Perl
|
||
|
modules. Added "syntax/pmfile.vim" to handle this.
|
||
|
|
||
|
5.2.16: On Win32 and Amiga, "echo expand("%:p:h")" removed one dirname in an
|
||
|
empty buffer. mch_Fullname() didn't append a slash at the end of a directory
|
||
|
name.
|
||
|
|
||
|
Should include the character under the cursor in the Visual area when using
|
||
|
'selection' "exclusive". This wasn't done for "%", "e", "E", "t" and "f".
|
||
|
|
||
|
""p would always put register 0, instead of the unnamed (last used) register.
|
||
|
Reverse the change that ""x doesn't write in the unnamed (last used) register.
|
||
|
It would always write in register 0, which isn't very useful. Use "-x for the
|
||
|
paste mappings in Visual mode.
|
||
|
|
||
|
When there is one long line on the screen, and 'showcmd' is off, "0$" didn't
|
||
|
redraw the screen.
|
||
|
|
||
|
Win32 GUI: When using 'mousehide', the pointer would flicker when the cursor
|
||
|
shape is changed. (Negri)
|
||
|
|
||
|
When cancelling Visual mode, and the cursor moves to the start, the wanted
|
||
|
column wasn't set, "k" or "j" moved to the wrong column.
|
||
|
|
||
|
When using ":browse" or ":confirm", was checking for a comment and separating
|
||
|
bar, which can break some commands.
|
||
|
|
||
|
Included fixes for Macintosh. (Kielhorn)
|
||
|
|
||
|
==============================================================================
|
||
|
VERSION 5.4 *version-5.4*
|
||
|
|
||
|
Version 5.4 adds new features, useful changes and a lot of bug fixes.
|
||
|
|
||
|
|
||
|
Runtime directory introduced *new-runtime-dir*
|
||
|
----------------------------
|
||
|
|
||
|
The distributed runtime files are now in $VIMRUNTIME, the user files in $VIM.
|
||
|
You normally don't set $VIMRUNTIME but let Vim find it, by using
|
||
|
$VIM/vim{version}, or use $VIM when that doesn't exist. This allows for
|
||
|
separating the user files from the distributed files and makes it more easy to
|
||
|
upgrade to another version. It also makes it possible to keep two versions of
|
||
|
Vim around, each with their own runtime files.
|
||
|
|
||
|
In the Unix distribution the runtime files have been moved to the "runtime"
|
||
|
directory. This makes it possible to copy all the runtime files at once,
|
||
|
without the need to know what needs to be copied.
|
||
|
|
||
|
The archives for DOS, Windows, Amiga and OS/2 now have an extra top-level
|
||
|
"vim" directory. This is to make clear that user-modified files should be put
|
||
|
here. The directory that contains the executables doesn't have '-' or '.'
|
||
|
characters. This avoids strange extensions.
|
||
|
|
||
|
The $VIM and $VIMRUNTIME variables are set when they are first used. This
|
||
|
allows them to be used by Perl, for example.
|
||
|
|
||
|
The runtime files are also found in a directory called "$VIM/runtime". This
|
||
|
helps when running Vim after just unpacking the runtime archive. When using
|
||
|
an executable in the "src" directory, Vim checks if "vim54" or "runtime" can
|
||
|
be added after removing it. This make the runtime files be found just after
|
||
|
compiling.
|
||
|
|
||
|
A default for $VIMRUNTIME can be given in the Unix Makefile. This is useful
|
||
|
if $VIM doesn't point to above the runtime directory but to e.g., "/etc/".
|
||
|
|
||
|
|
||
|
Filetype introduced *new-filetype-5.4*
|
||
|
-------------------
|
||
|
|
||
|
Syntax files are now loaded with the new FileType autocommand. Old
|
||
|
"mysyntaxfile" files will no longer work. |filetypes|
|
||
|
|
||
|
The scripts for loading syntax highlighting have been changed to use the
|
||
|
new Syntax autocommand event.
|
||
|
|
||
|
This combination of Filetype and Syntax events allows tuning the syntax
|
||
|
highlighting a bit more, also when selected from the Syntax menu. The
|
||
|
FileType autocommand can also be used to set options and mappings specifically
|
||
|
for that type of file.
|
||
|
|
||
|
The "$VIMRUNTIME/filetype.vim" file is not loaded automatically. The
|
||
|
":filetype on" command has been added for this. ":syntax on" also loads it.
|
||
|
|
||
|
The 'filetype' option has been added. It is used to trigger the FileType
|
||
|
autocommand event, like the 'syntax' option does for the Syntax event.
|
||
|
|
||
|
":set syntax=OFF" and ":set syntax=ON" can be used (in a modeline) to switch
|
||
|
syntax highlighting on/off for the current file.
|
||
|
|
||
|
The Syntax menu commands have been moved to $VIMRUNTIME/menu.vim. The Syntax
|
||
|
menu is included both when ":filetype on" and when ":syntax manual" is used.
|
||
|
|
||
|
Renamed the old 'filetype' option to 'osfiletype'. It was only used for
|
||
|
RISCOS. 'filetype' is now used for the common file type.
|
||
|
|
||
|
Added the ":syntax manual" command. Allows manual selection of the syntax to
|
||
|
be used, e.g., from a modeline.
|
||
|
|
||
|
|
||
|
Vim script line continuation *new-line-continuation*
|
||
|
----------------------------
|
||
|
|
||
|
When an Ex line starts with a backslash, it is concatenated to the previous
|
||
|
line. This avoids the need for long lines. |line-continuation| (Roemer)
|
||
|
Example: >
|
||
|
if has("dialog_con") ||
|
||
|
\ has("dialog_gui")
|
||
|
:let result = confirm("Enter your choice",
|
||
|
\ "&Yes\n&No\n&Maybe",
|
||
|
\ 2)
|
||
|
endif
|
||
|
|
||
|
|
||
|
Improved session files *improved-sessions*
|
||
|
----------------------
|
||
|
|
||
|
New words for 'sessionoptions':
|
||
|
- "help" Restore the help window.
|
||
|
- "blank" Restore empty windows.
|
||
|
- "winpos" Restore the Vim window position. Uses the new ":winpos"
|
||
|
command
|
||
|
- "buffers" Restore hidden and unloaded buffers. Without it only the
|
||
|
buffers in windows are restored.
|
||
|
- "slash" Replace backward by forward slashes in file names.
|
||
|
- "globals" Store global variables.
|
||
|
- "unix" Use unix file format (<NL> instead of <CR><NL>)
|
||
|
|
||
|
The ":mksession" and 'sessionoptions' are now in the +mksession feature.
|
||
|
|
||
|
The top line of the window is also restored when using a session file.
|
||
|
|
||
|
":mksession" and ":mkvimrc" don't store 'fileformat', it should be detected
|
||
|
when loading a file.
|
||
|
|
||
|
(Most of this was done by Vince Negri and Robert Webb)
|
||
|
|
||
|
|
||
|
Autocommands improved *improved-autocmds-5.4*
|
||
|
---------------------
|
||
|
|
||
|
New events:
|
||
|
|FileType| When the file type has been detected.
|
||
|
|FocusGained| When Vim got input focus. (Negri)
|
||
|
|FocusLost| When Vim lost input focus. (Negri)
|
||
|
|BufCreate| Called just after a new buffer has been created or has been
|
||
|
renamed. (Madsen)
|
||
|
|CursorHold| Triggered when no key has been typed for 'updatetime'. Can be
|
||
|
used to do something with the word under the cursor. (Negri)
|
||
|
Implemented CursorHold autocommand event for Unix. (Zellner)
|
||
|
Also for Amiga and MS-DOS.
|
||
|
|GUIEnter| Can be used to do something with the GUI window after it has
|
||
|
been created (e.g., a ":winpos 100 50").
|
||
|
|BufHidden| When a buffer becomes hidden. Used to delete the
|
||
|
option-window when it becomes hidden.
|
||
|
|
||
|
Also trigger |BufDelete| just before a buffer is going to be renamed. (Madsen)
|
||
|
|
||
|
The "<amatch>" pattern can be used like "<afile>" for autocommands, except
|
||
|
that it is the matching value for the FileType and Syntax events.
|
||
|
|
||
|
When ":let @/ = <string>" is used in an autocommand, this last search pattern
|
||
|
will be used after the autocommand finishes.
|
||
|
|
||
|
Made loading autocommands a bit faster. Avoid doing strlen() on each exiting
|
||
|
pattern for each new pattern by remembering the length.
|
||
|
|
||
|
|
||
|
Encryption *new-encryption*
|
||
|
----------
|
||
|
|
||
|
Files can be encrypted when writing and decrypted when reading. Added the
|
||
|
'key' option, "-x" command line argument and ":X" command. |encryption| (based
|
||
|
on patch from Mohsin Ahmed)
|
||
|
|
||
|
When reading a file, there is an automatic detection whether it has been
|
||
|
crypted. Vim will then prompt for the key.
|
||
|
|
||
|
Note that the encryption method is not compatible with Vi. The encryption is
|
||
|
not unbreakable. This allows it to be exported from the US.
|
||
|
|
||
|
|
||
|
GTK GUI port *new-GTK-GUI*
|
||
|
------------
|
||
|
|
||
|
New GUI port for GTK+. Includes a toolbar, menu tearoffs, etc. |gui-gtk|
|
||
|
Added the |:helpfind| command. (Kahn and Dalecki)
|
||
|
|
||
|
|
||
|
Menu changes *menu-changes-5.4*
|
||
|
------------
|
||
|
|
||
|
Menus can now also be used in the console. It is enabled by the new
|
||
|
'wildmenu' option. This shows matches for command-line completion like a
|
||
|
menu. This works as a minimal file browser.
|
||
|
|
||
|
The new |:emenu| command can be used to execute a menu item.
|
||
|
|
||
|
Uses the last status line to list items, or inserts a line just above the
|
||
|
command line. (Negri)
|
||
|
|
||
|
The 'wildcharx' option can be used to trigger 'wildmenu' completion from a
|
||
|
mapping.
|
||
|
|
||
|
When compiled without menus, this can be detected with has("menu"). Also show
|
||
|
this in the ":version" output. Allow compiling GUI versions without menu
|
||
|
support. Only include toolbar support when there is menu support.
|
||
|
|
||
|
Moved the "Window" menu all the way to the right (priority 70). Looks more
|
||
|
familiar for people working with MS-Windows, shouldn't matter for others.
|
||
|
|
||
|
Included "Buffers" menu. Works with existing autocommands and functions. It
|
||
|
can be disabled by setting the "no_buffers_menu" variable. (Aaron and Madsen)
|
||
|
|
||
|
Win32 supports separators in a menu: "-.*-". (Geddes)
|
||
|
Menu separators for Motif now work too.
|
||
|
|
||
|
Made Popup menu for Motif GUI work. (Madsen)
|
||
|
|
||
|
'M' flag in 'guioptions': Don't source the system menu.
|
||
|
|
||
|
All the menu code has been moved from gui.c to menu.c.
|
||
|
|
||
|
|
||
|
Viminfo improved *improved-viminfo*
|
||
|
----------------
|
||
|
|
||
|
New flags for 'viminfo':
|
||
|
'!' Store global variables in the viminfo file if they are in uppercase
|
||
|
letters. (Negri)
|
||
|
'h' Do ":nohlsearch" when loading a viminfo file.
|
||
|
|
||
|
Store search patterns in the viminfo file with their offset, magic, etc. Also
|
||
|
store the flag whether 'hlsearch' highlighting is on or off (which is not used
|
||
|
if the 'h' flag is in 'viminfo').
|
||
|
|
||
|
Give an error message when setting 'viminfo' without commas.
|
||
|
|
||
|
|
||
|
Various new commands *new-commands-5.4*
|
||
|
--------------------
|
||
|
|
||
|
Operator |g?|: rot13 encoding. (Negri)
|
||
|
|
||
|
|zH| and |zL| commands: Horizontal scrolling by half a page.
|
||
|
|gm| move cursor to middle of screen line. (Ideas by Campbell)
|
||
|
|
||
|
Operations on Visual blocks: |v_b_I|, |v_b_A|, |v_b_c|, |v_b_C|, |v_b_r|,
|
||
|
|v_b_<| and |v_b_>|. (Kelly)
|
||
|
|
||
|
New command: CTRL-\ CTRL-N, which does nothing in Normal mode, and goes to
|
||
|
Normal mode when in Insert or Command-line mode. Can be used by VisVim or
|
||
|
other OLE programs to make sure Vim is in Normal mode, without causing a beep.
|
||
|
|CTRL-\_CTRL-N|
|
||
|
|
||
|
":cscope kill" command to use the connection filename. |:cscope| (Kahn)
|
||
|
|
||
|
|:startinsert| command: Start Insert mode next.
|
||
|
|
||
|
|:history| command, to show all four types of histories. (Roemer)
|
||
|
|
||
|
|[m|, |[M|, |]m| and |]M| commands, for jumping backward/forward to start/end
|
||
|
of method in a (Java) class.
|
||
|
|
||
|
":@*" executes the * register. |:@| (Acevedo)
|
||
|
|
||
|
|go| and |:goto| commands: Jump to byte offset in the file.
|
||
|
|
||
|
|gR| and |gr| command: Virtual Replace mode. Replace characters without
|
||
|
changing the layout. (Webb)
|
||
|
|
||
|
":cd -" changes to the directory from before the previous ":cd" command.
|
||
|
|:cd-| (Webb)
|
||
|
|
||
|
Tag preview commands |:ptag|. Shows the result of a ":tag" in a dedicated
|
||
|
window. Can be used to see the context of the tag (e.g., function arguments).
|
||
|
(Negri)
|
||
|
|:pclose| command, and CTRL-W CTRL-Z: Close preview window. (Moore)
|
||
|
'previewheight' option, height for the preview window.
|
||
|
Also |:ppop|, |:ptnext|, |:ptprevious|, |:ptNext|, |:ptrewind|, |:ptlast|.
|
||
|
|
||
|
|:find| and |:sfind| commands: Find a file in 'path', (split window) and edit
|
||
|
it.
|
||
|
|
||
|
The |:options| command opens an option window that shows the current option
|
||
|
values. Or use ":browse set" to open it. Options are grouped by function.
|
||
|
Offers short help on each option. Hit <CR> to jump to more help. Edit the
|
||
|
option value and hit <CR> on a "set" line to set a new value.
|
||
|
|
||
|
|
||
|
Various new options *new-options-5.4*
|
||
|
-------------------
|
||
|
|
||
|
Scroll-binding: 'scrollbind' and 'scrollopt' options. Added |:syncbind|
|
||
|
command. Makes windows scroll the same amount (horizontally and/or
|
||
|
vertically). (Ralston)
|
||
|
|
||
|
'conskey' option for MS-DOS. Use direct console I/O. This should work with
|
||
|
telnet (untested!).
|
||
|
|
||
|
'statusline' option: Configurable contents of the status line. Also allows
|
||
|
showing the byte offset in the file. Highlighting with %1* to %9*, using the
|
||
|
new highlight groups User1 to User9. (Madsen)
|
||
|
|
||
|
'rulerformat' option: Configurable contents of the ruler, like 'statusline'.
|
||
|
(Madsen)
|
||
|
|
||
|
'write' option: When off, writing files is not allowed. Avoids overwriting a
|
||
|
file even with ":w!". The |-m| command line option resets 'write'.
|
||
|
|
||
|
'clipboard' option: How the clipboard is used. Value "unnamed": Use unnamed
|
||
|
register like "*. (Cortopassi) Value "autoselect": Like what 'a' in
|
||
|
'guioptions' does but works in the terminal.
|
||
|
|
||
|
'guifontset' option: Specify fonts for the +fontset feature, for the X11 GUI
|
||
|
versions. Allows using normal fonts when vim is compiled with this feature.
|
||
|
(Nam)
|
||
|
|
||
|
'guiheadroom' option: How much room to allow above/below the GUI window.
|
||
|
Used for Motif, Athena and GTK.
|
||
|
|
||
|
Implemented 'tagstack' option: When off, pushing tags onto the stack is
|
||
|
disabled (Vi compatible). Useful for mappings.
|
||
|
|
||
|
'shellslash' option. Only for systems that use a backslash as a file
|
||
|
separator. This option will use a forward slash in file names when expanding
|
||
|
it. Useful when 'shell' is sh or csh.
|
||
|
|
||
|
'pastetoggle' option: Key sequence that toggles 'paste'. Works around the
|
||
|
problem that mappings don't work in Insert mode when 'paste' is set.
|
||
|
|
||
|
'display' option: When set to "lastline", the last line fills the window,
|
||
|
instead of being replaced with "@" lines. Only the last three characters are
|
||
|
replaced with "@@@", to indicate that the line has not finished yet.
|
||
|
|
||
|
'switchbuf' option: Allows re-using existing windows on a buffer that is being
|
||
|
jumped to, or split the window to open a new buffer. (Roemer)
|
||
|
|
||
|
'titleold' option. Replaces the fixed string "Thanks for flying Vim", which
|
||
|
is used to set the title when exiting. (Schild)
|
||
|
|
||
|
|
||
|
Vim scripts *new-script-5.4*
|
||
|
-----------
|
||
|
|
||
|
The |exists()| function can also check for existence of a function. (Roemer)
|
||
|
An internal function is now found with a binary search, should be a bit
|
||
|
faster. (Roemer)
|
||
|
|
||
|
New functions:
|
||
|
- |getwinposx()| and |getwinposy()|: get Vim window position. (Webb)
|
||
|
- |histnr()|, |histadd()|, |histget()| and |histdel()|: Make history
|
||
|
available. (Roemer)
|
||
|
- |maparg()|: Returns rhs of a mapping. Based on a patch from Vikas.
|
||
|
- |mapcheck()|: Check if a map name matches with an existing one.
|
||
|
- |visualmode()|: Return type of last Visual mode. (Webb)
|
||
|
- |libcall()|: Call a function in a library. Currently only for Win32. (Negri)
|
||
|
- |bufwinnr()|: find window that contains the specified buffer. (Roemer)
|
||
|
- |bufloaded()|: Whether a buffer exists and is loaded.
|
||
|
- |localtime()| and |getftime()|: wall clock time and last modification time
|
||
|
of a file (Webb)
|
||
|
- |glob()|: expand file name wildcards only.
|
||
|
- |system()|: get the raw output of an external command. (based on a patch
|
||
|
from Aaron).
|
||
|
- |strtrans()|: Translate String into printable characters. Used for
|
||
|
2html.vim script.
|
||
|
- |append()|: easy way to append a line of text in a buffer.
|
||
|
|
||
|
Changed functions:
|
||
|
- Optional argument to |strftime()| to give the time in seconds. (Webb)
|
||
|
- |expand()| now also returns names for files that don't exist.
|
||
|
|
||
|
Allow numbers in the name of a user command. (Webb)
|
||
|
|
||
|
Use "v:" for internal Vim variables: "v:errmsg", "v:shell_error", etc. The
|
||
|
ones from version 5.3 can be used without "v:" too, for backwards
|
||
|
compatibility.
|
||
|
|
||
|
New variables:
|
||
|
"v:warningmsg" and "v:statusmsg" internal variables. Contain the last given
|
||
|
warning and status message. |v:warningmsg| |v:statusmsg| (Madsen)
|
||
|
"v:count1" variable: like "v:count", but defaults to one when no count is
|
||
|
used. |v:count1|
|
||
|
|
||
|
When compiling without expression evaluation, "if 1" can be used around the
|
||
|
not supported commands to avoid it being executed. Works like in Vim 4.x.
|
||
|
Some of the runtime scripts gave errors when used with a Vim that was compiled
|
||
|
with minimal features. Now "if 1" is used around code that is not always
|
||
|
supported.
|
||
|
|
||
|
When evaluating an expression with && and ||, skip the parts that will not
|
||
|
influence the outcome. This makes it faster and avoids error messages. (Webb)
|
||
|
Also optimized the skipping of expressions inside an "if 0".
|
||
|
|
||
|
|
||
|
Avoid hit-enter prompt *avoid-hit-enter*
|
||
|
-----------------------
|
||
|
|
||
|
Added 'T' flag to 'shortmess': Truncate all messages that would cause the
|
||
|
hit-enter prompt (unless that would happen anyway).
|
||
|
The 'O' flag in 'shortmess' now also applies to quickfix messages, e.g., from
|
||
|
the ":cn" command.
|
||
|
|
||
|
The default for 'shortmess' is now "filnxtToO", to make most messages fit on
|
||
|
the command line, and not cause the hit-enter prompt.
|
||
|
|
||
|
Previous messages can be viewed with the new |:messages| command.
|
||
|
|
||
|
Some messages are shown fully, even when 'shortmess' tells to shorten
|
||
|
messages, because the user is expected to want to see them in full: CTRL-G and
|
||
|
some quickfix commands.
|
||
|
|
||
|
|
||
|
Improved quickfix *improved-quickfix*
|
||
|
-----------------
|
||
|
|
||
|
Parse change-directory lines for gmake: "make[1]: Entering directory 'name'".
|
||
|
Uses "%D" and "%X" in 'errorformat'.
|
||
|
Also parse "Making {target} in {dir}" messages from make. Helps when not
|
||
|
using GNU make. (Schandl)
|
||
|
|
||
|
Use 'isfname' for "%f" in 'errorformat'.
|
||
|
|
||
|
Parsing of multi-line messages. |errorformat-multi-line|
|
||
|
|
||
|
Allow a range for the |:clist| command. (Roemer)
|
||
|
|
||
|
Support for "global" file names, for error formats that output the file name
|
||
|
once for several errors. (Roemer)
|
||
|
|
||
|
|:cnfile| jumps to first error in next file.
|
||
|
|
||
|
"$*" in 'makeprg' is replaced by arguments to ":make". (Roemer)
|
||
|
|
||
|
|
||
|
Regular expressions *regexp-changes-5.4*
|
||
|
-------------------
|
||
|
|
||
|
In a regexp, a '$' before "\)" is also considered to be an end-of-line. |/$|
|
||
|
In patterns "^" after "\|" or "\(" is a start-of-line. |/^| (Robinson)
|
||
|
|
||
|
In a regexp, in front of "\)" and "\|" both "$" and "\$" were considered
|
||
|
end-of-line. Now use "$" as end-of-line and "\$" for a literal dollar. Same
|
||
|
for '^' after "\(" and "\|". |/\$| |/\^|
|
||
|
|
||
|
Some search patterns can be extremely slow, even though they are not really
|
||
|
illegal. For example: "\([^a-z]\+\)\+Q". Allow interrupting any regexp
|
||
|
search with CTRL-C.
|
||
|
|
||
|
Register "/: last search string (read-only). (Kohan) Changed to use last used
|
||
|
search pattern (like what 'hlsearch' uses). Can set the search pattern with
|
||
|
":let @/ = {expr}".
|
||
|
|
||
|
Added character classes to search patterns, to avoid the need for removing the
|
||
|
'l' flag from 'cpoptions': |[:tab:]|, |[:return:]|, |[:backspace:]| and
|
||
|
|[:escape:]|.
|
||
|
|
||
|
By adding a '?' after a comparative operator in an expression, the comparison
|
||
|
is done by ignoring case. |expr-==?|
|
||
|
|
||
|
|
||
|
Other improvements made between version 5.3 and 5.4
|
||
|
---------------------------------------------------
|
||
|
|
||
|
Changed *changed-5.4*
|
||
|
-------
|
||
|
|
||
|
Unix: Use $TMPDIR for temporary files, if it is set and exists.
|
||
|
|
||
|
Removed "Empty buffer" message. It isn't useful and can cause a hit-enter
|
||
|
prompt. (Negri)
|
||
|
|
||
|
"ex -" now reads commands from stdin and works in silent mode. This is to be
|
||
|
compatible with the original "ex" command that is used for scripts.
|
||
|
|
||
|
Default range for ":tcldo" is the whole file.
|
||
|
|
||
|
Cancelling Visual mode with ESC moved the cursor. There appears to be no
|
||
|
reason for this. Now leave the cursor where it is.
|
||
|
|
||
|
The ":grep" and ":make" commands see " as part of the arguments, instead of
|
||
|
the start of a comment.
|
||
|
|
||
|
In expressions the "=~" and "!~" operators no longer are affected by
|
||
|
'ignorecase'.
|
||
|
|
||
|
Renamed vimrc_example to vimrc_example.vim and gvimrc_example to
|
||
|
gvimrc_example.vim. Makes them being recognized as vim scripts.
|
||
|
|
||
|
"gd" no longer starts searching at the end of the previous function, but at
|
||
|
the first blank line above the start of the current function. Avoids that
|
||
|
using "gd" in the first function finds global a variable.
|
||
|
|
||
|
Default for 'complete' changed from ".,b" to ".,w,b,u,t,i". Many more matches
|
||
|
will be found, at the cost of time (the search can be interrupted).
|
||
|
|
||
|
It is no longer possible to set 'shell*' options from a modeline. Previously
|
||
|
only a warning message was given. This reduces security risks.
|
||
|
|
||
|
The ordering of the index of documentation files was changed to make it more
|
||
|
easy to find a subject.
|
||
|
|
||
|
On MS-DOS and win32, when $VIM was not set, $HOME was used. This caused
|
||
|
trouble if $HOME was set to e.g., "C:\" for some other tool, the runtime files
|
||
|
would not be found. Now use $HOME only for _vimrc, _gvimrc, etc., not to find
|
||
|
the runtime file.
|
||
|
|
||
|
When 'tags' is "./{fname}" and there is no file name for the current buffer,
|
||
|
just use it. Previously it was skipped, causing "vim -t {tag}" not to find
|
||
|
many tags.
|
||
|
|
||
|
When trying to select text in the 'scrolloff' area by mouse dragging, the
|
||
|
resulting scrolling made this difficult. Now 'scrolloff' is temporarily set
|
||
|
to 0 or 1 to avoid this. But still allow scrolling in the top line to extend
|
||
|
to above the displayed text.
|
||
|
|
||
|
Default for 'comments' now includes "sl:/*,mb: *,ex:*/", to make javadoc
|
||
|
comments work. Also helps for C comments that start with "/*******".
|
||
|
|
||
|
CTRL-X CTRL-] Insert mode tag expansion tried to expand to all tags when used
|
||
|
after a non-ID character, which can take a very long time. Now limit this to
|
||
|
200 matches. Also used for command-line tag completion.
|
||
|
|
||
|
The OS/2 distribution has been split in two files. It was too big to fit on a
|
||
|
floppy. The same runtime archive as for the PC is now used.
|
||
|
|
||
|
In the documentation, items like <a-z> have been replaced with {a-z} for
|
||
|
non-optional arguments. This avoids confusion with key names: <C-Z> is a
|
||
|
CTRL-Z, not a character between C and Z, that is {C-Z}.
|
||
|
|
||
|
|
||
|
Added *added-5.4*
|
||
|
-----
|
||
|
|
||
|
Color support for the iris-ansi builtin termcap entry. (Tubman)
|
||
|
|
||
|
Included VisVim version 1.3a. (Erhardt)
|
||
|
|
||
|
Win32 port for SNiFF+ interface. (Leherbauer)
|
||
|
Documentation file for sniff interface: if_sniff.txt. (Leherbauer)
|
||
|
|
||
|
Included the "SendToVim" and "OpenWithVim" programs in the OleVim directory.
|
||
|
To be used with the OLE version of gvim under MS-Windows. (Schaller)
|
||
|
|
||
|
Included Exuberant Ctags version 3.2.4 with Eiffel support. (Hiebert)
|
||
|
|
||
|
When a file that is being edited is deleted, give a warning (like when the
|
||
|
time stamp changed).
|
||
|
|
||
|
Included newer versions of the HTML-generating Awk and Perl scripts. (Colombo)
|
||
|
|
||
|
Linux console mouse support through "gpm". (Tsindlekht)
|
||
|
|
||
|
Security fix: Disallow changing 'secure' and 'exrc' from a modeline. When
|
||
|
'secure' is set, give a warning for changing options that contain a program
|
||
|
name.
|
||
|
|
||
|
Made the Perl interface work with Perl 5.005 and threads. (Verdoolaege)
|
||
|
|
||
|
When giving an error message for an ambiguous mapping, include the offending
|
||
|
mapping. (Roemer)
|
||
|
|
||
|
Command line editing:
|
||
|
- Command line completion of mappings. (Roemer)
|
||
|
- Command line completion for ":function", ":delfunction", ":let", ":call",
|
||
|
":if", etc. (Roemer)
|
||
|
- When using CTRL-D completion for user commands that have
|
||
|
"-complete=tag_listfiles" also list the file names. (Madsen)
|
||
|
- Complete the arguments of the ":command" command. (Webb)
|
||
|
- CTRL-R . in command line inserts last inserted text. CTRL-F, CTRL-P, CTRL-W
|
||
|
and CTRL-A after CTRL-R are used to insert an object from under the cursor.
|
||
|
(Madsen)
|
||
|
|
||
|
Made the text in uganda.txt about copying Vim a bit more clear.
|
||
|
|
||
|
Updated the Vim tutor. Added the "vimtutor" command, which copies the tutor
|
||
|
and starts Vim on it. "make install" now also copies the tutor.
|
||
|
|
||
|
In the output of ":clist" the current entry is highlighted, with the 'i'
|
||
|
highlighting (same as used for 'incsearch').
|
||
|
|
||
|
For the ":clist" command, you can scroll backwards with "b" (one screenful),
|
||
|
"u" (half a screenful) and "k" (one line).
|
||
|
|
||
|
Multi-byte support:
|
||
|
- X-input method for multi-byte characters. And various fixes for multi-byte
|
||
|
support. (Nam)
|
||
|
- Hangul input method feature: |hangul|. (Nam)
|
||
|
- Cleaned up configuration of multi-byte support, XIM, fontset and Hangul
|
||
|
input. Each is now configurable separately.
|
||
|
- Changed check for GTK_KEYBOARD to HANGUL_KEYBOARD_TYPE. (Nam)
|
||
|
- Added doc/hangulin.txt: Documentation for the Hangul input code. (Nam)
|
||
|
- XIM support for GTK+. (Nam)
|
||
|
- First attempt to include support for SJIS encoding. (Nagano)
|
||
|
- When a double-byte character doesn't fit at the end of the line, put a "~"
|
||
|
there and print it on the next line.
|
||
|
- Optimize output of multi-byte text. (Park)
|
||
|
- Win32 IME: preedit style is like over-the-spot. (Nagano)
|
||
|
- Win32 IME: IME mode change now done with ImmSetOpenStatus. (Nagano)
|
||
|
- GUI Athena: file selection dialog can display multi-byte characters.
|
||
|
(Nagano)
|
||
|
- Selection reply for XA_TEXT as XA_STRING. (Nagano)
|
||
|
|
||
|
"runtime/macros/diffwin.vim". Mappings to make a diff window. (Campbell)
|
||
|
|
||
|
Added ".obj" to the 'suffixes' option.
|
||
|
|
||
|
Reduced size of syntax/synload.vim by using the ":SynAu" user command.
|
||
|
Automated numbering of Syntax menu entries in menu.vim.
|
||
|
In the Syntax menu, insert separators between syntax names that start with
|
||
|
a different letter. (Geddes)
|
||
|
|
||
|
Xterm:
|
||
|
- Clipboard support when using the mouse in an xterm. (Madsen)
|
||
|
- When using the xterm mouse, track dragging of the mouse. Use xterm escape
|
||
|
sequences when possible. It is more precise than other methods, but
|
||
|
requires a fairly recent xterm version. It is enabled with "xterm2" in
|
||
|
'ttymouse'. (Madsen)
|
||
|
- Check xterm patch level, to set the value of 'ttymouse'. Has only been
|
||
|
added to xterm recently (patch level > 95). Uses the new 't_RV' termcap
|
||
|
option. Set 'ttymouse' to "xterm2" when a correct response is recognized.
|
||
|
Will make xterm mouse dragging work better.
|
||
|
- Support for shifted function keys on xterm. Changed codes for shifted
|
||
|
cursor keys to what the xterm actually produces. Added codes for shifted
|
||
|
<End> and <Home>.
|
||
|
- Added 't_WP' to set the window position in pixels and 't_WS' to set the
|
||
|
window size in characters. Xterm can now move (used for ":winpos") and
|
||
|
resize (use for ":set lines=" and ":set columns=").
|
||
|
|
||
|
X11:
|
||
|
- When in Visual mode but not owning the selection, display the Visual area
|
||
|
with the VisualNOS group to show this. (Madsen)
|
||
|
- Support for requesting the type of clipboard support. Used for AIX and
|
||
|
dtterm. (Wittig)
|
||
|
- Support compound_text selection (even when compiled without multi-byte).
|
||
|
|
||
|
Swap file:
|
||
|
- New variation for naming swap files: Replace path separators into %, place
|
||
|
all swap files in one directory. Used when a name in 'dir' ends in two path
|
||
|
separators. (Madsen)
|
||
|
- When a swap file is found, show whether it contains modifications or not in
|
||
|
the informative message. (Madsen)
|
||
|
- When dialogs are supported, use a dialog to ask the user what to do when a
|
||
|
swapfile already exists.
|
||
|
|
||
|
"popup_setpos" in 'mousemodel' option. Allows for moving the cursor when
|
||
|
using the right mouse button.
|
||
|
|
||
|
When a buffer is deleted, the selection for which buffer to display instead
|
||
|
now uses the most recent entry from the jump list. (Madsen)
|
||
|
|
||
|
When using CTRL-O/CTRL-I, skip deleted buffers.
|
||
|
|
||
|
A percentage is shown in the ruler, when there is room.
|
||
|
|
||
|
Used autoconf 1.13 to generate configure.
|
||
|
|
||
|
Included get_lisp_indent() from Dirk van Deun. Does better Lisp indenting
|
||
|
when 'p' flag in 'cpoptions' is not included.
|
||
|
|
||
|
Made the 2html.vim script quite a bit faster. (based on ideas from Geddes)
|
||
|
|
||
|
Unix:
|
||
|
- Included the name of the user that compiled Vim and the system name it was
|
||
|
compiled on in the version message.
|
||
|
- "make install" now also installs the "tools" directory. Makes them
|
||
|
available for everybody.
|
||
|
- "make check" now does the same as "make test". "make test" checks for
|
||
|
Visual block mode shift, insert, replace and change.
|
||
|
- Speed up comparing a file name with existing buffers by storing the
|
||
|
device/inode number with the buffer.
|
||
|
- Added configure arguments "--disable-gtk", "--disable-motif" and
|
||
|
"--disable-athena", to be able to disable a specific GUI (when it doesn't
|
||
|
work).
|
||
|
- Renamed the configure arguments for disabling the check for specific GUIs.
|
||
|
Should be clearer now. (Kahn)
|
||
|
- On a Digital Unix system ("OSF1") check for the curses library before
|
||
|
termlib and termcap. (Schild)
|
||
|
- "make uninstall_runtime" will only delete the version-specific files. Can
|
||
|
be used to delete the runtime files of a previous version.
|
||
|
|
||
|
Macintosh: (St-Amant)
|
||
|
- Dragging the scrollbar, like it's done for the Win32 GUI. Moved common code
|
||
|
from gui_w32.c to gui.c
|
||
|
- Added dialogs and file browsing.
|
||
|
- Resource fork preserved, warning when it will be lost.
|
||
|
- Copy original file attributes to newly written file.
|
||
|
- Set title/notitle bug solved.
|
||
|
- Filename completion improved.
|
||
|
- Grow box limit resize to a char by char size.
|
||
|
- Use of rgb.txt for more colors (but give back bad color).
|
||
|
- Apple menu works (beside the about...).
|
||
|
- Internal border now vim compliant.
|
||
|
- Removing a menu doesn't crash anymore.
|
||
|
- Weak-linking of Python 1.5.1 (only on PPC). Python is supported when the
|
||
|
library is available.
|
||
|
- If an error is encountered when sourcing the users .vimrc, the alert box now
|
||
|
shows right away with the OK button defaulted. There's no more "Delete"-key
|
||
|
sign at the start of each line
|
||
|
- Better management of environment variables. Now $VIM is calculated only
|
||
|
once, not regenerated every time it is used.
|
||
|
- No more CPU hog when in background.
|
||
|
- In a sourced Vim script the Mac file format can be recognized, just like DOS
|
||
|
file format is.
|
||
|
|
||
|
When both "unix" and "mac" are present in 'fileformats', prefer "mac" format
|
||
|
when there are more CR than NL characters.
|
||
|
When using "mac" fileformat, use CR instead of a NL, because NL is used for
|
||
|
NUL. Will preserve all characters in a file. (Madsen)
|
||
|
|
||
|
The DOS install.exe now contains checks for an existing installation. It
|
||
|
avoids setting $VIM and $PATH again.
|
||
|
The install program for Dos/Windows can now install Vim in the popup menu, by
|
||
|
adding two registry keys.
|
||
|
|
||
|
Port to EGCS/mingw32. New Makefile.ming. (Aaron)
|
||
|
|
||
|
DOS 16 bit: Don't include cursor shape stuff. Save some bytes.
|
||
|
|
||
|
TCL support to Makefile.w32. (Duperval)
|
||
|
|
||
|
OS/2: Use argv[0] to find runtime files.
|
||
|
|
||
|
When using "gf" to go to a buffer that has already been used, jump to the
|
||
|
line where the cursor last was.
|
||
|
|
||
|
Colored the output of ":tselect" a bit more. Different highlighting between
|
||
|
tag name and file name. Highlight field name ("struct:") separately from
|
||
|
argument.
|
||
|
|
||
|
Backtick expansion for non-Unix systems. Based on a patch from Aaron.
|
||
|
Allows the use of things like ":n `grep -l test *.c`" and
|
||
|
"echo expand('`ls m*`')".
|
||
|
|
||
|
Check for the 'complete' option when it is set. (Acevedo)
|
||
|
'd' flag in 'complete' searches for defined names or macros.
|
||
|
While searching for Insert mode completions in include files and tags files,
|
||
|
check for typeahead, so that you can use matches early. (Webb)
|
||
|
The '.' flag in 'complete' now scans the current buffer completely, ignoring
|
||
|
'nowrapscan'. (Webb)
|
||
|
|
||
|
Added '~' flag to 'whichwrap'. (Acevedo)
|
||
|
|
||
|
When ending the Visual mode (e.g., with ESC) don't grab ownership of the
|
||
|
selection.
|
||
|
|
||
|
In a color terminal, "fg" and "bg" can be used as color names. They stand for
|
||
|
the "Normal" colors.
|
||
|
|
||
|
A few cscope cleanups. (Kahn)
|
||
|
|
||
|
Included changed vimspell.sh from Schemenauer.
|
||
|
|
||
|
Concatenation of strings in an expression with "." is a bit faster. (Roemer)
|
||
|
|
||
|
The ":redir" command can now redirect to a register: ":redir @r". (Roemer)
|
||
|
|
||
|
Made the output of ":marks" and ":jumps" look similar. When the mark is in
|
||
|
the current file, show the text at the mark. Also for ":tags".
|
||
|
|
||
|
When configure finds ftello() and fseeko(), they are used in tag.c (for when
|
||
|
you have extremely big tags files).
|
||
|
|
||
|
Configure check for "-FOlimit,2000" argument for the compiler. (Borsenkow)
|
||
|
|
||
|
GUI:
|
||
|
- When using ":gui" in a non-GUI Vim, give a clear error message.
|
||
|
- "gvim -v" doesn't start the GUI (if console support is present).
|
||
|
- When in Ex mode, use non-Visual selection for the whole screen.
|
||
|
- When starting with "gvim -f" and using ":gui" in the .gvimrc file, Vim
|
||
|
forked anyway. Now the "-f" flag is remembered for ":gui". Added "gui -b"
|
||
|
to run gvim in the background anyway.
|
||
|
|
||
|
Motif GUI:
|
||
|
- Check for "-lXp" library in configure (but it doesn't work yet...).
|
||
|
- Let configure check for Lesstif in "/usr/local/Lesstif/Motif*". Changed the
|
||
|
order to let a local Motif version override a system standard version.
|
||
|
|
||
|
Win32 GUI:
|
||
|
- When using "-register" or "-unregister" in the non-OLE version, give an
|
||
|
error message.
|
||
|
- Use GTK toolbar icons. Make window border look better. Use sizing handles
|
||
|
on the lower left&right corners of the window. (Negri)
|
||
|
- When starting an external command with ":!start" and the command can not be
|
||
|
executed, give an error message. (Webb)
|
||
|
- Use sizing handles for the grey rectangles below the scrollbars. Can draw
|
||
|
toolbar in flat mode now, looks better. (Negri)
|
||
|
- Preparations for MS-Windows 3.1 addition. Mostly changing WIN32 to MSWIN
|
||
|
and USE_GUI_WIN32 to USE_GUI_MSWIN. (Negri)
|
||
|
|
||
|
Avoid allocating the same string four times in buflist_findpat(). (Williams)
|
||
|
|
||
|
Set title and icon text with termcap options 't_ts', 't_fs', 't_IS' and
|
||
|
't_IE'. Allows doing this on any terminal that supports setting the title
|
||
|
and/or icon text. (Schild)
|
||
|
|
||
|
New 'x' flag in 'comments': Automatically insert the end part when its last
|
||
|
character is typed. Helps to close a /* */ comment in C. (Webb)
|
||
|
|
||
|
When expand() has a second argument which is non-zero, don't use 'suffixes'
|
||
|
and 'wildignore', return all matches.
|
||
|
|
||
|
'O' flag in 'cpoptions' When not included, Vim will not overwrite a file, if
|
||
|
it didn't exist when editing started but it does exist when the buffer is
|
||
|
written to the file. The file must have been created outside of Vim, possibly
|
||
|
without the user knowing it. When this is detected after a shell command,
|
||
|
give a warning message.
|
||
|
|
||
|
When editing a new file, CTRL-G will show [New file]. When there were errors
|
||
|
while reading the file, CTRL-G will show [Read errors].
|
||
|
|
||
|
":wall" can now use a dialog and file-browsing when needed.
|
||
|
|
||
|
Grouped functionality into new features, mainly to reduce the size of the
|
||
|
minimal version:
|
||
|
+linebreak: 'showbreak', 'breakat' and 'linebreak'
|
||
|
+visualextra: "I"nsert and "A"ppend in Visual block mode, "c"hange all lines
|
||
|
in a block, ">" and "<": Shifting a block, "r": Replacing a
|
||
|
Visual area with one character.
|
||
|
+comments: 'comments'
|
||
|
+cmdline_info: 'ruler' and 'showcmd'. Replaces +showcmd.
|
||
|
"+title" Don't add code to set title or icon for MSDOS, this was not
|
||
|
possible anyway.
|
||
|
+cmdline_compl Disable commandline completion at compile time, except for
|
||
|
files, directories and help items.
|
||
|
|
||
|
Moved features from a list of function calls into an array. Should save a bit
|
||
|
of space.
|
||
|
|
||
|
While entering the body of a function, adjust indent according to "if" and
|
||
|
"while" commands.
|
||
|
|
||
|
VMS: Adjusted os_vms.mms a bit according to suggestions from Arpadffy.
|
||
|
|
||
|
The flags in the 'comments' option can now include an offset. This makes it
|
||
|
possible to align "/*****", "/* xxx" and "/*" comments with the same
|
||
|
'comments' setting. The default value for 'comments' uses this.
|
||
|
Added 'O' flag: Don't use this part for the "O" command. Useful for "set
|
||
|
com=sO:*\ -,mO:*\ \ ,exO:*/"
|
||
|
|
||
|
FileType autocommands recognize ".bak", ".orig" and "~" extensions and remove
|
||
|
them to find the relevant extension.
|
||
|
|
||
|
The tutorial for writing a Vim script file has been extended.
|
||
|
|
||
|
Some more highlighting in help files, for items that are not typed literally.
|
||
|
|
||
|
Can use "CTRL-W CTRL-G" like "CTRL-W g".
|
||
|
|
||
|
"make test" for OS/2.
|
||
|
|
||
|
Adjusted configure to automatically use the GUI for BeOS.
|
||
|
|
||
|
|
||
|
Fixed *fixed-5.4*
|
||
|
-----
|
||
|
|
||
|
5.3.1: When using an autocommand for BufWritePre that changes the name of the
|
||
|
buffer, freed memory would be used. (Geddes)
|
||
|
|
||
|
Mac: Compiler didn't understand start of skip_class_name().
|
||
|
|
||
|
Win32 GUI:
|
||
|
- When cancelling the font requester, don't give an error message.
|
||
|
- When a tearoff-menu is open and its menu is deleted, Vim could crash.
|
||
|
(Negri)
|
||
|
- There was a problem on Windows 95 with (un)maximizing the window.
|
||
|
(Williams)
|
||
|
- when 'mousehide' is set, the mouse would stay hidden when a menu is dropped
|
||
|
with the keyboard. (Ralston)
|
||
|
- The tempname() function already created the file. Caused problems when
|
||
|
using ":w". Now the file is deleted.
|
||
|
- Cursor disappeared when ending up in the top-left character on the screen
|
||
|
after scrolling. (Webb)
|
||
|
- When adding a submenu for a torn-off menu, it was not updated.
|
||
|
- Menu tooltip was using the toolbar tooltip. (Negri)
|
||
|
- Setting 'notitle' didn't remove the title. (Steed)
|
||
|
- Using ":!start cmd" scrolled the screen one line up, and didn't wait for
|
||
|
return when the command wasn't found.
|
||
|
|
||
|
Cscope interface: Sorting of matches was wrong. Starting the interface could
|
||
|
fail. (Kahn)
|
||
|
|
||
|
Motif GUI: Could not compile with Motif 1.1, because some tear-off
|
||
|
functionality was not in #ifdefs.
|
||
|
|
||
|
Configure could sometimes not compile or link the test program for sizeof(int)
|
||
|
properly. This caused alignment problems for the undo structure allocations.
|
||
|
Added a safety check that SIZEOF_INT is not zero.
|
||
|
|
||
|
Added configure check to test if strings.h can be included after string.h.
|
||
|
Some systems can't handle it.
|
||
|
Some systems need both string.h and strings.h included. Adjusted vim.h for
|
||
|
that. Removed including string.h from os_unixx.h, since it's already in
|
||
|
vim.h. (Savage)
|
||
|
AIX: defining _NO_PROTO in os_unix.h causes a conflict between string.h and
|
||
|
strings.h, but after the configure check said it was OK. Also define
|
||
|
_NO_PROTO for AIX in the configure check. (Winn)
|
||
|
|
||
|
When closing a window with CTRL-W c, the value of 'hidden' was not taken into
|
||
|
account, the buffer was always unloaded. (Negri)
|
||
|
|
||
|
Unix Makefile: "make install" always tried to rename an older executable and
|
||
|
remove it. This caused an error message when it didn't exit. Added a check
|
||
|
for the existence of an old executable.
|
||
|
The command line for "make install" could get too long, because of the many
|
||
|
syntax files. Now first do a "cd" to reduce the length.
|
||
|
|
||
|
On RISCOS and MSDOS, reading a file could fail, because the short filename was
|
||
|
used, which can be wrong after a ":!cd".
|
||
|
|
||
|
In the DOS versions, the wrong install.exe was included (required Windows).
|
||
|
Now the install.exe version is included that is the same as the Vim version.
|
||
|
This also supports long file names where possible.
|
||
|
|
||
|
When recording, and stopping while in Insert mode with CTRL-O q, the CTRL-O
|
||
|
would also be recorded.
|
||
|
|
||
|
32bit DOS version: "vim \file", while in a subdirectory, resulted in "new
|
||
|
file" for "file" in the local directory, while "\file" did exist. When
|
||
|
"file" in the current directory existed, this didn't happen.
|
||
|
|
||
|
MSDOS: Mouse could not go beyond 80 columns in 132 columns mode. (Young)
|
||
|
|
||
|
"make test" failed in the RedHat RPM, because compatible is off by default.
|
||
|
|
||
|
In Insert mode <C-O><C-W><C-W> changes to other window, but the status bars
|
||
|
were not updated until another character was typed.
|
||
|
|
||
|
MSDOS: environment options in lowercase didn't work, although they did in the
|
||
|
Win32 versions. (Negri)
|
||
|
|
||
|
After ":nohlsearch", a tag command switched highlighting back on.
|
||
|
|
||
|
When using "append" command as the last line in an autocommand, Vim would
|
||
|
crash.
|
||
|
|
||
|
RISCOS: The scroll bumpers (?) were not working properly. (Leonard)
|
||
|
|
||
|
"zl" and "zh" could move the cursor, but this didn't set the column in which
|
||
|
e.g., "k" would move the cursor.
|
||
|
|
||
|
When doing ":set all&" the value of 'scroll' was not set correctly. This
|
||
|
caused an error message when later setting any other number option.
|
||
|
|
||
|
When 'hlsearch' highlighting has been disabled with ":nohlsearch",
|
||
|
incremental searching would switch it back on too early.
|
||
|
|
||
|
When listing tags for ":tselect", and using a non-search command, and the last
|
||
|
character was equal to the first (e.g., "99"), the last char would not be
|
||
|
shown.
|
||
|
|
||
|
When searching for tags with ":tag" Vim would assume that all matches had been
|
||
|
found when there were still more (e.g. from another tags file).
|
||
|
|
||
|
Win32: Didn't recognize "c:\" (e.g., in tags file) as absolute path when
|
||
|
upper/lowercase was different.
|
||
|
|
||
|
Some xterms (Debian) send <Esc>OH for HOME and <Esc>OF for END. Added these
|
||
|
to the builtin-xterm.
|
||
|
|
||
|
In ex mode, any CR was seen as the end of the line. Only a NL should be
|
||
|
handled that way. broke ":s/foo/some^Mtext/".
|
||
|
|
||
|
In menu.vim, a vmenu was used to override an amenu. That didn't work, because
|
||
|
the system menu file doesn't overwrite existing menus. Added explicit vunmenu
|
||
|
to solve this.
|
||
|
|
||
|
Configure check for terminal library could find a library that doesn't work at
|
||
|
runtime (Solaris: shared library not found). Added a check that a program
|
||
|
with tgoto() can run correctly.
|
||
|
|
||
|
Unix: "echo -n" in the Makefile doesn't work on all systems, causing errors
|
||
|
compiling pathdef.c. Replaced it with "tr".
|
||
|
|
||
|
Perl: DO_JOIN was redefined by Perl. Undefined it in the perl files.
|
||
|
|
||
|
Various XIM and multi-byte fixes:
|
||
|
- Fix user cannot see his language while he is typing his language with
|
||
|
off-the-spot method. (Nagano)
|
||
|
- Fix preedit position using text/edit area (using gui.wid). (Nagano)
|
||
|
- remove 'fix dead key' codes. It was needed since XNFocusWindow was
|
||
|
"x11_window", XNFocusWindow is now gui.wid. (Nagano)
|
||
|
- Remove some compile warnings and fix typos. (Namsh)
|
||
|
- For status area, check the gtk+ version while Vim runs. I believe it is
|
||
|
better than compile time check. (Namsh)
|
||
|
- Remove one FIXME for gtk+-xim. (Namsh)
|
||
|
- XIM: Dead keys didn't work for Czech. (Vyskovsky)
|
||
|
- Multibyte: If user input only 3byte such as mb1_mb2_eng or eng_mb1_mb2 VIM
|
||
|
could convert it to special character. (Nam)
|
||
|
- Athena/Motif with XIM: fix preedit area. (Nam)
|
||
|
- XIM: Composed strings were sometimes ignored. Vim crashed when compose
|
||
|
string was longer than 256 bytes. IM's geometry control is fixed. (Nam,
|
||
|
Nagano)
|
||
|
- Win32 multi-byte: hollowed cursor width on a double byte char was wrong.
|
||
|
(Nagano)
|
||
|
- When there is no GUI, selecting XIM caused compilation problems.
|
||
|
Automatically disable XIM when there is no GUI in configure.
|
||
|
- Motif and Athena: When compiled with XIM, but the input method was not
|
||
|
enabled, there would still be a status line. Now the status line is gone if
|
||
|
the input method doesn't work. (Nam)
|
||
|
|
||
|
Win32: tooltip was not removed when selecting a parent menu (it was when
|
||
|
selecting a menu entry). (Negri)
|
||
|
|
||
|
Unix with X: Some systems crash on exit, because of the XtCloseDisplay() call.
|
||
|
Removed it, it should not be necessary when exiting.
|
||
|
|
||
|
Win32: Crash on keypress when compiled with Borland C++. (Aaron)
|
||
|
|
||
|
When checking for Motif library files, prefer the same location as the include
|
||
|
files (with "include" replaced with "lib") above another entry.
|
||
|
|
||
|
Athena GUI: Changed "XtOffset()" in gui_at_fs.c to "XtOffsetOf()", like it's
|
||
|
used in gui_x11.c.
|
||
|
|
||
|
Win32: When testing for a timestamp of a file on floppy, would get a dialog
|
||
|
box when the floppy has been removed. Now return with an error. (Negri)
|
||
|
|
||
|
Win32 OLE: When forced to come to the foreground, a minimized window was still
|
||
|
minimized, now it's restored. (Zivkov)
|
||
|
|
||
|
There was no check for a positive 'shiftwidth'. A negative value could cause
|
||
|
a hangup, a zero value a crash.
|
||
|
|
||
|
Athena GUI: horizontal scrollbar wasn't updated correctly when clicking right
|
||
|
or left of the thumb.
|
||
|
|
||
|
When making a Visual-block selection in one window, and trying to scroll
|
||
|
another, could cause errors for accessing non-existent line numbers.
|
||
|
|
||
|
When 'matchpairs' contains "`:'", jumping from the ` to the ' didn't work
|
||
|
properly.
|
||
|
|
||
|
Changed '\"' to '"' to make it compatible with old C compilers.
|
||
|
|
||
|
The command line expansion for mappings caused a script with a TAB between lhs
|
||
|
and rhs of a map command to fail. Assume the TAB is to separate lhs and rhs
|
||
|
when there are no mappings to expand.
|
||
|
|
||
|
When editing a file with very long lines with 'scrolloff' set, "j" would
|
||
|
sometimes end up in a line which wasn't displayed.
|
||
|
|
||
|
When editing a read-only file, it was completely read into memory, even when
|
||
|
it would not fit. Now create a swap file for a read-only file when running
|
||
|
out of memory while reading the file.
|
||
|
|
||
|
When using ":set cino={s,e-s", a line after "} else {" was not indented
|
||
|
properly. Also added a check for this in test3.in.
|
||
|
|
||
|
The Hebrew mapping for the command line was remembered for the next command
|
||
|
line. That isn't very useful, a command is not Hebrew. (Kol)
|
||
|
|
||
|
When completing file names with embedded spaces, like "Program\ files", this
|
||
|
didn't work. Also for user commands. Moved backslash_halve() down to
|
||
|
mch_expandpath().
|
||
|
|
||
|
When using "set mouse=a" in Ex mode, mouse events were handled like typed
|
||
|
text. Then typing "quit" screwed up the mouse behavior of the xterm.
|
||
|
|
||
|
When repeating an insert with "." that contains a CTRL-Y, a number 5 was
|
||
|
inserted as "053".
|
||
|
|
||
|
Yanking a Visual area, with the cursor past the line, didn't move the cursor
|
||
|
back onto the line. Same for "~", "u", "U" and "g?"
|
||
|
|
||
|
Win32: Default for 'grepprg' could be "findstr /n" even though there is no
|
||
|
findstr.exe (Windows 95). Check if it exists, and fall back to "grep -n" if
|
||
|
it doesn't.
|
||
|
|
||
|
Because gui_mouse_moved() inserted a leftmouse click in the input buffer,
|
||
|
remapping a leftmouse click caused strange effects. Now Insert another code
|
||
|
in the input buffer. Also insert a leftmouse release, to avoid the problem
|
||
|
with ":map <LeftMouse> l" that the next release is seen as the release for the
|
||
|
focus click.
|
||
|
|
||
|
With 'wrap' on, when using a line that doesn't fit on the screen, if the start
|
||
|
of the Visual area is before the start of the screen, there was no
|
||
|
highlighting. Also, 'showbreak' doesn't work properly.
|
||
|
|
||
|
DOS, Win32: A pattern "[0-9]\+" didn't work in autocommands.
|
||
|
|
||
|
When creating a swap file for a buffer which isn't the current buffer, could
|
||
|
get a mixup of short file name, resulting in a long file name when a short
|
||
|
file name was required. makeswapname() was calling modname() instead of
|
||
|
buf_modname().
|
||
|
|
||
|
When a function caused an error, and the error message was very long because
|
||
|
of recursiveness, this would cause a crash.
|
||
|
|
||
|
'suffixes' were always compared with matching case. For MS-DOS, Win32 and
|
||
|
OS/2 case is now ignored.
|
||
|
|
||
|
The use of CHARBITS in regexp.c didn't work on some Linux. Don't use it.
|
||
|
|
||
|
When generating a script file, 'cpo' was made empty. This caused backslashes
|
||
|
to disappear from mappings. Set it to "B" to avoid that.
|
||
|
|
||
|
Lots of typos in the documentation. (Campbell)
|
||
|
|
||
|
When editing an existing (hidden) buffer, jump to the last used cursor
|
||
|
position. (Madsen)
|
||
|
|
||
|
On a Sun the xterm screen was not restored properly when suspending. (Madsen)
|
||
|
|
||
|
When $VIMINIT is processed, 'nocompatible' was only set after processing it.
|
||
|
|
||
|
Unix: Polling for a character wasn't done for GPM, Sniff and Xterm clipboard
|
||
|
all together. Cleaned up the code for using select() too.
|
||
|
|
||
|
When executing external commands from the GUI, some typeahead was lost. Added
|
||
|
some code to regain as much typeahead as possible.
|
||
|
|
||
|
When the window height is 5 lines or fewer, <PageDown> didn't use a one-line
|
||
|
overlap, while <PageUp> does. Made sure that <PageUp> uses the same overlap
|
||
|
as <PageDown>, so that using them both always displays the same lines.
|
||
|
|
||
|
Removed a few unused functions and variables (found with lint).
|
||
|
|
||
|
Dictionary completion didn't use 'infercase'. (Raul)
|
||
|
|
||
|
Configure tests failed when the Perl library was not in LD_LIBRARY_PATH.
|
||
|
Don't use the Perl library for configure tests, add it to the linker line only
|
||
|
when linking Vim.
|
||
|
|
||
|
When using ncurses/terminfo, could get a 't_Sf' and 't_Sb' termcap entry that
|
||
|
has "%d" instead of "%p1%d". The light background colors didn't work then.
|
||
|
|
||
|
GTK GUI with ncurses: Crashed when starting up in tputs(). Don't use tputs()
|
||
|
when the GUI is active.
|
||
|
|
||
|
Could use the ":let" command to set the "count", "shell_error" and "version"
|
||
|
variables, but that didn't work. Give an error message when trying to set
|
||
|
them.
|
||
|
|
||
|
On FreeBSD 3.0, tclsh is called tclsh8.0. Adjusted configure.in to find it.
|
||
|
|
||
|
When Vim is linked with -lncurses, but python uses -ltermcap, this causes
|
||
|
trouble: "OOPS". Configure now removes the -ltermcap.
|
||
|
|
||
|
:@" and :*" didn't work properly, because the " was recognized as the start of
|
||
|
a comment.
|
||
|
|
||
|
Win32s GUI: Minimizing the console where a filter command runs in caused
|
||
|
trouble for detecting that the filter command has finished. (Negri)
|
||
|
|
||
|
After executing a filter command from an xterm, the mouse would be disabled.
|
||
|
It would work again after changing the mode.
|
||
|
|
||
|
Mac GUI: Crashed in newenv(). (St-Amant)
|
||
|
|
||
|
The menus and mappings in mswin.vim didn't handle text ending in a NL
|
||
|
correctly. (Acevedo)
|
||
|
|
||
|
The ":k" command didn't check if it had a valid argument or extra characters.
|
||
|
Now give a meaningful error message. (Webb)
|
||
|
|
||
|
On SGI, the signal function doesn't always have three arguments. Check for
|
||
|
struct sigcontext to find out. Might still be wrong...
|
||
|
|
||
|
Could crash when using 'hlsearch' and search pattern is "^".
|
||
|
|
||
|
When search patterns were saved and restored, status of no_hlsearch was not
|
||
|
also saved and restored (from ":nohlsearch" command).
|
||
|
|
||
|
When using setline() to make a line shorter, the cursor position was not
|
||
|
adjusted.
|
||
|
|
||
|
MS-DOS and Win95: When trying to edit a file and accidentally adding a slash
|
||
|
or backslash at the end, the file was deleted. Probably when trying to create
|
||
|
the swap file. Explicitly check for a trailing slash or backslash before
|
||
|
trying to read a file.
|
||
|
|
||
|
X11 GUI: When starting the GUI failed and received a deadly signal while
|
||
|
setting the title, would lock up when trying to exit, because the title is
|
||
|
reset again. Avoid using mch_settitle() recursively.
|
||
|
|
||
|
X11 GUI: When starting the GUI fails, and then trying it again, would crash,
|
||
|
because argv[] has been freed and x11_display was reset to NULL.
|
||
|
|
||
|
Win32: When $HOME was set, would put "~user" in the swap file, which would
|
||
|
never compare with a file name, and never cause the attention message. Put
|
||
|
the full path in the swap file instead.
|
||
|
|
||
|
Win32 console: There were funny characters at the end of the "vim -r" swap
|
||
|
files message (direct output of CR CR LF).
|
||
|
|
||
|
DOS 32 bit: "vim -r" put the text at the top of the window.
|
||
|
|
||
|
GUI: With 'mousefocus' set, got mouse codes as text with "!sleep 100" or "Q".
|
||
|
|
||
|
Motif and Win32 GUI: When changing 'guifont' to a font of the same size the
|
||
|
screen wasn't redrawn.
|
||
|
|
||
|
Unix: When using ":make", jumping to a file b.c, which is already open as a
|
||
|
symbolic link a.c, opened a new buffer instead of using the existing one.
|
||
|
|
||
|
Inserting text in the current buffer while sourcing the .vimrc file would
|
||
|
cause a crash or hang. The memfile for the current buffer was never
|
||
|
allocated. Now it's allocated as soon as something is written in the buffer.
|
||
|
|
||
|
DOS 32 bit: "lightblue" background worked for text, but not drawn parts were
|
||
|
black.
|
||
|
|
||
|
DOS: Colors of console were not restored upon exiting.
|
||
|
|
||
|
When recording, with 'cmdheight' set to 2 and typing Esc> in Insert mode
|
||
|
caused the "recording" message to be doubled.
|
||
|
|
||
|
Spurious "file changed" messages could happen on Windows. Now tolerate a one
|
||
|
second difference, like for Linux.
|
||
|
|
||
|
GUI: When returning from Ex mode, scrollbars were not updated.
|
||
|
|
||
|
Win32: Copying text to the clipboard containing a <CR>, pasting it would
|
||
|
replace it with a <NL> and drop the next character.
|
||
|
|
||
|
Entering a double byte character didn't work if the second byte is in [xXoO].
|
||
|
(Eric Lee)
|
||
|
|
||
|
vim_realloc was both defined and had a prototype in proto/misc2.pro. Caused
|
||
|
conflicts on Solaris.
|
||
|
|
||
|
A pattern in an autocommand was treated differently on DOS et al. than on
|
||
|
Unix. Now it's the same, also when using backslashes.
|
||
|
|
||
|
When using <Tab> twice for command line completion, without a match, the <Tab>
|
||
|
would be inserted. (Negri)
|
||
|
|
||
|
Bug in MS-Visual C++ 6.0 when compiling ex_docmd.c with optimization. (Negri)
|
||
|
|
||
|
Testing the result of mktemp() for failure was wrong. Could cause a crash.
|
||
|
(Peters)
|
||
|
|
||
|
GUI: When checking for a ".gvimrc" file in the current directory, didn't check
|
||
|
for a "_gvimrc" file too.
|
||
|
|
||
|
Motif GUI: When using the popup menu and then adding an item to the menu bar,
|
||
|
the menu bar would get very high.
|
||
|
|
||
|
Mouse clicks and special keys (e.g. cursor keys) quit the more prompt and
|
||
|
dialogs. Now they are ignored.
|
||
|
|
||
|
When at the more-prompt, xterm selection didn't work. Now use the 'r' flag in
|
||
|
'mouse' also for the more-prompt.
|
||
|
|
||
|
When selecting a Visual area of more than 1023 lines, with 'guioptions' set to
|
||
|
"a", could mess up the display because of a message in free_yank(). Removed
|
||
|
that message, except for the Amiga.
|
||
|
|
||
|
Moved auto-selection from ui_write() to the screen update functions. Avoids
|
||
|
unexpected behavior from a low-level function. Also makes the different
|
||
|
feedback of owning the selection possible.
|
||
|
|
||
|
Vi incompatibility: Using "i<CR>" in an indent, with 'ai' set, used the
|
||
|
original indent instead of truncating it at the cursor. (Webb)
|
||
|
|
||
|
":echo x" didn't stop at "q" for the more prompt.
|
||
|
|
||
|
Various fixes for Macintosh. (St-Amant)
|
||
|
|
||
|
When using 'selectmode' set to "exclusive", selecting a word and then using
|
||
|
CTRL-] included the character under the cursor.
|
||
|
|
||
|
Using ":let a:name" in a function caused a crash. (Webb)
|
||
|
|
||
|
When using ":append", an empty line didn't scroll up.
|
||
|
|
||
|
DOS etc.: A file name starting with '!' didn't work. Added '!' to default for
|
||
|
'isfname'.
|
||
|
|
||
|
BeOS: Compilation problem with prototype of skip_class_name(). (Price)
|
||
|
|
||
|
When deleting more than one line, e.g., with "de", could still use "U"
|
||
|
command, which didn't work properly then.
|
||
|
|
||
|
Amiga: Could not compile ex_docmd.c, it was getting too big. Moved some
|
||
|
functions to ex_cmds.c.
|
||
|
|
||
|
The expand() function would add a trailing slash for directories.
|
||
|
|
||
|
Didn't give an error message when trying to assign a value to an argument of a
|
||
|
function. (Webb)
|
||
|
|
||
|
Moved including sys/ptem.h to after termios.h. Needed for Sinix.
|
||
|
|
||
|
OLE interface: Don't delete the object in CVimCF::Release() when the reference
|
||
|
count becomes zero. (Cordell)
|
||
|
VisVim could still crash on exit. (Erhardt)
|
||
|
|
||
|
"case a: case b:" (two case statements in one line) aligned with the second
|
||
|
case. Now it uses one 'sw' for indent. (Webb)
|
||
|
|
||
|
Font initialisation wasn't right for Athena/Motif GUI. Moved the call to
|
||
|
highlight_gui_started() gui_mch_init() to gui_mch_open(). (Nam)
|
||
|
|
||
|
In Replace mode, backspacing over a TAB before where the replace mode started
|
||
|
while 'sts' is different from 'ts', would delete the TAB.
|
||
|
|
||
|
Win32 console: When executing external commands and switching between the two
|
||
|
console screens, Vim would copy the text between the buffers. That caused the
|
||
|
screen to be messed up for backtick expansion.
|
||
|
|
||
|
":winpos -1" then ":winpos" gave wrong error message.
|
||
|
|
||
|
Windows commander creates files called c:\tmp\$wc\abc.txt. Don't remove the
|
||
|
backslash before the $. Environment variables were not expanded anyway,
|
||
|
because of the backslash before the dollar.
|
||
|
|
||
|
Using "-=" with ":set" could remove half a part when it contains a "\,".
|
||
|
E.g., ":set path+=a\\,b" and then "set path-=b" removed ",b".
|
||
|
|
||
|
When Visually selecting lines, with 'selection' set to "inclusive", including
|
||
|
the last char of the line, "<<" moved an extra line. Also for other operators
|
||
|
that always work on lines.
|
||
|
|
||
|
link.sh changed "-lnsl_s" to "_s" when looking for "nsl" to be removed.
|
||
|
Now it only remove whole words.
|
||
|
|
||
|
When jumped to a mark or using "fz", and there is an error, the current column
|
||
|
was lost. E.g. when using "$fzj".
|
||
|
|
||
|
The "g CTRL-G" command could not be interrupted, even though it can take a
|
||
|
long time.
|
||
|
|
||
|
Some terminals do have <F4> and <xF4>. <xF4> was always interpreted as <F4>.
|
||
|
Now map <xF4> to <F4>, so that the user can override this.
|
||
|
|
||
|
When compiling os_win32.c with MIN_FEAT the apply_autocmds() should not be
|
||
|
used. (Aaron)
|
||
|
|
||
|
This autocommand looped forever: ":au FileChangedShell * nested e <afile>"
|
||
|
Now FileChangeShell never nests. (Roemer)
|
||
|
|
||
|
When evaluating an ":elseif" that was not going to matter anyway, ignore
|
||
|
errors. (Roemer)
|
||
|
|
||
|
GUI Lesstif: Tearoff bar was the last item, instead of the first.
|
||
|
|
||
|
GUI Motif: Colors of tear-off widgets was wrong when 't' flag added to
|
||
|
'guioptions' afterwards. When 't' flag in 'guioptions' is excluded, would
|
||
|
still get a tearoff item in a new menu.
|
||
|
|
||
|
An inode number can be "long long". Use ino_t instead of long. Added
|
||
|
configure check for ino_t.
|
||
|
|
||
|
Binary search for tags was using a file offset "long" instead of "off_t".
|
||
|
|
||
|
Insert mode completion of tags was not using 'ignorecase' properly.
|
||
|
|
||
|
In Insert mode, the <xFn> keys were not properly mapped to <Fn> for the
|
||
|
default mappings. Also caused errors for ":mkvimrc" and ":mksession".
|
||
|
|
||
|
When jumping to another window while in Insert mode, would get the "warning:
|
||
|
changing readonly file" even when not making a change.
|
||
|
|
||
|
A '(' or '{' inside a trailing "//" comment would disturb C-indenting.
|
||
|
When using two labels below each other, the second one was not indented
|
||
|
properly. Comments could mess up C-indenting in many places. (Roemer)
|
||
|
|
||
|
Could delete or redefine a function while it was being used. Could cause a
|
||
|
crash.
|
||
|
In a function it's logical to prepend "g:" to a system variable, but this
|
||
|
didn't work. (Roemer)
|
||
|
|
||
|
Hangul input: Buffer would overflow when user inputs invalid key sequence.
|
||
|
(Nam)
|
||
|
|
||
|
When BufLoad or BufEnter autocommands change the topline of the buffer in the
|
||
|
window, it was overruled and the cursor put halfway the window. Now only put
|
||
|
the cursor halfway if the autocommands didn't change the topline.
|
||
|
|
||
|
Calling exists("&option") always returned 1. (Roemer)
|
||
|
|
||
|
Win32: Didn't take actually available memory into account. (Williams)
|
||
|
|
||
|
White space after an automatically inserted comment leader was not removed
|
||
|
when 'ai' is not set and <CR> hit just after inserting it. (Webb)
|
||
|
|
||
|
A few menus had duplicated accelerators. (Roemer)
|
||
|
|
||
|
Spelling errors in documentation, quite a few "the the". (Roemer)
|
||
|
|
||
|
Missing prototypes for Macintosh. (Kielhorn)
|
||
|
|
||
|
Win32: When using 'shellquote' or 'shellxquote', the "!start cmd" wasn't
|
||
|
executed in a disconnected process.
|
||
|
|
||
|
When resizing the window, causing a line before the cursor to wrap or unwrap,
|
||
|
the cursor was displayed in the wrong position.
|
||
|
|
||
|
There was quite a bit of dead code when compiling with minimal features.
|
||
|
|
||
|
When doing a ":%s///" command that makes lines shorter, such that lines above
|
||
|
the final cursor position no longer wrap, the cursor position was not updated.
|
||
|
|
||
|
get_id_list() could allocate an array one too small, when a "contains=" item
|
||
|
has a wildcard that matches a group name that is added just after it. E.g.:
|
||
|
"contains=a.*b,axb". Give an error message for it.
|
||
|
|
||
|
When yanking a Visual area and using the middle mouse button -> crash. When
|
||
|
clipboard doesn't work, now make "* always use "".
|
||
|
|
||
|
Win32: Using ":buf a\ b\file" didn't work, it was interpreted as "ab\file".
|
||
|
|
||
|
Using ":ts ident", then hit <CR>, with 'cmdheight' set to 2: command line was
|
||
|
not cleared, the tselect prompt was on the last but one line.
|
||
|
|
||
|
mksession didn't restore the cursor column properly when it was after a tab.
|
||
|
Could not get all windows back when using a smaller terminal screen. Didn't
|
||
|
restore all windows when "winsize" was not in 'sessionoptions'. (Webb)
|
||
|
|
||
|
Command line completion for ":buffer" depended on 'ignorecase' for Unix, but
|
||
|
not for DOS et al. Now don't use 'ignorecase', but let it depend on whether
|
||
|
file names are case sensitive or not (like when expanding file names).
|
||
|
|
||
|
Win32 GUI: (Negri)
|
||
|
- Redrawing the background caused flicker when resizing the window. Removed
|
||
|
_OnEraseBG(). Removed CS_HREDRAW and CS_VREDRAW flags from the
|
||
|
sndclass.style.
|
||
|
- Some parts of the window were drawn in grey, instead of using the color from
|
||
|
the user color scheme.
|
||
|
- Dropping a file on gvim didn't activate the window.
|
||
|
- When there is no menu ('guioptions' excludes 'm'), never use the ALT key for
|
||
|
it.
|
||
|
|
||
|
GUI: When resizing the window, would make the window height a bit smaller.
|
||
|
Now round off to the nearest char cell size. (Negri)
|
||
|
|
||
|
In Vi the ")" and "(" commands don't stop at a single space after a dot.
|
||
|
Added 'J' flag in 'cpoptions' to make this behave Vi compatible. (Roemer)
|
||
|
|
||
|
When saving a session without any buffers loaded, there would be a ":normal"
|
||
|
command without arguments in it. (Webb)
|
||
|
|
||
|
Memory leaks fixed: (Madsen)
|
||
|
- eval.c: forgot to release func structure when func deleted
|
||
|
- ex_docmd.c: forgot to release string after "<sfile>"
|
||
|
- misc1.c: leak when completion pattern had no matches.
|
||
|
- os_unix.c: forgot to release regexp after file completions
|
||
|
|
||
|
Could crash when using a buffer without a name. (Madsen)
|
||
|
Could crash when doing file name completion, because of backslash_halve().
|
||
|
(Madsen)
|
||
|
|
||
|
":@a" would do mappings on register a, which is not Vi compatible. (Roemer)
|
||
|
|
||
|
":g/foo.*()/s/foobar/_&/gc" worked fine, but then "n" searched for "foobar"
|
||
|
and displayed "/foo.*()". (Roemer)
|
||
|
|
||
|
OS/2: get_cmd_output() was not included. Didn't check for $VIM/.vimrc file.
|
||
|
|
||
|
Command line completion of options didn't work after "+=" and "-=".
|
||
|
|
||
|
Unix configure: Test for memmove()/bcopy()/memcpy() tried redefining these
|
||
|
functions, which could fail if they are defined already. Use mch_memmove() to
|
||
|
redefine.
|
||
|
|
||
|
Unix: ":let a = expand("`xterm`&")" started an xterm asynchronously, but
|
||
|
":let a = expand("`xterm&`")" generated an error message, because the
|
||
|
redirection was put after the '&'.
|
||
|
|
||
|
Win32 GUI: Dialog buttons could not be selected properly with cursor keys,
|
||
|
when the default is not the first button. (Webb)
|
||
|
|
||
|
The "File has changed since editing started" (when regaining focus) could not
|
||
|
always be seen. (Webb)
|
||
|
|
||
|
When starting with "ex filename", the file message was overwritten with
|
||
|
the "entering Ex mode" message.
|
||
|
|
||
|
Output of ":tselect" listed name of file directly from the tags file. Now it
|
||
|
is corrected for the position of the tags file.
|
||
|
|
||
|
When 'backspace' is 0, could backspace over autoindent. Now it is no longer
|
||
|
allowed (Vi compatible).
|
||
|
|
||
|
In Replace mode, when 'noexpandtab' and 'smarttab' were set, and inserting
|
||
|
Tabs, backspacing didn't work correctly for Tabs inserted at the start of the
|
||
|
line (unless 'sts' was set too). Also, when replacing the first non-blank
|
||
|
after which is a space, rounding the indent was done on the first non-blank
|
||
|
instead of on the character under the cursor.
|
||
|
|
||
|
When 'sw' at 4, 'ts' at 8 and 'smarttab' set: When a tab was appended after
|
||
|
four spaces (they are replaced with a tab) couldn't backspace over the tab.
|
||
|
|
||
|
In Insert mode, with 'bs' set to 0, couldn't backspace to before autoindent,
|
||
|
even when it was removed with CTRL-D.
|
||
|
|
||
|
When repeating an insert command where a <BS>, <Left> or other key causes an
|
||
|
error, would flush buffers and remain in Insert mode. No longer flush
|
||
|
buffers, only beep and continue with the insert command.
|
||
|
|
||
|
Dos and Win32 console: Setting t_me didn't work to get another color. Made
|
||
|
this works backwards compatible.
|
||
|
|
||
|
For Turkish (LANG = "tr") uppercase 'i' is not an 'I'. Use ASCII uppercase
|
||
|
translation in vim_strup() to avoid language problems. (Komur)
|
||
|
|
||
|
Unix: Use usleep() or nanosleep() for mch_delay() when available. Hopefully
|
||
|
this avoids a hangup in select(0, ..) for Solaris 2.6.
|
||
|
|
||
|
Vim would crash when using a script file with 'let &sp = "| tee"', starting
|
||
|
vim with "vim -u test", then doing ":set sp=". The P_WAS_SET flag wasn't set
|
||
|
for a string option, could cause problems with any string option.
|
||
|
|
||
|
When using "cmd | vim -", stdin is not a terminal. This gave problems with
|
||
|
GPM (Linux console mouse) and when executing external commands. Now close
|
||
|
stdin and re-open it as a copy of stderr.
|
||
|
|
||
|
Syntax highlighting: A "nextgroup" item was not properly stored in the state
|
||
|
list. This caused missing of next groups when not redrawing from start to
|
||
|
end, but starting halfway.
|
||
|
|
||
|
Didn't check for valid values of 'ttymouse'.
|
||
|
|
||
|
When executing an external command from the GUI, waiting for the child to
|
||
|
terminate might not work, causing a hang. (Parmelan)
|
||
|
|
||
|
"make uninstall" didn't delete the vimrc_example.vim and gvimrc_example.vim
|
||
|
files and the vimtutor.
|
||
|
|
||
|
Win32: "expand("%:p:h")" with no buffer name removed the directory name.
|
||
|
"fnamemodify("", ":p")" did not add a trailing slash, fname_case() removed it.
|
||
|
|
||
|
Fixed: When 'hlsearch' was set and the 'c' flag was not in 'cpoptions':
|
||
|
highlighting was not correct. Now overlapping matches are handled correctly.
|
||
|
|
||
|
Athena, Motif and GTK GUI: When started without focus, cursor was shown as if
|
||
|
with focus.
|
||
|
|
||
|
Don't include 'shellpipe' when compiled without quickfix, it's not used.
|
||
|
Don't include 'dictionary' option when compiled without the +insert_expand
|
||
|
feature.
|
||
|
Only include the 'shelltype' option for the Amiga.
|
||
|
|
||
|
When making a change to a line, with 'hlsearch' on, causing it to wrap, while
|
||
|
executing a register, the screen would not be updated correctly. This was a
|
||
|
generic problem in update_screenline() being called while must_redraw is
|
||
|
VALID.
|
||
|
|
||
|
Using ":bdelete" in a BufUnload autocommand could cause a crash. The window
|
||
|
height was added to another window twice in close_window().
|
||
|
|
||
|
Win32 GUI: When removing a menu item, the tearoff wasn't updated. (Negri)
|
||
|
|
||
|
Some performance bottlenecks removed. Allocating memory was not efficient.
|
||
|
For Win32 checking for available memory was slow, don't check it every time
|
||
|
now. On NT obtaining the user name takes a long time, cache the result (for
|
||
|
all systems).
|
||
|
|
||
|
fnamemodify() with an argument ":~:." or ":.:~" didn't work properly.
|
||
|
|
||
|
When editing a new file and exiting, the marks for the buffer were not saved
|
||
|
in the viminfo file.
|
||
|
|
||
|
":confirm only" didn't put up a dialog.
|
||
|
|
||
|
These text objects didn't work when 'selection' was "exclusive": va( vi( va{
|
||
|
vi{ va< vi< vi[ va[.
|
||
|
|
||
|
The dialog for writing a readonly file didn't have a valid default. (Negri)
|
||
|
|
||
|
The line number used for error messages when sourcing a file was reset when
|
||
|
modelines were inspected. It was wrong when executing a function.
|
||
|
|
||
|
The file name and line number for an error message wasn't displayed when it
|
||
|
was the same as for the last error, even when this was long ago. Now reset
|
||
|
the name/lnum after a hit-enter prompt.
|
||
|
|
||
|
In a session file, a "%" in a file name caused trouble, because fprintf() was
|
||
|
used to write it to the file.
|
||
|
|
||
|
When skipping statements, a mark in an address wasn't skipped correctly:
|
||
|
"ka|if 0|'ad|else|echo|endif". (Roemer)
|
||
|
|
||
|
":wall" could overwrite a not-edited file without asking.
|
||
|
|
||
|
GUI: When $DISPLAY was not set or starting the GUI failed in another way, the
|
||
|
console mode then started with wrong colors and skipped initializations. Now
|
||
|
do an early check if the GUI can be started. Don't source the menu.vim or
|
||
|
gvimrc when it will not. Also do normal terminal initializations if the GUI
|
||
|
might not start.
|
||
|
|
||
|
When using a BufEnter autocommand to position the cursor and scroll the
|
||
|
window, the cursor was always put at the last used line and halfway the window
|
||
|
anyhow.
|
||
|
|
||
|
When 'wildmode' was set to "longest,list:full", ":e *.c<Tab><Tab>" didn't list
|
||
|
the matches. Also avoid that listing after a "longest" lists the wrong
|
||
|
matches when the first expansion changed the string in front of the cursor.
|
||
|
|
||
|
When using ":insert", ":append" or ":change" inside a while loop, was not able
|
||
|
to break out of it with a CTRL-C.
|
||
|
|
||
|
Win32: ":e ." took an awful long time before an error message when used in
|
||
|
"C:\". Was caused by adding another backslash and then trying to get the full
|
||
|
name for "C:\\".
|
||
|
|
||
|
":winpos -10 100" was working like ":winpos -10 -10", because a pointer was
|
||
|
not advanced past the '-' sign.
|
||
|
|
||
|
When obtaining the value of a hidden option, would give an error message. Now
|
||
|
just use a zero value.
|
||
|
|
||
|
OS/2: Was using argv[0], even though it was not a useful name. It could be
|
||
|
just "vim", found in the search path.
|
||
|
|
||
|
Xterm: ":set columns=78" didn't redraw properly (when lines wrap/unwrap) until
|
||
|
after a delay of 'updatetime'. Didn't check for the size-changed signal.
|
||
|
|
||
|
'scrollbind' didn't work in Insert mode.
|
||
|
Horizontal scrollbinding didn't always work for "0" and "$" commands (e.g.,
|
||
|
when 'showcmd' was off).
|
||
|
|
||
|
When compiled with minimal features but with GUI, switching on the mouse in an
|
||
|
xterm caused garbage, because the mouse codes were not recognized. Don't
|
||
|
enable the mouse when it can't be recognized. In the GUI it also didn't work,
|
||
|
the arguments to the mouse code were not interpreted.
|
||
|
|
||
|
When 'showbreak' used, in Insert mode, when the cursor is just after the last
|
||
|
character in the line, which is also the in the rightmost column, the cursor
|
||
|
position would be like the 'showbreak' string is shown, but it wasn't.
|
||
|
|
||
|
Autocommands could move the cursor in a new file, so that CTRL-W i didn't show
|
||
|
the right line. Same for when using a filemark to jump to another file.
|
||
|
|
||
|
When redefining the argument list, the title used for other windows could be
|
||
|
showing the wrong info about the position in the argument list. Also update
|
||
|
this for a ":split" command without arguments.
|
||
|
|
||
|
When editing file 97 of 13, ":Next" didn't work. Now it goes to the last
|
||
|
file in the argument list.
|
||
|
|
||
|
Insert mode completion (for dictionaries or included files) could not be
|
||
|
interrupted by typing an <Esc>. Could get hit-enter prompt after line
|
||
|
completion, or whenever the informative message would get too long.
|
||
|
|
||
|
When using the ":edit" command to re-edit the same file, an autocommand to
|
||
|
jump to the last cursor position caused the cursor to move. Now set the last
|
||
|
used cursor position to avoid this.
|
||
|
|
||
|
When 'comments' has a part that starts with white space, formatting the
|
||
|
comment didn't work.
|
||
|
|
||
|
At the ":tselect" prompt Normal mode mappings were used. That has been
|
||
|
disabled.
|
||
|
|
||
|
When 'selection' is not "old", some commands still didn't allow the cursor
|
||
|
past the end-of-line in Visual mode.
|
||
|
|
||
|
Athena: When a menu was deleted, it would appear again (but not functional)
|
||
|
when adding another menu. Now they don't reappear anymore (although they are
|
||
|
not really deleted either).
|
||
|
|
||
|
Borland C++ 4.x had an optimizer problem in fill_breakat_flags(). (Negri)
|
||
|
|
||
|
"ze" didn't work when 'number' was on. (Davis)
|
||
|
|
||
|
Win32 GUI: Intellimouse code didn't work properly on Windows 98. (Robinson)
|
||
|
|
||
|
A few files were including proto.h a second time, after vim.h had already done
|
||
|
that, which could cause problems with the vim_realloc() macro.
|
||
|
|
||
|
Win32 console: <M-x> or ALT-x was not recognized. Also keypad '+', '-' and
|
||
|
'*'. (Negri)
|
||
|
MS-DOS: <M-x> didn't work, produced a two-byte code. Now the alphabetic and
|
||
|
number keys work. (Negri)
|
||
|
|
||
|
When finding a lot of matches for a tag completion, the check for avoiding
|
||
|
double matches could take a lot of time. Add a line_breakcheck() to be able
|
||
|
to interrupt this. (Deshpande)
|
||
|
|
||
|
When the command line was getting longer than the screen, the more-prompt
|
||
|
would be given regularly, and the cursor position would be wrong. Now only
|
||
|
show the part of the command line that fits on the screen and force the cursor
|
||
|
to be positioned on the visible part. There can be text after the cursor
|
||
|
which isn't editable.
|
||
|
|
||
|
At the more prompt and with the console dialog, a cursor key was interpreted
|
||
|
as <Esc> and OA. Now recognize special keys in get_keystroke(). Ignore mouse
|
||
|
and scrollbar events.
|
||
|
|
||
|
When typing a BS after inserting a middle comment leader, typing the last char
|
||
|
of the end comment leader still changed it into the end comment leader. (Webb)
|
||
|
|
||
|
When a file system is full, writing to a swap file failed. Now first try to
|
||
|
write one block to the file. Try next entry in 'dir' if it fails.
|
||
|
|
||
|
When "~" is in 'whichwrap', doing "~" on last char of a line didn't update the
|
||
|
display.
|
||
|
|
||
|
Unix: Expanding wildcards for ":file {\\}" didn't work, because "\}" was
|
||
|
translated to "}" before the shell got it. Now don't remove backslashes when
|
||
|
wildcards are going to be expanded.
|
||
|
|
||
|
Unix: ":e /tmp/$uid" didn't work. When expanding environment variables in a
|
||
|
file name doesn't work, use the shell to expand the file name. ":e /tmp/$tty"
|
||
|
still doesn't work though.
|
||
|
|
||
|
"make test" didn't always work on DOS/Windows for test30, because it depended
|
||
|
on the external "echo" command.
|
||
|
|
||
|
The link.sh script used "make" instead of $MAKE from the Makefile. Caused
|
||
|
problems for generating pathdef.c when "make" doesn't work properly.
|
||
|
|
||
|
On versions that can do console and GUI: In the console a typed CSI code could
|
||
|
cause trouble.
|
||
|
|
||
|
The patterns in expression evaluation didn't ignore the 'l' flag in
|
||
|
'cpoptions'. This broke the working of <CR> in the options window.
|
||
|
|
||
|
When 'hls' off and 'ai' on, "O<Esc>" did remove the indent, but it was still
|
||
|
highlighted red for trailing space.
|
||
|
|
||
|
Win32 GUI: Dropping an encrypted file on a running gvim didn't work right. Vim
|
||
|
would loop while outputting "*" characters. vgetc() was called recursively,
|
||
|
thus it returns NUL. Added safe_vgetc(), which reads input directly from the
|
||
|
user in this situation.
|
||
|
|
||
|
While reading text from stdin, only an empty screen was shown. Now show that
|
||
|
Vim is reading from stdin.
|
||
|
|
||
|
The cursor shape wasn't set properly when returning to Insert mode, after
|
||
|
using a CTRL-O /asdf command which fails. It would be OK after a few seconds.
|
||
|
Now it's OK right away.
|
||
|
|
||
|
The 'isfname' default for DOS/Windows didn't include the '@' character. File
|
||
|
names that contained "dir\@file" could not be edited.
|
||
|
|
||
|
Win32 console: <C-S-Left> could cause a crash when compiled with Borland or
|
||
|
egcs. (Aaron)
|
||
|
|
||
|
Unix and VMS: "#if HAVE_DIRENT_H" caused problems for some compilers. Use
|
||
|
"#ifdef HAVE_DIRENT_H" instead. (Jones)
|
||
|
|
||
|
When a matching tag is in the current file but has a search pattern that
|
||
|
doesn't match, the cursor would jump to the first line.
|
||
|
|
||
|
Unix: Dependencies for pty.c were not included in Makefile. Dependency of
|
||
|
ctags/config.h was not included (only matters for parallel make).
|
||
|
|
||
|
Removed a few Uninitialized Memory Reads (potential crashes). In do_call()
|
||
|
calling clear_var() when not evaluating. In win32_expandpath() and
|
||
|
dos_expandpath() calling backslash_halve() past the end of a file name.
|
||
|
|
||
|
Removed memory leaks: Set_vim_var_string() never freed the value. The
|
||
|
next_list for a syntax keyword was never freed.
|
||
|
|
||
|
On non-Unix systems, using a file name with wildcards without a match would
|
||
|
silently fail. E.g., ":e *.sh". Now give a "No match" error message.
|
||
|
|
||
|
The life/life.mac, urm/urm.mac and hanoi/hanoi.mac files were not recognized
|
||
|
as Vim scripts. Renamed them to *.vim.
|
||
|
|
||
|
[Note: some numbered patches are not relevant when upgrading from version 5.3,
|
||
|
they have been removed]
|
||
|
|
||
|
Patch 5.4m.1
|
||
|
Problem: When editing a file with a long name, would get the hit-enter
|
||
|
prompt, even though all settings are such that the name should be
|
||
|
truncated to avoid that. filemess() was printing the file name
|
||
|
without truncating it.
|
||
|
Solution: Truncate the message in filemess(). Use the same code as for
|
||
|
msg_trunc_attr(), which is moved to the new function
|
||
|
msg_may_trunc().
|
||
|
Files: src/message.c, src/proto/message.pro, src/fileio.c
|
||
|
|
||
|
Patch 5.4m.3
|
||
|
Problem: The Motif libraries were not found by configure for Digital Unix.
|
||
|
Solution: Add "/usr/shlib" to the search path. (Andy Kahn)
|
||
|
Files: src/configure.in, src/configure
|
||
|
|
||
|
Patch 5.4m.5
|
||
|
Problem: Win32 GUI: When using the Save-As menu entry and selecting an
|
||
|
existing file in the file browser, would get a dialog to confirm
|
||
|
overwriting twice. (Ed Krall)
|
||
|
Solution: Removed the dialog from the file browser. It would be nicer to
|
||
|
set the "forceit" flag and skip Vim's ":confirm" dialog, but it
|
||
|
requires quite a few changes to do that.
|
||
|
Files: src/gui_w32.c
|
||
|
|
||
|
Patch 5.4m.6
|
||
|
Problem: Win32 GUI: When reading text from stdin, e.g., "cat foo | gvim -",
|
||
|
a message box would pop up with "-stdin-" (when exiting). (Michael
|
||
|
Schaap)
|
||
|
Solution: Don't switch off termcap mode for versions that are GUI-only.
|
||
|
They use another terminal to read from stdin.
|
||
|
Files: src/main.c, src/fileio.c
|
||
|
|
||
|
Patch 5.4m.7
|
||
|
Problem: Unix: running configure with --enable-gtk-check,
|
||
|
--enable-motif-check, --enable-athena-check or --enable-gtktest
|
||
|
had the reverse effect. (Thomas Koehler)
|
||
|
Solution: Use $enable_gtk_check variable correctly in AC_ARG_ENABLE().
|
||
|
Files: src/configure.in, src/configure
|
||
|
|
||
|
Patch 5.4m.9
|
||
|
Problem: Multi-byte: With wrapping lines, the cursor was sometimes 2
|
||
|
characters to the left. Syntax highlighting was wrong when a
|
||
|
double-byte character was split for a wrapping line. When
|
||
|
'showbreak' was on the splitting also didn't work.
|
||
|
Solution: Adjust getvcol() and win_line(). (Chong-Dae Park)
|
||
|
Files: src/charset.c, src/screen.c
|
||
|
|
||
|
Patch 5.4m.11
|
||
|
Problem: The ":call" command didn't check for illegal trailing characters.
|
||
|
(Stefan Roemer)
|
||
|
Solution: Add the check in do_call().
|
||
|
Files: src/eval.c
|
||
|
|
||
|
Patch 5.4m.13
|
||
|
Problem: With the ":s" command:
|
||
|
1. When performing a substitute command, the mouse would be
|
||
|
disabled and enabled for every substitution.
|
||
|
2. The cursor position could be beyond the end of the line.
|
||
|
Calling line_breakcheck() could try to position the cursor,
|
||
|
which causes a crash in the Win32 GUI.
|
||
|
3. When using ":s" in a ":g" command, the cursor was not put on
|
||
|
the first non-white in the line.
|
||
|
4. There was a hit-enter prompt when confirming the substitution
|
||
|
and the replacement was a bit longer.
|
||
|
Solution: 1. Only disable/enable the mouse when asking for confirmation.
|
||
|
2. Always put the cursor on the first character, it is going to be
|
||
|
moved to the first non-blank anyway.
|
||
|
Don't use the cursor position in gui_mch_draw_hollow_cursor(),
|
||
|
get the character from the screen buffer.
|
||
|
3. Added global_need_beginline flag to call beginline() after ":g"
|
||
|
has finished all substitutions.
|
||
|
4. Clear the need_wait_return flag after prompting the user.
|
||
|
Files: src/ex_cmds.c, src/gui_w32.c
|
||
|
|
||
|
Patch 5.4m.14
|
||
|
Problem: When doing "vim xxx", ":opt", ":only" and then ":e xxx" we end
|
||
|
up with two swapfiles for "xxx". That is caused by the ":bdel"
|
||
|
command which is executed when unloading the option-window.
|
||
|
Also, there was no check if closing a buffer made the new one
|
||
|
invalid, this could cause a crash.
|
||
|
Solution: When closing a buffer causes the current buffer to be deleted,
|
||
|
use the new buffer to replace it. Also detect that the new buffer
|
||
|
has become invalid as a side effect of closing the current one.
|
||
|
Make autocommand that calls ":bdel" in optwin.vim nested, so that
|
||
|
the buffer loading it triggers also executes autocommands.
|
||
|
Also added a test for this in test13.
|
||
|
Files: runtime/optwin.vim, src/buffer.c, src/ex_cmds.c, src/globals.h
|
||
|
src/testdir/test13.in, src/testdir/test13.ok
|
||
|
|
||
|
Patch 5.4m.15
|
||
|
Problem: When using a BufEnter autocommand to reload the syntax file,
|
||
|
conversion to HTML caused a crash. (Sung-Hyun Nam)
|
||
|
Solution: When using ":syntax clear" the current stack of syntax items was
|
||
|
not cleared. This will cause memory to be used that has already
|
||
|
been freed. Added call to invalidate_current_state() in
|
||
|
syntax_clear().
|
||
|
Files: src/syntax.c
|
||
|
|
||
|
Patch 5.4m.17
|
||
|
Problem: When omitting a ')' in an expression it would not be seen as a
|
||
|
failure.
|
||
|
When detecting an error inside (), there would be an error message
|
||
|
for a missing ')' too.
|
||
|
When using ":echo 1+|echo 2" there was no error message. (Roemer)
|
||
|
When using ":exe 1+" there was no error message.
|
||
|
When using ":return 1+" there was no error message.
|
||
|
Solution: Fix do_echo(), do_execute() and do_return() to give an error
|
||
|
message when eval1() returns FAIL.
|
||
|
Fix eval6() to handle trailing ')' correctly and return FAIL when
|
||
|
it's missing.
|
||
|
Files: src/eval.c
|
||
|
|
||
|
Patch 5.4m.18
|
||
|
Problem: When using input() from inside an expression entered with
|
||
|
"CTRL-R =" on the command line, there could be a crash. And the
|
||
|
resulting command line was wrong.
|
||
|
Solution: Added getcmdline_prompt(), which handles recursive use of
|
||
|
getcmdline() correctly. It also sets the command line prompt.
|
||
|
Removed cmdline_prompt(). Also use getcmdline_prompt() for
|
||
|
getting the crypt key in get_crypt_key().
|
||
|
Files: src/proto/ex_getln.pro, src/ex_getln.c, src/eval.c, src/misc2.c
|
||
|
|
||
|
Patch 5.4m.21
|
||
|
Problem: When starting up, the screen structures were first allocated at
|
||
|
the minimal size, then initializations were done with Rows
|
||
|
possibly different from screen_Rows. Caused a crash in rare
|
||
|
situations (GTK with XIM and fontset).
|
||
|
Solution: Call screenalloc() in main() only after calling ui_get_winsize().
|
||
|
Also avoids a potential delay because of calling screenclear()
|
||
|
while "starting" is non-zero.
|
||
|
Files: src/main.c
|
||
|
|
||
|
Patch 5.4m.22
|
||
|
Problem: In the GUI it was possible that the screen was resized and the
|
||
|
screen structures re-allocated while redrawing the screen. This
|
||
|
could cause a crash (hard to reproduce). The call sequence goes
|
||
|
through update_screen() .. syntax_start() .. ui_breakcheck() ..
|
||
|
gui_resize_window() .. screenalloc().
|
||
|
Solution: Set updating_screen while redrawing. If the window is resized
|
||
|
remember the new size and handle it only after redrawing is
|
||
|
finished.
|
||
|
This also fixes that resizing the screen while still redrawing
|
||
|
(slow syntax highlighting) would not work properly.
|
||
|
Also disable display_hint, it was never used.
|
||
|
Files: src/globals.h, src/gui.c, src/screen.c, src/proto/gui.pro
|
||
|
|
||
|
Patch 5.4m.23
|
||
|
Problem: When using expand("<cword>") when there was no word under the
|
||
|
cursor, would get an error message. Same for <cWORD> and <cfile>.
|
||
|
Solution: Don't give an error message, return an empty string.
|
||
|
Files: src/eval.c
|
||
|
|
||
|
Patch 5.4m.24
|
||
|
Problem: ":help \|" didn't find anything. It was translated to "/\\|".
|
||
|
Solution: Translate "\|" into "\\bar". First check the table for specific
|
||
|
translations before checking for "\x".
|
||
|
Files: src/ex_cmds.c
|
||
|
|
||
|
Patch 5.4m.25
|
||
|
Problem: Unix: When using command line completion on files that contain
|
||
|
''', '"' or '|' the file name could not be used.
|
||
|
Adding this file name to the Buffers menu caused an error message.
|
||
|
Solution: Insert a backslash before these three characters.
|
||
|
Adjust Mungename() function to insert a backslash before '|'.
|
||
|
Files: src/ex_getln.c, runtime/menu.vim
|
||
|
|
||
|
Patch 5.4m.26
|
||
|
Problem: When using a mapping of two function keys, e.g., <F1><F1>, and
|
||
|
only the first char of the second key has been read, the mapping
|
||
|
would not be recognized. Noticed on some Unix systems with xterm.
|
||
|
Solution: Add 'K' flag to 'cpoptions' to wait for the whole key code, even
|
||
|
when halfway a mapping.
|
||
|
Files: src/option.h, src/term.c
|
||
|
|
||
|
Patch 5.4m.27
|
||
|
Problem: When making test33 without the lisp feature it hangs. Interrupting
|
||
|
the execution of the script then might cause a crash.
|
||
|
Solution: In inchar(), after closing a script, don't use buf[] anymore.
|
||
|
closescript() has freed typebuf[] and buf[] might be pointing
|
||
|
inside typebuf[].
|
||
|
Avoid that test33 hangs when the lisp feature is missing.
|
||
|
Files: src/getchar.c src/testdir/test33.in
|
||
|
|
||
|
"os2" was missing from the feature list. Useful for has("os2").
|
||
|
|
||
|
BeOS:
|
||
|
- Included patches from Richard Offer for BeOS R4.5.
|
||
|
- menu code didn't work right. Crashed in the Buffers menu. The window title
|
||
|
wasn't set. (Offer)
|
||
|
|
||
|
Patch 5.4n.3
|
||
|
Problem: C-indenting was wrong after " } else". The white space was not
|
||
|
skipped. Visible when 'cino' has "+10".
|
||
|
Solution: Skip white space before calling cin_iselse(). (Norbert Zeh)
|
||
|
Files: src/misc1.c
|
||
|
|
||
|
Patch 5.4n.4
|
||
|
Problem: When the 't' flag in 'cpoptions' is included, after a
|
||
|
":nohlsearch" the search highlighting would not be enabled again
|
||
|
after a tag search. (Norbert Zeh)
|
||
|
Solution: When setting the new search pattern in jumpto_tag(), don't restore
|
||
|
no_hlsearch.
|
||
|
Files: src/tag.c
|
||
|
|
||
|
Patch 5.4n.5
|
||
|
Problem: When using ":normal" from a CursorHold autocommand Vim hangs. The
|
||
|
autocommand is executed down from vgetc(). Calling vgetc()
|
||
|
recursively to execute the command doesn't work then.
|
||
|
Solution: Forbid the use of ":normal" when vgetc_busy is set. Give an error
|
||
|
message when this happens.
|
||
|
Files: src/ex_docmd.c, runtime/doc/autocmd.txt
|
||
|
|
||
|
Patch 5.4n.6
|
||
|
Problem: "gv" could reselect a Visual that starts and/or ends past the end
|
||
|
of a line. (Robert Webb)
|
||
|
Solution: Check that the start and end of the Visual area are on a valid
|
||
|
character by calling adjust_cursor().
|
||
|
Files: src/normal.c
|
||
|
|
||
|
Patch 5.4n.8
|
||
|
Problem: When a mark was on a non existing line (e.g., when the .viminfo
|
||
|
was edited), jumping to it caused ml_get errors. (Alexey
|
||
|
Marinichev).
|
||
|
Solution: Added check_cursor_lnum() in nv_gomark().
|
||
|
Files: src/normal.c
|
||
|
|
||
|
Patch 5.4n.9
|
||
|
Problem: ":-2" moved the cursor to a negative line number. (Ralf Schandl)
|
||
|
Solution: Give an error message for a negative line number.
|
||
|
Files: src/ex_docmd.c
|
||
|
|
||
|
Patch 5.4n.10
|
||
|
Problem: Win32 GUI: At the hit-enter prompt, it was possible to scroll the
|
||
|
text. This erased the prompt and made Vim look like it is in
|
||
|
Normal mode, while it is actually still waiting for a <CR>.
|
||
|
Solution: Disallow scrolling at the hit-enter prompt for systems that use
|
||
|
on the fly scrolling.
|
||
|
Files: src/message.c
|
||
|
|
||
|
Patch 5.4n.14
|
||
|
Problem: Win32 GUI: When using ":winsize 80 46" and the height is more than
|
||
|
what fits on the screen, the window size was made smaller than
|
||
|
asked for (that's OK) and Vim crashed (that's not OK)>
|
||
|
Solution: Call check_winsize() from gui_set_winsize() to resize the windows.
|
||
|
Files: src/gui.c
|
||
|
|
||
|
Patch 5.4n.16
|
||
|
Problem: Win32 GUI: The <F10> key both selected the menu and was handled as
|
||
|
a key hit.
|
||
|
Solution: Apply 'winaltkeys' to <F10>, like it is used for Alt keys.
|
||
|
Files: src/gui_w32.c
|
||
|
|
||
|
Patch 5.4n.17
|
||
|
Problem: Local buffer variables were freed when the buffer is unloaded.
|
||
|
That's not logical, since options are not freed. (Ron Aaron)
|
||
|
Solution: Free local buffer variables only when deleting the buffer.
|
||
|
Files: src/buffer.c
|
||
|
|
||
|
Patch 5.4n.19
|
||
|
Problem: Doing ":e" (without argument) in an option-window causes trouble.
|
||
|
The mappings for <CR> and <Space> are not removed. When there is
|
||
|
another buffer loaded, the swap file for it gets mixed up.
|
||
|
(Steve Mueller)
|
||
|
Solution: Also remove the mappings at the BufUnload event, if they are still
|
||
|
present.
|
||
|
When re-editing the same file causes the current buffer to be
|
||
|
deleted, don't try editing it.
|
||
|
Also added a test for this situation.
|
||
|
Files: runtime/optwin.vim, src/ex_cmds.c, src/testdir/test13.in,
|
||
|
src/testdir/test13.ok
|
||
|
|
||
|
Patch 5.4n.24
|
||
|
Problem: BeOS: configure never enabled the GUI, because $with_x was "no".
|
||
|
Unix prototypes caused problems, because Display and Widget are
|
||
|
undefined.
|
||
|
Freeing fonts on exit caused a crash.
|
||
|
Solution: Only disable the GUI when $with_x is "no" and $BEOS is not "yes".
|
||
|
Add dummy defines for Display and Widget in proto.h.
|
||
|
Don't free the fonts in gui_exit() for BeOS.
|
||
|
Files: src/configure.in, src/configure, src/proto.h, src/gui.c.
|
||
|
|
||
|
|
||
|
The runtime/vim48x48.xpm icon didn't have a transparent background. (Schild)
|
||
|
|
||
|
Some versions of the mingw32/egcs compiler didn't have WINBASEAPI defined.
|
||
|
(Aaron)
|
||
|
|
||
|
VMS:
|
||
|
- mch_setenv() had two arguments instead of three.
|
||
|
- The system vimrc and gvimrc files were called ".vimrc" and ".gvimrc".
|
||
|
Removed the dot.
|
||
|
- call to RealWaitForChar() had one argument too many. (Campbell)
|
||
|
- WaitForChar() is static, removed the prototype from proto/os_vms.pro.
|
||
|
- Many file accesses failed, because Unix style file names were used.
|
||
|
Translate file names to VMS style by using vim_fopen().
|
||
|
- Filtering didn't work, because the temporary file name was generated wrong.
|
||
|
- There was an extra newline every 9192 characters when writing a file. Work
|
||
|
around it by writing line by line. (Campbell)
|
||
|
- os_vms.c contained "# typedef int DESC". Should be "typedef int DESC;".
|
||
|
Only mattered for generating prototypes.
|
||
|
- Added file name translation to many places. Made easy by defining macros
|
||
|
mch_access(), mch_fopen(), mch_fstat(), mch_lstat() and mch_stat().
|
||
|
- Set default for 'tagbsearch' to off, because binary tag searching apparently
|
||
|
doesn't work for VMS.
|
||
|
- make mch_get_host_name() work with /dec and /standard=vaxc. (Campbell)
|
||
|
|
||
|
|
||
|
Patch 5.4o.2
|
||
|
Problem: Crash when using "gf" on "file.c://comment here". (Scott Graham)
|
||
|
Solution: Fix wrong use of pointers in get_file_name_in_path().
|
||
|
Files: src/window.c
|
||
|
|
||
|
Patch 5.4o.3
|
||
|
Problem: The horizontal scrollbar was not sized correctly when 'number' is
|
||
|
set and 'wrap' not set.
|
||
|
Athena: Horizontal scrollbar wasn't updated when the cursor was
|
||
|
positioned with a mouse click just after dragging.
|
||
|
Solution: Subtract 8 from the size when 'number' set and 'wrap' not set.
|
||
|
Reset gui.dragged_sb when a mouse click is received.
|
||
|
Files: src/gui.c
|
||
|
|
||
|
Patch 5.4o.4
|
||
|
Problem: When running in an xterm and $WINDOWID is set to an illegal value,
|
||
|
Vim would exit with "Vim: Got X error".
|
||
|
Solution: When using the display which was opened for the xterm clipboard,
|
||
|
check if x11_window is valid by trying to obtain the window title.
|
||
|
Also add a check in setup_xterm_clip(), for when using X calls to
|
||
|
get the pointer position in an xterm.
|
||
|
Files: src/os_unix.c
|
||
|
|
||
|
Patch 5.4o.5
|
||
|
Problem: Motif version with Lesstif: When removing the menubar and then
|
||
|
using a menu shortcut key, Vim would crash. (raf)
|
||
|
Solution: Disable the menu mnemonics when the menu bar is removed.
|
||
|
Files: src/gui_motif.c
|
||
|
|
||
|
Patch 5.4o.9
|
||
|
Problem: The DOS install.exe program used the "move" program. That doesn't
|
||
|
work on Windows NT, where "move" is internal to cmd.exe.
|
||
|
Solution: Don't use an external program for moving the executables. Use C
|
||
|
functions to copy the file and delete the original.
|
||
|
Files: src/dosinst.c
|
||
|
|
||
|
Motif and Athena obtained the status area height differently from GTK. Moved
|
||
|
status_area_enabled from global.h to gui_x11.c and call
|
||
|
xim_get_status_area_height() to get the status area height.
|
||
|
|
||
|
Patch 5.4p.1
|
||
|
Problem: When using auto-select, and the "gv" command is used, would not
|
||
|
always obtain ownership of the selection. Caused by the Visual
|
||
|
area still being the same, but ownership taken away by another
|
||
|
program.
|
||
|
Solution: Reset the clipboard Visual mode to force updating the selection.
|
||
|
Files: src/normal.c
|
||
|
|
||
|
Patch 5.4p.2
|
||
|
Problem: Motif and Athena with XIM: Typing 3-byte
|
||
|
<multibyte><multibyte><space> doesn't work correctly with Ami XIM.
|
||
|
Solution: Avoid using key_sym XK_VoidSymbol. (Nam)
|
||
|
Files: src/multbyte.c, src/gui_x11.c
|
||
|
|
||
|
Patch 5.4p.4
|
||
|
Problem: Win32 GUI: The scrollbar values were reduced for a file with more
|
||
|
than 32767 lines. But this info was kept global for all
|
||
|
scrollbars, causing a mixup between the windows.
|
||
|
Using the down arrow of a scrollbar in a large file didn't work.
|
||
|
Because of round-off errors there is no scroll at all.
|
||
|
Solution: Give each scrollbar its own scroll_shift field. When the down
|
||
|
arrow is used, scroll several lines.
|
||
|
Files: src/gui.h, src/gui_w32.c
|
||
|
|
||
|
Patch 5.4p.5
|
||
|
Problem: When changing buffers in a BufDelete autocommand, there could be
|
||
|
ml_line errors and/or a crash. (Schandl) Was caused by deleting
|
||
|
the current buffer.
|
||
|
Solution: When the buffer to be deleted unexpectedly becomes the current
|
||
|
buffer, don't delete it.
|
||
|
Also added a check for this in test13.
|
||
|
Files: src/buffer.c, src/testdir/test13.in, src/testdir/test13.ok
|
||
|
|
||
|
Patch 5.4p.7
|
||
|
Problem: Win32 GUI: When using 'mousemodel' set to "popup_setpos" and
|
||
|
clicking the right mouse button outside of the selected area, the
|
||
|
selected area wasn't removed until the popup menu has gone.
|
||
|
(Aaron)
|
||
|
Solution: Set the cursor and update the display before showing the popup
|
||
|
menu.
|
||
|
Files: src/normal.c
|
||
|
|
||
|
Patch 5.4p.8
|
||
|
Problem: The generated bugreport didn't contain information about
|
||
|
$VIMRUNTIME and whether runtime files actually exist.
|
||
|
Solution: Added a few checks to the bugreport script.
|
||
|
Files: runtime/bugreport.vim
|
||
|
|
||
|
Patch 5.4p.9
|
||
|
Problem: The windows install.exe created a wrong entry in the popup menu.
|
||
|
The "%1" was "". The full directory was included, even when the
|
||
|
executable had been moved elsewhere. (Ott)
|
||
|
Solution: Double the '%' to get one from printf. Only include the path to
|
||
|
gvim.exe when it wasn't moved and it's not in $PATH.
|
||
|
Files: src/dosinst.c
|
||
|
|
||
|
Patch 5.4p.10
|
||
|
Problem: Win32: On top of 5.4p.9: The "Edit with Vim" entry sometimes used
|
||
|
a short file name for a directory.
|
||
|
Solution: Change the "%1" to "%L" in the registry entry.
|
||
|
Files: src/dosinst.c
|
||
|
|
||
|
Patch 5.4p.11
|
||
|
Problem: Motif, Athena and GTK: When closing the GUI window when there is a
|
||
|
changed buffer, there was only an error message and Vim would not
|
||
|
exit.
|
||
|
Solution: Put up a dialog, like for ":confirm qa". Uses the code that was
|
||
|
already used for MS-Windows.
|
||
|
Files: src/gui.c, src/gui_w32.c
|
||
|
|
||
|
Patch 5.4p.12
|
||
|
Problem: Win32: Trying to expand a string that is longer than 256
|
||
|
characters could cause a crash. (Steed)
|
||
|
Solution: For the buffer in win32_expandpath() don't use a fixed size array,
|
||
|
allocate it.
|
||
|
Files: src/os_win32.c
|
||
|
|
||
|
MSDOS: Added "-Wall" to Makefile.djg compile flags. Function prototypes for
|
||
|
fname_case() and mch_update_cursor() were missing. "fd" was unused in
|
||
|
mf_sync(). "puiLocation" was unused in myputch(). "newcmd" unused in
|
||
|
mch_call_shell() for DJGPP version.
|
||
|
|
||
|
==============================================================================
|
||
|
VERSION 5.5 *version-5.5*
|
||
|
|
||
|
Version 5.5 is a bug-fix version of 5.4.
|
||
|
|
||
|
|
||
|
Changed *changed-5.5*
|
||
|
-------
|
||
|
|
||
|
The DJGPP version is now compiled with "-O2" instead of "-O4" to reduce the
|
||
|
size of the executables.
|
||
|
|
||
|
Moved the src/STYLE file to runtime/doc/develop.txt. Added the design goals
|
||
|
to it.
|
||
|
|
||
|
'backspace' is now a string option. See patch 5.4.15.
|
||
|
|
||
|
|
||
|
Added *added-5.5*
|
||
|
-----
|
||
|
|
||
|
Included Exuberant Ctags version 3.3. (Darren Hiebert)
|
||
|
|
||
|
In runtime/mswin.vim, map CTRL-Q to CTRL-V, so that CTRL-Q can be used
|
||
|
everywhere to do what CTRL-V used to do.
|
||
|
|
||
|
Support for decompression of bzip2 files in vimrc_example.vim.
|
||
|
|
||
|
When a patch is included, the patch number is entered in a table in version.c.
|
||
|
This allows skipping a patch without breaking a next one.
|
||
|
|
||
|
Support for mouse scroll wheel in X11. See patch 5.5a.14.
|
||
|
|
||
|
line2byte() can be used to get the size of the buffer. See patch 5.4.35.
|
||
|
|
||
|
The CTRL-R CTRL-O r and CTRL-R CTRL-P r commands in Insert mode are used to
|
||
|
insert a register literally. See patch 5.4.48.
|
||
|
|
||
|
Uninstall program for MS-Windows. To be able to remove the registry entries
|
||
|
for "Edit with Vim". It is registered to be run from the "Add/Remove
|
||
|
programs" application. See patch 5.4.x7.
|
||
|
|
||
|
|
||
|
Fixed *fixed-5.5*
|
||
|
-----
|
||
|
|
||
|
When using vimrc_example.vim: An error message when the cursor is on a line
|
||
|
higher than the number of lines in the compressed file. Move the autocommand
|
||
|
for jumping to the last known cursor position to after the decompressing
|
||
|
autocommands.
|
||
|
|
||
|
":mkexrc" and ":mksession" wrote the current value of 'textmode'. That may
|
||
|
mark a file as modified, which causes problems. This is a buffer-specific
|
||
|
setting, it should not affect all files.
|
||
|
|
||
|
"vim --version" wrote two empty lines.
|
||
|
|
||
|
Unix: The alarm signal could kill Vim. It is generated by the Perl alarm()
|
||
|
function. Ignore SIGALRM.
|
||
|
|
||
|
Win32 GUI: Toolbar still had the yellow bitmap for running a Vim script.
|
||
|
|
||
|
BeOS: "tmo" must be bigtime_t, instead of double. (Seibert)
|
||
|
|
||
|
Patch 5.4.1
|
||
|
Problem: Test11 fails when $GZIP is set to "-v". (Matthew Jackson)
|
||
|
Solution: Set $GZIP to an empty string.
|
||
|
Files: src/testdir/test11.in
|
||
|
|
||
|
Patch 5.4.2
|
||
|
Problem: Typing <Esc> at the crypt key prompt caused a crash. (Kallingal)
|
||
|
Solution: Check for a NULL pointer returned from get_crypt_key().
|
||
|
Files: src/fileio.c
|
||
|
|
||
|
Patch 5.4.3
|
||
|
Problem: Python: Trying to use the name of an unnamed buffer caused a
|
||
|
crash. (Daniel Burrows)
|
||
|
Solution: Check for b_fname being a NULL pointer.
|
||
|
Files: src/if_python.c
|
||
|
|
||
|
Patch 5.4.4
|
||
|
Problem: Win32: When compiled without toolbar, but the 'T' flag is in
|
||
|
'guioptions', there would be an empty space for the toolbar.
|
||
|
Solution: Add two #ifdefs where checking for the 'T' flag. (Vince Negri)
|
||
|
Files: src/gui.c
|
||
|
|
||
|
Patch 5.4.5
|
||
|
Problem: Athena GUI: Using the Buffers.Refresh menu entry caused a crash.
|
||
|
Looks like any ":unmenu" command may cause trouble.
|
||
|
Solution: Disallow ":unmenu" in the Athena version. Disable the Buffers
|
||
|
menu, because the Refresh item would not work.
|
||
|
Files: src/menu.c, runtime/menu.vim
|
||
|
|
||
|
Patch 5.4.6
|
||
|
Problem: GTK GUI: Using ":gui" in the .gvimrc file caused an error. Only
|
||
|
happens when the GUI forks.
|
||
|
Solution: Don't fork in a recursive call of gui_start().
|
||
|
Files: src/gui.c
|
||
|
|
||
|
Patch 5.4.7
|
||
|
Problem: Typing 'q' at the more prompt for the ATTENTION message causes the
|
||
|
file loading to be interrupted. (Will Day)
|
||
|
Solution: Reset got_int after showing the ATTENTION message.
|
||
|
Files: src/memline.c
|
||
|
|
||
|
Patch 5.4.8
|
||
|
Problem: Edit some file, ":he", ":opt": options from help window are shown,
|
||
|
but pressing space updates from the other window. (Phillipps)
|
||
|
Also: When there are changes in the option-window, ":q!" gives an
|
||
|
error message.
|
||
|
Solution: Before creating the option-window, go to a non-help window.
|
||
|
Use ":bdel!" to delete the buffer.
|
||
|
Files: runtime/optwin.vim
|
||
|
|
||
|
Patch 5.4.9
|
||
|
Just updates version.h. The real patch has been moved to 5.4.x1.
|
||
|
This patch is just to keep the version number correct.
|
||
|
|
||
|
Patch 5.4.10
|
||
|
Problem: GTK GUI: When $DISPLAY is invalid, "gvim -f" just exits. It
|
||
|
should run in the terminal.
|
||
|
Solution: Use gtk_init_check() instead of gtk_init().
|
||
|
Files: src/gui_gtk_x11.c
|
||
|
|
||
|
Patch 5.4.11
|
||
|
Problem: When using the 'S' flag in 'cpoptions', 'tabstop' is not copied to
|
||
|
the next buffer for some commands, e.g., ":buffer".
|
||
|
Solution: When the BCO_NOHELP flag is given to buf_copy_options(), still
|
||
|
copy the options used by do_help() when neither the "from" or "to"
|
||
|
buffer is a help buffer.
|
||
|
Files: src/option.c
|
||
|
|
||
|
Patch 5.4.12
|
||
|
Problem: When using 'smartindent', there would be no extra indent if the
|
||
|
current line did not have any indent already. (Hanus Adler)
|
||
|
Solution: There was a wrongly placed "else", that previously matched with
|
||
|
the "if" that set trunc_line. Removed the "else" and added a
|
||
|
check for trunc_line to be false.
|
||
|
Files: src/misc1.c
|
||
|
|
||
|
Patch 5.4.13
|
||
|
Problem: New SGI C compilers need another option for optimisation.
|
||
|
Solution: Add a check in configure for "-OPT:Olimit". (Chin A Young)
|
||
|
Files: src/configure.in, src/configure
|
||
|
|
||
|
Patch 5.4.14
|
||
|
Problem: Motif GUI: When the popup menu is present, a tiny window appears
|
||
|
on the desktop for some users.
|
||
|
Solution: Set the menu widget ID for a popup menu to 0. (Thomas Koehler)
|
||
|
Files: src/gui_motif.c
|
||
|
|
||
|
Patch 5.4.15
|
||
|
Problem: Since 'backspace' set to 0 has been made Vi compatible, it is no
|
||
|
longer possible to only allow deleting autoindent.
|
||
|
Solution: Make 'backspace' a list of parts, to allow each kind of
|
||
|
backspacing separately.
|
||
|
Files: src/edit.c, src/option.c, src/option.h, src/proto/option.pro,
|
||
|
runtime/doc/option.txt, runtime/doc/insert.txt
|
||
|
|
||
|
Patch 5.4.16
|
||
|
Problem: Multibyte: Locale zh_TW.Big5 was not checked for in configure.
|
||
|
Solution: Add zh_TW.Big5 to configure check. (Chih-Tsun Huang)
|
||
|
Files: src/configure.in, src/configure
|
||
|
|
||
|
Patch 5.4.17
|
||
|
Problem: GUI: When started from inside gvim with ":!gvim", Vim would not
|
||
|
start. ":!gvim -f" works fine.
|
||
|
Solution: After forking, wait a moment in the parent process, to give the
|
||
|
child a chance to set its process group.
|
||
|
Files: src/gui.c
|
||
|
|
||
|
Patch 5.4.18
|
||
|
Problem: Python: The clear_history() function also exists in a library.
|
||
|
Solution: Rename clear_history() to clear_hist().
|
||
|
Files: src/ex_getln.c, src/eval.c, src/proto/ex_getln.pro
|
||
|
|
||
|
Patch 5.4.19
|
||
|
Problem: In a terminal with 25 lines, there is a more prompt after the
|
||
|
ATTENTION message. When hitting 'q' here the dialog prompt
|
||
|
doesn't appear and file loading is interrupted. (Will Day)
|
||
|
Solution: Don't allow quitting the printing of a message for the dialog
|
||
|
prompt. Added the msg_noquit_more flag for this.
|
||
|
Files: src/message.c
|
||
|
|
||
|
Patch 5.4.20
|
||
|
Problem: GTK: When starting gvim, would send escape sequences to the
|
||
|
terminal to switch the cursor off and on.
|
||
|
Solution: Don't call msg_start() if the GUI is expected to start.
|
||
|
Files: src/main.c
|
||
|
|
||
|
Patch 5.4.21
|
||
|
Problem: Motif: Toplevel menu ordering was wrong when using tear-off items.
|
||
|
Solution: Don't add one to the index for a toplevel menu.
|
||
|
Files: src/gui_motif.c
|
||
|
|
||
|
Patch 5.4.22
|
||
|
Problem: In Insert mode, <C-Left>, <S-Left>, <C-Right> and <S-Right> didn't
|
||
|
update the column used for vertical movement.
|
||
|
Solution: Set curwin->w_set_curswant for those commands.
|
||
|
Files: src/edit.c
|
||
|
|
||
|
Patch 5.4.23
|
||
|
Problem: When a Visual selection is lost to another program, and then the
|
||
|
same text is Visually selected again, the clipboard ownership
|
||
|
wasn't regained.
|
||
|
Solution: Set clipboard.vmode to NUL to force regaining the clipboard.
|
||
|
Files: src/normal.c
|
||
|
|
||
|
Patch 5.4.24
|
||
|
Problem: Encryption: When using ":r file" while 'key' has already entered,
|
||
|
the 'key' option would be messed up. When writing the file it
|
||
|
would be encrypted with an unknown key and lost! (Brad Despres)
|
||
|
Solution: Don't free cryptkey when it is equal to the 'key' option.
|
||
|
Files: src/fileio.c
|
||
|
|
||
|
Patch 5.4.25
|
||
|
Problem: When 'cindent' is set, but 'autoindent' isn't, comments are not
|
||
|
properly indented when starting a new line. (Mitterand)
|
||
|
Solution: When there is a comment leader for the new line, but 'autoindent'
|
||
|
isn't set, do C-indenting.
|
||
|
Files: src/misc1.c
|
||
|
|
||
|
Patch 5.4.26
|
||
|
Problem: Multi-byte: a multi-byte character is never recognized in a file
|
||
|
name, causing a backslash before it to be removed on Windows.
|
||
|
Solution: Assume that a leading-byte character is a file name character in
|
||
|
vim_isfilec().
|
||
|
Files: src/charset.c
|
||
|
|
||
|
Patch 5.4.27
|
||
|
Problem: Entries in the PopUp[nvic] menus were added for several modes, but
|
||
|
only deleted for the mode they were used for. This resulted in
|
||
|
the entry remaining in the PopUp menu.
|
||
|
When removing a PopUp[nvic] menu, the name had been truncated,
|
||
|
could result in greying-out the whole PopUp menu.
|
||
|
Solution: Remove entries for all modes from the PopUp[nvic] menus. Remove
|
||
|
the PopUp[nvic] menu entries first, before the name is changed.
|
||
|
Files: src/menu.c
|
||
|
|
||
|
Patch 5.4.28
|
||
|
Problem: When using a BufWritePre autocommand to change 'fileformat', the
|
||
|
new value would not be used for writing the file.
|
||
|
Solution: Check 'fileformat' after executing the autocommands instead of
|
||
|
before.
|
||
|
Files: src/fileio.c
|
||
|
|
||
|
Patch 5.4.29
|
||
|
Problem: Athena GUI: When removing the 'g' flag from 'guioptions', using a
|
||
|
menu can result in a crash.
|
||
|
Solution: Always grey-out menus for Athena, don't hide them.
|
||
|
Files: src/menu.c
|
||
|
|
||
|
Patch 5.4.30
|
||
|
Problem: BeOS: Suspending Vim with CTRL-Z didn't work (killed Vim). The
|
||
|
first character typed after ":sh" goes to Vim, instead of the
|
||
|
started shell.
|
||
|
Solution: Don't suspend Vim, start a new shell. Kill the async read thread
|
||
|
when starting a new shell. It will be restarted later. (Will Day)
|
||
|
Files: src/os_unix.c, src/ui.c
|
||
|
|
||
|
Patch 5.4.31
|
||
|
Problem: GUI: When 'mousefocus' is set, moving the mouse over where a
|
||
|
window boundary was, causes a hit-enter prompt to be finished.
|
||
|
(Jeff Walker)
|
||
|
Solution: Don't use 'mousefocus' at the hit-enter prompt. Also ignore it
|
||
|
for the more prompt and a few other situations. When an operator
|
||
|
is pending, abort it first.
|
||
|
Files: src/gui.c
|
||
|
|
||
|
Patch 5.4.32
|
||
|
Problem: Unix: $LDFLAGS was not passed to configure.
|
||
|
Solution: Pass $LDFLAGS to configure just like $CFLAGS. (Jon Miner)
|
||
|
Files: src/Makefile
|
||
|
|
||
|
Patch 5.4.33
|
||
|
Problem: Unix: After expanding an environment variable with the shell, the
|
||
|
next expansion would also use the shell, even though it is not
|
||
|
needed.
|
||
|
Solution: Reset "recursive" before returning from gen_expand_wildcards().
|
||
|
Files: src/misc1.c
|
||
|
|
||
|
Patch 5.4.34 (also see 5.4.x5)
|
||
|
Problem: When editing a file, and the file name is relative to a directory
|
||
|
above the current directory, the file name was made absolute.
|
||
|
(Gregory Margo)
|
||
|
Solution: Add an argument to shorten_fnames() which indicates if all file
|
||
|
names should be shortened, or only absolute names. In main() only
|
||
|
use shorten_fnames() to shorten absolute names.
|
||
|
Files: src/ex_docmd.c, src/fileio.c, src/main.c, src/proto/fileio.pro
|
||
|
|
||
|
Patch 5.4.35
|
||
|
Problem: There is no function to get the current file size.
|
||
|
Solution: Allow using line2byte() with the number of lines in the file plus
|
||
|
one. This returns the offset of the line past the end of the
|
||
|
file, which is the file size plus one.
|
||
|
Files: src/eval.c, runtime/doc/eval.txt
|
||
|
|
||
|
Patch 5.4.36
|
||
|
Problem: Comparing strings while ignoring case didn't work correctly for
|
||
|
some machines. (Mide Steed)
|
||
|
Solution: vim_stricmp() and vim_strnicmp() only returned 0 or 1. Changed
|
||
|
them to return -1 when the first argument is smaller.
|
||
|
Files: src/misc2.c
|
||
|
|
||
|
Patch 5.4.37 (also see 5.4.40 and 5.4.43)
|
||
|
Problem: Long strings from the viminfo file are truncated.
|
||
|
Solution: When writing a long string to the viminfo file, first write a line
|
||
|
with the length, then the string itself in a second line.
|
||
|
Files: src/eval.c, src/ex_cmds.c, src/ex_getln.c, src/mark.c, src/ops.c,
|
||
|
src/search.c, src/proto/ex_cmds.pro, runtime/syntax/viminfo.vim
|
||
|
|
||
|
Patch 5.4.38
|
||
|
Problem: In the option-window, ":set go&" resulted in 'go' being handled
|
||
|
like a boolean option.
|
||
|
Mappings for <Space> and <CR> were overruled by the option-window.
|
||
|
Solution: When the value of an option isn't 0 or 1, don't handle it like a
|
||
|
boolean option.
|
||
|
Save and restore mappings for <Space> and <CR> when entering and
|
||
|
leaving the option-window.
|
||
|
Files: runtime/optwin.vim
|
||
|
|
||
|
Patch 5.4.39
|
||
|
Problem: When setting a hidden option, spaces before the equal sign were
|
||
|
not skipped and cause an error message. E.g., ":set csprg =cmd".
|
||
|
Solution: When skipping over a hidden option, check for a following "=val"
|
||
|
and skip it too.
|
||
|
Files: src/option.c
|
||
|
|
||
|
Patch 5.4.40 (depends on 5.4.37)
|
||
|
Problem: Compiler error for "atol(p + 1)". (Axel Kielhorn)
|
||
|
Solution: Add a typecast: "atol((char *)p + 1)".
|
||
|
Files: src/ex_cmds.c
|
||
|
|
||
|
Patch 5.4.41
|
||
|
Problem: Some commands that were not included would give an error message,
|
||
|
even when after "if 0".
|
||
|
Solution: Don't give an error message for an unsupported command when not
|
||
|
executing the command.
|
||
|
Files: src/ex_docmd.c
|
||
|
|
||
|
Patch 5.4.42
|
||
|
Problem: ":w" would also cause a truncated message to appear in the message
|
||
|
history.
|
||
|
Solution: Don't put a kept message in the message history when it starts
|
||
|
with "<".
|
||
|
Files: src/message.c
|
||
|
|
||
|
Patch 5.4.43 (depends on 5.4.37)
|
||
|
Problem: Mixing long lines with multiple lines in a register causes errors
|
||
|
when writing the viminfo file. (Robinson)
|
||
|
Solution: When reading the viminfo file to skip register contents, skip
|
||
|
lines that start with "<".
|
||
|
Files: src/ops.c
|
||
|
|
||
|
Patch 5.4.44
|
||
|
Problem: When 'whichwrap' includes '~', a "~" command that goes on to the
|
||
|
next line cannot be properly undone. (Zellner)
|
||
|
Solution: Save each line for undo in n_swapchar().
|
||
|
Files: src/normal.c
|
||
|
|
||
|
Patch 5.4.45 (also see 5.4.x8)
|
||
|
Problem: When expand("$ASDF") fails, there is an error message.
|
||
|
Solution: Remove the global expand_interactively. Pass a flag down to skip
|
||
|
the error message.
|
||
|
Also: expand("$ASDF") returns an empty string if $ASDF isn't set.
|
||
|
Previously it returned "$ASDF" when 'shell' is "sh".
|
||
|
Also: system() doesn't print an error when the command returns an
|
||
|
error code.
|
||
|
Files: many
|
||
|
|
||
|
Patch 5.4.46
|
||
|
Problem: Backspacing did not always use 'softtabstop' after hitting <CR>,
|
||
|
inserting a register, moving the cursor, etc.
|
||
|
Solution: Reset inserted_space much more often in edit().
|
||
|
Files: src/edit.c
|
||
|
|
||
|
Patch 5.4.47
|
||
|
Problem: When executing BufWritePre or BufWritePost autocommands for a
|
||
|
hidden buffer, the cursor could be moved to a non-existing
|
||
|
position. (Vince Negri)
|
||
|
Solution: Save and restore the cursor and topline for the current window
|
||
|
when it is going to be used to execute autocommands for a hidden
|
||
|
buffer. Use an existing window for the buffer when it's not
|
||
|
hidden.
|
||
|
Files: src/fileio.c
|
||
|
|
||
|
Patch 5.4.48
|
||
|
Problem: A paste with the mouse in Insert mode was not repeated exactly the
|
||
|
same with ".". For example, when 'autoindent' is set and pasting
|
||
|
text with leading indent. (Perry)
|
||
|
Solution: Add the CTRL-R CTRL-O r and CTRL-R CTRL-P r commands in Insert
|
||
|
mode, which insert the contents of a register literally.
|
||
|
Files: src/edit.c, src/normal.c, runtime/doc/insert.txt
|
||
|
|
||
|
Patch 5.4.49
|
||
|
Problem: When pasting text with [ <MiddleMouse>, the cursor could end up
|
||
|
after the last character of the line.
|
||
|
Solution: Correct the cursor position for the change in indent.
|
||
|
Files: src/ops.c
|
||
|
|
||
|
Patch 5.4.x1 (note: Replaces patch 5.4.9)
|
||
|
Problem: Win32 GUI: menu hints were never used, because WANT_MENU is not
|
||
|
defined until vim.h is included.
|
||
|
Solution: Move the #ifdef WANT_MENU from where MENUHINTS is defined to where
|
||
|
it is used.
|
||
|
Files: src/gui_w32.c
|
||
|
|
||
|
Patch 5.4.x2
|
||
|
Problem: BeOS: When pasting text, one character was moved to the end.
|
||
|
Solution: Re-enable the BeOS code in fill_input_buf(), and fix timing out
|
||
|
with acquire_sem_etc(). (Will Day)
|
||
|
Files: src/os_beos.c, src/ui.c
|
||
|
|
||
|
Patch 5.4.x3
|
||
|
Problem: Win32 GUI: When dropping a directory on a running gvim it crashes.
|
||
|
Solution: Avoid using a NULL file name. Also display a message to indicate
|
||
|
that the current directory was changed.
|
||
|
Files: src/gui_w32.c
|
||
|
|
||
|
Patch 5.4.x4
|
||
|
Problem: Win32 GUI: Removing an item from the popup menu doesn't work.
|
||
|
Solution: Don't remove the item from the menubar, but from the parent popup
|
||
|
menu.
|
||
|
Files: src/gui_w32.c
|
||
|
|
||
|
Patch 5.4.x5 (addition to 5.4.34)
|
||
|
Files: src/gui_w32.c
|
||
|
|
||
|
Patch 5.4.x6
|
||
|
Problem: Win32: Expanding (dir)name starting with a dot doesn't work.
|
||
|
(McCormack) Only when there is a path before it.
|
||
|
Solution: Fix the check, done before expansion, if the file name pattern
|
||
|
starts with a dot.
|
||
|
Files: src/os_win32.c
|
||
|
|
||
|
Patch 5.4.x7
|
||
|
Problem: Win32 GUI: Removing "Edit with Vim" from registry is difficult.
|
||
|
Solution: Add uninstall program to remove the registry keys. It is installed
|
||
|
in the "Add/Remove programs" list for ease of use.
|
||
|
Also: don't set $VIM when the executable is with the runtime files.
|
||
|
Also: Add a text file with a step-by-step description of how to
|
||
|
uninstall Vim for DOS and Windows.
|
||
|
Files: src/uninstal.c, src/dosinst.c, src/Makefile.w32, uninstal.txt
|
||
|
|
||
|
Patch 5.4.x8 (addition to 5.4.45)
|
||
|
Files: many
|
||
|
|
||
|
Patch 5.4.x9
|
||
|
Problem: Win32 GUI: After executing an external command, focus is not
|
||
|
always regained (when using focus-follows-mouse).
|
||
|
Solution: Add SetFocus() in mch_system(). (Mike Steed)
|
||
|
Files: src/os_win32.c
|
||
|
|
||
|
|
||
|
Patch 5.5a.1
|
||
|
Problem: ":let @* = @:" did not work. The text was not put on the
|
||
|
I clipboard. (Fisher)
|
||
|
Solution: Own the clipboard and put the text on it.
|
||
|
Files: src/ops.c
|
||
|
|
||
|
Patch 5.5a.2
|
||
|
Problem: append() did not mark the buffer modified. Marks below the
|
||
|
new line were not adjusted.
|
||
|
Solution: Fix the f_append() function.
|
||
|
Files: src/eval.c
|
||
|
|
||
|
Patch 5.5a.3
|
||
|
Problem: Editing compressed ".gz" files doesn't work on non-Unix systems,
|
||
|
because there is no "mv" command.
|
||
|
Solution: Add the rename() function and use it instead of ":!mv".
|
||
|
Also: Disable the automatic jump to the last position, because it
|
||
|
changes the jumplist.
|
||
|
Files: src/eval.c, runtime/doc/eval.txt, runtime/vimrc_example.vim
|
||
|
|
||
|
Patch 5.5a.4
|
||
|
Problem: When using whole-line completion in insert mode while the cursor
|
||
|
is in the indent, get "out of memory" error. (Stekrt)
|
||
|
Solution: Don't allocate a negative amount of memory in ins_complete().
|
||
|
Files: src/edit.c
|
||
|
|
||
|
Patch 5.5a.5
|
||
|
Problem: Win32: The 'path' option can hold only up to 256 characters,
|
||
|
because _MAX_PATH is 256. (Robert Webb)
|
||
|
Solution: Use a fixed path length of 1024.
|
||
|
Files: src/os_win32.h
|
||
|
|
||
|
Patch 5.5a.6
|
||
|
Problem: Compiling with gcc on Win32, using the Unix Makefile, didn't work.
|
||
|
Solution: Add $(SUFFIX) to all places where an executable is used. Also
|
||
|
pass it to ctags. (Reynolds)
|
||
|
Files: src/Makefile
|
||
|
|
||
|
Patch 5.5a.7
|
||
|
Problem: When using "cat | vim -" in an xterm, the xterm version reply
|
||
|
would end up in the file.
|
||
|
Solution: Read the file from stdin before switching the terminal to RAW
|
||
|
mode. Should also avoid problems with programs that use a
|
||
|
specific terminal setting.
|
||
|
Also: when using the GUI, print "Reading from stdin..." in the GUI
|
||
|
window, to give a hint why it doesn't do anything.
|
||
|
Files: src/main.c, src/fileio.c
|
||
|
|
||
|
Patch 5.5a.8
|
||
|
Problem: On multi-threaded Solaris, suspending doesn't work.
|
||
|
Solution: Call pause() when the SIGCONT signal was not received after
|
||
|
sending the SIGTSTP signal. (Nagano)
|
||
|
Files: src/os_unix.c
|
||
|
|
||
|
Patch 5.5a.9
|
||
|
Problem: 'winaltkeys' could be set to an empty argument, which is illegal.
|
||
|
Solution: Give an error message when doing ":set winaltkeys=".
|
||
|
Files: src/option.c
|
||
|
|
||
|
Patch 5.5a.10
|
||
|
Problem: Win32 console: Using ALTGR on a German keyboard to produce "}"
|
||
|
doesn't work, because the 8th bit is set when ALT is pressed.
|
||
|
Solution: Don't set the 8th bit when ALT and CTRL are used. (Leipert)
|
||
|
Files: src/os_win32.c
|
||
|
|
||
|
Patch 5.5a.11
|
||
|
Problem: Tcl: Configure always uses tclsh8.0.
|
||
|
Also: Loading a library doesn't work.
|
||
|
Solution: Add "--with-tclsh" configure argument to allow specifying another
|
||
|
name for the tcl shell.
|
||
|
Call Tcl_Init() in tclinit() to make loading libraries work.
|
||
|
(Johannes Zellner)
|
||
|
Files: src/configure.in, src/configure, src/if_tcl.c
|
||
|
|
||
|
Patch 5.5a.12
|
||
|
Problem: The "user_commands" feature is called "user-commands".
|
||
|
Solution: Replace "user-commands" with "user_commands". (Kim Sung-bom)
|
||
|
Keep "user-commands" for the has() function, to remain backwards
|
||
|
compatible with 5.4.
|
||
|
Files: src/eval.c, src/version.c
|
||
|
|
||
|
Patch 5.5a.13
|
||
|
Problem: OS/2: When $HOME is not defined, "C:/" is used for the viminfo
|
||
|
file. That is very wrong when OS/2 is on another partition.
|
||
|
Solution: Use $VIM for the viminfo file when it is defined, like for MSDOS.
|
||
|
Also: Makefile.os2 didn't depend on os_unix.h.
|
||
|
Files: src/os_unix.h, src/Makefile.os2
|
||
|
|
||
|
Patch 5.5a.14
|
||
|
Problem: Athena, Motif and GTK: The Mouse scroll wheel doesn't work.
|
||
|
Solution: Interpret a click of the wheel as a key press of the <MouseDown>
|
||
|
or <MouseUp> keys. Default behavior is to scroll three lines, or
|
||
|
a full page when Shift is used.
|
||
|
Files: src/edit.c, src/ex_getln.c, src/gui.c, src/gui_gtk_x11.c,
|
||
|
src/gui_x11.c, src/keymap.h, src/message.c, src/misc1.c,
|
||
|
src/misc2.c, src/normal.c, src/proto/normal.pro, src/vim.h,
|
||
|
runtime/doc/scroll.txt
|
||
|
|
||
|
Patch 5.5a.15
|
||
|
Problem: Using CTRL-A in Insert mode doesn't work correctly when the insert
|
||
|
started with the <Insert> key. (Andreas Rohrschneider)
|
||
|
Solution: Replace <Insert> with "i" before setting up the redo buffer.
|
||
|
Files: src/normal.c
|
||
|
|
||
|
Patch 5.5a.16
|
||
|
Problem: VMS: GUI does not compile and run.
|
||
|
Solution: Various fixes. (Zoltan Arpadffy)
|
||
|
Moved functions from os_unix.c to ui.c, so that VMS can use them
|
||
|
too: open_app_context(), x11_setup_atoms() and clip_x11* functions.
|
||
|
Made xterm_dpy global, it's now used by ui.c and os_unix.c.
|
||
|
Use gethostname() always, sys_hostname doesn't exist.
|
||
|
Files: src/globals.h, src/gui_x11.c, src/os_vms.mms, src/os_unix.c,
|
||
|
src/os_vms.c, src/ui.c, src/proto/os_unix.pro, src/proto/ui.pro
|
||
|
|
||
|
Renamed AdjustCursorForMultiByteCharacter() to AdjustCursorForMultiByteChar()
|
||
|
to avoid symbol length limit of 31 characters. (Steve P. Wall)
|
||
|
|
||
|
Patch 5.5b.1
|
||
|
Problem: SASC complains about dead assignments and implicit type casts.
|
||
|
Solution: Removed the dead assignments. Added explicit type casts.
|
||
|
Files: src/buffer.c, src/edit.c, src/eval.c, src/ex_cmds.c,
|
||
|
src/ex_getln.c, src/fileio.c, src/getchar.c, src/memline.c,
|
||
|
src/menu.c, src/misc1.c, src/normal.c, src/ops.c, src/quickfix.c,
|
||
|
src/screen.c
|
||
|
|
||
|
Patch 5.5b.2
|
||
|
Problem: When using "CTRL-O O" in Insert mode, hit <Esc> and then "o" in
|
||
|
another line truncates that line. (Devin Weaver)
|
||
|
Solution: When using a command that starts Insert mode from CTRL-O, reset
|
||
|
"restart_edit" first. This avoids that edit() is called with a
|
||
|
mix of starting a new edit command and restarting a previous one.
|
||
|
Files: src/normal.c
|
||
|
|
||
|
==============================================================================
|
||
|
VERSION 5.6 *version-5.6*
|
||
|
|
||
|
Version 5.6 is a bug-fix version of 5.5.
|
||
|
|
||
|
|
||
|
Changed *changed-5.6*
|
||
|
-------
|
||
|
|
||
|
Small changes to OleVim files. (Christian Schaller)
|
||
|
|
||
|
Inserted "/**/" between patch numbers in src/version.c. This allows for one
|
||
|
line of context, which some versions of patch need.
|
||
|
|
||
|
Reordered the Syntax menu to avoid long submenus. Removed keyboard shortcuts
|
||
|
for alphabetical items to avoid a clash with fixed items.
|
||
|
|
||
|
|
||
|
Added *added-5.6*
|
||
|
-----
|
||
|
|
||
|
Included Exuberant Ctags version 3.4. (Darren Hiebert)
|
||
|
|
||
|
OpenWithVim in Python. (Christian Schaller)
|
||
|
|
||
|
Win32 GUI: gvimext.dll, for the context menu "Edit with Vim" entry. Avoids
|
||
|
the reported problems with the MS Office taskbar. Now it's a Shell Extension.
|
||
|
(Tianmiao Hu)
|
||
|
|
||
|
New syntax files:
|
||
|
abel Abel (John Cook)
|
||
|
aml Arc Macro Language (Nikki Knuit)
|
||
|
apachestyle Apache-style config file (Christian Hammers)
|
||
|
cf Cold Fusion (Jeff Lanzarotta)
|
||
|
ctrlh files with CTRL-H sequences (Bram Moolenaar)
|
||
|
cupl CUPL (John Cook)
|
||
|
cuplsim CUPL simulation (John Cook)
|
||
|
erlang Erlang (Kresimir Marzic)
|
||
|
gedcom Gedcom (Paul Johnson)
|
||
|
icon Icon (Wendell Turner)
|
||
|
ist MakeIndex style (Peter Meszaros)
|
||
|
jsp Java Server Pages (Rafael Garcia-Suarez)
|
||
|
rcslog Rcslog (Joe Karthauser)
|
||
|
remind Remind (Davide Alberani)
|
||
|
sqr Structured Query Report Writer (Paul Moore)
|
||
|
tads TADS (Amir Karger)
|
||
|
texinfo Texinfo (Sandor Kopanyi)
|
||
|
xpm2 X Pixmap v2 (Steve Wall)
|
||
|
|
||
|
The 'C' flag in 'cpoptions' can be used to switch off concatenation for
|
||
|
sourced lines. See patch 5.5.013 below. |line-continuation|
|
||
|
|
||
|
"excludenl" argument for the ":syntax" command. See patch 5.5.032 below.
|
||
|
|:syn-excludenl|
|
||
|
|
||
|
Implemented |z+| and |z^| commands. See patch 5.5.050 below.
|
||
|
|
||
|
Vim logo in Corel Draw format. Can be scaled to any resolution.
|
||
|
|
||
|
|
||
|
Fixed *fixed-5.6*
|
||
|
-----
|
||
|
|
||
|
Using this mapping in Select mode, terminated completion:
|
||
|
":vnoremap <C-N> <Esc>a<C-N>" (Benji Fisher)
|
||
|
Ignore K_SELECT in ins_compl_prep().
|
||
|
|
||
|
VMS (Zoltan Arpadffy, David Elins):
|
||
|
- ioctl() in pty.c caused trouble, #ifndef VMS added.
|
||
|
- Cut & paste mismatch corrected.
|
||
|
- Popup menu line crash corrected. (Patch 5.5.047)
|
||
|
- Motif directories during open and save as corrected.
|
||
|
- Handle full file names with version numbers. (Patch 5.5.046)
|
||
|
- Directory handling (CD command etc.)
|
||
|
- Corrected file name conversion VMS to Unix and v.v.
|
||
|
- Recovery was not working.
|
||
|
- Terminal and signal handling was outdated compared to os_unix.c.
|
||
|
- Improved os_vms.txt.
|
||
|
|
||
|
Configure used fprintf() instead of printf() to check for __DATE__ and
|
||
|
__TIME__. (John Card II)
|
||
|
|
||
|
BeOS: Adjust computing the char_height and char_ascent. Round them up
|
||
|
separately, avoids redrawing artifacts. (Mike Steed)
|
||
|
|
||
|
Fix a few multi-byte problems in menu_name_skip(), set_reg_ic(), searchc() and
|
||
|
findmatchlimit(). (Taro Muraoka)
|
||
|
|
||
|
GTK GUI:
|
||
|
- With GTK 1.2.5 and later the scrollbars were not redrawn correctly.
|
||
|
- Adjusted the gtk_form_draw() function.
|
||
|
- SNiFF connection didn't work.
|
||
|
- 'mousefocus' was not working. (Dalecki)
|
||
|
- Some keys were not working with modifiers: Shift-Tab, Ctrl-Space and CTRL-@.
|
||
|
|
||
|
|
||
|
Patch 5.5.001
|
||
|
Problem: Configure in the top directory did not pass on an argument with a
|
||
|
space correctly. For example "./configure --previs="/My home".
|
||
|
(Stephane Chazelas)
|
||
|
Solution: Use '"$@"' instead of '$*' to pass on the arguments.
|
||
|
Files: configure
|
||
|
|
||
|
Patch 5.5.002
|
||
|
Problem: Compilation error for using "fds[] & POLLIN". (Jeff Walker)
|
||
|
Solution: Use "fds[].revents & POLLIN".
|
||
|
Files: src/os_unix.c
|
||
|
|
||
|
Patch 5.5.003
|
||
|
Problem: The autoconf check for sizeof(int) is wrong on machines where
|
||
|
sizeof(size_t) != sizeof(int).
|
||
|
Solution: Use our own configure check. Also fixes the warning for
|
||
|
cross-compiling.
|
||
|
Files: src/configure.in, src/configure
|
||
|
|
||
|
Patch 5.5.004
|
||
|
Problem: On Unix it's not possible to interrupt ":sleep 100".
|
||
|
Solution: Switch terminal to cooked mode while asleep, to allow a SIGINT to
|
||
|
wake us up. But switch off echo, added TMODE_SLEEP.
|
||
|
Files: src/term.h, src/os_unix.c
|
||
|
|
||
|
Patch 5.5.005
|
||
|
Problem: When using <f-args> with a user command, an empty argument to the
|
||
|
command resulted in one empty string, while no string was
|
||
|
expected.
|
||
|
Solution: Catch an empty argument and pass no argument to the function.
|
||
|
(Paul Moore)
|
||
|
Files: src/ex_docmd.c
|
||
|
|
||
|
Patch 5.5.006
|
||
|
Problem: Python: When platform-dependent files are in another directory
|
||
|
than the platform-independent files it doesn't work.
|
||
|
Solution: Also check the executable directory, and add it to CFLAGS. (Tessa
|
||
|
Lau)
|
||
|
Files: src/configure.in, src/configure
|
||
|
|
||
|
Patch 5.5.007 (extra)
|
||
|
Problem: Win32 OLE: Occasional crash when exiting while still being used
|
||
|
via OLE.
|
||
|
Solution: Move OleUninitialize() to before deleting the application object.
|
||
|
(Vince Negri)
|
||
|
Files: src/if_ole.cpp
|
||
|
|
||
|
Patch 5.5.008
|
||
|
Problem: 10000@@ takes a long time and cannot be interrupted.
|
||
|
Solution: Check for CTRL-C typed while in the loop to push the register.
|
||
|
Files: src/normal.c
|
||
|
|
||
|
Patch 5.5.009
|
||
|
Problem: Recent Sequent machines don't link with "-linet". (Kurtis Rader)
|
||
|
Solution: Remove configure check for Sequent.
|
||
|
Files: src/configure.in, src/configure
|
||
|
|
||
|
Patch 5.5.010
|
||
|
Problem: Ctags freed a memory block twice when exiting. When out of
|
||
|
memory, a misleading error message was given.
|
||
|
Solution: Update to ctags 3.3.2. Also fixes a few other problems. (Darren
|
||
|
Hiebert)
|
||
|
Files: src/ctags/*
|
||
|
|
||
|
Patch 5.5.011
|
||
|
Problem: After "CTRL-V s", the cursor jumps back to the start, while all
|
||
|
other operators leave the cursor on the last changed character.
|
||
|
(Xiangjiang Ma)
|
||
|
Solution: Position cursor on last changed character, if possible.
|
||
|
Files: src/ops.c
|
||
|
|
||
|
Patch 5.5.012
|
||
|
Problem: Using CTRL-] in Visual mode doesn't work when the text includes a
|
||
|
space (just where it's useful). (Stefan Bittner)
|
||
|
Solution: Don't escape special characters in a tag name with a backslash.
|
||
|
Files: src/normal.c
|
||
|
|
||
|
Patch 5.5.013
|
||
|
Problem: The ":append" and ":insert" commands allow using a leading
|
||
|
backslash in a line. The ":source" command concatenates those
|
||
|
lines. (Heinlein)
|
||
|
Solution: Add the 'C' flag in 'cpoptions' to switch off concatenation.
|
||
|
Files: src/ex_docmd.c, src/option.h, runtime/doc/options.txt,
|
||
|
runtime/filetype.vim, runtime/scripts.vim
|
||
|
|
||
|
Patch 5.5.014
|
||
|
Problem: When executing a register with ":@", the ":append" command would
|
||
|
get text lines with a ':' prepended. (Heinlein)
|
||
|
Solution: Remove the ':' characters.
|
||
|
Files: src/ex_docmd.c, src/ex_getln.c, src/globals.h
|
||
|
|
||
|
Patch 5.5.015
|
||
|
Problem: When using ":g/pat/p", it's hard to see where the output starts,
|
||
|
the ":g" command is overwritten. Vi keeps the ":g" command.
|
||
|
Solution: Keep the ":g" command, but allow overwriting it with the report
|
||
|
for the number of changes.
|
||
|
Files: src/ex_cmds.c
|
||
|
|
||
|
Patch 5.5.016 (extra)
|
||
|
Problem: Win32: Using regedit to install Vim in the popup menu requires the
|
||
|
user to confirm this in a dialog.
|
||
|
Solution: Use "regedit /s" to avoid the dialog
|
||
|
Files: src/dosinst.c
|
||
|
|
||
|
Patch 5.5.017
|
||
|
Problem: If an error occurs when closing the current window, Vim could get
|
||
|
stuck in the error handling.
|
||
|
Solution: Don't set curwin to NULL when closing the current window.
|
||
|
Files: src/window.c
|
||
|
|
||
|
Patch 5.5.018
|
||
|
Problem: Absolute paths in shell scripts do not always work.
|
||
|
Solution: Use /usr/bin/env to find out the path.
|
||
|
Files: runtime/doc/vim2html.pl, runtime/tools/efm_filter.pl,
|
||
|
runtime/tools/shtags.pl
|
||
|
|
||
|
Patch 5.5.019
|
||
|
Problem: A function call in 'statusline' stops using ":q" twice from
|
||
|
exiting, when the last argument hasn't been edited.
|
||
|
Solution: Don't decrement quitmore when executing a function. (Madsen)
|
||
|
Files: src/ex_docmd.c
|
||
|
|
||
|
Patch 5.5.020
|
||
|
Problem: When the output of CTRL-D completion in the commandline goes all
|
||
|
the way to the last column, there is an empty line.
|
||
|
Solution: Don't add a newline when the cursor wrapped already. (Madsen)
|
||
|
Files: src/ex_getln.c
|
||
|
|
||
|
Patch 5.5.021
|
||
|
Problem: When checking if a file name in the tags file is relative,
|
||
|
environment variables were not expanded.
|
||
|
Solution: Expand the file name before checking if it is relative. (Madsen)
|
||
|
Files: src/tag.c
|
||
|
|
||
|
Patch 5.5.022
|
||
|
Problem: When setting or resetting 'paste' the ruler wasn't updated.
|
||
|
Solution: Update the status lines when 'ruler' changes because of 'paste'.
|
||
|
Files: src/option.c
|
||
|
|
||
|
Patch 5.5.023
|
||
|
Problem: When editing a new file and autocommands change the cursor
|
||
|
position, the cursor was moved back to the first non-white, unless
|
||
|
'startofline' was reset.
|
||
|
Solution: Keep the new column, just like the line number.
|
||
|
Files: src/ex_cmds.c
|
||
|
|
||
|
Patch 5.5.024 (extra)
|
||
|
Problem: Win32 GUI: When using confirm() to put up a dialog without a
|
||
|
default button, the dialog would not have keyboard focus.
|
||
|
(Krishna)
|
||
|
Solution: Always set focus to the dialog window. Only set focus to a button
|
||
|
when a default one is specified.
|
||
|
Files: src/gui_w32.c
|
||
|
|
||
|
Patch 5.5.025
|
||
|
Problem: When using "keepend" in a syntax region, a contained match that
|
||
|
includes the end-of-line could still force that region to
|
||
|
continue, if there is another contained match in between.
|
||
|
Solution: Check the keepend_level in check_state_ends().
|
||
|
Files: src/syntax.c
|
||
|
|
||
|
Patch 5.5.026
|
||
|
Problem: When starting Vim in a white-on-black xterm, with 'bg' set to
|
||
|
"dark", and then starting the GUI with ":gui", setting 'bg' to
|
||
|
"light" in the gvimrc, the highlighting isn't set. (Tsjokwing)
|
||
|
Solution: Set the highlighting when 'bg' is changed in the gvimrc, even
|
||
|
though full_screen isn't set.
|
||
|
Files: src/option.c
|
||
|
|
||
|
Patch 5.5.027
|
||
|
Problem: Unix: os_unix.c doesn't compile when XTERM_CLIP is used but
|
||
|
WANT_TITLE isn't. (Barnum)
|
||
|
Solution: Move a few functions that are used by the X11 title and clipboard
|
||
|
and put another "#if" around it.
|
||
|
Files: src/os_unix.c
|
||
|
|
||
|
Patch 5.5.028 (extra)
|
||
|
Problem: Win32 GUI: When a file is dropped on Win32 gvim while at the ":"
|
||
|
prompt, the file is edited but the command line is actually still
|
||
|
there, the cursor goes back to command line on the next command.
|
||
|
(Krishna)
|
||
|
Solution: When dropping a file or directory on gvim while at the ":" prompt,
|
||
|
insert the name of the file/directory. Allows using the
|
||
|
file/directory name for any Ex command.
|
||
|
Files: src/gui_w32.c
|
||
|
|
||
|
Patch 5.5.029
|
||
|
Problem: "das" at the end of the file didn't delete the last character of
|
||
|
the sentence.
|
||
|
Solution: When there is no character after the sentence, make the operation
|
||
|
inclusive in current_sent().
|
||
|
Files: src/search.c
|
||
|
|
||
|
Patch 5.5.030
|
||
|
Problem: Unix: in os_unix.c, "term_str" is used, which is also defined in
|
||
|
vim.h as a macro. (wuxin)
|
||
|
Solution: Renamed "term_str" to "buf" in do_xterm_trace().
|
||
|
Files: src/os_unix.c
|
||
|
|
||
|
Patch 5.5.031 (extra)
|
||
|
Problem: Win32 GUI: When exiting Windows, gvim will leave swap files behind
|
||
|
and will be killed ungracefully. (Krishna)
|
||
|
Solution: Catch the WM_QUERYENDSESSION and WM_ENDSESSION messages and try to
|
||
|
exit gracefully. Allow the user to cancel the shutdown if there
|
||
|
is a changed buffer.
|
||
|
Files: src/gui_w32.c
|
||
|
|
||
|
Patch 5.5.032
|
||
|
Problem: Patch 5.5.025 wasn't right. And C highlighting was still not
|
||
|
working correctly for a #define.
|
||
|
Solution: Added "excludenl" argument to ":syntax", to be able not to extend
|
||
|
a containing item when there is a match with the end-of-line.
|
||
|
Files: src/syntax.c, runtime/doc/syntax.txt, runtime/syntax/c.vim
|
||
|
|
||
|
Patch 5.5.033
|
||
|
Problem: When reading from stdin, a long line in viminfo would mess up the
|
||
|
file message. readfile() uses IObuff for keep_msg, which could be
|
||
|
overwritten by anyone.
|
||
|
Solution: Copy the message from IObuff to msg_buf and set keep_msg to that.
|
||
|
Also change vim_fgets() to not use IObuff any longer.
|
||
|
Files: src/fileio.c
|
||
|
|
||
|
Patch 5.5.034
|
||
|
Problem: "gvim -rv" caused a crash. Using 't_Co' before it's set.
|
||
|
Solution: Don't try to initialize the highlighting before it has been
|
||
|
initialized from main().
|
||
|
Files: src/syntax.c
|
||
|
|
||
|
Patch 5.5.035
|
||
|
Problem: GTK with XIM: Resizing with status area was messy, and
|
||
|
":set guioptions+=b" didn't work.
|
||
|
Solution: Make status area a separate widget, but not a separate window.
|
||
|
(Chi-Deok Hwang)
|
||
|
Files: src/gui_gtk_f.c, src/gui_gtk_x11.c, src/multbyte.c
|
||
|
|
||
|
Patch 5.5.036
|
||
|
Problem: The GZIP_read() function in $VIMRUNTIME/vimrc_example.vim to
|
||
|
uncompress a file did not do detection for 'fileformat'. This is
|
||
|
because the filtering is done with 'binary' set.
|
||
|
Solution: Split the filtering into separate write, filter and read commands.
|
||
|
Files: runtime/vimrc_example.vim
|
||
|
|
||
|
Patch 5.5.037
|
||
|
Problem: The "U" command didn't mark the buffer as changed. (McCormack)
|
||
|
Solution: Set the 'modified' flag when using "U".
|
||
|
Files: src/undo.c
|
||
|
|
||
|
Patch 5.5.038
|
||
|
Problem: When typing a long ":" command, so that the screen scrolls up,
|
||
|
causes the hit-enter prompt, even though the user just typed
|
||
|
return to execute the command.
|
||
|
Solution: Reset need_wait_return if (part of) the command was typed in
|
||
|
getcmdline().
|
||
|
Files: src/ex_getln.c
|
||
|
|
||
|
Patch 5.5.039
|
||
|
Problem: When using a custom status line, "%a" (file # of #) reports the
|
||
|
index of the current window for all windows.
|
||
|
Solution: Pass a window pointer to append_arg_number(), and pass the window
|
||
|
being updated from build_stl_str_hl(). (Stephen P. Wall)
|
||
|
Files: src/buffer.c, src/screen.c, src/proto/buffer.pro
|
||
|
|
||
|
Patch 5.5.040
|
||
|
Problem: Multi-byte: When there is some error in xim_real_init(), it can
|
||
|
close XIM and return. After this there can be a segv.
|
||
|
Solution: Test "xic" for being non-NULL, don't set "xim" to NULL. Also try
|
||
|
to find more matches for supported styles. (Sung-Hyun Nam)
|
||
|
Files: src/multbyte.c
|
||
|
|
||
|
Patch 5.5.041
|
||
|
Problem: X11 GUI: CTRL-_ requires the SHIFT key only on some machines.
|
||
|
Solution: Translate CTRL-- to CTRL-_. (Robert Webb)
|
||
|
Files: src/gui_x11.c
|
||
|
|
||
|
Patch 5.5.042
|
||
|
Problem: X11 GUI: keys with ALT were assumed to be used for the menu, even
|
||
|
when the menu has been disabled by removing 'm' from 'guioptions'.
|
||
|
Solution: Ignore keys with ALT only when gui.menu_is_active is set. (Raf)
|
||
|
Files: src/gui_x11.c
|
||
|
|
||
|
Patch 5.5.043
|
||
|
Problem: GTK: Handling of fontset fonts was not right when 'guifontset'
|
||
|
contains exactly 14 times '-'.
|
||
|
Solution: Avoid setting fonts when working with a fontset. (Sung-Hyun Nam)
|
||
|
Files: src/gui_gtk_x11.c
|
||
|
|
||
|
Patch 5.5.044
|
||
|
Problem: pltags.pl contains an absolute path "/usr/local/bin/perl". That
|
||
|
might not work everywhere.
|
||
|
Solution: Use "/usr/bin/env perl" instead.
|
||
|
Files: runtime/tools/pltags.pl
|
||
|
|
||
|
Patch 5.5.045
|
||
|
Problem: Using "this_session" variable does not work, requires preceding it
|
||
|
with "v:". Default filename for ":mksession" isn't mentioned
|
||
|
in the docs. (Fisher)
|
||
|
Solution: Support using "this_session" to be backwards compatible.
|
||
|
Files: src/eval.c, runtime/doc/options.txt
|
||
|
|
||
|
Patch 5.5.046 (extra)
|
||
|
Problem: VMS: problems with path and filename.
|
||
|
Solution: Truncate file name at last ';', etc. (Zoltan Arpadffy)
|
||
|
Files: src/buffer.c, src/fileio.c, src/gui_motif.c, src/os_vms.c,
|
||
|
src/proto/os_vms.pro
|
||
|
|
||
|
Patch 5.5.047
|
||
|
Problem: VMS: Crash when using the popup menu
|
||
|
Solution: Turn the #define MENU_MODE_CHARS into an array. (Arpadffy)
|
||
|
Files: src/structs.h, src/menu.c
|
||
|
|
||
|
Patch 5.5.048
|
||
|
Problem: HP-UX 11: Compiling doesn't work, because both string.h and
|
||
|
strings.h are included. (Squassabia)
|
||
|
Solution: The configure test for including both string.h and strings.h
|
||
|
must include <Xm/Xm.h> first, because it causes problems.
|
||
|
Files: src/configure.in, src/configure, src/config.h.in
|
||
|
|
||
|
Patch 5.5.049
|
||
|
Problem: Unix: When installing Vim, the protection bits of files might be
|
||
|
influenced by the umask.
|
||
|
Solution: Add $(FILEMOD) to Makefile. (Shetye)
|
||
|
Files: src/Makefile
|
||
|
|
||
|
Patch 5.5.050
|
||
|
Problem: "z+" and "z^" commands are missing.
|
||
|
Solution: Implemented "z+" and "z^".
|
||
|
Files: src/normal.c, runtime/doc/scroll.txt, runtime/doc/index.txt
|
||
|
|
||
|
Patch 5.5.051
|
||
|
Problem: Several Unix systems have a problem with the optimization limits
|
||
|
check in configure.
|
||
|
Solution: Removed the configure check, let the user add it manually in
|
||
|
Makefile or the environment.
|
||
|
Files: src/configure.in, src/configure, src/Makefile
|
||
|
|
||
|
Patch 5.5.052
|
||
|
Problem: Crash when using a cursor key at the ATTENTION prompt. (Alberani)
|
||
|
Solution: Ignore special keys at the console dialog. Also ignore characters
|
||
|
> 255 for other uses of tolower() and toupper().
|
||
|
Files: src/menu.c, src/message.c, src/misc2.c
|
||
|
|
||
|
Patch 5.5.053
|
||
|
Problem: Indenting is wrong after a function when 'cino' has "fs". Another
|
||
|
problem when 'cino' has "{s".
|
||
|
Solution: Put line after closing "}" of a function at the left margin.
|
||
|
Apply ind_open_extra in the right way after a '{'.
|
||
|
Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
|
||
|
|
||
|
Patch 5.5.054
|
||
|
Problem: Unix: ":e #" doesn't work if the alternate file name contains a
|
||
|
space or backslash. (Hudacek)
|
||
|
Solution: When replacing "#", "%" or other items that stand for a file name,
|
||
|
prepend a backslash before special characters.
|
||
|
Files: src/ex_docmd.c
|
||
|
|
||
|
Patch 5.5.055
|
||
|
Problem: Using "<C-V>$r-" in blockwise Visual mode replaces one character
|
||
|
beyond the end of the line. (Zivkov)
|
||
|
Solution: Only replace existing characters.
|
||
|
Files: src/ops.c
|
||
|
|
||
|
Patch 5.5.056
|
||
|
Problem: After "z20<CR>" messages were printed at the old command line
|
||
|
position once. (Veselinovic)
|
||
|
Solution: Set msg_row and msg_col when changing cmdline_row in
|
||
|
win_setheight().
|
||
|
Files: src/window.c
|
||
|
|
||
|
Patch 5.5.057
|
||
|
Problem: After "S<Esc>" it should be possible to restore the line with "U".
|
||
|
(Veselinovic)
|
||
|
Solution: Don't call u_clearline() in op_delete() when changing only one
|
||
|
line.
|
||
|
Files: src/ops.c
|
||
|
|
||
|
Patch 5.5.058
|
||
|
Problem: Using a long search pattern and then "n" causes the hit-enter
|
||
|
prompt. (Krishna)
|
||
|
Solution: Truncate the echoed pattern, like other messages. Moved code for
|
||
|
truncating from msg_attr() to msg_strtrunc().
|
||
|
Files: src/message.c, src/proto/message.pro, src/search.c
|
||
|
|
||
|
Patch 5.5.059
|
||
|
Problem: GTK GUI: When $term is invalid, using "gvim" gives an error
|
||
|
message, even though $term isn't really used. (Robbins)
|
||
|
Solution: When the GUI is about to start, skip the error messages for a
|
||
|
wrong $term.
|
||
|
Files: src/term.c
|
||
|
|
||
|
Patch 5.5.060 (extra)
|
||
|
Problem: Dos 32 bit: When a directory in 'backupdir' doesn't exist, ":w"
|
||
|
causes the file to be renamed to "axlqwqhy.ba~". (Matzdorf)
|
||
|
Solution: The code to work around a LFN bug in Windows 95 doesn't handle a
|
||
|
non-existing target name correctly. When renaming fails, make
|
||
|
sure the file has its original name. Also do this for the Win32
|
||
|
version, although it's unlikely that it runs into this problem.
|
||
|
Files: src/os_msdos.c, src/os_win32.c
|
||
|
|
||
|
Patch 5.5.061
|
||
|
Problem: When using "\:" in a modeline, the backslash is included in the
|
||
|
option value. (Mohsin)
|
||
|
Solution: Remove one backslash before the ':' in a modeline.
|
||
|
Files: src/buffer.c, runtime/doc/options.txt
|
||
|
|
||
|
Patch 5.5.062 (extra)
|
||
|
Problem: Win32 console: Temp files are created in the root of the current
|
||
|
drive, which may be read-only. (Peterson)
|
||
|
Solution: Use the same mechanism of the GUI version: Use $TMP, $TEMP or the
|
||
|
current directory. Cleaned up vim_tempname() a bit.
|
||
|
Files: src/fileio.c, src/os_win32.h, runtime/doc/os_dos.txt
|
||
|
|
||
|
Patch 5.5.063
|
||
|
Problem: When using whole-line completion in Insert mode, 'cindent' is
|
||
|
applied, even after changing the indent of the line.
|
||
|
Solution: Don't reindent the completed line after inserting/removing indent.
|
||
|
(Robert Webb)
|
||
|
Files: src/edit.c
|
||
|
|
||
|
Patch 5.5.064
|
||
|
Problem: has("sniff") doesn't work correctly.
|
||
|
Solution: Return 1 when Vim was compiled with the +sniff feature. (Pruemmer)
|
||
|
Files: src/eval.c
|
||
|
|
||
|
Patch 5.5.065
|
||
|
Problem: When dropping a file on Vim, the 'shellslash' option is not
|
||
|
effective. (Krishna)
|
||
|
Solution: Fix the slashes in the dropped file names according to
|
||
|
'shellslash'.
|
||
|
Files: src/ex_docmd.c, runtime/doc/options.txt
|
||
|
|
||
|
Patch 5.5.066
|
||
|
Problem: For systems with backslash in file name: Setting a file name
|
||
|
option to a value starting with "\\machine" removed a backslash.
|
||
|
Solution: Keep the double backslash for "\\machine", but do change
|
||
|
"\\\\machine" to "\\machine" for backwards compatibility.
|
||
|
Files: src/option.c, runtime/doc/options.txt
|
||
|
|
||
|
Patch 5.5.067
|
||
|
Problem: With 'hlsearch' set, the pattern "\>" doesn't highlight the first
|
||
|
match in a line. (Benji Fisher)
|
||
|
Solution: Fix highlighting an empty match. Also highlight the first
|
||
|
character in an empty line for "$".
|
||
|
Files: src/screen.c
|
||
|
|
||
|
Patch 5.5.068
|
||
|
Problem: Crash when a ":while" is used with an argument that has an error.
|
||
|
(Sylvain Viart)
|
||
|
Solution: Was using an uninitialized index in the cs_line[] array. The
|
||
|
crash only happened when the index was far off. Made sure the
|
||
|
uninitialized index isn't used.
|
||
|
Files: src/ex_docmd.c
|
||
|
|
||
|
Patch 5.5.069
|
||
|
Problem: Shifting lines in blockwise Visual mode didn't set the 'modified'
|
||
|
flag.
|
||
|
Solution: Do set the 'modified' flag.
|
||
|
Files: src/ops.c
|
||
|
|
||
|
Patch 5.5.070
|
||
|
Problem: When editing a new file, creating that file outside of Vim, then
|
||
|
editing it again, ":w" still warns for overwriting an existing
|
||
|
file. (Nam)
|
||
|
Solution: The BF_NEW flag in the "b_flags" field wasn't cleared properly.
|
||
|
Files: src/buffer.c, src/fileio.c
|
||
|
|
||
|
Patch 5.5.071
|
||
|
Problem: Using a matchgroup in a ":syn region", which is the same syntax
|
||
|
group as the region, didn't stop a contained item from matching in
|
||
|
the start pattern.
|
||
|
Solution: Also push an item on the stack when the syntax ID of the
|
||
|
matchgroup is the same as the syntax ID of the region.
|
||
|
Files: src/syntax.c
|
||
|
|
||
|
Patch 5.5.072 (extra)
|
||
|
Problem: Dos 32 bit: When setting 'columns' to a too large value, Vim may
|
||
|
crash, and the DOS console too.
|
||
|
Solution: Check that the value of 'columns' isn't larger than the number of
|
||
|
columns that the BIOS reports.
|
||
|
Files: src/os_msdos.c, src/proto/os_msdos.pro, src/option.c
|
||
|
|
||
|
Patch 5.5.073 (extra)
|
||
|
Problem: Win 32 GUI: The Find and Find/Replace dialogs didn't show the
|
||
|
"match case" checkbox. The Find/Replace dialog didn't handle the
|
||
|
"match whole word" checkbox.
|
||
|
Solution: Support the "match case" and "match whole word" checkboxes.
|
||
|
Files: src/gui_w32.c
|
||
|
|
||
|
Patch 5.6a.001
|
||
|
Problem: Using <C-End> with a count doesn't work like it does with "G".
|
||
|
(Benji Fisher)
|
||
|
Solution: Accept a count for <C-End> and <C-Home>.
|
||
|
Files: src/normal.c
|
||
|
|
||
|
Patch 5.6a.002
|
||
|
Problem: The script for conversion to HTML was an older version.
|
||
|
Solution: Add support for running 2html.vim on a color terminal.
|
||
|
Files: runtime/syntax/2html.vim
|
||
|
|
||
|
Patch 5.6a.003
|
||
|
Problem: Defining a function inside a function didn't give an error
|
||
|
message. A missing ":endfunction" doesn't give an error message.
|
||
|
Solution: Allow defining a function inside a function.
|
||
|
Files: src/eval.c, runtime/doc/eval.txt
|
||
|
|
||
|
Patch 5.6a.004
|
||
|
Problem: A missing ":endwhile" or ":endif" doesn't give an error message.
|
||
|
(Johannes Zellner)
|
||
|
Solution: Check for missing ":endwhile" and ":endif" in sourced files.
|
||
|
Add missing ":endif" in file selection macros.
|
||
|
Files: src/ex_docmd.c, runtime/macros/file_select.vim
|
||
|
|
||
|
Patch 5.6a.005
|
||
|
Problem: 'hlsearch' was not listed alphabetically. The value of 'toolbar'
|
||
|
was changed when 'compatible' is set.
|
||
|
Solution: Moved entry of 'hlsearch' in options[] table down.
|
||
|
Don't reset 'toolbar' option to the default value when
|
||
|
'compatible' is set.
|
||
|
Files: src/option.c
|
||
|
|
||
|
Patch 5.6a.006
|
||
|
Problem: Using a backwards range inside ":if 0" gave an error message.
|
||
|
Solution: Don't complain about a range when it is not going to be used.
|
||
|
(Stefan Roemer)
|
||
|
Files: src/ex_docmd.c
|
||
|
|
||
|
Patch 5.6a.007
|
||
|
Problem: ":let" didn't show internal Vim variables. (Ron Aaron)
|
||
|
Solution: Do show ":v" variables for ":let" and ":let v:name".
|
||
|
Files: src/eval.c
|
||
|
|
||
|
Patch 5.6a.008
|
||
|
Problem: Selecting a syntax from the Syntax menu gives an error message.
|
||
|
Solution: Replace "else if" in SetSyn() with "elseif". (Ronald Schild)
|
||
|
Files: runtime/menu.vim
|
||
|
|
||
|
Patch 5.6a.009
|
||
|
Problem: When compiling with +extra_search but without +syntax, there is a
|
||
|
compilation error in screen.c. (Axel Kielhorn)
|
||
|
Solution: Adjust the #ifdef for declaring and initializing "line" in
|
||
|
win_line(). Also solve compilation problem when +statusline is
|
||
|
used without +eval. Another one when +cmdline_compl is used
|
||
|
without +eval.
|
||
|
Files: src/screen.c, src/misc2.c
|
||
|
|
||
|
Patch 5.6a.010
|
||
|
Problem: In a function, ":startinsert!" does not append to the end of the
|
||
|
line if a ":normal" command was used to move the cursor. (Fisher)
|
||
|
Solution: Reset "w_set_curswant" to avoid that w_curswant is changed again.
|
||
|
Files: src/ex_docmd.c
|
||
|
|
||
|
Patch 5.6a.011 (depends on 5.6a.004)
|
||
|
Problem: A missing ":endif" or ":endwhile" in a function doesn't give an
|
||
|
error message.
|
||
|
Solution: Give that error message.
|
||
|
Files: src/ex_docmd.c
|
||
|
|
||
|
Patch 5.6a.012 (depends on 5.6a.008)
|
||
|
Problem: Some Syntax menu entries caused a hit-enter prompt.
|
||
|
Solution: Call a function to make the command shorter. Also rename a few
|
||
|
functions to avoid name clashes.
|
||
|
Files: runtime/menu.vim
|
||
|
|
||
|
Patch 5.6a.013
|
||
|
Problem: Command line completion works different when another completion
|
||
|
was done earlier. (Johannes Zellner)
|
||
|
Solution: Reset wim_index when starting a new completion.
|
||
|
Files: src/ex_getln.c
|
||
|
|
||
|
Patch 5.6a.014
|
||
|
Problem: Various warning messages when compiling and running lint with
|
||
|
different combinations of features.
|
||
|
Solution: Fix the warning messages.
|
||
|
Files: src/eval.c, src/ex_cmds.c, src/ex_docmd.c, src/gui_gtk_x11.c,
|
||
|
src/option.c, src/screen.c, src/search.c, src/syntax.c,
|
||
|
src/feature.h, src/globals.h
|
||
|
|
||
|
Patch 5.6a.015
|
||
|
Problem: The vimtutor command doesn't always know the value of $VIMRUNTIME.
|
||
|
Solution: Let Vim expand $VIMRUNTIME, instead of the shell.
|
||
|
Files: src/vimtutor
|
||
|
|
||
|
Patch 5.6a.016 (extra)
|
||
|
Problem: Mac: Window size is restricted when starting. Cannot drag the
|
||
|
window all over the desktop.
|
||
|
Solution: Get real screen size instead of assuming 640x400. Do not use a
|
||
|
fixed number for the drag limits. (Axel Kielhorn)
|
||
|
Files: src/gui_mac.c
|
||
|
|
||
|
Patch 5.6a.017
|
||
|
Problem: The "Paste" entry in popup menu for Visual, Insert and Cmdline
|
||
|
mode is in the wrong position. (Stol)
|
||
|
Solution: Add priority numbers for all Paste menu entries.
|
||
|
Files: runtime/menu.vim
|
||
|
|
||
|
Patch 5.6a.018
|
||
|
Problem: GTK GUI: submenu priority doesn't work.
|
||
|
Help dialog could be destroyed too soon.
|
||
|
When closing a dialog window (e.g. the "ATTENTION" one), Vim would
|
||
|
just hang.
|
||
|
When GTK theme is changed, Vim doesn't adjust to the new colors.
|
||
|
Argument for ":promptfind" isn't used.
|
||
|
Solution: Fixed the mentioned problems.
|
||
|
Made the dialogs look&feel nicer.
|
||
|
Moved functions to avoid the need for a forward declaration.
|
||
|
Fixed reentrancy of the file browser dialog.
|
||
|
Added drag&drop support for GNOME.
|
||
|
Init the text for the Find/replace dialog from the last used
|
||
|
search string. Set "match whole word" toggle button correctly.
|
||
|
Made repeat rate for drag outside of window depend on the
|
||
|
distance from the window. (Marcin Dalecki)
|
||
|
Made the drag in Visual mode actually work.
|
||
|
Removed recursiveness protection from gui_mch_get_rgb(), it might
|
||
|
cause more trouble than it solves.
|
||
|
Files: src/ex_docmd.c, src/gui_gtk.c, src/gui_gtk_x11.c, src/ui.c,
|
||
|
src/proto/ui.pro, src/misc2.c
|
||
|
|
||
|
Patch 5.6a.019
|
||
|
Problem: When trying to recover through NFS, which uses a large block size,
|
||
|
Vim might think the swap file is empty, because mf_blocknr_max is
|
||
|
zero. (Scott McDermott)
|
||
|
Solution: When computing the number of blocks of the file in mf_open(),
|
||
|
round up instead of down.
|
||
|
Files: src/memfile.c
|
||
|
|
||
|
Patch 5.6a.020
|
||
|
Problem: GUI GTK: Could not set display for gvim.
|
||
|
Solution: Add "-display" and "--display" arguments. (Marcin Dalecki)
|
||
|
Files: src/gui_gtk_x11.c
|
||
|
|
||
|
Patch 5.6a.021
|
||
|
Problem: Recovering still may not work when the block size of the device
|
||
|
where the swap file is located is larger than 4096.
|
||
|
Solution: Read block 0 with the minimal block size.
|
||
|
Files: src/memline.c, src/memfile.c, src/vim.h
|
||
|
|
||
|
Patch 5.6a.022 (extra)
|
||
|
Problem: Win32 GUI: When an error in the vimrc causes a dialog to pop up
|
||
|
(e.g., for an existing swap file), Vim crashes. (David Elins)
|
||
|
Solution: Before showing a dialog, open the main window.
|
||
|
Files: src/gui_w32.c
|
||
|
|
||
|
Patch 5.6a.023
|
||
|
Problem: Using expand("%:gs??/?") causes a crash. (Ron Aaron)
|
||
|
Solution: Check for running into the end of the string in do_string_sub().
|
||
|
Files: src/eval.c
|
||
|
|
||
|
Patch 5.6a.024
|
||
|
Problem: Using an autocommand to delete a buffer when leaving it can cause
|
||
|
a crash when jumping to a tag. (Franz Gorkotte)
|
||
|
Solution: In do_tag(), store tagstacklen before jumping to another buffer.
|
||
|
Check tagstackidx after jumping to another buffer.
|
||
|
Add extra check in win_split() if tagname isn't NULL.
|
||
|
Files: src/tag.c, src/window.c
|
||
|
|
||
|
Patch 5.6a.025 (extra)
|
||
|
Problem: Win32 GUI: The tables for toupper() and tolower() are initialized
|
||
|
too late. (Mike Steed)
|
||
|
Solution: Move the initialization to win32_init() and call it from main().
|
||
|
Files: src/main.c, src/os_w32.c, src/proto/os_w32.pro
|
||
|
|
||
|
Patch 5.6a.026
|
||
|
Problem: When the SNiFF connection is open, shell commands hang. (Pruemmer)
|
||
|
Solution: Skip a second wait() call if waitpid() already detected that the
|
||
|
child has exited.
|
||
|
Files: src/os_unix.c
|
||
|
|
||
|
Patch 5.6a.027 (extra)
|
||
|
Problem: Win32 GUI: The "Edit with Vim" popup menu entry causes problems
|
||
|
for the Office toolbar.
|
||
|
Solution: Use a shell extension dll. (Tianmiao Hu)
|
||
|
Added it to the install and uninstal programs, replaces the old
|
||
|
"Edit with Vim" menu registry entries.
|
||
|
Files: src/dosinst.c, src/uninstal.c, gvimext/*, runtime/doc/gui_w32.txt
|
||
|
|
||
|
Patch 5.6a.028 (extra)
|
||
|
Problem: Win32 GUI: Dialogs and tear-off menus can't handle multi-byte
|
||
|
characters.
|
||
|
Solution: Adjust nCopyAnsiToWideChar() to handle multi-byte characters
|
||
|
correctly.
|
||
|
Files: src/gui_w32.c
|
||
|
|
||
|
==============================================================================
|
||
|
VERSION 5.7 *version-5.7*
|
||
|
|
||
|
Version 5.7 is a bug-fix version of 5.6.
|
||
|
|
||
|
Changed *changed-5.7*
|
||
|
-------
|
||
|
|
||
|
Renamed src/INSTALL.mac to INSTALL_mac.txt to avoid it being recognized with a
|
||
|
wrong file type. Also renamed src/INSTALL.amiga to INSTALL_ami.txt.
|
||
|
|
||
|
|
||
|
Added *added-5.7*
|
||
|
-----
|
||
|
|
||
|
New syntax files:
|
||
|
stp Stored Procedures (Jeff Lanzarotta)
|
||
|
snnsnet, snnspat, snnsres SNNS (Davide Alberani)
|
||
|
mel MEL (Robert Minsk)
|
||
|
ruby Ruby (Mirko Nasato)
|
||
|
tli TealInfo (Kurt W. Andrews)
|
||
|
ora Oracle config file (Sandor Kopanyi)
|
||
|
abaqus Abaqus (Carl Osterwisch)
|
||
|
jproperties Java Properties (Simon Baldwin)
|
||
|
apache Apache config (Allan Kelly)
|
||
|
csp CSP (Jan Bredereke)
|
||
|
samba Samba config (Rafael Garcia-Suarez)
|
||
|
kscript KDE script (Thomas Capricelli)
|
||
|
hb Hyper Builder (Alejandro Forero Cuervo)
|
||
|
fortran Fortran (rewritten) (Ajit J. Thakkar)
|
||
|
sml SML (Fabrizio Zeno Cornelli)
|
||
|
cvs CVS commit (Matt Dunford)
|
||
|
aspperl ASP Perl (Aaron Hope)
|
||
|
bc BC calculator (Vladimir Scholtz)
|
||
|
latte Latte (Nick Moffitt)
|
||
|
wml WML (Gerfried Fuchs)
|
||
|
|
||
|
Included Exuberant ctags 3.5.1. (Darren Hiebert)
|
||
|
|
||
|
"display" and "fold" arguments for syntax items. For future extension, they
|
||
|
are ignored now.
|
||
|
|
||
|
strftime() function for the Macintosh.
|
||
|
|
||
|
macros/explorer.vim: A file browser script (M A Aziz Ahmed)
|
||
|
|
||
|
|
||
|
Fixed *fixed-5.7*
|
||
|
-----
|
||
|
|
||
|
The 16 bit MS-DOS version is now compiled with Bcc 3.1 instead of 4.0. The
|
||
|
executable is smaller.
|
||
|
|
||
|
When a "make test" failed, the output file was lost. Rename it to
|
||
|
test99.failed to be able to see what went wrong.
|
||
|
|
||
|
After sourcing bugreport.vim, it's not clear that bugreport.txt has been
|
||
|
written in the current directory. Edit bugreport.txt to avoid that.
|
||
|
|
||
|
Adding IME support when using Makefile.w32 didn't work. (Taro Muraoka)
|
||
|
|
||
|
Win32 console: Mouse drags were passed on even when the mouse didn't move.
|
||
|
|
||
|
Perl interface: In Buffers(), type of argument to SvPV() was int, should be
|
||
|
STRLEN. (Tony Leneis)
|
||
|
|
||
|
Problem with prototype for index() on AIX 4.3.0. Added check for _AIX43 in
|
||
|
os_unix.h. (Jake Hamby)
|
||
|
|
||
|
Mappings in mswin.vim could break when some commands are mapped. Add "nore"
|
||
|
to most mappings to avoid re-mapping.
|
||
|
|
||
|
modify_fname() made a copy of a file name for ":p" when it already was a full
|
||
|
path name, which is a bit slow.
|
||
|
|
||
|
Win32 with Borland C++ 5.5: Pass the path to the compiler on to xxd and ctags,
|
||
|
to avoid depending on $PATH. Fixed "make clean".
|
||
|
|
||
|
Many fixes to Macintosh specific parts: (mostly by Dany StAmant)
|
||
|
- Only one Help menu.
|
||
|
- No more crash when removing a menu item.
|
||
|
- Support as External Editor for Codewarrior (still some little glitches).
|
||
|
- Popup menu support.
|
||
|
- Fixed crash when pasting after application switch.
|
||
|
- Color from rgb.txt properly displayed.
|
||
|
- 'isprint' default includes all chars above '~'. (Axel Kielhorn)
|
||
|
- mac_expandpath() was leaking memory.
|
||
|
- Add digraphs table. (Axel Kielhorn)
|
||
|
- Multi-byte support: (Kenichi Asai)
|
||
|
Switch keyscript when going in/out of Insert mode.
|
||
|
Draw multi-byte character correctly.
|
||
|
Don't use mblen() but highest bit of char to detect multi-byte char.
|
||
|
Display value of multi-byte in statusline (also for other systems).
|
||
|
- mouse button was not initialized properly to MOUSE_LEFT when
|
||
|
USE_CTRLCLICKMENU not defined.
|
||
|
- With Japanese SJIS characters: Make "w", "b", and "e" work
|
||
|
properly. (Kenichi Asai)
|
||
|
- Replaced old CodeWarrior file os_mac.CW9.hqx with os_mac.cw5.sit.hqx.
|
||
|
|
||
|
Fixes for VMS: (Zoltan Arpadffy) (also see patch 5.6.045 below)
|
||
|
- Added Makefile_vms.mms and vimrc.vms to src/testdir to be able to run the
|
||
|
tests.
|
||
|
- Various fixes.
|
||
|
- Set 'undolevels' to 1000 by default.
|
||
|
- Made mch_settitle() equivalent to the one in os_unix.c.
|
||
|
|
||
|
RiscOS: A few prototypes for os_riscos.c were outdated. Generate prototypes
|
||
|
automatically.
|
||
|
|
||
|
|
||
|
Previously released patches:
|
||
|
|
||
|
Patch 5.6.001
|
||
|
Problem: When using "set bs=0 si cin", Inserting "#<BS>" or "}<BS>" which
|
||
|
reduces the indent doesn't delete the "#" or "}". (Lorton)
|
||
|
Solution: Adjust ai_col in ins_try_si().
|
||
|
Files: src/edit.c
|
||
|
|
||
|
Patch 5.6.002
|
||
|
Problem: When using the vim.vim syntax file, a comment with all uppercase
|
||
|
characters causes a hang.
|
||
|
Solution: Adjust pattern for vimCommentTitle (Charles Campbell)
|
||
|
Files: runtime/syntax/vim.vim
|
||
|
|
||
|
Patch 5.6.003
|
||
|
Problem: GTK GUI: Loading a user defined toolbar bitmap gives a warning
|
||
|
about the colormap. Probably because the window has not been
|
||
|
opened yet.
|
||
|
Solution: Use gdk_pixmap_colormap_create_from_xpm() to convert the xpm file.
|
||
|
(Keith Radebaugh)
|
||
|
Files: src/gui_gtk.c
|
||
|
|
||
|
Patch 5.6.004 (extra)
|
||
|
Problem: Win32 GUI with IME: When setting 'guifont' to "*", the font
|
||
|
requester appears twice.
|
||
|
Solution: In gui_mch_init_font() don't call get_logfont() but copy
|
||
|
norm_logfont from fh. (Yasuhiro Matsumoto)
|
||
|
Files: src/gui_w32.c
|
||
|
|
||
|
Patch 5.6.005
|
||
|
Problem: When 'winminheight' is zero, CTRL-W - with a big number causes a
|
||
|
crash. (David Kotchan)
|
||
|
Solution: Check for negative window height in win_setheight().
|
||
|
Files: src/window.c
|
||
|
|
||
|
Patch 5.6.006
|
||
|
Problem: GTK GUI: Bold font cannot always be used. Memory is freed too
|
||
|
early in gui_mch_init_font().
|
||
|
Solution: Move call to g_free() to after where sdup is used. (Artem Hodyush)
|
||
|
Files: src/gui_gtk_x11.c
|
||
|
|
||
|
Patch 5.6.007 (extra)
|
||
|
Problem: Win32 IME: Font is not changed when screen font is changed. And
|
||
|
IME composition window does not trace the cursor.
|
||
|
Solution: Initialize IME font. When cursor is moved, set IME composition
|
||
|
window with ImeSetCompositionWindow(). Add call to
|
||
|
ImmReleaseContext() in several places. (Taro Muraoka)
|
||
|
Files: src/gui.c, src/gui_w32.c, src/proto/gui_w32.pro
|
||
|
|
||
|
Patch 5.6.008 (extra)
|
||
|
Problem: Win32: When two files exist with the same name but different case
|
||
|
(through NFS or Samba), fixing the file name case could cause the
|
||
|
wrong one to be edited.
|
||
|
Solution: Prefer a perfect match above a match while ignoring case in
|
||
|
fname_case(). (Flemming Madsen)
|
||
|
Files: src/os_win32.c
|
||
|
|
||
|
Patch 5.6.009 (extra)
|
||
|
Problem: Win32 GUI: Garbage in Windows Explorer help line when selecting
|
||
|
"Edit with Vim" popup menu entry.
|
||
|
Solution: Only return the help line when called with the GCS_HELPTEXT flag.
|
||
|
(Tianmiao Hu)
|
||
|
Files: GvimExt/gvimext.cpp
|
||
|
|
||
|
Patch 5.6.010
|
||
|
Problem: A file name which contains a TAB was not read correctly from the
|
||
|
viminfo file and the ":ls" listing was not aligned properly.
|
||
|
Solution: Parse the buffer list lines in the viminfo file from the end
|
||
|
backwards. Count a Tab for two characters to align the ":ls" list.
|
||
|
Files: src/buffer.c
|
||
|
|
||
|
Patch 5.6.011
|
||
|
Problem: When 'columns' is huge (using a tiny font) and 'statusline' is
|
||
|
used, Vim can crash.
|
||
|
Solution: Limit maxlen to MAXPATHL in win_redr_custom(). (John Mullin)
|
||
|
Files: src/screen.c
|
||
|
|
||
|
Patch 5.6.012
|
||
|
Problem: When using "zsh" for /bin/sh, toolcheck may hang until "exit" is
|
||
|
typed. (Kuratczyk)
|
||
|
Solution: Add "-c exit" when checking for the shell version.
|
||
|
Files: src/toolcheck
|
||
|
|
||
|
Patch 5.6.013
|
||
|
Problem: Multibyte char in tooltip is broken.
|
||
|
Solution: Consider multibyte char in replace_termcodes(). (Taro Muraoka)
|
||
|
Files: src/term.c
|
||
|
|
||
|
Patch 5.6.014
|
||
|
Problem: When cursor is at the end of line and the character under cursor
|
||
|
is a multibyte character, "yl" doesn't yank 1 multibyte-char.
|
||
|
(Takuhiro Nishioka)
|
||
|
Solution: Recognize a multibyte-char at end-of-line correctly in oneright().
|
||
|
(Taro Muraoka)
|
||
|
Also: make "+quickfix" in ":version" output appear alphabetically.
|
||
|
Files: src/edit.c
|
||
|
|
||
|
Patch 5.6.015
|
||
|
Problem: New xterm delete key sends <Esc>[3~ by default.
|
||
|
Solution: Added <kDel> and <kIns> to make the set of keypad keys complete.
|
||
|
Files: src/edit.c, src/ex_getln.c, src/keymap.h, src/misc1.c,
|
||
|
src/misc2.c, src/normal.c, src/os_unix.c, src/term.c
|
||
|
|
||
|
Patch 5.6.016
|
||
|
Problem: When deleting a search string from history from inside a mapping,
|
||
|
another entry is deleted too. (Benji Fisher)
|
||
|
Solution: Reset last_maptick when deleting the last entry of the search
|
||
|
history. Also: Increment maptick when starting a mapping from
|
||
|
typed characters to avoid a just added search string being
|
||
|
overwritten or removed from history.
|
||
|
Files: src/ex_getln.c, src/getchar.c
|
||
|
|
||
|
Patch 5.6.017
|
||
|
Problem: ":s/e/\^M/" should replace an "e" with a CTRL-M, not split the
|
||
|
line. (Calder)
|
||
|
Solution: Replace the backslash with a CTRL-V internally. (Stephen P. Wall)
|
||
|
Files: src/ex_cmds.c
|
||
|
|
||
|
Patch 5.6.018
|
||
|
Problem: ":help [:digit:]" takes a long time to jump to the wrong place.
|
||
|
Solution: Insert a backslash to avoid the special meaning of '[]'.
|
||
|
Files: src/ex_cmds.c
|
||
|
|
||
|
Patch 5.6.019
|
||
|
Problem: "snd.c", "snd.java", etc. were recognized as "mail" filetype.
|
||
|
Solution: Make pattern for mail filetype more strict.
|
||
|
Files: runtime/filetype.vim
|
||
|
|
||
|
Patch 5.6.020 (extra)
|
||
|
Problem: The DJGPP version eats processor time (Walter Briscoe).
|
||
|
Solution: Call __dpmi_yield() in the busy-wait loop.
|
||
|
Files: src/os_msdos.c
|
||
|
|
||
|
Patch 5.6.021
|
||
|
Problem: When 'selection' is "exclusive", a double mouse click in Insert
|
||
|
mode doesn't select last char in line. (Lutz)
|
||
|
Solution: Allow leaving the cursor on the NUL past the line in this case.
|
||
|
Files: src/edit.c
|
||
|
|
||
|
Patch 5.6.022
|
||
|
Problem: ":e \~<Tab>" expands to ":e ~\$ceelen", which doesn't work.
|
||
|
Solution: Re-insert the backslash before the '~'.
|
||
|
Files: src/ex_getln.c
|
||
|
|
||
|
Patch 5.6.023 (extra)
|
||
|
Problem: Various warnings for the Ming compiler.
|
||
|
Solution: Changes to avoid the warnings. (Bill McCarthy)
|
||
|
Files: src/ex_cmds.c, src/gui_w32.c, src/os_w32exe.c, src/os_win32.c,
|
||
|
src/syntax.c, src/vim.rc
|
||
|
|
||
|
Patch 5.6.024 (extra)
|
||
|
Problem: Win32 console: Entering CTRL-_ requires the shift key. (Kotchan)
|
||
|
Solution: Specifically catch keycode 0xBD, like the GUI.
|
||
|
Files: src/os_win32.c
|
||
|
|
||
|
Patch 5.6.025
|
||
|
Problem: GTK GUI: Starting the GUI could be interrupted by a SIGWINCH.
|
||
|
(Nils Lohner)
|
||
|
Solution: Repeat the read() call to get the gui_in_use value when
|
||
|
interrupted by a signal.
|
||
|
Files: src/gui.c
|
||
|
|
||
|
Patch 5.6.026 (extra)
|
||
|
Problem: Win32 GUI: Toolbar bitmaps are searched for in
|
||
|
$VIMRUNTIME/bitmaps, while GTK looks in $VIM/bitmaps. (Keith
|
||
|
Radebaugh)
|
||
|
Solution: Use $VIM/bitmaps for both, because these are not part of the
|
||
|
distribution but defined by the user.
|
||
|
Files: src/gui_w32.c, runtime/doc/gui.txt
|
||
|
|
||
|
Patch 5.6.027
|
||
|
Problem: TCL: Crash when using a Tcl script (reported for Win32).
|
||
|
Solution: Call Tcl_FindExecutable() in main(). (Brent Fulgham)
|
||
|
Files: src/main.c
|
||
|
|
||
|
Patch 5.6.028
|
||
|
Problem: Xterm patch level 126 sends codes for mouse scroll wheel.
|
||
|
Fully works with xterm patch level 131.
|
||
|
Solution: Recognize the codes for button 4 (0x60) and button 5 (0x61).
|
||
|
Files: src/term.c
|
||
|
|
||
|
Patch 5.6.029
|
||
|
Problem: GTK GUI: Shortcut keys cannot be used for a dialog. (Johannes
|
||
|
Zellner)
|
||
|
Solution: Add support for shortcut keys. (Marcin Dalecki)
|
||
|
Files: src/gui_gtk.c
|
||
|
|
||
|
Patch 5.6.030
|
||
|
Problem: When closing a window and 'ea' is set, Vim can crash. (Yasuhiro
|
||
|
Matsumoto)
|
||
|
Solution: Set "curbuf" to a valid value in win_close().
|
||
|
Files: src/window.c
|
||
|
|
||
|
Patch 5.6.031
|
||
|
Problem: Multi-byte: When a double-byte character ends in CSI, Vim waits
|
||
|
for another character to be typed.
|
||
|
Solution: Recognize the CSI as the second byte of a character and don't wait
|
||
|
for another one. (Yasuhiro Matsumoto)
|
||
|
Files: src/getchar.c
|
||
|
|
||
|
Patch 5.6.032
|
||
|
Problem: Functions with an argument that is a line number don't all accept
|
||
|
".", "$", etc. (Ralf Arens)
|
||
|
Solution: Add get_art_lnum() and use it for setline(), line2byte() and
|
||
|
synID().
|
||
|
Files: src/eval.c
|
||
|
|
||
|
Patch 5.6.033
|
||
|
Problem: Multi-byte: "f " sometimes skips to the second space. (Sung-Hyun
|
||
|
Nam)
|
||
|
Solution: Change logic in searchc() to skip trailing byte of a double-byte
|
||
|
character.
|
||
|
Also: Ask for second byte when searching for double-byte
|
||
|
character. (Park Chong-Dae)
|
||
|
Files: src/search.c
|
||
|
|
||
|
Patch 5.6.034 (extra)
|
||
|
Problem: Compiling with Borland C++ 5.5 fails on tolower() and toupper().
|
||
|
Solution: Use TO_LOWER() and TO_UPPER() instead. Also adjust the Makefile
|
||
|
to make using bcc 5.5 easier.
|
||
|
Files: src/edit.c, src/ex_docmd.c, src/misc1.c, src/Makefile.bor
|
||
|
|
||
|
Patch 5.6.035
|
||
|
Problem: Listing the"+comments" feature in the ":version" output depended
|
||
|
on the wrong ID. (Stephen P. Wall)
|
||
|
Solution: Change "CRYPTV" to "COMMENTS".
|
||
|
Files: src/version.c
|
||
|
|
||
|
Patch 5.6.036
|
||
|
Problem: GTK GUI: Copy/paste text doesn't work between gvim and Eterm.
|
||
|
Solution: Support TEXT and COMPOUND_TEXT selection targets. (ChiDeok Hwang)
|
||
|
Files: src/gui_gtk_x11.c
|
||
|
|
||
|
Patch 5.6.037
|
||
|
Problem: Multi-byte: Can't use "f" command with multi-byte character in GUI.
|
||
|
Solution: Enable XIM in Normal mode for the GUI. (Sung-Hyun Nam)
|
||
|
Files: src/gui_gtk_x11.c, src/multbyte.c
|
||
|
|
||
|
Patch 5.6.038
|
||
|
Problem: Multi-clicks in GUI are interpreted as a mouse wheel click. When
|
||
|
'ttymouse' is "xterm" a mouse click is interpreted as a mouse
|
||
|
wheel click.
|
||
|
Solution: Don't recognize the mouse wheel in check_termcode() in the GUI.
|
||
|
Use 0x43 for a mouse drag in do_xterm_trace(), not 0x63.
|
||
|
Files: src/term.c, src/os_unix.c
|
||
|
|
||
|
Patch 5.6.039
|
||
|
Problem: Motif GUI under KDE: When trying to logout, Vim hangs up the
|
||
|
system. (Hermann Rochholz)
|
||
|
Solution: When handling the WM_SAVE_YOURSELF event, set the WM_COMMAND
|
||
|
property of the window to let the session manager know we finished
|
||
|
saving ourselves.
|
||
|
Files: src/gui_x11.c
|
||
|
|
||
|
Patch 5.6.040
|
||
|
Problem: When using ":s" command, matching the regexp is done twice.
|
||
|
Solution: After copying the matched line, adjust the pointers instead of
|
||
|
finding the match again. (Loic Grenie) Added vim_regnewptr().
|
||
|
Files: src/ex_cmds.c, src/regexp.c, src/proto/regexp.pro
|
||
|
|
||
|
Patch 5.6.041
|
||
|
Problem: GUI: Athena, Motif and GTK don't give more than 10 dialog buttons.
|
||
|
Solution: Remove the limit on the number of buttons.
|
||
|
Also support the 'v' flag in 'guioptions'.
|
||
|
For GTK: Center the buttons.
|
||
|
Files: src/gui_athena.c, src/gui_gtk.c, src/gui_motif.c
|
||
|
|
||
|
Patch 5.6.042
|
||
|
Problem: When doing "vim -u vimrc" and vimrc contains ":q", the cursor in
|
||
|
the terminal can remain off.
|
||
|
Solution: Call cursor_on() in mch_windexit().
|
||
|
Files: src/os_unix.c
|
||
|
|
||
|
Patch 5.6.043 (extra)
|
||
|
Problem: Win32 GUI: When selecting guifont with the dialog, 'guifont'
|
||
|
doesn't include the bold or italic attributes.
|
||
|
Solution: Append ":i" and/or ":b" to 'guifont' in gui_mch_init_font().
|
||
|
Files: src/gui_w32.c
|
||
|
|
||
|
Patch 5.6.044 (extra)
|
||
|
Problem: MS-DOS and Windows: The line that dosinst.exe appends to
|
||
|
autoexec.bat to set PATH is wrong when Vim is in a directory with
|
||
|
an embedded space.
|
||
|
Solution: Use double quotes for the value when there is an embedded space.
|
||
|
Files: src/dosinst.c
|
||
|
|
||
|
Patch 5.6.045 (extra) (fixed version)
|
||
|
Problem: VMS: Various small problems.
|
||
|
Solution: Many small changes. (Zoltan Arpadffy)
|
||
|
File name modifier ":h" keeps the path separator.
|
||
|
File name modifier ":e" also removes version.
|
||
|
Compile with MAX_FEAT by default.
|
||
|
When checking for autocommands ignore version in file name.
|
||
|
Be aware of file names being case insensitive.
|
||
|
Added vt320 builtin termcap.
|
||
|
Be prepared for an empty default_vim_dir.
|
||
|
Files: runtime/gvimrc_example.vim, runtime/vimrc_example.vim,
|
||
|
runtime/doc/os_vms.txt, src/eval.c, src/feature.h, src/fileio.c,
|
||
|
src/gui_motif.c, src/gui_vms_conf.h, src/main.c, src/memline.c,
|
||
|
src/misc1.c, src/option.c, src/os_vms_conf.h, src/os_vms.c,
|
||
|
src/os_vms.h, src/os_vms.mms, src/tag.c, src/term.c, src/version.c
|
||
|
|
||
|
Patch 5.6.046
|
||
|
Problem: Systems with backslash in file name: With 'shellslash' set, "vim
|
||
|
*/*.c" only uses a slash for the first file name. (Har'El)
|
||
|
Solution: Fix slashes in file name arguments after reading the vimrc file.
|
||
|
Files: src/option.c
|
||
|
|
||
|
Patch 5.6.047
|
||
|
Problem: $CPPFLAGS is not passed on to ctags configure.
|
||
|
Solution: Add it. (Walter Briscoe)
|
||
|
Files: src/config.mk.in, src/Makefile
|
||
|
|
||
|
Patch 5.6.048
|
||
|
Problem: CTRL-R in Command-line mode is documented to insert text as typed,
|
||
|
but inserts text literally.
|
||
|
Solution: Make CTRL-R insert text as typed, use CTRL-R CTRL-R to insert
|
||
|
literally. This is consistent with Insert mode. But characters
|
||
|
that end Command-line mode are inserted literally.
|
||
|
Files: runtime/doc/index.txt, runtime/doc/cmdline.txt, src/ex_getln.c,
|
||
|
src/ops.c, src/proto/ops.pro
|
||
|
|
||
|
Patch 5.6.049
|
||
|
Problem: Documentation for [!] after ":ijump" is wrong way around. (Benji
|
||
|
Fisher)
|
||
|
Solution: Fix the documentation. Also improve the code to check for a match
|
||
|
after a /* */ comment.
|
||
|
Files: runtime/doc/tagsearch.txt, src/search.c
|
||
|
|
||
|
Patch 5.6.050
|
||
|
Problem: Replacing is wrong when replacing a single-byte char with
|
||
|
double-byte char or the other way around.
|
||
|
Solution: Shift the text after the character when it is replaced.
|
||
|
(Yasuhiro Matsumoto)
|
||
|
Files: src/normal.c, src/misc1.c
|
||
|
|
||
|
Patch 5.6.051
|
||
|
Problem: ":tprev" and ":tnext" don't give an error message when trying to
|
||
|
go before the first or beyond the last tag. (Robert Webb)
|
||
|
Solution: Added error messages. Also: Delay a second when a file-read
|
||
|
message is going to overwrite an error message, otherwise it won't
|
||
|
be seen.
|
||
|
Files: src/fileio.c, src/tag.c
|
||
|
|
||
|
Patch 5.6.052
|
||
|
Problem: Multi-byte: When an Ex command has a '|' or '"' as a second byte,
|
||
|
it terminates the command.
|
||
|
Solution: Skip second byte of multi-byte char when checking for '|' and '"'.
|
||
|
(Asai Kenichi)
|
||
|
Files: src/ex_docmd.c
|
||
|
|
||
|
Patch 5.6.053
|
||
|
Problem: CTRL-] doesn't work on a tag that contains a '|'. (Cesar Crusius)
|
||
|
Solution: Escape '|', '"' and '\' in tag names when using CTRL-] and also
|
||
|
for command-line completion.
|
||
|
Files: src/ex_getln.c, src/normal.c
|
||
|
|
||
|
Patch 5.6.054
|
||
|
Problem: When using ":e" and ":e #" the cursor is put in the first column
|
||
|
when 'startofline' is set. (Cordell)
|
||
|
Solution: Use the last known column when 'startofline' is set.
|
||
|
Also, use ECMD_LAST more often to simplify the code.
|
||
|
Files: src/buffer.c, src/ex_cmds.c, src/ex_docmd.c, src/proto/buffer.pro
|
||
|
|
||
|
Patch 5.6.055
|
||
|
Problem: When 'statusline' only contains a text without "%" and doesn't fit
|
||
|
in the window, Vim crashes. (Ron Aaron)
|
||
|
Solution: Don't use the pointer for the first item if there is no item.
|
||
|
Files: src/screen.c
|
||
|
|
||
|
Patch 5.6.056 (extra)
|
||
|
Problem: MS-DOS: F11 and F12 don't work when 'bioskey' is set.
|
||
|
Solution: Use enhanced keyboard functions. (Vince Negri)
|
||
|
Detect presence of enhanced keyboard and set bioskey_read and
|
||
|
bioskey_ready.
|
||
|
Files: src/os_msdos.c
|
||
|
|
||
|
Patch 5.6.057 (extra)
|
||
|
Problem: Win32 GUI: Multi-byte characters are wrong in dialogs and tear-off
|
||
|
menus.
|
||
|
Solution: Use system font instead of a fixed font. (Matsumoto, Muraoka)
|
||
|
Files: src/gui_w32.c
|
||
|
|
||
|
Patch 5.6.058
|
||
|
Problem: When the 'a' flag is not in 'guioptions', non-Windows systems
|
||
|
copy Visually selected text to the clipboard/selection on a yank
|
||
|
or delete command anyway. On Windows it isn't done even when the
|
||
|
'a' flag is included.
|
||
|
Solution: Respect the 'a' flag in 'guioptions' on all systems.
|
||
|
Files: src/normal.c
|
||
|
|
||
|
Patch 5.6.059 (extra)
|
||
|
Problem: When moving the cursor over italic text and the characters spill
|
||
|
over to the cell on the right, that spill-over is deleted.
|
||
|
Noticed in the Win32 GUI, can happen on other systems too.
|
||
|
Solution: Redraw italic text starting from a blank, like this is already
|
||
|
done for bold text. (Vince Negri)
|
||
|
Files: src/gui.c, src/gui.h, src/gui_w32.c
|
||
|
|
||
|
Patch 5.6.060
|
||
|
Problem: Some bold characters spill over to the cell on the left, that
|
||
|
spill-over can remain sometimes.
|
||
|
Solution: Redraw a character when the next character was bold and needs
|
||
|
redrawing. (Robert Webb)
|
||
|
Files: src/screen.c
|
||
|
|
||
|
Patch 5.6.061
|
||
|
Problem: When xterm sends 8-bit controls, recognizing the version response
|
||
|
doesn't work.
|
||
|
When using CSI instead of <Esc>[ for the termcap color codes,
|
||
|
using 16 colors doesn't work. (Neil Bird)
|
||
|
Solution: Also accept CSI in place of <Esc>[ for the version string.
|
||
|
Also check for CSI when handling colors 8-15 in term_color().
|
||
|
Use CSI for builtin xterm termcap entries when 'term' contains
|
||
|
"8bit".
|
||
|
Files: runtime/doc/term.txt, src/ex_cmds.c, src/option.c, src/term.c,
|
||
|
src/os_unix.c, src/proto/option.pro, src/proto/term.pro
|
||
|
|
||
|
Patch 5.6.062
|
||
|
Problem: The documentation says that setting 'smartindent' doesn't have an
|
||
|
effect when 'cindent' is set, but it does make a difference for
|
||
|
lines starting with "#". (Neil Bird)
|
||
|
Solution: Really ignore 'smartindent' when 'cindent' is set.
|
||
|
Files: src/misc1.c, src/ops.c
|
||
|
|
||
|
Patch 5.6.063
|
||
|
Problem: Using "I" in Visual-block mode doesn't accept a count. (Johannes
|
||
|
Zellner)
|
||
|
Solution: Pass the count on to do_insert() and edit(). (Allan Kelly)
|
||
|
Files: src/normal.c, src/ops.c, src/proto/ops.pro
|
||
|
|
||
|
Patch 5.6.064
|
||
|
Problem: MS-DOS and Win32 console: Mouse doesn't work correctly after
|
||
|
including patch 5.6.28. (Vince Negri)
|
||
|
Solution: Don't check for mouse scroll wheel when the mouse code contains
|
||
|
the number of clicks.
|
||
|
Files: src/term.c
|
||
|
|
||
|
Patch 5.6.065
|
||
|
Problem: After moving the cursor around in Insert mode, typing a space can
|
||
|
still trigger an abbreviation. (Benji Fisher)
|
||
|
Solution: Don't check for an abbreviation after moving around in Insert mode.
|
||
|
Files: src/edit.c
|
||
|
|
||
|
Patch 5.6.066
|
||
|
Problem: Still a few bold character spill-over remains after patch 60.
|
||
|
Solution: Clear character just in front of blanking out rest of the line.
|
||
|
(Robert Webb)
|
||
|
Files: src/screen.c
|
||
|
|
||
|
Patch 5.6.067
|
||
|
Problem: When a file name contains a NL, the viminfo file is corrupted.
|
||
|
Solution: Use viminfo_writestring() to convert the NL to CTRL-V n.
|
||
|
Also fix the Buffers menu and listing a menu name with a newline.
|
||
|
Files: runtime/menu.vim, src/buffer.c, src/mark.c, src/menu.c
|
||
|
|
||
|
Patch 5.6.068
|
||
|
Problem: Compiling the Perl interface doesn't work with Perl 5.6.0.
|
||
|
(Bernhard Rosenkraenzer)
|
||
|
Solution: Also check xs_apiversion for the version number when prepending
|
||
|
defines for PL_*.
|
||
|
Files: src/Makefile
|
||
|
|
||
|
Patch 5.6.069
|
||
|
Problem: "go" doesn't always end up at the right character when
|
||
|
'fileformat' is "dos". (Bruce DeVisser)
|
||
|
Solution: Correct computations in ml_find_line_or_offset().
|
||
|
Files: src/memline.
|
||
|
|
||
|
Patch 5.6.070 (depends on 5.6.068)
|
||
|
Problem: Compiling the Perl interface doesn't work with Perl 5.6.0.
|
||
|
(Bernhard Rosenkraenzer)
|
||
|
Solution: Simpler check instead of the one from patch 68.
|
||
|
Files: src/Makefile
|
||
|
|
||
|
Patch 5.6.071
|
||
|
Problem: "A" in Visual block mode on a Tab positions the cursor one char to
|
||
|
the right. (Michael Haumann)
|
||
|
Solution: Correct the column computation in op_insert().
|
||
|
Files: src/ops.c
|
||
|
|
||
|
Patch 5.6.072
|
||
|
Problem: When starting Vim with "vim +startinsert", it enters Insert mode
|
||
|
only after typing the first command. (Andrew Pimlott)
|
||
|
Solution: Insert a dummy command in the stuff buffer.
|
||
|
Files: src/main.c
|
||
|
|
||
|
Patch 5.6.073 (extra) (depends on 5.6.034)
|
||
|
Problem: Win32 GUI: When compiled with Bcc 5.5 menus don't work.
|
||
|
In dosinst.c toupper() and tolower() give an "internal compiler
|
||
|
error" for Bcc 5.5.
|
||
|
Solution: Define WINVER to 4 to avoid compiling for Windows 2000. (Dan
|
||
|
Sharp) Also cleaned up compilation arguments.
|
||
|
Use our own implementation of toupper() in dosinst.c. Use
|
||
|
mytoupper() instead of tolower().
|
||
|
Files: src/Makefile.bor, src/dosinst.c
|
||
|
|
||
|
Patch 5.6.074 (extra)
|
||
|
Problem: Entering CSI directly doesn't always work, because it's recognized
|
||
|
as the start of a special key. Mostly a problem with multi-byte
|
||
|
in the GUI.
|
||
|
Solution: Use K_CSI for a typed CSI character. Use <CSI> for a normal CSI,
|
||
|
<xCSI> for a CSI typed in the GUI.
|
||
|
Files: runtime/doc/intro.txt, src/getchar.c, src/gui_amiga.c,
|
||
|
src/gui_gtk_x11.c, src/gui_mac.c, src/gui_riscos.c, src/gui_w32.c,
|
||
|
src/keymap.h, src/misc2.c
|
||
|
|
||
|
Patch 5.6.075
|
||
|
Problem: When using "I" or "A" in Visual block mode while 'sts' is set may
|
||
|
change spaces to a Tab the inserted text is not correct. (Mike
|
||
|
Steed) And some other problems when using "A" to append after the
|
||
|
end of the line.
|
||
|
Solution: Check for change in spaces/tabs after inserting the text. Append
|
||
|
spaces to fill the gap between the end-of-line and the right edge
|
||
|
of the block.
|
||
|
Files: src/ops.c
|
||
|
|
||
|
Patch 5.6.076
|
||
|
Problem: GTK GUI: Mapping <M-Space> doesn't work.
|
||
|
Solution: Don't use the "Alt" modifier twice in key_press_event().
|
||
|
Files: src/gui_gtk_x11.c
|
||
|
|
||
|
Patch 5.6.077
|
||
|
Problem: GUI: When interrupting an external program with CTRL-C, gvim might
|
||
|
crash. (Benjamin Korvemaker)
|
||
|
Solution: Avoid using a NULL pointer in ui_inchar_undo().
|
||
|
Files: src/ui.c
|
||
|
|
||
|
Patch 5.6.078
|
||
|
Problem: Locale doesn't always work on FreeBSD. (David O'Brien)
|
||
|
Solution: Link with the "xpg4" library when available.
|
||
|
Files: src/configure.in, src/configure
|
||
|
|
||
|
Patch 5.6.079
|
||
|
Problem: Vim could crash when several Tcl interpreters are created and
|
||
|
destroyed.
|
||
|
Solution: handle the "exit" command and nested ":tcl" commands better. (Ingo
|
||
|
Wilken)
|
||
|
Files: runtime/doc/if_tcl.txt, src/if_tcl.c
|
||
|
|
||
|
Patch 5.6.080
|
||
|
Problem: When jumping to a tag, generating the tags file and jumping to the
|
||
|
same tag again uses the old search pattern. (Sung-Hyun Nam)
|
||
|
Solution: Flush cached tag matches when executing an external command.
|
||
|
Files: src/misc2.c, src/proto/tag.pro, src/tag.c
|
||
|
|
||
|
Patch 5.6.081
|
||
|
Problem: ":syn include" uses a level for the included file, this confuses
|
||
|
contained items included at the same level.
|
||
|
Solution: Use a unique tag for each included file. Changed sp_syn_inc_lvl
|
||
|
to sp_syn_inc_tag. (Scott Bigham)
|
||
|
Files: src/syntax.c, src/structs.h
|
||
|
|
||
|
Patch 5.6.082
|
||
|
Problem: When using cscope, Vim can crash.
|
||
|
Solution: Initialize tag_fname in find_tags(). (Anton Blanchard)
|
||
|
Files: src/tag.c
|
||
|
|
||
|
Patch 5.6.083 (extra)
|
||
|
Problem: Win32: The visual beep can't be seen. (Eric Roesinger)
|
||
|
Solution: Flush the output before waiting with GdiFlush(). (Maurice S. Barnum)
|
||
|
Also: Allow specifying the delay in t_vb for the GUI.
|
||
|
Files: src/gui.c, src/gui_amiga.c, src/gui_gtk_x11.c, src/gui_mac.c,
|
||
|
src/gui_riscos.c, src/gui_w32.c, src/gui_x11.c, src/gui_beos.cc,
|
||
|
src/proto/gui_amiga.pro, src/proto/gui_gtk_x11.pro,
|
||
|
src/proto/gui_mac.pro, src/proto/gui_riscos.pro,
|
||
|
src/proto/gui_w32.pro, src/proto/gui_x11.pro,
|
||
|
src/proto/gui_beos.pro
|
||
|
|
||
|
Patch 5.6.084 (depends on 5.6.074)
|
||
|
Problem: GUI: Entering CSI doesn't always work for Athena and Motif.
|
||
|
Solution: Handle typed CSI as <xCSI> (forgot this bit in 5.6.074).
|
||
|
Files: src/gui_x11.c
|
||
|
|
||
|
Patch 5.6.085
|
||
|
Problem: Multi-byte: Using "r" to replace a double-byte char with a
|
||
|
single-byte char moved the cursor one character. (Matsumoto)
|
||
|
Also, using a count when replacing a single-byte char with a
|
||
|
double-byte char didn't work.
|
||
|
Solution: Don't use del_char() to delete the second byte.
|
||
|
Get "ptr" again after calling ins_char().
|
||
|
Files: src/normal.c
|
||
|
|
||
|
Patch 5.6.086 (extra)
|
||
|
Problem: Win32: When using libcall() and the returned value is not a valid
|
||
|
pointer, Vim crashes.
|
||
|
Solution: Use IsBadStringPtr() to check if the pointer is valid.
|
||
|
Files: src/os_win32.c
|
||
|
|
||
|
Patch 5.6.087
|
||
|
Problem: Multi-byte: Commands and messages with multi-byte characters are
|
||
|
displayed wrong.
|
||
|
Solution: Detect double-byte characters. (Yasuhiro Matsumoto)
|
||
|
Files: src/ex_getln.c, src/message.c, src/misc2.c, src/screen.c
|
||
|
|
||
|
Patch 5.6.088
|
||
|
Problem: Multi-byte with Motif or Athena: The message "XIM requires
|
||
|
fontset" is annoying when Vim was compiled with XIM support but it
|
||
|
is not being used.
|
||
|
Solution: Remove that message.
|
||
|
Files: src/multbyte.c
|
||
|
|
||
|
Patch 5.6.089
|
||
|
Problem: On non-Unix systems it's possible to overwrite a read-only file
|
||
|
without using "!".
|
||
|
Solution: Check if the file permissions allow overwriting before moving the
|
||
|
file to become the backup file.
|
||
|
Files: src/fileio.c
|
||
|
|
||
|
Patch 5.6.090
|
||
|
Problem: When editing a file in "/home/dir/home/dir" this was replaced with
|
||
|
"~~". (Andreas Jellinghaus)
|
||
|
Solution: Replace the home directory only once in home_replace().
|
||
|
Files: src/misc1.c
|
||
|
|
||
|
Patch 5.6.091
|
||
|
Problem: When editing many "no file" files, can't create swap file, because
|
||
|
.sw[a-p] have all been used. (Neil Bird)
|
||
|
Solution: Also use ".sv[a-z]", ".su[a-z]", etc.
|
||
|
Files: src/memline.c
|
||
|
|
||
|
Patch 5.6.092
|
||
|
Problem: FreeBSD: When setting $TERM to a non-valid terminal name, Vim
|
||
|
hangs in tputs().
|
||
|
Solution: After tgetent() returns an error code, call it again with the
|
||
|
terminal name "dumb". This apparently creates an environment in
|
||
|
which tputs() doesn't fail.
|
||
|
Files: src/term.c
|
||
|
|
||
|
Patch 5.6.093 (extra)
|
||
|
Problem: Win32 GUI: "ls | gvim -" will show a message box about reading
|
||
|
stdin when Vim exits. (Donohue)
|
||
|
Solution: Don't write a message about the file read from stdin until the GUI
|
||
|
has started.
|
||
|
Files: src/fileio.c
|
||
|
|
||
|
Patch 5.6.094
|
||
|
Problem: Problem with multi-byte string for ":echo var".
|
||
|
Solution: Check for length in msg_outtrans_len_attr(). (Sung-Hyun Nam)
|
||
|
Also make do_echo() aware of multi-byte characters.
|
||
|
Files: src/eval.c, src/message.c
|
||
|
|
||
|
Patch 5.6.095
|
||
|
Problem: With an Emacs TAGS file that include another a relative path
|
||
|
doesn't always work.
|
||
|
Solution: Use expand_tag_fname() on the name of the included file.
|
||
|
(Utz-Uwe Haus)
|
||
|
Files: src/tag.c
|
||
|
|
||
|
Patch 5.6.096
|
||
|
Problem: Unix: When editing many files, startup can be slow. (Paul
|
||
|
Ackersviller)
|
||
|
Solution: Halve the number of stat() calls used to add a file to the buffer
|
||
|
list.
|
||
|
Files: src/buffer.c
|
||
|
|
||
|
Patch 5.7a.001
|
||
|
Problem: GTK doesn't respond on drag&drop from ROX-Filer.
|
||
|
Solution: Add "text/uri-list" target. (Thomas Leonard)
|
||
|
Also: fix problem with checking for trash arguments.
|
||
|
Files: src/gui_gtk_x11.c
|
||
|
|
||
|
Patch 5.7a.002
|
||
|
Problem: Multi-byte: 'showmatch' is performed when second byte of an
|
||
|
inserted double-byte char is a paren or brace.
|
||
|
Solution: Check IsTrailByte() before calling showmatch(). (Taro Muraoka)
|
||
|
Files: src/misc1.c
|
||
|
|
||
|
Patch 5.7a.003
|
||
|
Problem: Multi-byte: After using CTRL-O in Insert mode with the cursor at
|
||
|
the end of the line on a multi-byte character the cursor moves to
|
||
|
the left.
|
||
|
Solution: Check for multi-byte character at end-of-line. (Taro Muraoka)
|
||
|
Also: fix cls() to detect a double-byte character. (Chong-Dae Park)
|
||
|
Files: src/edit.c, src/search.c
|
||
|
|
||
|
Patch 5.7a.004
|
||
|
Problem: When reporting the search pattern offset, the string could be
|
||
|
unterminated, which may cause a crash.
|
||
|
Solution: Terminate the string for the search offset. (Stephen P. Wall)
|
||
|
Files: src/search.c
|
||
|
|
||
|
Patch 5.7a.005
|
||
|
Problem: When ":s//~/" doesn't find a match it reports "[NULL]" for the
|
||
|
pattern.
|
||
|
Solution: Use get_search_pat() to obtain the actually used pattern.
|
||
|
Files: src/ex_cmds.c, src/proto/search.pro, src/search.c
|
||
|
|
||
|
Patch 5.7a.006 (extra)
|
||
|
Problem: VMS: Various problems, also with the VAXC compiler.
|
||
|
Solution: In many places use the Unix code for VMS too.
|
||
|
Added time, date and compiler version to version message.
|
||
|
(Zoltan Arpadffy)
|
||
|
Files: src/ex_cmds.c, src/ex_docmd.c, src/globals.h, src/gui_vms_conf.h,
|
||
|
src/main.c, src/message.c, src/misc1.c, src/os_vms.c,
|
||
|
src/os_vms.h, src/os_vms.mms, src/os_vms_conf.h,
|
||
|
src/proto/os_vms.pro, src/proto/version.pro, src/term.c,
|
||
|
src/version.c, src/xxd/os_vms.mms, src/xxd/xxd.c
|
||
|
|
||
|
Patch 5.7a.007
|
||
|
Problem: Motif and Athena GUI: CTRL-@ is interpreted as CTRL-C.
|
||
|
Solution: Only use "intr_char" when it has been set.
|
||
|
Files: src/gui_x11.c
|
||
|
|
||
|
Patch 5.7a.008
|
||
|
Problem: GTK GUI: When using CTRL-L the screen is redrawn twice, causing
|
||
|
trouble for bold characters. Also happens when moving with the
|
||
|
scrollbar. Best seen when 'writedelay' is non-zero.
|
||
|
When starting the GUI with ":gui" the screen is redrawn once with
|
||
|
the wrong colors.
|
||
|
Solution: Only set the geometry hints when the window size really changed.
|
||
|
This avoids setting it each time the scrollbar is forcefully
|
||
|
redrawn.
|
||
|
Don't redraw in expose_event() when gui.starting is still set.
|
||
|
Files: src/gui_gtk_x11.c
|
||
|
|
||
|
|
||
|
==============================================================================
|
||
|
VERSION 5.8 *version-5.8*
|
||
|
|
||
|
Version 5.8 is a bug-fix version of 5.7.
|
||
|
|
||
|
|
||
|
Changed *changed-5.8*
|
||
|
-------
|
||
|
|
||
|
Ctags is no longer included with Vim. It has grown into a project of its own.
|
||
|
You can find it here: http://ctags.sf.net. It is highly recommended as a Vim
|
||
|
companion when you are writing programs.
|
||
|
|
||
|
|
||
|
Added *added-5.8*
|
||
|
-----
|
||
|
|
||
|
New syntax files:
|
||
|
acedb AceDB (Stewart Morris)
|
||
|
aflex Aflex (Mathieu Clabaut)
|
||
|
antlr Antlr (Mathieu Clabaut)
|
||
|
asm68k 68000 Assembly (Steve Wall)
|
||
|
automake Automake (John Williams)
|
||
|
ayacc Ayacc (Mathieu Clabaut)
|
||
|
b B (Mathieu Clabaut)
|
||
|
bindzone BIND zone (glory hump)
|
||
|
blank Blank (Rafal Sulejman)
|
||
|
cfg Configure files (Igor Prischepoff)
|
||
|
changelog ChangeLog (Gediminas Paulauskas)
|
||
|
cl Clever (Phil Uren)
|
||
|
crontab Crontab (John Hoelzel)
|
||
|
csc Essbase script (Raul Segura Acevedo)
|
||
|
cynlib Cynlib(C++) (Phil Derrick)
|
||
|
cynpp Cyn++ (Phil Derrick)
|
||
|
debchangelog Debian Changelog (Wichert Akkerman)
|
||
|
debcontrol Debian Control (Wichert Akkerman)
|
||
|
dns DNS zone file (Jehsom)
|
||
|
dtml Zope's DTML (Jean Jordaan)
|
||
|
dylan Dylan, Dylan-intr and Dylan-lid (Brent Fulgham)
|
||
|
ecd Embedix Component Description (John Beppu)
|
||
|
fgl Informix 4GL (Rafal Sulejman)
|
||
|
foxpro FoxPro (Powing Tse)
|
||
|
gsp GNU Server Pages (Nathaniel Harward)
|
||
|
gtkrc GTK rc (David Necas)
|
||
|
hercules Hercules (Avant! Corporation) (Dana Edwards)
|
||
|
htmlos HTML/OS by Aestiva (Jason Rust)
|
||
|
inittab SysV process control (David Necas)
|
||
|
iss Inno Setup (Dominique Stephan)
|
||
|
jam Jam (Ralf Lemke)
|
||
|
jess Jess (Paul Baleme)
|
||
|
lprolog LambdaProlog (Markus Mottl)
|
||
|
ia64 Intel Itanium (parth malwankar)
|
||
|
kix Kixtart (Nigel Gibbs)
|
||
|
mgp MaGic Point (Gerfried Fuchs)
|
||
|
mason Mason (HTML with Perl) (Andrew Smith)
|
||
|
mma Mathematica (Wolfgang Waltenberger)
|
||
|
nqc Not Quite C (Stefan Scherer)
|
||
|
omnimark Omnimark (Paul Terray)
|
||
|
openroad OpenROAD (Luis Moreno Serrano)
|
||
|
named BIND configuration (glory hump)
|
||
|
papp PApp (Marc Lehmann)
|
||
|
pfmain Postfix main config (Peter Kelemen)
|
||
|
pic PIC assembly (Aleksandar Veselinovic)
|
||
|
ppwiz PPWizard (Stefan Schwarzer)
|
||
|
progress Progress (Phil Uren)
|
||
|
psf Product Specification File (Rex Barzee)
|
||
|
r R (Tom Payne)
|
||
|
registry MS-Windows registry (Dominique Stephan)
|
||
|
robots Robots.txt (Dominique Stephan)
|
||
|
rtf Rich Text Format (Dominique Stephan)
|
||
|
setl SETL (Alex Poylisher)
|
||
|
sgmldecl SGML Declarations (Daniel A. Molina W.)
|
||
|
sinda Sinda input (Adrian Nagle)
|
||
|
sindacmp Sinda compare (Adrian Nagle)
|
||
|
sindaout Sinda output (Adrian Nagle)
|
||
|
smith SMITH (Rafal Sulejman)
|
||
|
snobol4 Snobol 4 (Rafal Sulejman)
|
||
|
strace Strace (David Necas)
|
||
|
tak TAK input (Adrian Nagle)
|
||
|
takcmp TAK compare (Adrian Nagle)
|
||
|
takout TAK output (Adrian Nagle)
|
||
|
tasm Turbo assembly (FooLman)
|
||
|
texmf TeX configuration (David Necas)
|
||
|
trasys Trasys input (Adrian Nagle)
|
||
|
tssgm TSS Geometry (Adrian Nagle)
|
||
|
tssop TSS Optics (Adrian Nagle)
|
||
|
tsscl TSS Command line (Adrian Nagle)
|
||
|
virata Virata Configuration Script (Manuel M.H. Stol)
|
||
|
vsejcl VSE JCL (David Ondrejko)
|
||
|
wdiff Wordwise diff (Gerfried Fuchs)
|
||
|
wsh Windows Scripting Host (Paul Moore)
|
||
|
xkb X Keyboard Extension (David Necas)
|
||
|
|
||
|
Renamed php3 to php, it now also supports php4 (Lutz Eymers)
|
||
|
|
||
|
Patch 5.7.015
|
||
|
Problem: Syntax files for Vim 6.0 can't be used with 5.x.
|
||
|
Solution: Add the "default" argument to the ":highlight" command: Ignore the
|
||
|
command if highlighting was already specified.
|
||
|
Files: src/syntax.c
|
||
|
|
||
|
Generate the Syntax menu with makemenu.vim, so that it doesn't have to be done
|
||
|
when Vim is starting up. Reduces the startup time of the GUI.
|
||
|
|
||
|
|
||
|
Fixed *fixed-5.8*
|
||
|
-----
|
||
|
|
||
|
Conversion of docs to HTML didn't convert "|tag|s" to a hyperlink.
|
||
|
|
||
|
Fixed compiling under NeXT. (Jeroen C.M. Goudswaard)
|
||
|
|
||
|
optwin.vim gave an error when used in Vi compatible mode ('cpo' contains 'C').
|
||
|
|
||
|
Tcl interpreter: "buffer" command didn't check for presence of an argument.
|
||
|
(Dave Bodenstab)
|
||
|
|
||
|
dosinst.c: Added checks for too long file name.
|
||
|
|
||
|
Amiga: a file name starting with a colon was considered absolute but it isn't.
|
||
|
Amiga: ":pwd" added a slash when in the root of a drive.
|
||
|
|
||
|
Macintosh: Warnings for unused variables. (Bernhard Pruemmer)
|
||
|
|
||
|
Unix: When catching a deadly signal, handle it in such a way that it's
|
||
|
unlikely that Vim will hang. Call _exit() instead of exit() in case of a
|
||
|
severe problem.
|
||
|
|
||
|
Setting the window title from nothing to something didn't work after patch 29.
|
||
|
|
||
|
Check for ownership of .exrc and .vimrc was done with stat(). Use lstat() as
|
||
|
well for extra security.
|
||
|
|
||
|
Win32 GUI: Printing a file with 'fileformat' "unix" didn't work. Set
|
||
|
'fileformat' to "dos" before writing the temp file.
|
||
|
|
||
|
Unix: Could start waiting for a character when checking for a CTRL-C typed
|
||
|
when an X event is received.
|
||
|
|
||
|
Could not use Perl and Python at the same time on FreeBSD, because Perl used
|
||
|
"-lc" and Python used the threaded C library.
|
||
|
|
||
|
Win32: The Mingw compiler gave a few warning messages.
|
||
|
|
||
|
When using "ZZ" and an autocommand for writing uses an abbreviation it didn't
|
||
|
work. Don't stuff the ":x" command but execute it directly. (Mikael Berthe)
|
||
|
|
||
|
VMS doesn't always have lstat(), added an #ifdef around it.
|
||
|
|
||
|
Added a few corrections for the Macintosh. (Axel Kielhorn)
|
||
|
|
||
|
Win32: Gvimext could not edit more than a few files at once, the length of the
|
||
|
argument was fixed.
|
||
|
|
||
|
|
||
|
Previously released patches for Vim 5.7:
|
||
|
|
||
|
Patch 5.7.001
|
||
|
Problem: When the current buffer is crypted, and another modified buffer
|
||
|
isn't, ":wall" will encrypt the other buffer.
|
||
|
Solution: In buf_write() use "buf" instead of "curbuf" to check for the
|
||
|
crypt key.
|
||
|
Files: src/fileio.c
|
||
|
|
||
|
Patch 5.7.002
|
||
|
Problem: When 'showmode' is set, using "CTRL-O :r file" waits three seconds
|
||
|
before displaying the read text. (Wichert Akkerman)
|
||
|
Solution: Set "keep_msg" to the file message so that the screen is redrawn
|
||
|
before the three seconds wait for displaying the mode message.
|
||
|
Files: src/fileio.c
|
||
|
|
||
|
Patch 5.7.003
|
||
|
Problem: Searching for "[[:cntrl:]]" doesn't work.
|
||
|
Solution: Exclude NUL from the matching characters, it terminates the list.
|
||
|
Files: src/regexp.c
|
||
|
|
||
|
Patch 5.7.004
|
||
|
Problem: GTK: When selecting a new font, Vim can crash.
|
||
|
Solution: In gui_mch_init_font() unreference the old font, not the new one.
|
||
|
Files: src/gui_gtk_x11.c
|
||
|
|
||
|
Patch 5.7.005
|
||
|
Problem: Multibyte: Inserting a wrapped line corrupts kterm screen.
|
||
|
Pasting TEXT/COMPOUND_TEXT into Vim does not work.
|
||
|
On Motif no XIM status line is displayed even though it is
|
||
|
available.
|
||
|
Solution: Don't use xterm trick for wrapping lines for multibyte mode.
|
||
|
Correct a missing "break", added TEXT/COMPOUND_TEXT selection
|
||
|
request.
|
||
|
Add XIMStatusArea fallback code.
|
||
|
(Katsuhito Nagano)
|
||
|
Files: src/gui_gtk_x11.c, src/multbyte.c, src/screen.c, src/ui.c
|
||
|
|
||
|
Patch 5.7.006
|
||
|
Problem: GUI: redrawing the non-Visual selection is wrong when the window
|
||
|
is unobscured. (Jean-Pierre Etienne)
|
||
|
Solution: Redraw the selection properly and don't clear it. Added "len"
|
||
|
argument to clip_may_redraw_selection().
|
||
|
Files: src/gui.c, src/ui.c, src/proto/ui.pro
|
||
|
|
||
|
Patch 5.7.007
|
||
|
Problem: Python: Crash when using the current buffer twice.
|
||
|
Solution: Increase the reference count for buffer and window objects.
|
||
|
(Johannes Zellner)
|
||
|
Files: src/if_python.c
|
||
|
|
||
|
Patch 5.7.008
|
||
|
Problem: In Ex mode, backspacing over the first TAB doesn't work properly.
|
||
|
(Wichert Akkerman)
|
||
|
Solution: Switch the cursor on before printing the newline.
|
||
|
Files: src/ex_getln.c
|
||
|
|
||
|
Patch 5.7.009 (extra)
|
||
|
Problem: Mac: Crash when using a long file.
|
||
|
Solution: Don't redefine malloc() and free(), because it will break using
|
||
|
realloc().
|
||
|
Files: src/os_mac.h
|
||
|
|
||
|
Patch 5.7.010
|
||
|
Problem: When using CTRL-A on a very long number Vim can crash. (Michael
|
||
|
Naumann)
|
||
|
Solution: Truncate the length of the new number to avoid a buffer overflow.
|
||
|
Files: src/ops.c
|
||
|
|
||
|
Patch 5.7.011 (extra)
|
||
|
Problem: Win32 GUI on NT 5 and Win98: Displaying Hebrew is reversed.
|
||
|
Solution: Output each character separately, to avoid that Windows reverses
|
||
|
the text for some fonts. (Ron Aaron)
|
||
|
Files: src/gui_w32.c
|
||
|
|
||
|
Patch 5.7.012
|
||
|
Problem: When using "-complete=buffer" for ":command" the user command
|
||
|
fails.
|
||
|
Solution: In a user command don't replace the buffer name with a count for
|
||
|
the buffer number.
|
||
|
Files: src/ex_docmd.c
|
||
|
|
||
|
Patch 5.7.013
|
||
|
Problem: "gD" didn't always find a match in the first line, depending on
|
||
|
the column the search started at.
|
||
|
Solution: Reset the column to zero before starting to search.
|
||
|
Files: src/normal.c
|
||
|
|
||
|
Patch 5.7.014
|
||
|
Problem: Rot13 encoding was done on characters with accents, which is
|
||
|
wrong. (Sven Gottwald)
|
||
|
Solution: Only do rot13 encoding on ASCII characters.
|
||
|
Files: src/ops.c
|
||
|
|
||
|
Patch 5.7.016
|
||
|
Problem: When hitting 'n' for a ":s///c" command, the ignore-case flag was
|
||
|
not restored, some matches were skipped. (Daniel Blaustein)
|
||
|
Solution: Restore the reg_ic variable when 'n' was hit.
|
||
|
Files: src/ex_cmds.c
|
||
|
|
||
|
Patch 5.7.017
|
||
|
Problem: When using a Vim script for Vim 6.0 with <SID> before a function
|
||
|
name, it produces an error message even when inside an "if version
|
||
|
>= 600". (Charles Campbell)
|
||
|
Solution: Ignore errors in the function name when the function is not going
|
||
|
to be defined.
|
||
|
Files: src/eval.c
|
||
|
|
||
|
Patch 5.7.018
|
||
|
Problem: When running "rvim" or "vim -Z" it was still possible to execute a
|
||
|
shell command with system() and backtick-expansion. (Antonios A.
|
||
|
Kavarnos)
|
||
|
Solution: Disallow executing a shell command in get_cmd_output() and
|
||
|
mch_expand_wildcards().
|
||
|
Files: src/misc1.c, src/os_unix.c
|
||
|
|
||
|
Patch 5.7.019
|
||
|
Problem: Multibyte: In a substitute string, a multi-byte character isn't
|
||
|
skipped properly, can be a problem when the second byte is a
|
||
|
backslash.
|
||
|
Solution: Skip an extra byte for a double-byte character. (Muraoka Taro)
|
||
|
Files: src/ex_cmds.c
|
||
|
|
||
|
Patch 5.7.020
|
||
|
Problem: Compilation doesn't work on MacOS-X.
|
||
|
Solution: Add a couple of #ifdefs. (Jamie Curmi)
|
||
|
Files: src/regexp.c, src/ctags/general.h
|
||
|
|
||
|
Patch 5.7.021
|
||
|
Problem: Vim sometimes produces a beep when started in an xterm. Only
|
||
|
happens when compiled without mouse support.
|
||
|
Solution: Requesting the xterm version results in a K_IGNORE. This wasn't
|
||
|
handled when mouse support is disabled. Accept K_IGNORE always.
|
||
|
Files: src/normal.c
|
||
|
|
||
|
Patch 5.7.022
|
||
|
Problem: %v in 'statusline' is not displayed when it's equal to %c.
|
||
|
Solution: Check if %V or %v is used and handle them differently.
|
||
|
Files: src/screen.c
|
||
|
|
||
|
Patch 5.7.023
|
||
|
Problem: Crash when a WinLeave autocommand deletes the buffer in the other
|
||
|
window.
|
||
|
Solution: Check that after executing the WinLeave autocommands there still
|
||
|
is a window to be closed. Also update the test that was supposed
|
||
|
to check for this problem.
|
||
|
Files: src/window.c, testdir/test13.in, testdir/test13.ok
|
||
|
|
||
|
Patch 5.7.024
|
||
|
Problem: Evaluating an expression for 'statusline' can have side effects.
|
||
|
Solution: Evaluate the expression in a sandbox.
|
||
|
Files: src/edit.c, src/eval.c, src/proto/eval.pro, src/ex_cmds.c,
|
||
|
src/ex_cmds.h, src/ex_docmd.c, src/globals.h, src/option.c,
|
||
|
src/screen.c, src/undo.c
|
||
|
|
||
|
Patch 5.7.025 (fixed)
|
||
|
Problem: Creating a temp file has a race condition.
|
||
|
Solution: Create a private directory to write the temp files in.
|
||
|
Files: src/fileio.c, src/misc1.c, src/proto/misc1.pro,
|
||
|
src/proto/fileio.pro, src/memline.c, src/os_unix.h
|
||
|
|
||
|
Patch 5.7.026 (extra)
|
||
|
Problem: Creating a temp file has a race condition.
|
||
|
Solution: Create a private directory to write the temp files in.
|
||
|
This is the extra part of patch 5.7.025.
|
||
|
Files: src/os_msdos.h
|
||
|
|
||
|
Patch 5.7.027
|
||
|
Problem: Starting to edit a file can cause a crash. For example when in
|
||
|
Insert mode, using CTRL-O :help abbr<Tab> to scroll the screen and
|
||
|
then <CR>, which edits a help file. (Robert Bogomip)
|
||
|
Solution: Check if keep_msg is NULL before copying it.
|
||
|
Files: src/fileio.c
|
||
|
|
||
|
Patch 5.7.028
|
||
|
Problem: Creating a backup or swap file could fail in rare situations.
|
||
|
Solution: Use O_EXCL for open().
|
||
|
Files: src/fileio.c, src/memfile.c
|
||
|
|
||
|
Patch 5.7.029
|
||
|
Problem: Editing a file with an extremely long name crashed Vim.
|
||
|
Solution: Check for length of the name when setting the window title.
|
||
|
Files: src/buffer.c
|
||
|
|
||
|
Patch 5.7.030
|
||
|
Problem: A ":make" or ":grep" command with a very long argument could cause
|
||
|
a crash.
|
||
|
Solution: Allocate the buffer for the shell command.
|
||
|
Files: src/ex_docmd.c
|
||
|
|
||
|
|
||
|
vim:tw=78:ts=8:ft=help:norl:
|