Christian Brabandt | b4ddc6c | 2024-01-02 16:51:11 +0100 | [diff] [blame] | 1 | *version5.txt* For Vim version 9.1. Last change: 2022 Nov 09 |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 2 | |
| 3 | |
| 4 | VIM REFERENCE MANUAL by Bram Moolenaar |
| 5 | |
| 6 | Welcome to Vim Version 5.0! |
| 7 | |
| 8 | This document lists the differences between Vim 4.x and Vim 5.0. |
Bram Moolenaar | 9b45125 | 2012-08-15 17:43:31 +0200 | [diff] [blame] | 9 | Although 5.0 is mentioned here, this is also for version 5.1, 5.2, etc. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 10 | See |vi_diff.txt| for an overview of differences between Vi and Vim 5.0. |
| 11 | See |version4.txt| for differences between Vim 3.0 and Vim 4.0. |
| 12 | |
| 13 | INCOMPATIBLE: |incompatible-5| |
| 14 | |
| 15 | Default value for 'compatible' changed |cp-default| |
| 16 | Text formatting command "Q" changed |Q-command-changed| |
| 17 | Command-line arguments changed |cmdline-changed| |
| 18 | Autocommands are kept |autocmds-kept| |
| 19 | Use of 'hidden' changed |hidden-changed| |
| 20 | Text object commands changed |text-objects-changed| |
| 21 | X-Windows Resources removed |x-resources| |
| 22 | Use of $VIM |$VIM-use| |
| 23 | Use of $HOME for MS-DOS and Win32 |$HOME-use| |
| 24 | Tags file format changed |tags-file-changed| |
| 25 | Options changed |options-changed| |
| 26 | CTRL-B in Insert mode gone |i_CTRL-B-gone| |
| 27 | |
| 28 | NEW FEATURES: |new-5| |
| 29 | |
| 30 | Syntax highlighting |new-highlighting| |
| 31 | Built-in script language |new-script| |
| 32 | Perl and Python support |new-perl-python| |
| 33 | Win32 GUI version |added-win32-GUI| |
| 34 | VMS version |added-VMS| |
| 35 | BeOS version |added-BeOS| |
| 36 | Macintosh GUI version |added-Mac| |
| 37 | More Vi compatible |more-compatible| |
| 38 | Read input from stdin |read-stdin| |
| 39 | Regular expression patterns |added-regexp| |
| 40 | Overloaded tags |tag-overloaded| |
| 41 | New commands |new-commands| |
| 42 | New options |added-options| |
| 43 | New command-line arguments |added-cmdline-args| |
| 44 | Various additions |added-various| |
| 45 | |
| 46 | IMPROVEMENTS |improvements-5| |
| 47 | |
| 48 | COMPILE TIME CHANGES |compile-changes-5| |
| 49 | |
| 50 | BUG FIXES |bug-fixes-5| |
| 51 | |
| 52 | VERSION 5.1 |version-5.1| |
| 53 | Changed |changed-5.1| |
| 54 | Added |added-5.1| |
| 55 | Fixed |fixed-5.1| |
| 56 | |
| 57 | VERSION 5.2 |version-5.2| |
| 58 | Long lines editable |long-lines| |
| 59 | File browser added |file-browser-5.2| |
| 60 | Dialogs added |dialogs-added| |
| 61 | Popup menu added |popup-menu-added| |
| 62 | Select mode added |new-Select-mode| |
| 63 | Session files added |new-session-files| |
| 64 | User defined functions and commands |new-user-defined| |
| 65 | New interfaces |interfaces-5.2| |
| 66 | New ports |ports-5.2| |
| 67 | Multi-byte support |new-multi-byte| |
| 68 | New functions |new-functions-5.2| |
| 69 | New options |new-options-5.2| |
| 70 | New Ex commands |new-ex-commands-5.2| |
| 71 | Changed |changed-5.2| |
| 72 | Added |added-5.2| |
| 73 | Fixed |fixed-5.2| |
| 74 | |
| 75 | VERSION 5.3 |version-5.3| |
| 76 | Changed |changed-5.3| |
| 77 | Added |added-5.3| |
| 78 | Fixed |fixed-5.3| |
| 79 | |
| 80 | VERSION 5.4 |version-5.4| |
| 81 | Runtime directory introduced |new-runtime-dir| |
| 82 | Filetype introduced |new-filetype-5.4| |
| 83 | Vim script line continuation |new-line-continuation| |
| 84 | Improved session files |improved-sessions| |
| 85 | Autocommands improved |improved-autocmds-5.4| |
| 86 | Encryption |new-encryption| |
| 87 | GTK GUI port |new-GTK-GUI| |
| 88 | Menu changes |menu-changes-5.4| |
| 89 | Viminfo improved |improved-viminfo| |
| 90 | Various new commands |new-commands-5.4| |
| 91 | Various new options |new-options-5.4| |
| 92 | Vim scripts |new-script-5.4| |
| 93 | Avoid hit-enter prompt |avoid-hit-enter| |
| 94 | Improved quickfix |improved-quickfix| |
| 95 | Regular expressions |regexp-changes-5.4| |
| 96 | Changed |changed-5.4| |
| 97 | Added |added-5.4| |
| 98 | Fixed |fixed-5.4| |
| 99 | |
| 100 | VERSION 5.5 |version-5.5| |
| 101 | Changed |changed-5.5| |
| 102 | Added |added-5.5| |
| 103 | Fixed |fixed-5.5| |
| 104 | |
| 105 | VERSION 5.6 |version-5.6| |
| 106 | Changed |changed-5.6| |
| 107 | Added |added-5.6| |
| 108 | Fixed |fixed-5.6| |
| 109 | |
| 110 | VERSION 5.7 |version-5.7| |
| 111 | Changed |changed-5.7| |
| 112 | Added |added-5.7| |
| 113 | Fixed |fixed-5.7| |
| 114 | |
| 115 | VERSION 5.8 |version-5.8| |
| 116 | Changed |changed-5.8| |
| 117 | Added |added-5.8| |
| 118 | Fixed |fixed-5.8| |
| 119 | |
| 120 | ============================================================================== |
Bram Moolenaar | 76db9e0 | 2022-11-09 21:21:04 +0000 | [diff] [blame] | 121 | INCOMPATIBLE *incompatible-5* |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 122 | |
| 123 | Default value for 'compatible' changed *cp-default* |
| 124 | -------------------------------------- |
| 125 | |
| 126 | Vim version 5.0 tries to be more Vi compatible. This helps people who use Vim |
| 127 | as a drop-in replacement for Vi, but causes some things to be incompatible |
| 128 | with version 4.x. |
| 129 | |
| 130 | In version 4.x the default value for the 'compatible' option was off. Now the |
| 131 | default is on. The first thing you will notice is that the "u" command undoes |
| 132 | itself. Other side effects will be that mappings may work differently or not |
| 133 | work at all. |
| 134 | |
| 135 | Since a lot of people switching from Vim 4.x to 5.0 will find this annoying, |
| 136 | the 'compatible' option is switched off if Vim finds a vimrc file. This is a |
| 137 | bit of magic to make sure that 90% of the Vim users will not be bitten by |
| 138 | this change. |
| 139 | |
| 140 | What does this mean? |
| 141 | - If you prefer to run in 'compatible' mode and don't have a vimrc file, you |
| 142 | don't have to do anything. |
| 143 | - If you prefer to run in 'nocompatible' mode and do have a vimrc file, you |
| 144 | don't have to do anything. |
| 145 | - If you prefer to run in 'compatible' mode and do have a vimrc file, you |
| 146 | should put this line first in your vimrc file: > |
| 147 | :set compatible |
| 148 | - If you prefer to run in 'nocompatible' mode and don't have a vimrc file, |
| 149 | you can do one of the following: |
| 150 | - Create an empty vimrc file (e.g.: "~/.vimrc" for Unix). |
| 151 | - Put this command in your .exrc file or $EXINIT: > |
| 152 | :set nocompatible |
| 153 | < - Start Vim with the "-N" argument. |
| 154 | |
| 155 | If you are new to Vi and Vim, using 'nocompatible' is strongly recommended, |
| 156 | because Vi has a lot of unexpected side effects, which are avoided by this |
| 157 | setting. See 'compatible'. |
| 158 | |
| 159 | If you like some things from 'compatible' and some not, you can tune the |
| 160 | compatibility with 'cpoptions'. |
| 161 | |
| 162 | When you invoke Vim as "ex" or "gex", Vim always starts in compatible mode. |
| 163 | |
| 164 | |
| 165 | Text formatting command "Q" changed *Q-command-changed* |
| 166 | ----------------------------------- |
| 167 | |
| 168 | The "Q" command formerly formatted lines to the width the 'textwidth' option |
| 169 | specifies. The command for this is now "gq" (see |gq| for more info). The |
| 170 | reason for this change is that "Q" is the standard Vi command to enter "Ex" |
| 171 | mode, and Vim now does in fact have an "Ex" mode (see |Q| for more info). |
| 172 | |
| 173 | If you still want to use "Q" for formatting, use this mapping: > |
| 174 | :noremap Q gq |
| 175 | And if you also want to use the functionality of "Q": > |
| 176 | :noremap gQ Q |
| 177 | |
| 178 | |
| 179 | Command-line arguments changed *cmdline-changed* |
| 180 | ------------------------------ |
| 181 | |
| 182 | Command-line file-arguments and option-arguments can now be mixed. You can |
| 183 | give options after the file names. Example: > |
| 184 | vim main.c -g |
| 185 | |
| 186 | This is not possible when editing a file that starts with a '-'. Use the "--" |
| 187 | argument then |---|: > |
| 188 | vim -g -- -main.c |
| 189 | |
| 190 | "-v" now means to start Ex in Vi mode, use "-R" for read-only mode. |
| 191 | old: "vim -v file" |-v| |
| 192 | new: "vim -R file" |-R| |
| 193 | |
| 194 | "-e" now means to start Vi in Ex mode, use "-q" for quickfix. |
| 195 | old: "vim -e errorfile" |-e| |
| 196 | new: "vim -q errorfile" |-q| |
| 197 | |
| 198 | "-s" in Ex mode now means to run in silent (batch) mode. |-s-ex| |
| 199 | |
| 200 | "-x" reserved for crypt, use "-f" to avoid starting a new CLI (Amiga). |
| 201 | old: "vim -x file" |-x| |
| 202 | new: "vim -f file" |-f| |
| 203 | |
| 204 | Vim allows up to ten "+cmd" and "-c cmd" arguments. Previously Vim executed |
| 205 | only the last one. |
| 206 | |
| 207 | "-n" now overrides any setting for 'updatecount' in a vimrc file, but not in |
| 208 | a gvimrc file. |
| 209 | |
| 210 | |
| 211 | Autocommands are kept *autocmds-kept* |
| 212 | --------------------- |
| 213 | |
| 214 | Before version 5.0, autocommands with the same event, file name pattern, and |
| 215 | command could appear only once. This was fine for simple autocommands (like |
| 216 | setting option values), but for more complicated autocommands, where the same |
| 217 | command might appear twice, this restriction caused problems. Therefore |
| 218 | Vim stores all autocommands and keeps them in the order that they are defined. |
| 219 | |
| 220 | The most obvious side effect of this change is that when you source a vimrc |
| 221 | file twice, the autocommands in it will be defined twice. To avoid this, do |
| 222 | one of these: |
| 223 | |
Bram Moolenaar | d2f3a8b | 2018-06-19 14:35:59 +0200 | [diff] [blame] | 224 | - Remove any autocommands that might already be defined before defining |
| 225 | them. Example: > |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 226 | :au! * *.ext |
| 227 | :au BufEnter *.ext ... |
| 228 | |
| 229 | - Put the autocommands inside an ":if" command. Example: > |
| 230 | if !exists("did_ext_autocmds") |
| 231 | let did_ext_autocmds = 1 |
| 232 | autocmd BufEnter *.ext ... |
| 233 | endif |
| 234 | |
| 235 | - Put your autocommands in a different autocommand group so you can remove |
| 236 | them before defining them |:augroup|: > |
| 237 | augroup uncompress |
| 238 | au! |
| 239 | au BufReadPost *.gz ... |
| 240 | augroup END |
| 241 | |
| 242 | |
| 243 | Use of 'hidden' changed *hidden-changed* |
| 244 | ----------------------- |
| 245 | |
| 246 | In version 4.x, only some commands used the 'hidden' option. Now all commands |
| 247 | uses it whenever a buffer disappears from a window. |
| 248 | |
| 249 | Previously you could do ":buf xxx" in a changed buffer and that buffer would |
| 250 | then become hidden. Now you must set the 'hidden' option for this to work. |
| 251 | |
| 252 | The new behavior is simpler: whether Vim hides buffers no longer depends on |
| 253 | the specific command that you use. |
| 254 | - with 'hidden' not set, you never get hidden buffers. Exceptions are the |
| 255 | ":hide" and ":close!" commands and, in rare cases, where you would otherwise |
| 256 | lose changes to the buffer. |
| 257 | - With 'hidden' set, you almost never unload a buffer. Exceptions are the |
| 258 | ":bunload" or ":bdel" commands. |
| 259 | |
| 260 | ":buffer" now supports a "!": abandon changes in current buffer. So do |
| 261 | ":bnext", ":brewind", etc. |
| 262 | |
| 263 | |
| 264 | Text object commands changed *text-objects-changed* |
| 265 | ---------------------------- |
| 266 | |
| 267 | Text object commands have new names. This allows more text objects and makes |
| 268 | characters available for other Visual mode commands. Since no more single |
| 269 | characters were available, text objects names now require two characters. |
| 270 | The first one is always 'i' or 'a'. |
| 271 | OLD NEW ~ |
| 272 | a aw a word |v_aw| |
| 273 | A aW a WORD |v_aW| |
| 274 | s as a sentence |v_as| |
| 275 | p ap a paragraph |v_ap| |
| 276 | S ab a () block |v_ab| |
| 277 | P aB a {} block |v_aB| |
| 278 | |
| 279 | There is another set of text objects that starts with "i", for "inner". These |
| 280 | select the same objects, but exclude white space. |
| 281 | |
| 282 | |
| 283 | X-Windows Resources removed *x-resources* |
| 284 | -------------------------- |
| 285 | |
| 286 | Vim no longer supports the following X resources: |
| 287 | - boldColor |
| 288 | - italicColor |
| 289 | - underlineColor |
| 290 | - cursorColor |
| 291 | |
| 292 | Vim now uses highlight groups to set colors. This avoids the confusion of |
| 293 | using a bold Font, which would imply a certain color. See |:highlight| and |
| 294 | |gui-resources|. |
| 295 | |
| 296 | |
| 297 | Use of $VIM *$VIM-use* |
| 298 | ----------- |
| 299 | |
| 300 | Vim now uses the VIM environment variable to find all Vim system files. This |
| 301 | includes the global vimrc, gvimrc, and menu.vim files and all on-line help |
| 302 | and syntax files. See |$VIM|. Starting with version 5.4, |$VIMRUNTIME| can |
| 303 | also be used. |
| 304 | For Unix, Vim sets a default value for $VIM when doing "make install". |
| 305 | When $VIM is not set, its default value is the directory from 'helpfile', |
| 306 | excluding "/doc/help.txt". |
| 307 | |
| 308 | |
| 309 | Use of $HOME for MS-DOS and Win32 *$HOME-use* |
| 310 | --------------------------------- |
| 311 | |
| 312 | The MS-DOS and Win32 versions of Vim now first check $HOME when searching for |
| 313 | a vimrc or exrc file and for reading/storing the viminfo file. Previously Vim |
| 314 | used $VIM for these systems, but this causes trouble on a system with several |
| 315 | users. Now Vim uses $VIM only when $HOME is not set or the file is not found |
| 316 | in $HOME. See |_vimrc|. |
| 317 | |
| 318 | |
| 319 | Tags file format changed *tags-file-changed* |
| 320 | ------------------------ |
| 321 | |
Bram Moolenaar | 3416214 | 2007-05-12 13:12:19 +0000 | [diff] [blame] | 322 | Only tabs are allowed to separate fields in a tags file. This allows for |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 323 | spaces in a file name and is still Vi compatible. In previous versions of |
| 324 | Vim, any white space was allowed to separate the fields. If you have a file |
Bram Moolenaar | 3416214 | 2007-05-12 13:12:19 +0000 | [diff] [blame] | 325 | which doesn't use a single tab between fields, edit the tags file and execute |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 326 | this command: > |
| 327 | :%s/\(\S*\)\s\+\(\S*\)\s\+\(.*\)/\1\t\2\t\3/ |
| 328 | |
| 329 | |
| 330 | Options changed *options-changed* |
| 331 | --------------- |
| 332 | |
| 333 | The default value of 'errorfile' has changed from "errors.vim" to "errors.err". |
| 334 | The reason is that only Vim scripts should have the ".vim" extensions. |
| 335 | |
| 336 | The ":make" command no longer uses the 'errorfile' option. This prevents the |
| 337 | output of the ":make" command from overwriting a manually saved error file. |
| 338 | ":make" uses the 'makeef' option instead. This also allows for generating a |
| 339 | unique name, to prevent concurrently running ":make" commands from overwriting |
| 340 | each other's files. |
| 341 | |
| 342 | With 'insertmode' set, a few more things change: |
| 343 | - <Esc> in Normal mode goes to Insert mode. |
| 344 | - <Esc> in Insert mode doesn't leave Insert mode. |
| 345 | - When doing ":set im", go to Insert mode immediately. |
| 346 | |
| 347 | Vim considers a buffer to be changed when the 'fileformat' (formerly the |
| 348 | 'textmode' option) is different from the buffer's initial format. |
| 349 | |
| 350 | |
| 351 | CTRL-B in Insert mode gone *i_CTRL-B-gone* |
| 352 | -------------------------- |
| 353 | |
| 354 | When Vim was compiled with the |+rightleft| feature, you could use CTRL-B to |
| 355 | toggle the 'revins' option. Unfortunately, some people hit the 'B' key |
| 356 | accidentally when trying to type CTRL-V or CTRL-N and then didn't know how to |
| 357 | undo this. Since toggling the 'revins' option can easily be done with the |
| 358 | mapping below, this use of the CTRL-B key is disabled. You can still use the |
| 359 | CTRL-_ key for this |i_CTRL-_|. > |
| 360 | :imap <C-B> <C-O>:set revins!<CR> |
| 361 | |
| 362 | ============================================================================== |
Bram Moolenaar | 76db9e0 | 2022-11-09 21:21:04 +0000 | [diff] [blame] | 363 | NEW FEATURES *new-5* |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 364 | |
| 365 | Syntax highlighting *new-highlighting* |
| 366 | ------------------- |
| 367 | |
| 368 | Vim now has a very flexible way to highlighting just about any type of file. |
| 369 | See |syntax|. Summary: > |
| 370 | :syntax on |
| 371 | |
| 372 | Colors and attributes can be set for the syntax highlighting, and also for |
| 373 | other highlighted items with the ':' flag in the 'highlight' option. All |
| 374 | highlighted items are assigned a highlight group which specifies their |
| 375 | highlighting. See |:highlight|. The default colors have been improved. |
| 376 | |
| 377 | You can use the "Normal" group to set the default fore/background colors for a |
| 378 | color terminal. For the GUI, you can use this group to specify the font, too. |
| 379 | |
| 380 | The "2html.vim" script can be used to convert any file that has syntax |
| 381 | highlighting to HTML. The colors will be exactly the same as how you see them |
| 382 | in Vim. With a HTML viewer you can also print the file with colors. |
| 383 | |
| 384 | |
| 385 | Built-in script language *new-script* |
| 386 | ------------------------ |
| 387 | |
| 388 | A few extra commands and an expression evaluator enable you to write simple |
| 389 | but powerful scripts. Commands include ":if" and ":while". Expressions can |
| 390 | manipulate numbers and strings. You can use the '=' register to insert |
| 391 | directly the result of an expression. See |expression|. |
| 392 | |
| 393 | |
| 394 | Perl and Python support *new-perl-python* |
| 395 | ----------------------- |
| 396 | |
| 397 | Vim can call Perl commands with ":perldo", ":perl", etc. See |perl|. |
| 398 | Patches made by Sven Verdoolaege and Matt Gerassimoff. |
| 399 | |
| 400 | Vim can call Python commands with ":python" and ":pyfile". See |python|. |
| 401 | |
| 402 | Both of these are only available when enabled at compile time. |
| 403 | |
| 404 | |
| 405 | Win32 GUI version *added-win32-GUI* |
| 406 | ----------------- |
| 407 | |
Bram Moolenaar | 130cbfc | 2021-04-07 21:07:20 +0200 | [diff] [blame] | 408 | The GUI has been ported to MS-Windows 95 and NT. All the features of the X11 |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 409 | GUI are available to Windows users now. |gui-w32| |
| 410 | This also fixes problems with running the Win32 console version under Windows |
| 411 | 95, where console support has always been bad. |
| 412 | There is also a version that supports OLE automation interface. |if_ole.txt| |
| 413 | Vim can be integrated with Microsoft Developer Studio using the VisVim DLL. |
| 414 | It is possible to produce a DLL version of gvim with Borland C++ (Aaron). |
| 415 | |
| 416 | |
| 417 | VMS version *added-VMS* |
| 418 | ----------- |
| 419 | |
| 420 | Vim can now also be used on VMS systems. Port done by Henk Elbers. |
| 421 | This has not been tested much, but it should work. |
| 422 | Sorry, no documentation! |
| 423 | |
| 424 | |
| 425 | BeOS version *added-BeOS* |
| 426 | ------------ |
| 427 | |
| 428 | Vim can be used on BeOS systems (including the BeBox). (Olaf Seibert) |
| 429 | See |os_beos.txt|. |
| 430 | |
| 431 | |
| 432 | Macintosh GUI version *added-Mac* |
| 433 | --------------------- |
| 434 | |
| 435 | Vim can now be used on the Macintosh. (Dany St-Amant) |
| 436 | It has not been tested much yet, be careful! |
| 437 | See |os_mac.txt|. |
| 438 | |
| 439 | |
| 440 | More Vi compatible *more-compatible* |
| 441 | ------------------ |
| 442 | |
| 443 | There is now a real Ex mode. Started with the "Q" command, or by calling the |
| 444 | executable "ex" or "gex". |Ex-mode| |
| 445 | |
| 446 | Always allow multi-level undo, also in Vi compatible mode. When the 'u' flag |
| 447 | in 'cpoptions' is included, CTRL-R is used for repeating the undo or redo |
| 448 | (like "." in Nvi). |
| 449 | |
| 450 | |
| 451 | Read input from stdin *read-stdin* |
| 452 | --------------------- |
| 453 | |
| 454 | When using the "-" command-line argument, Vim reads its text input from stdin. |
| 455 | This can be used for putting Vim at the end of a pipe: > |
| 456 | grep "^a.*" *.c | vim - |
| 457 | See |--|. |
| 458 | |
| 459 | |
| 460 | Regular expression patterns *added-regexp* |
| 461 | --------------------------- |
| 462 | |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 463 | Added specifying a range for the number of matches of an atom: "\{a,b}". |/\{| |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 464 | Added the "shortest match" regexp "\{-}" (Webb). |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 465 | Added "\s", matches a white character. Can replace "[ \t]". |/\s| |
| 466 | Added "\S", matches a non-white character. Can replace "[^ \t]". |/\S| |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 467 | |
| 468 | |
| 469 | Overloaded tags *tag-overloaded* |
| 470 | --------------- |
| 471 | |
| 472 | When using a language like C++, there can be several tags for the same |
| 473 | tagname. Commands have been added to be able to jump to any of these |
| 474 | overloaded tags: |
| 475 | |:tselect| List matching tags, and jump to one of them. |
| 476 | |:stselect| Idem, and split window. |
| 477 | |g_CTRL-]| Do ":tselect" with the word under the cursor. |
| 478 | |
| 479 | After ":ta {tagname}" with multiple matches: |
| 480 | |:tnext| Go to next matching tag. |
| 481 | |:tprevious| Go to previous matching tag. |
| 482 | |:trewind| Go to first matching tag. |
| 483 | |:tlast| Go to last matching tag. |
| 484 | |
| 485 | The ":tag" command now also accepts wildcards. When doing command-line |
| 486 | completion on tags, case-insensitive matching is also available (at the end). |
| 487 | |
| 488 | |
| 489 | New commands *new-commands* |
| 490 | ------------ |
| 491 | |
| 492 | |:amenu| Define menus for all modes, inserting a CTRL-O for Insert |
| 493 | mode, ESC for Visual and CTRL-C for Cmdline mode. "amenu" is |
| 494 | used for the default menus and the Syntax menu. |
| 495 | |
| 496 | |:augroup| Set group to be used for following autocommands. Allows the |
| 497 | grouping of autocommands to enable deletion of a specific |
| 498 | group. |
| 499 | |
| 500 | |:crewind| Go to first error. |
| 501 | |:clast| Go to last error. |
| 502 | |
| 503 | |:doautoall| Execute autocommands for all loaded buffers. |
| 504 | |
| 505 | |:echo| Echo its argument, which is an expression. Can be used to |
| 506 | display messages which include variables. |
| 507 | |
| 508 | |:execute| Execute its argument, which is an expression. Can be used to |
| 509 | built up an Ex command with anything. |
| 510 | |
| 511 | |:hide| Works like ":close". |
| 512 | |
| 513 | |:if| Conditional execution, for built-in script language. |
| 514 | |
| 515 | |:intro| Show introductory message. This is always executed when Vim |
| 516 | is started without file arguments. |
| 517 | |
| 518 | |:let| Assign a value to an internal variable. |
| 519 | |
| 520 | |:omap| Map only in operator-pending mode. Makes it possible to map |
| 521 | text-object commands. |
| 522 | |
| 523 | |:redir| Redirect output of messages to a file. |
| 524 | |
| 525 | |:update| Write when buffer has changed. |
| 526 | |
| 527 | |:while| While-loop for built-in script language. |
| 528 | |
| 529 | Visual mode: |
| 530 | |v_O| "O" in Visual block mode, moves the cursor to the other corner |
| 531 | horizontally. |
| 532 | |v_D| "D" in Visual block mode deletes till end of line. |
| 533 | |
| 534 | Insert mode: |
| 535 | |i_CTRL-]| Triggers abbreviation, without inserting any character. |
| 536 | |
| 537 | |
| 538 | New options *added-options* |
| 539 | ----------- |
| 540 | |
| 541 | 'background' Used for selecting highlight color defaults. Also used in |
| 542 | "syntax.vim" for selecting the syntax colors. Often set |
| 543 | automatically, depending on the terminal used. |
| 544 | |
| 545 | 'complete' Specifies how Insert mode completion works. |
| 546 | |
| 547 | 'eventignore' Makes it possible to ignore autocommands temporarily. |
| 548 | |
| 549 | 'fileformat' Current file format. Replaces 'textmode'. |
| 550 | 'fileformats' Possible file formats. Replaces 'textauto'. |
| 551 | New is that this also supports Macintosh format: A single <CR> |
| 552 | separates lines. |
| 553 | The default for 'fileformats' for MS-DOS, Win32 and OS/2 is |
| 554 | "dos,unix", also when 'compatible' set. Unix type files |
| 555 | didn't work anyway when 'fileformats' was empty. |
| 556 | |
| 557 | 'guicursor' Set the cursor shape and blinking in various modes. |
| 558 | Default is to adjust the cursor for Insert and Replace mode, |
| 559 | and when an operator is pending. Blinking is default on. |
| 560 | |
| 561 | 'fkmap' Farsi key mapping. |
| 562 | |
| 563 | 'hlsearch' Highlight all matches with the last used search pattern. |
| 564 | |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 565 | 'hkmapp' Phonetic Hebrew mapping. (Ilya Dogolazky) |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 566 | |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 567 | 'iconstring' Define the name of the icon, when not empty. (Version 5.2: the |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 568 | string is used literally, a newline can be used to make two |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 569 | lines.) |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 570 | |
| 571 | 'lazyredraw' Don't redraw the screen while executing macros, registers or |
| 572 | other not typed commands. |
| 573 | |
| 574 | 'makeef' Errorfile to be used for ":make". "##" is replaced with a |
| 575 | unique number. Avoids that two Vim sessions overwrite each |
| 576 | others errorfile. The Unix default is "/tmp/vim##.err"; for |
| 577 | Amiga "t:vim##.Err, for others "vim##.err". |
| 578 | |
| 579 | 'matchtime' 1/10s of a second to show a matching paren, when 'showmatch' |
| 580 | is set. Like Nvi. |
| 581 | |
| 582 | 'mousehide' Hide mouse pointer in GUI when typing text. |
| 583 | |
| 584 | 'nrformats' Defines what bases Vim will consider for numbers when using |
| 585 | the CTRL-A and CTRL-X commands. Default: "hex,octal". |
| 586 | |
| 587 | 'shellxquote' Add extra quotes around the whole shell command, including |
| 588 | redirection. |
| 589 | |
| 590 | 'softtabstop' Make typing behave like tabstop is set at this value, without |
| 591 | changing the value of 'tabstop'. Makes it more easy to keep |
| 592 | 'ts' at 8, while still getting four spaces for a <Tab>. |
| 593 | |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 594 | 'titlestring' String for the window title, when not empty. (Version 5.2: |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 595 | this string is used literally, a newline can be used to make |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 596 | two lines.) |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 597 | |
| 598 | 'verbose' Level of verbosity. Makes it possible to show which .vimrc, |
| 599 | .exrc, .viminfo files etc. are used for initializing. Also |
| 600 | to show autocommands that are being executed. Can also be set |
| 601 | by using the "-V" command-line argument. |
| 602 | |
| 603 | |
| 604 | New command-line arguments *added-cmdline-args* |
| 605 | -------------------------- |
| 606 | |
| 607 | |-U| Set the gvimrc file to be used. Like "-u" for the vimrc. |
| 608 | |
| 609 | |-V| Set the 'verbose' option. E.g. "vim -V10". |
| 610 | |
| 611 | |-N| Start in non-compatible mode. |
| 612 | |
| 613 | |-C| Start in compatible mode. |
| 614 | |
| 615 | |-Z| Start in restricted mode, disallow shell commands. Can also |
| 616 | be done by calling the executable "rvim". |
| 617 | |
| 618 | |-h| Show usage information and exit. |
| 619 | |
| 620 | |
| 621 | Various additions *added-various* |
| 622 | ----------------- |
| 623 | |
| 624 | Added support for SNiFF+ connection (submitted by Toni Leherbauer). Vim can |
| 625 | be used as an editor for SNiFF. No documentation available... |
| 626 | |
| 627 | For producing a bug report, the bugreport.vim script has been included. |
| 628 | Can be used with ":so $VIMRUNTIME/bugreport.vim", which creates the file |
| 629 | "bugreport.txt" in the current directory. |bugs| |
| 630 | |
| 631 | Added range to ":normal" command. Now you can repeat the same command for |
| 632 | each line in the range. |:normal-range| |
| 633 | |
| 634 | Included support for the Farsi language (Shiran). Only when enabled at |
| 635 | compile time. See |farsi|. |
| 636 | |
| 637 | ============================================================================== |
Bram Moolenaar | 76db9e0 | 2022-11-09 21:21:04 +0000 | [diff] [blame] | 638 | IMPROVEMENTS *improvements-5* |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 639 | |
| 640 | Performance: |
| 641 | - When 'showcmd' was set, mappings would execute much more slowly because the |
| 642 | output would be flushed very often. Helps a lot when executing the "life" |
| 643 | macros with 'showcmd' set. |
| 644 | - Included patches for binary searching in tags file (David O'Neill). |
| 645 | Can be disabled by resetting the 'tagbsearch' option. |
| 646 | - Don't update the ruler when repeating insert (slowed it down a lot). |
| 647 | - For Unix, file name expansion is now done internally instead of starting a |
| 648 | shell for it. |
| 649 | - Expand environment variables with expand_env(), instead of calling the |
| 650 | shell. Makes ":so $VIMRUNTIME/syntax/syntax.vim" a LOT faster. |
| 651 | - Reduced output for cursor positioning: Use CR-LF for moving to first few |
| 652 | columns in next few lines; Don't output CR twice when using termios. |
| 653 | - Optimized cursor positioning. Use CR, BS and NL when it's shorter than |
| 654 | absolute cursor positioning. |
| 655 | - Disable redrawing while repeating insert "1000ii<Esc>". |
| 656 | - Made "d$" or "D" for long lines a lot faster (delete all characters at once, |
| 657 | instead of one by one). |
| 658 | - Access option table by first letter, instead of searching from start. |
| 659 | - Made setting special highlighting attributes a lot faster by using |
| 660 | highlight_attr[], instead of searching in the 'highlight' string. |
| 661 | - Don't show the mode when redrawing is disabled. |
| 662 | - When setting an option, only redraw the screen when required. |
| 663 | - Improved performance of Ex commands by using a lookup table for the first |
| 664 | character. |
| 665 | |
| 666 | Options: |
| 667 | 'cinoptions' Added 'g' flag, for C++ scope declarations. |
| 668 | 'cpoptions' Added 'E' flag: Disallow yanking, deleting, etc. empty text |
| 669 | area. Default is to allow empty yanks. When 'E' is included, |
| 670 | "y$" in an empty line now is handled as an error (Vi |
| 671 | compatible). |
| 672 | Added 'j' flag: Only add two spaces for a join after a '.', |
| 673 | not after a '?' or '!'. |
| 674 | Added 'A' flag: don't give ATTENTION message. |
| 675 | Added 'L' flag: When not included, and 'list' is set, |
| 676 | 'textwidth' formatting works like 'list' is not set. |
| 677 | Added 'W' flag: Let ":w!" behave like Vi: don't overwrite |
| 678 | readonly files, or a file owned by someone else. |
| 679 | 'highlight' Added '@' flag, for '@' characters after the last line on the |
| 680 | screen, and '$' at the end of the line when 'list' is set. |
| 681 | Added 'i' flag: Set highlighting for 'incsearch'. Default |
| 682 | uses "IncSearch" highlight group, which is linked to "Visual". |
| 683 | Disallow 'h' flag in 'highlight' (wasn't used anymore since |
| 684 | 3.0). |
| 685 | 'guifont' Win32 GUI only: When set to "*" brings up a font requester. |
| 686 | 'guipty' Default on, because so many people need it. |
| 687 | 'path' Can contain wildcards, and "**" for searching a whole tree. |
| 688 | 'shortmess' Added 'I' flag to avoid the intro message. |
| 689 | 'viminfo' Added '%' flag: Store buffer list in viminfo file. |
| 690 | |
| 691 | - Increased defaults for 'maxmem' and 'maxmemtot' for Unix and Win32. Most |
| 692 | machines have much more RAM now that prices have dropped. |
| 693 | - Implemented ":set all&", set all options to their default value. |:set| |
| 694 | |
| 695 | Swap file: |
| 696 | - Don't create a swap file for a readonly file. Then create one on the first |
| 697 | change. Also create a swapfile when the amount of memory used is getting |
| 698 | too high. |swap-file| |
| 699 | - Make swap file "hidden", if possible. On Unix this is done by prepending a |
| 700 | dot to the swap file name. When long file names are used, the DJGPP and |
| 701 | Win32 versions also prepend a dot, in case a file on a mounted Unix file |
| 702 | system is edited. |:swapname| On MSDOS the hidden file attribute is NOT |
| 703 | set, because this causes problems with share.exe. |
| 704 | - 'updatecount' always defaults to non-zero, also for Vi compatible mode. |
| 705 | This means there is a swap file, which can be used for recovery. |
| 706 | |
| 707 | Tags: |
| 708 | - Included ctags 2.0 (Darren Hiebert). The syntax for static tags changed |
| 709 | from |
| 710 | {tag}:{fname} {fname} {command} |
| 711 | to |
| 712 | {tag} {fname} {command};" file: |
| 713 | Which is both faster to parse, shorter and Vi compatible. The old format is |
| 714 | also still accepted, unless disabled in src/feature.h (see OLD_STATIC_TAGS). |
| 715 | |tags-file-format| |
| 716 | - Completion of tags now also includes static tags for other files, at the |
| 717 | end. |
| 718 | - Included "shtags" from Stephen Riehm. |
| 719 | - When finding a matching tag, but the file doesn't exist, continue searching |
| 720 | for another match. Helps when using the same tags file (with links) for |
| 721 | different versions of source code. |
| 722 | - Give a tag with a global match in the current file a higher priority than a |
| 723 | global match in another file. |
| 724 | |
| 725 | Included xxd version V1.8 (Juergen Weigert). |
| 726 | |
| 727 | Autocommands: |
| 728 | - VimLeave autocommands are executed after writing the viminfo file, instead |
| 729 | of before. |VimLeave| |
| 730 | - Allow changing autocommands while executing them. This allows for |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 731 | self-modifying autocommands. (idea from Goldberg) |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 732 | - When using autocommands with two or more patterns, could not split |
| 733 | ":if/:endif" over two lines. Now all matching autocommands are executed in |
| 734 | one do_cmdline(). |
| 735 | - Autocommands no longer change the command repeated with ".". |
| 736 | - Search patterns are restored after executing autocommands. This avoids |
| 737 | that the 'hlsearch' highlighting is messed up by autocommands. |
| 738 | - When trying to execute an autocommand, also try matching the pattern with |
| 739 | the short file name. Helps when short file name is different from full |
| 740 | file name (expanded symbolic links). |autocmd-patterns| |
| 741 | - Made the output of ":autocmd" shorter and look better. |
| 742 | - Expand <sfile> in an ":autocmd" when it is defined. |<sfile>| |
| 743 | - Added "nested" flag to ":autocmd", allows nesting. |autocmd-nested| |
| 744 | - Added [group] argument to ":autocmd". Overrides the currently set group. |
| 745 | |autocmd-groups| |
| 746 | - new events: |
| 747 | |BufUnload| before a buffer is unloaded |
| 748 | |BufDelete| before a buffer is deleted from the buffer list |
| 749 | |FileChangedShell| when a file's modification time has changed after |
| 750 | executing a shell command |
| 751 | |User| user-defined autocommand |
| 752 | - When 'modified' was set by a BufRead* autocommand, it was reset again |
| 753 | afterwards. Now the ":set modified" is remembered. |
| 754 | |
| 755 | GUI: |
| 756 | - Improved GUI scrollbar handling when redrawing is slower than the scrollbar |
| 757 | events are generated. |
| 758 | - "vim -u NONE" now also stops loading the .gvimrc and other GUI inits. |-u| |
| 759 | Use "-U" to use another gvimrc file. |-U| |
| 760 | - Handle CTRL-C for external command, also for systems where "setsid()" is |
| 761 | supported. |
| 762 | - When starting the GUI, restrict the window size to the screen size. |
| 763 | - The default menus are read from $VIMRUNTIME/menu.vim. This allows for a |
| 764 | customized default menu. |menu.vim| |
| 765 | - Improved the default menus. Added File/Print, a Window menu, Syntax menu, |
| 766 | etc. |
| 767 | - Added priority to the ":menu" command. Now each menu can be put in a place |
| 768 | where you want it, independent of the order in which the menus are defined. |
| 769 | |menu-priority| |
| 770 | |
| 771 | Give a warning in the intro screen when running the Win32 console version on |
| 772 | Windows 95 because there are problems using this version under Windows 95. |
| 773 | |win32-problems| |
| 774 | |
| 775 | Added 'e' flag for ":substitute" command: Don't complain when not finding a |
| 776 | match (Campbell). |:s| |
| 777 | |
| 778 | When using search commands in a mapping, only the last one is kept in the |
| 779 | history. Avoids that the history is trashed by long mappings. |
| 780 | |
| 781 | Ignore characters after "ex", "view" and "gvim" when checking startup mode. |
| 782 | Allows the use of "gvim5" et. al. |gvim| "gview" starts the GUI in readonly |
| 783 | mode. |gview| |
| 784 | |
| 785 | When resizing windows, the cursor is kept in the same relative position, if |
| 786 | possible. (Webb) |
| 787 | |
| 788 | ":all" and ":ball" no longer close and then open a window for the same buffer. |
| 789 | Avoids losing options, jumplist, and other info. |
| 790 | |
| 791 | "-f" command-line argument is now ignored if Vim was compiled without GUI. |
| 792 | |-f| |
| 793 | |
| 794 | In Visual block mode, the right mouse button picks up the nearest corner. |
| 795 | |
| 796 | Changed default mappings for DOS et al. Removed the DOS-specific mappings, |
| 797 | only use the Windows ones. Added Shift-Insert, Ctrl-Insert, Ctrl-Del and |
| 798 | Shift-Del. |
| 799 | |
| 800 | Changed the numbers in the output of ":jumps", so you can see where {count} |
| 801 | CTRL-O takes you. |:jumps| |
| 802 | |
| 803 | Using "~" for $HOME now works for all systems. |$HOME| |
| 804 | |
| 805 | Unix: Besides using CTRL-C, also use the INTR character from the tty settings. |
| 806 | Somebody has INTR set to DEL. |
| 807 | |
Bram Moolenaar | 4072ba5 | 2020-12-23 13:56:35 +0100 | [diff] [blame] | 808 | Allow a <NL> in a ":help" command argument to end the help command, so another |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 809 | command can follow. |
| 810 | |
| 811 | Doing "%" on a line that starts with " #if" didn't jump to matching "#else". |
| 812 | Don't recognize "#if", "#else" etc. for '%' when 'cpo' contains the '%' flag. |
| 813 | |%| |
| 814 | |
| 815 | Insert mode expansion with "CTRL-N", "CTRL-P" and "CTRL-X" improved |
| 816 | |ins-completion|: |
| 817 | - 'complete' option added. |
| 818 | - When 'nowrapscan' is set, and no match found, report the searched direction |
| 819 | in the error message. |
| 820 | - Repeating CTRL-X commands adds following words/lines after the match. |
| 821 | - When adding-expansions, accept single character matches. |
| 822 | - Made repeated CTRL-X CTRL-N not break undo, and "." repeats the whole |
| 823 | insertion. Also fixes not being able to backspace over a word that has been |
| 824 | inserted with CTRL-N. |
| 825 | |
| 826 | When copying characters in Insert mode from previous/next line, with CTRL-E or |
| 827 | CTRL-Y, 'textwidth' is no longer used. |i_CTRL-E| |
| 828 | |
| 829 | Commands that move in the arglist, like ":n" and ":rew", keep the old cursor |
| 830 | position of the file (this is mostly Vi compatible). |
| 831 | |
| 832 | Vim now remembers the '< and '> marks for each buffer. This fixes a problem |
| 833 | that a line-delete in one buffer invalidated the '< and '> marks in another |
| 834 | buffer. |'<| |
| 835 | |
| 836 | For MSDOS, Unix and OS/2: When $VIM not set, use the path from the executable. |
| 837 | When using the executable path for $VIM, remove "src/" when present. Should |
| 838 | make Vim find the docs and syntax files when it is run directly after |
| 839 | compiling. |$VIM| |
| 840 | |
| 841 | When quitting Visual mode with <Esc>, the cursor is put at start of the Visual |
| 842 | area (like after executing an operator). |
| 843 | |
| 844 | Win32 and Unix version: Removed 1100 character limit on external commands. |
| 845 | |
| 846 | Added possibility to include a space in a ":edit +command" argument, by |
| 847 | putting a backslash before it. |+cmd| |
| 848 | |
| 849 | After recovery, BufReadPost autocommands are applied. |:recover| |
| 850 | |
Bram Moolenaar | fa73534 | 2016-01-03 22:14:44 +0100 | [diff] [blame] | 851 | Added color support for "os2ansi", OS/2 console. (Slootman) |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 852 | |
| 853 | Allow "%:p:h" when % is empty. |:_%| |
| 854 | |
| 855 | Included "<sfile>": file name from the ":source" command. |<sfile>| |
| 856 | |
| 857 | Added "<Bslash>" special character. Helps for avoiding multiple backslashes |
| 858 | in mappings and menus. |
| 859 | |
| 860 | In a help window, a double-click jumps to the tag under the cursor (like |
| 861 | CTRL-]). |
| 862 | |
| 863 | <C-Left> and <C-Right> now work like <S-Left> and <S-Right>, move a word |
| 864 | forward/backward (Windows compatible). |<C-Left>| |
| 865 | |
| 866 | Removed the requirement for a ":version" command in a .vimrc file. It wasn't |
| 867 | used for anything. You can use ":if" to handle differences between versions. |
| 868 | |:version| |
| 869 | |
| 870 | For MS-DOS, Win32 and OS/2: When comparing file names for autocommands, don't |
| 871 | make a difference between '/' and '\' for path separator. |
| 872 | |
| 873 | New termcap options: |
| 874 | "mb": blink. Can only be used by assigning it to one of the other highlight |
| 875 | options. |t_mb| |
| 876 | "bc": backspace character. |t_bc| |
| 877 | "nd": Used for moving the cursor right in the GUI, to avoid removing one line |
| 878 | of pixels from the last bold character. |t_nd| |
| 879 | "xs": highlighting not erased by overwriting, for hpterm. Combined with |
| 880 | 'weirdinvert'. Visual mode works on hpterm now. |t_xs| |
| 881 | |
| 882 | Unix: Set time of patch and backup file same as original file. (Hiebert). |
| 883 | |
| 884 | Amiga: In QuickFix mode no longer opens another window. Shell commands can be |
| 885 | used now. |
| 886 | |
| 887 | Added decmouse patches from David Binette. Can now use Dec and Netterm mouse. |
| 888 | But only when enabled at compile time. |
| 889 | |
| 890 | Added '#' register: Alternate file name |quote#|. Display '#' register with |
| 891 | ":dis" command. |:display| |
| 892 | |
| 893 | Removed ':' from 'isfname' default for Unix. Check for "://" in a file name |
| 894 | anyway. Also check for ":\\", for MS-DOS. |
| 895 | |
| 896 | Added count to "K"eyword command, when 'keywordprg' is "man", is inserted in |
| 897 | the man command. "2K" results in "!man 2 <cword>". |K| |
| 898 | |
| 899 | When using "gf" on a relative path name, remove "../" from the file name, like |
| 900 | it's done for file names in the tags file. |gf| |
| 901 | |
| 902 | When finishing recording, don't make the recorded register the default put |
| 903 | register. |
| 904 | |
| 905 | When using "!!", don't put ":5,5!" on the command-line, but ":.!". And some |
| 906 | other enhancements to replace the line number with "." or "$" when possible. |
| 907 | |
| 908 | MSDOS et al.: Renamed $VIM/viminfo to $VIM/_viminfo. It's more consistent: |
| 909 | .vimrc/_vimrc and .viminfo/_viminfo |
| 910 | |
| 911 | For systems where case doesn't matter in file names (MSDOS, Amiga), ignore |
| 912 | case while sorting file names. For buffer names too. |
| 913 | |
| 914 | When reading from stdin doesn't work, read from stderr (helps for "foo | xargs |
| 915 | vim"). |
| 916 | |
| 917 | 32 bit MS-DOS version: Replaced csdpmi3 by csdpmi4. |
| 918 | |
| 919 | Changed <C-Left> and <C-Right> to skip a WORD instead of a word. |
| 920 | |
| 921 | Warning for changed modified time when overwriting a file now also works on |
| 922 | other systems than Unix. |
| 923 | |
| 924 | Unix: Changed the defaults for configure to be the same as the defaults for |
| 925 | Makefile: include GUI, Perl, and Python. |
| 926 | |
| 927 | Some versions of Motif require "-lXpm". Added check for this in configure. |
| 928 | |
| 929 | Don't add "-L/usr/lib" to the link line, causes problems on a few systems. |
| 930 | |
| 931 | ============================================================================== |
Bram Moolenaar | 76db9e0 | 2022-11-09 21:21:04 +0000 | [diff] [blame] | 932 | COMPILE TIME CHANGES *compile-changes-5* |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 933 | |
| 934 | When compiling, allow a choice for minimal, normal or maximal features in an |
| 935 | easy way, by changing a single line in src/feature.h. |
| 936 | The DOS16 version has been compiled with minimal features to avoid running |
Bram Moolenaar | dae8d21 | 2016-02-27 22:40:16 +0100 | [diff] [blame] | 937 | out of memory too quickly. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 938 | The Win32, DJGPP, and OS/2 versions use maximal features, because they have |
| 939 | enough memory. |
| 940 | The Amiga version is available with normal and maximal features. |
| 941 | |
| 942 | Added "make test" to Unix version Makefile. Allows for a quick check if most |
| 943 | "normal" commands work properly. Also tests a few specific commands. |
| 944 | |
| 945 | Added setlocale() with codepage support for DJGPP version. |
| 946 | |
| 947 | autoconf: |
| 948 | - Added autoconf check for -lXdmcp. |
| 949 | - Included check for -lXmu, no longer needed to edit the Makefile for this. |
| 950 | - Switched to autoconf 2.12. |
| 951 | - Added configure check for <poll.h>. Seems to be needed when including |
| 952 | Perl on Linux? |
| 953 | - termlib is now checked before termcap. |
| 954 | - Added configure check for strncasecmp(), stricmp() and strnicmp(). Added |
| 955 | vim_stricmp() for when there's no library function for stricmp(). |
| 956 | - Use "datadir" in configure, instead of our own check for HELPDIR. |
| 957 | |
| 958 | Removed "make proto" from Makefile.manx. Could not make it work without a lot |
| 959 | of #ifdefs. |
| 960 | |
| 961 | Removed "proto/" from paths in proto.h. Needed for the Mac port. |
| 962 | |
| 963 | Drastically changed Makefile.mint. Now it includes the Unix Makefile. |
| 964 | |
| 965 | Added support for Dos16 in Makefile.b32 (renamed Makefile.b32 to Makefile.bor) |
| 966 | |
| 967 | All source files are now edited with a tabstop of 8 instead of 4, which is |
| 968 | better when debugging and using other tools. 'softtabstop' is set to 4, to |
| 969 | make editing easier. |
| 970 | |
| 971 | Unix: Added "link.sh" script, which removes a few unnecessary libraries from |
| 972 | the link command. |
| 973 | |
| 974 | Don't use HPUX digraphs by default, but only when HPUX_DIGRAPHS is defined. |
| 975 | |digraphs-default| |
| 976 | |
| 977 | ============================================================================== |
Bram Moolenaar | 76db9e0 | 2022-11-09 21:21:04 +0000 | [diff] [blame] | 978 | BUG FIXES *bug-fixes-5* |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 979 | |
| 980 | Note: Some of these fixes may only apply to test versions which were |
| 981 | created after version 4.6, but before 5.0. |
| 982 | |
| 983 | |
| 984 | When doing ":bdel", try going to the next loaded buffer. Don't rewind to the |
| 985 | start of the buffer list. |
| 986 | |
| 987 | mch_isdir() for Unix returned TRUE for "" on some systems. |
| 988 | |
| 989 | Win32: 'shell' set to "mksnt/sh.exe" breaks ":!" commands. Don't use |
| 990 | backslashes in the temp file names. |
| 991 | |
| 992 | On linux, with a FAT file system, could get spurious "file xxx changed since |
| 993 | editing started" messages, because the time is rounded off to two seconds |
| 994 | unexpectedly. |
| 995 | |
| 996 | Crash in GUI, when selecting a word (double click) and then extend until an |
| 997 | empty line. |
| 998 | |
| 999 | For systems where isdigit() can't handle characters > 255, get_number() caused |
| 1000 | a crash when moving the mouse during the prompt for recovery. |
| 1001 | |
| 1002 | In Insert mode, "CTRL-O P" left the cursor on the last inserted character. |
| 1003 | Now the cursor is left after the last putted character. |
| 1004 | |
| 1005 | When quickfix found an error type other than 'e' or 'w', it was never printed. |
| 1006 | |
| 1007 | A setting for 'errorfile' in a .vimrc overruled the "-q errorfile" argument. |
| 1008 | |
| 1009 | Some systems create a file when generating a temp file name. Filtering would |
| 1010 | then create a backup file for this, which was never deleted. Now no backup |
| 1011 | file is made when filtering. |
| 1012 | |
| 1013 | simplify_filename() could remove a ".." after a link, resulting in the wrong |
| 1014 | file name. Made simplify_filename also work for MSDOS. Don't use it for |
| 1015 | Amiga, since it doesn't have "../". |
| 1016 | |
| 1017 | otherfile() was unreliable when using links. Could think that reading/writing |
| 1018 | was for a different file, when it was the same. |
| 1019 | |
| 1020 | Pasting with mouse in Replace mode didn't replace anything. |
| 1021 | |
| 1022 | Window height computed wrong when resizing a window with an autocommand (could |
| 1023 | cause a crash). |
| 1024 | |
| 1025 | ":s!foo!bar!" wasn't possible (Vi compatible). |
| 1026 | |
| 1027 | do_bang() freed memory twice when called recursively, because of autocommands |
| 1028 | (test11). Thanks to Electric Fence! |
| 1029 | |
| 1030 | "v$d" on an empty line didn't remove the "-- VISUAL --" mode message from the |
| 1031 | command-line, and inverted the cursor. |
| 1032 | |
| 1033 | ":mkexrc" didn't check for failure to open the file, causing a crash. |
| 1034 | (Felderhoff). |
| 1035 | |
| 1036 | Win32 mch_write() wrote past fixed buffer, causing terminal keys no longer to |
| 1037 | be recognized. Both console and GUI version. |
| 1038 | |
| 1039 | Athena GUI: Crash when removing a menu item. Now Vim doesn't crash, but the |
| 1040 | reversing of the menu item is still wrong. |
| 1041 | |
| 1042 | Always reset 'list' option for the help window. |
| 1043 | |
| 1044 | When 'scrolloff' is non-zero, a 'showmatch' could cause the shown match to be |
| 1045 | in the wrong line and the window to be scrolled (Acevedo). |
| 1046 | |
| 1047 | After ":set all&", 'lines' and 'ttytype' were still non-default, because the |
| 1048 | defaults never got set. Now the defaults for 'lines' and 'columns' are set |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 1049 | after detecting the window size. 'term' and 'ttytype' defaults are set when |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 1050 | detecting the terminal type. |
| 1051 | |
| 1052 | For (most) non-Unix systems, don't add file names with illegal characters when |
| 1053 | expanding. Fixes "cannot open swapfile" error when doing ":e *.burp", when |
| 1054 | there is no match. |
| 1055 | |
| 1056 | In X11 GUI, drawing part of the cursor obscured the text. Now the text is |
| 1057 | drawn over the cursor, like when it fills the block. (Seibert) |
| 1058 | |
| 1059 | when started with "-c cmd -q errfile", the cursor would be left in line 1. |
| 1060 | Now a ":cc" is done after executing "cmd". |
| 1061 | |
| 1062 | ":ilist" never ignored case, even when 'ignorecase' set. |
| 1063 | |
| 1064 | "vim -r file" for a readonly file, then making a change, got ATTENTION message |
| 1065 | in insert mode, display mixed up until <Esc> typed. Also don't give ATTENTION |
| 1066 | message after recovering a file. |
| 1067 | |
| 1068 | The abbreviation ":ab #i #include" could not be removed. |
| 1069 | |
| 1070 | CTRL-L completion (longest common match) on command-line didn't work properly |
| 1071 | for case-insensitive systems (MS-DOS, Windows, etc.). (suggested by Richard |
| 1072 | Kilgore). |
| 1073 | |
| 1074 | For terminals that can hide the cursor ("vi" termcap entry), resizing the |
| 1075 | window caused the cursor to disappear. |
| 1076 | |
| 1077 | Using an invalid mark in an Ex address didn't abort the command. |
| 1078 | |
| 1079 | When 'smarttab' set, would use 'shiftround' when inserting a TAB after a |
| 1080 | space. Now it always rounds to a tabstop. |
| 1081 | |
| 1082 | Set '[ and '] marks for ":copy", ":move", ":append", ":insert", ":substitute" |
| 1083 | and ":change". (Acevedo). |
| 1084 | |
| 1085 | "d$" in an empty line still caused an error, even when 'E' is not in |
| 1086 | 'cpoptions'. |
| 1087 | |
| 1088 | Help files were stored in the viminfo buffer list without a path. |
| 1089 | |
| 1090 | GUI: Displaying cursor was not synchronized with other displaying. Caused |
| 1091 | several display errors. For example, when the last two lines in the file |
| 1092 | start with spaces, "dd" on the last line copied text to the (then) last line. |
| 1093 | |
| 1094 | Win32: Needed to type CTRL-SHIFT-- to get CTRL-_. |
| 1095 | |
| 1096 | GUI: Moving the cursor forwards over bold text would remove one column of bold |
| 1097 | pixels. |
| 1098 | |
| 1099 | X11 GUI: When a bold character in the last column was scrolled up or down, one |
| 1100 | column of pixels would not be copied. |
| 1101 | |
| 1102 | Using <BS> to move the cursor left can sometimes erase a character. Now use |
| 1103 | "le" termcap entry for this. |
| 1104 | |
| 1105 | Keyword completion with regexp didn't work. e.g., for "b.*crat". |
| 1106 | |
| 1107 | Fixed: With CTRL-O that jumps to another file, cursor could end up just after |
| 1108 | the line. |
| 1109 | |
| 1110 | Amiga: '$' was missing from character recognized as wildcards, causing $VIM |
| 1111 | sometimes not to be expanded. |
| 1112 | |
| 1113 | ":change" didn't adjust marks for deleted lines. |
| 1114 | |
| 1115 | ":help [range]" didn't work. Also for [pattern], [count] and [quotex]. |
| 1116 | |
| 1117 | For 'cindent'ing, typing "class::method" doesn't align like a label when the |
| 1118 | second ':' is typed. |
| 1119 | When inserting a CR with 'cindent' set (and a bunch of other conditions) the |
| 1120 | cursor went to a wrong location. |
| 1121 | 'cindent' was wrong for a line that ends in '}'. |
| 1122 | 'cindent' was wrong after "else {". |
| 1123 | |
| 1124 | While editing the cmdline in the GUI, could not use the mouse to select text |
| 1125 | from the command-line itself. |
| 1126 | |
| 1127 | When deleting lines, marks in tag stack were only adjusted for the current |
| 1128 | window, not for other windows on the same buffer. |
| 1129 | |
| 1130 | Tag guessing could find a function "some_func" instead of the "func" we were |
| 1131 | looking for. |
| 1132 | |
| 1133 | Tags file name relative to the current file didn't work. |
| 1134 | |
| 1135 | ":g/pat2/s//pat2/g", causing the number of subs to be reported, used to cause |
| 1136 | a scroll up. Now you no longer have to hit <CR>. |
| 1137 | |
| 1138 | X11 GUI: Selecting text could cause a crash. |
| 1139 | |
| 1140 | 32 bit DOS version: CTRL-C in external command killed Vim. When SHELL is set |
| 1141 | to "sh.exe", external commands didn't work. Removed using of command.com, no |
| 1142 | longer need to set 'shellquote'. |
| 1143 | |
| 1144 | Fixed crash when using ":g/pat/i". |
| 1145 | |
| 1146 | Fixed (potential) crash for X11 GUI, when using an X selection. Was giving a |
| 1147 | pointer on the stack to a callback function, now it's static. |
| 1148 | |
| 1149 | Using "#" and "*" with an operator didn't work. E.g. "c#". |
| 1150 | |
| 1151 | Command-line expansion didn't work properly after ":*". (Acevedo) |
| 1152 | |
| 1153 | Setting 'weirdinvert' caused highlighting to be wrong in the GUI. |
| 1154 | |
| 1155 | ":e +4 #" didn't work, because the "4" was in unallocated memory (could cause |
| 1156 | a crash). |
| 1157 | |
| 1158 | Cursor position was wrong for ":e #", after ":e #" failed, because of changes |
| 1159 | to the buffer. |
| 1160 | |
| 1161 | When doing ":buf N", going to a buffer that was edited with ":view", the |
| 1162 | readonly flag was reset. Now make a difference between ":e file" and ":buf |
| 1163 | file": Only set/reset 'ro' for the first one. |
| 1164 | |
| 1165 | Avoid |hit-enter| prompt when not able to write viminfo on exit. |
| 1166 | |
| 1167 | When giving error messages in the terminal where the GUI was started, GUI |
| 1168 | escape codes would be written to the terminal. In an xterm this could be seen |
| 1169 | as a '$' after the message. |
| 1170 | |
| 1171 | Mouse would not work directly after ":gui", because full_screen isn't set, |
| 1172 | which causes starttermcap() not to do its work. |
| 1173 | |
| 1174 | 'incsearch' did not scroll the window in the same way as the actual search. |
| 1175 | When 'nowrap' set, incsearch didn't show a match when it was off the side of |
| 1176 | the screen. Now it also shows the whole match, instead of just the cursor |
| 1177 | position (if possible). |
| 1178 | |
| 1179 | ":unmap", ":unab" and ":unmenu" did not accept a double quote, it was seen as |
| 1180 | the start of a comment. Now it's Vi compatible. |
| 1181 | |
| 1182 | Using <Up><Left><Left><Up> in the command-line, when there is no previous |
| 1183 | cmdline in the history, inserted a NUL on the command-line. |
| 1184 | |
| 1185 | "i<Esc>" when on a <Tab> in column 0 left the cursor in the wrong place. |
| 1186 | |
| 1187 | GUI Motif: When adding a lot of menu items, the menu bar goes into two rows. |
| 1188 | Deleting menu items, reducing the number of rows, now also works. |
| 1189 | |
| 1190 | With ":g/pat/s//foo/c", a match in the first line was scrolled off of the |
| 1191 | screen, so you could not see it. |
| 1192 | When using ":s//c", with 'nowrap' set, a match could be off the side of the |
| 1193 | screen, so you could not see it. |
| 1194 | |
| 1195 | When 'helpfile' was set to a fixed, non-absolute path in feature.h, Vim would |
| 1196 | crash. mch_Fullname can now handle file names in read-only memory. (Lottem) |
| 1197 | |
| 1198 | When using CTRL-A or CTRL-@ in Insert mode, there could be strange effects |
| 1199 | when using CTRL-D next. Also, when repeating inserted text that included "0 |
| 1200 | CTRL-D" or "^ CTRL-D" this didn't work. (Acevedo) |
| 1201 | Using CTRL-D after using CTRL-E or CTRL-Y in Insert mode that inserted a '0' |
| 1202 | or '^', removed the '0' or '^' and more indent. |
| 1203 | |
| 1204 | The command "2".p" caused the last inserted text to be executed as commands. |
| 1205 | (Acevedo) |
| 1206 | |
| 1207 | Repeating the insert of "CTRL-V 048" resulted in "^@" to be inserted. |
| 1208 | |
| 1209 | Repeating Insert completion could fail if there are special characters in the |
| 1210 | text. (Acevedo) |
| 1211 | |
| 1212 | ":normal /string<CR>" caused the window to scroll. Now all ":normal" commands |
| 1213 | are executed without scrolling messages. |
| 1214 | |
| 1215 | Redo of CTRL-E or CTRL-Y in Insert mode interpreted special characters as |
| 1216 | commands. |
| 1217 | |
| 1218 | Line wrapping for 'tw' was done one character off for insert expansion |
| 1219 | inserts. |
| 1220 | |
| 1221 | buffer_exists() function didn't work properly for buffer names with a symbolic |
| 1222 | link in them (e.g. when using buffer_exists(#)). |
| 1223 | |
| 1224 | Removed the "MOTIF_COMMENT" construction from Makefile. It now works with |
| 1225 | FreeBSD make, and probably with NeXT make too. |
| 1226 | |
| 1227 | Matching the 'define' and 'include' arguments now honor the settings for |
| 1228 | 'ignorecase'. (Acevedo) |
| 1229 | |
| 1230 | When one file shown in two windows, Visual selection mixed up cursor position |
| 1231 | in current window and other window. |
| 1232 | |
| 1233 | When doing ":e file" from a help file, the 'isk' option wasn't reset properly, |
| 1234 | because of a modeline in the help file. |
| 1235 | |
| 1236 | When doing ":e!", a cursor in another window on the same buffer could become |
| 1237 | invalid, leading to "ml_get: invalid lnum" errors. |
| 1238 | |
| 1239 | Matching buffer name for when expanded name has a different path from not |
| 1240 | expanded name (Brugnara). |
| 1241 | |
| 1242 | Normal mappings didn't work after an operator. For example, with ":map Q gq", |
| 1243 | "QQ" didn't work. |
| 1244 | |
| 1245 | When ":make" resulted in zero errors, a "No Errors" error message was given |
| 1246 | (which breaks mappings). |
| 1247 | |
| 1248 | When ":sourcing" a file, line length was limited to 1024 characters. CTRL-V |
| 1249 | before <EOL> was not handled Vi compatible. (Acevedo) |
| 1250 | |
| 1251 | Unexpected exit for X11 GUI, caused by SAVE_YOURSELF event. (Heimann) |
| 1252 | |
| 1253 | CTRL-X CTRL-I only found one match per line. (Acevedo) |
| 1254 | When using an illegal CTRL-X key in Insert mode, the CTRL-X mode message |
| 1255 | was stuck. |
| 1256 | |
| 1257 | Finally managed to ignore the "Quit" menu entry of the Window manager! Now |
| 1258 | Vim only exists when there are no changed buffers. |
| 1259 | |
| 1260 | Trying to start the GUI when $DISPLAY is not set resulted in a crash. |
| 1261 | When $DISPLAY is not set and gvim starts vim, title was restored to "Thanks |
| 1262 | for flying Vim". |
| 1263 | When $DISPLAY not set, starting "gvim" (dropping back to vim) and then |
| 1264 | selecting text with the mouse caused a crash. |
| 1265 | |
| 1266 | "J", with 'joinspaces' set, on a line ending in ". ", caused one space too |
| 1267 | many to be added. (Acevedo) |
| 1268 | |
| 1269 | In insert mode, a CTRL-R {regname} which didn't insert anything left the '"' |
| 1270 | on the screen. |
| 1271 | |
| 1272 | ":z10" didn't work. (Clapp) |
| 1273 | |
| 1274 | "Help "*" didn't work. |
| 1275 | |
| 1276 | Renamed a lot of functions, to avoid clashes with POSIX name space. |
| 1277 | |
| 1278 | When adding characters to a line, making it wrap, the following lines were |
| 1279 | sometimes not shifted down (e.g. after a tag jump). |
| 1280 | |
| 1281 | CTRL-E, with 'so' set and cursor on last line, now does not move cursor as |
| 1282 | long as the last line is on the screen. |
| 1283 | |
| 1284 | When there are two windows, doing "^W+^W-" in the bottom window could cause |
| 1285 | the status line to be doubled (not redrawn correctly). |
| 1286 | |
| 1287 | This command would hang: ":n `cat`". Now connect stdin of the external |
| 1288 | command to /dev/null, when expanding. |
| 1289 | |
| 1290 | Fixed lalloc(0,) error for ":echo %:e:r". (Acevedo) |
| 1291 | |
| 1292 | The "+command" argument to ":split" didn't work when there was no file name. |
| 1293 | |
| 1294 | When selecting text in the GUI, which is the output of a command-line command |
| 1295 | or an external command, the inversion would sometimes remain. |
| 1296 | |
| 1297 | GUI: "-mh 70" argument was broken. Now, when menuheight is specified, it is |
| 1298 | not changed anymore. |
| 1299 | |
| 1300 | GUI: When using the scrollbar or mouse while executing an external command, |
| 1301 | this caused garbage characters. |
| 1302 | |
| 1303 | Showmatch sometimes jumped to the wrong position. Was caused by a call to |
| 1304 | findmatch() when redrawing the display (when syntax highlighting is on). |
| 1305 | |
| 1306 | Search pattern "\(a *\)\{3} did not work correctly, also matched "a a". |
| 1307 | Problem with brace_count not being decremented. |
| 1308 | |
| 1309 | Wildcard expansion added too many non-matching file names. |
| 1310 | |
| 1311 | When 'iskeyword' contains characters like '~', "*" and "#" didn't work |
| 1312 | properly. (Acevedo) |
| 1313 | |
| 1314 | On Linux, on a FAT file system, modification time can change by one second. |
| 1315 | Avoid a "file has changed" warning for a one second difference. |
| 1316 | |
| 1317 | When using the page-switching in an xterm, Vim would position the cursor on |
| 1318 | the last line of the window on exit. Also removed the cursor positioning for |
| 1319 | ":!" commands. |
| 1320 | |
| 1321 | ":g/pat/p" command (partly) overwrote the command. Now the output is on a |
| 1322 | separate line. |
| 1323 | |
| 1324 | With 'ic' and 'scs' set, a search for "Keyword", ignore-case matches were |
| 1325 | highlighted too. |
| 1326 | |
| 1327 | "^" on a line with only white space, put cursor beyond the end of the line. |
| 1328 | |
| 1329 | When deleting characters before where insertion started ('bs' == 2), could not |
| 1330 | use abbreviations. |
| 1331 | |
| 1332 | CTRL-E at end of file puts cursor below the file, in Visual mode, when 'so' is |
| 1333 | non-zero. CTRL-E didn't work when 'so' is big and the line below the window |
| 1334 | wraps. CTRL-E, when 'so' is non-zero, at end of the file, caused jumping |
| 1335 | up-down. |
| 1336 | |
| 1337 | ":retab" didn't work well when 'list' is set. |
| 1338 | |
| 1339 | Amiga: When inserting characters at the last line on the screen, causing it |
| 1340 | to wrap, messed up the display. It appears that a '\n' on the last line |
| 1341 | doesn't always cause a scroll up. |
| 1342 | |
| 1343 | In Insert mode "0<C-D><C-D>" deleted an extra character, because Vim thought |
| 1344 | that the "0" was still there. (Acevedo) |
| 1345 | |
| 1346 | "z{count}l" ignored the count. Also for "zh" et. al. (Acevedo) |
| 1347 | |
| 1348 | "S" when 'autoindent' is off didn't delete leading white space. |
| 1349 | |
| 1350 | "/<Tab>" landed on the wrong character when 'incsearch' is set. |
| 1351 | |
| 1352 | Asking a yes/no question could cause a |hit-enter| prompt. |
| 1353 | |
| 1354 | When the file consists of one long line (>4100 characters), making changes |
| 1355 | caused various errors and a crash. |
| 1356 | |
| 1357 | DJGPP version could not save long lines (>64000) for undo. |
| 1358 | |
| 1359 | "yw" on the last char in the file didn't work. Also fixed "6x" at the end of |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 1360 | the line. "6X" at the start of a line fails, but does not break a mapping. In |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 1361 | general, a movement for an operator doesn't beep or flush a mapping, but when |
| 1362 | there is nothing to operate on it beeps (this is Vi compatible). |
| 1363 | |
| 1364 | "m'" and "m`" now set the '' mark at the cursor position. |
| 1365 | |
| 1366 | Unix: Resetting of signals for external program didn't work, because SIG_DFL |
| 1367 | and NULL are the same! For "!!yes|dd count=1|, the yes command kept on |
| 1368 | running. |
| 1369 | |
| 1370 | Partly fixed: Unix GUI: Typeahead while executing an external command was lost. |
| 1371 | Now it's not lost while the command is producing output. |
| 1372 | |
| 1373 | Typing <S-Tab> in Insert mode, when it isn't mapped, inserted "<S-Tab>". Now |
| 1374 | it works like a normal <Tab>, just like <C-Tab> and <M-Tab>. |
| 1375 | |
| 1376 | Redrawing ruler didn't check for old value correctly (caused UMR warnings in |
| 1377 | Purify). |
| 1378 | |
| 1379 | Negative array index in finish_viminfo_history(). |
| 1380 | |
| 1381 | ":g/^/d|mo $" deleted all the lines. The ":move" command now removes the |
| 1382 | :global mark from the moved lines. |
| 1383 | |
| 1384 | Using "vG" while the last line in the window is a "@" line, didn't update |
| 1385 | correctly. Just the "v" showed "~" lines. |
| 1386 | |
| 1387 | "daw" on the last char of the file, when it's a space, moved the cursor beyond |
| 1388 | the end of the line. |
| 1389 | |
| 1390 | When 'hlsearch' was set or reset, only the current buffer was redrawn, while |
| 1391 | this affects all windows. |
| 1392 | |
| 1393 | CTRL-^, positioning the cursor somewhere from 1/2 to 1 1/2 screen down the |
| 1394 | file, put the cursor at the bottom of the window, instead of halfway. |
| 1395 | |
| 1396 | When scrolling up for ":append" command, not all windows were updated |
| 1397 | correctly. |
| 1398 | |
| 1399 | When 'hlsearch' is set, and an auto-indent is highlighted, pressing <Esc> |
| 1400 | didn't remove the highlighting, although the indent was deleted. |
| 1401 | |
| 1402 | When 'ru' set and 'nosc', using "$j" showed a wrong ruler. |
| 1403 | |
| 1404 | Under Xfree 3.2, Shift-Tab didn't work (wrong keysym is used). |
| 1405 | |
| 1406 | Mapping <S-Tab> didn't work. Changed the key translations to use the shortest |
| 1407 | key code possible. This makes the termcode translations and mappings more |
| 1408 | consistent. Now all modifiers work in all combinations, not only with <Tab>, |
| 1409 | but also with <Space>, <CR>, etc. |
| 1410 | |
| 1411 | For Unix, restore three more signals. And Vim catches SIGINT now, so CTRL-C |
| 1412 | in Ex mode doesn't make Vim exit. |
| 1413 | |
| 1414 | ""a5Y" yanked 25 lines instead of 5. |
| 1415 | |
| 1416 | "vrxxx<Esc>" in an empty line could not be undone. |
| 1417 | |
| 1418 | A CTRL-C that breaks ":make" caused the errorfile not to be read (annoying |
| 1419 | when you want to handle what ":make" produced so far). |
| 1420 | |
| 1421 | ":0;/pat" didn't find "pat" in line 1. |
| 1422 | |
| 1423 | Search for "/test/s+1" at first char of file gave bottom-top message, or |
| 1424 | didn't work at all with 'nowrapscan'. |
| 1425 | |
| 1426 | Bug in viminfo history. Could cause a crash on exit. |
| 1427 | |
| 1428 | ":print" didn't put cursor on first non-blank in line. |
| 1429 | |
| 1430 | ":0r !cat </dev/null" left cursor in line zero, with very strange effects. |
| 1431 | |
| 1432 | With 'showcmd' set and 'timeoutlen' set to a few seconds, trick to position |
| 1433 | the cursor leftwards didn't work. |
| 1434 | |
| 1435 | AIX stty settings were restored to cs5 instead of cs8 (Winn). |
| 1436 | |
| 1437 | File name completion didn't work for "zsh" versions that put spaces between |
| 1438 | file names, instead of NULs. |
| 1439 | |
| 1440 | Changed "XawChain*" to "XtChain*", should work for more systems. |
| 1441 | |
| 1442 | Included quite a few fixes for rightleft mode (Lottem). |
| 1443 | |
| 1444 | Didn't ask to |hit-enter| when GUI is started and error messages are printed. |
| 1445 | |
| 1446 | When trying to edit a file in a non-existent directory, ended up with editing |
| 1447 | "No file". |
| 1448 | |
| 1449 | "gqap" to format a paragraph did too much redrawing. |
| 1450 | |
| 1451 | When 'hlsearch' set, only the current window was updated for a new search |
| 1452 | pattern. |
| 1453 | |
| 1454 | Sometimes error messages on startup didn't cause a |hit-enter| prompt, |
| 1455 | because of autocommands containing an empty line. |
| 1456 | |
| 1457 | Was possible to select part of the window in the border, below the command |
| 1458 | line. |
| 1459 | |
| 1460 | '< and '> marks were not at the correct position after linewise Visual |
| 1461 | selection. |
| 1462 | |
| 1463 | When translating a help argument to "CTRL-x", prepend or append a '_', when |
| 1464 | applicable. |
| 1465 | |
| 1466 | Blockwise visual mode wasn't correct when moving vertically over a special |
| 1467 | character (displayed as two screen characters). |
| 1468 | |
| 1469 | Renamed "struct option" to "struct vimoption" to avoid name clash with GNU |
| 1470 | getopt(). |
| 1471 | |
| 1472 | ":abclear" didn't work (but ":iabclear" and ":cabclear" did work). |
| 1473 | |
| 1474 | When 'nowrap' used, screen wasn't always updated correctly. |
| 1475 | |
| 1476 | "vim -c split file" displayed extra lines. |
| 1477 | |
| 1478 | After starting the GUI, searched the termcap for a "gui" term. |
| 1479 | |
| 1480 | When 'hls' used, search for "^$" caused a hang. |
| 1481 | When 'hls' was set, an error in the last regexp caused trouble. |
| 1482 | |
| 1483 | Unix: Only output an extra <EOL> on exit when outputted something in the |
| 1484 | alternate screen, or when there is a message that needs to be cleared. |
| 1485 | |
| 1486 | "/a\{" did strange things, depending on previous search. |
| 1487 | |
| 1488 | "c}" only redrew one line (with -u NONE). |
| 1489 | |
| 1490 | For mappings, CTRL-META-A was shown as <M-^A> instead of <MC-A>, while :map |
| 1491 | only accepts <MC-A>. Now <M-C-A> is shown. |
| 1492 | |
| 1493 | Unix: When using full path name in a tags file, which contains a link, and |
| 1494 | 'hidden' set and jumping to a tag in the current file, would get bogus |
| 1495 | ATTENTION message. Solved by always expanding file names, even when starting |
| 1496 | with '/'. |
| 1497 | |
| 1498 | 'hlsearch' highlighting of special characters (e.g., a TAB) didn't highlight |
| 1499 | the whole thing. |
| 1500 | |
| 1501 | "r<CR>" didn't work correctly on the last char of a line. |
| 1502 | |
Bram Moolenaar | 996343d | 2010-07-04 22:20:21 +0200 | [diff] [blame] | 1503 | Sometimes a window resize or other signal caused an endless loop, involving |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 1504 | set_winsize(). |
| 1505 | |
| 1506 | "vim -r" didn't work, it would just hang (using tgetent() while 'term' is |
| 1507 | empty). |
| 1508 | |
| 1509 | "gk" while 'nowrap' set moved two lines up. |
| 1510 | |
| 1511 | When windows are split, a message that causes a scroll-up messed up one of the |
| 1512 | windows, which required a CTRL-L to be typed. |
| 1513 | |
| 1514 | Possible endless loop when using shell command in the GUI. |
| 1515 | |
| 1516 | Menus defined in the .vimrc were removed when GUI started. |
| 1517 | |
| 1518 | Crash when pasting with the mouse in insert mode. |
| 1519 | |
Bram Moolenaar | 69a7cb4 | 2004-06-20 12:51:53 +0000 | [diff] [blame] | 1520 | Crash with ":unmenu *" in .gvimrc for Athena. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 1521 | |
| 1522 | "5>>" shifted 5 lines 5 times, instead of 1 time. |
| 1523 | |
| 1524 | CTRL-C when getting a prompt in ":global" didn't interrupt. |
| 1525 | |
| 1526 | When 'so' is non-zero, and moving the scrollbar completely to the bottom, |
| 1527 | there was a lot of flashing. |
| 1528 | |
| 1529 | GUI: Scrollbar ident must be long for DEC Alpha. |
| 1530 | |
| 1531 | Some functions called vim_regcomp() without setting reg_magic, which could |
| 1532 | lead to unpredictable magicness. |
| 1533 | |
| 1534 | Crash when clicking around the status line, could get a selection with a |
| 1535 | backwards range. |
| 1536 | |
| 1537 | When deleting more than one line characterwise, the last character wasn't |
| 1538 | deleted. |
| 1539 | |
| 1540 | GUI: Status line could be overwritten when moving the scrollbar quickly (or |
| 1541 | when 'wd' is non-zero). |
| 1542 | |
| 1543 | An ESC at the end of a ":normal" command caused a wait for a terminal code to |
| 1544 | finish. Now, a terminal code is not recognized when its start comes from a |
| 1545 | mapping or ":normal" command. |
| 1546 | |
| 1547 | Included patches from Robert Webb for GUI. Layout of the windows is now done |
| 1548 | inside Vim, instead of letting the layout manager do this. Makes Vim work |
| 1549 | with Lesstif! |
| 1550 | |
| 1551 | UMR warning in set_expand_context(). |
| 1552 | |
| 1553 | Memory leak: b_winlnum list was never freed. |
| 1554 | |
| 1555 | Removed TIOCLSET/TIOCLGET code from os_unix.c. Was changing some of the |
| 1556 | terminal settings, and looked like it wasn't doing anything good. (suggested |
| 1557 | by Juergen Weigert). |
| 1558 | |
| 1559 | Ruler overwrote "is a directory" message. When starting up, and 'cmdheight' |
| 1560 | set to > 1, first message could still be in the last line. |
| 1561 | |
| 1562 | Removed prototype for putenv() from proto.h, it's already in osdef2.h.in. |
| 1563 | |
| 1564 | In replace mode, when moving the cursor and then backspacing, wrong characters |
| 1565 | were inserted. |
| 1566 | |
| 1567 | Win32 GUI was checking for a CTRL-C too often, making it slow. |
| 1568 | |
| 1569 | Removed mappings for MS-DOS that were already covered by commands. |
| 1570 | |
| 1571 | When visually selecting all lines in a file, cursor at last line, then "J". |
| 1572 | Gave ml_get errors. Was a problem with scrolling down during redrawing. |
| 1573 | |
| 1574 | When doing a linewise operator, and then an operator with a mouse click, it |
| 1575 | was also linewise, instead of characterwise. |
| 1576 | |
| 1577 | When 'list' is set, the column of the ruler was wrong. |
| 1578 | |
| 1579 | Spurious error message for "/\(b\+\)*". |
| 1580 | |
| 1581 | When visually selected many lines, message from ":w file" disappeared when |
| 1582 | redrawing the screen. |
| 1583 | |
| 1584 | ":set <M-b>=^[b", then insert "^[b", waited for another character. And then |
| 1585 | inserted "<M-b>" instead of the real <M-b> character. Was trying to insert |
| 1586 | K_SPECIAL x NUL. |
| 1587 | |
| 1588 | CTRL-W ] didn't use count to set window height. |
| 1589 | |
| 1590 | GUI: "-font" command-line argument didn't override 'guifont' setting from |
| 1591 | .gvimrc. (Acevedo) |
| 1592 | |
| 1593 | GUI: clipboard wasn't used for "*y". And some more Win32/X11 differences |
| 1594 | fixed for the clipboard (Webb). |
| 1595 | |
| 1596 | Jumping from one help file to another help file, with 'compatible' set, |
| 1597 | removed the 'help' flag from the buffer. |
| 1598 | |
| 1599 | File-writable bit could be reset when using ":w!" for a readonly file. |
| 1600 | |
| 1601 | There was a wait for CTRL-O n in Insert mode, because the search pattern was |
| 1602 | shown. |
| 1603 | Reduced wait, to allow reading a message, from 10 to 3 seconds. It seemed |
| 1604 | nothing was happening. |
| 1605 | |
| 1606 | ":recover" found same swap file twice. |
| 1607 | |
| 1608 | GUI: "*yy only worked the second time (when pasting to an xterm)." |
| 1609 | |
| 1610 | DJGPP version (dos32): The system flags were cleared. |
| 1611 | |
| 1612 | Dos32 version: Underscores were sometimes replaced with y-umlaut (Levin). |
| 1613 | |
| 1614 | Version 4.1 of ncurses can't handle tputs("", ..). Avoid calling tputs() with |
| 1615 | an empty string. |
| 1616 | |
| 1617 | <S-Tab> in the command-line worked like CTRL-P when no completion started yet. |
| 1618 | Now it does completion, last match first. |
| 1619 | |
| 1620 | Unix: Could get annoying "can't write viminfo" message after doing "su". Now |
| 1621 | the viminfo file is overwritten, and the user set back to the original one. |
| 1622 | |
| 1623 | ":set term=builtin_gui" started the GUI in a wrong way. Now it's not |
| 1624 | allowed anymore. But "vim -T gui" does start the GUI correctly now. |
| 1625 | |
| 1626 | GUI: Triple click after a line only put last char in selection, when it is a |
| 1627 | single character word. |
| 1628 | |
| 1629 | When the window is bigger than the screen, the scrolling up of messages was |
| 1630 | wrong (e.g. ":vers", ":hi"). Also when the bottom part of the window was |
| 1631 | obscured by another window. |
| 1632 | |
| 1633 | When using a wrong option only an error message is printed, to avoid that the |
| 1634 | usage information makes it scroll off the screen. |
| 1635 | |
| 1636 | When exiting because of not being able to read from stdin, didn't preserve the |
| 1637 | swap files properly. |
| 1638 | |
| 1639 | Visual selecting all chars in more than one line, then hit "x" didn't leave an |
| 1640 | empty line. For one line it did leave an empty line. |
| 1641 | |
| 1642 | Message for which autocommand is executing messed up file write message (for |
| 1643 | FileWritePost event). |
| 1644 | |
| 1645 | "vim -h" included "-U" even when GUI is not available, and "-l" when lisp is |
| 1646 | not available. |
| 1647 | |
| 1648 | Crash for ":he <C-A>" (command-line longer than screen). |
| 1649 | |
| 1650 | ":s/this/that/gc", type "y" two times, then undo, did reset the modified |
| 1651 | option, even though the file is still modified. |
| 1652 | |
| 1653 | Empty lines in a tags file caused a ":tag" to be aborted. |
| 1654 | |
| 1655 | When hitting 'q' at the more prompt for ":menu", still scrolled a few lines. |
| 1656 | |
| 1657 | In an xterm that uses the bold trick a single row of characters could remain |
| 1658 | after an erased bold character. Now erase one extra char after the bold char, |
| 1659 | like for the GUI. |
| 1660 | |
| 1661 | ":pop!" didn't work. |
| 1662 | |
| 1663 | When the reading a buffer was interrupted, ":w" should not be able to |
| 1664 | overwrite the file, ":w!" is required. |
| 1665 | |
| 1666 | ":cf%" caused a crash. |
| 1667 | |
| 1668 | ":gui longfilename", when forking is enabled, could leave part of the |
| 1669 | longfilename at the shell prompt. |
| 1670 | |
| 1671 | ============================================================================== |
| 1672 | VERSION 5.1 *version-5.1* |
| 1673 | |
| 1674 | Improvements made between version 5.0 and 5.1. |
| 1675 | |
| 1676 | This was mostly a bug-fix release, not many new features. |
| 1677 | |
| 1678 | |
| 1679 | Changed *changed-5.1* |
| 1680 | ------- |
| 1681 | |
| 1682 | The expand() function now separates file names with <NL> instead of a space. |
| 1683 | This avoids problems for file names with embedded spaces. To get the old |
| 1684 | result, use substitute(expand(foo), "\n", " ", "g"). |
| 1685 | |
| 1686 | For Insert-expanding dictionaries allow a backslash to be used for |
| 1687 | wildchars. Allows expanding "ze\kra", when 'isk' includes a backslash. |
| 1688 | |
| 1689 | New icon for the Win32 GUI. |
| 1690 | |
| 1691 | ":tag", ":tselect" etc. only use the argument as a regexp when it starts |
| 1692 | with '/'. Avoids that ":tag xx~" gives an error message: "No previous sub. |
| 1693 | regexp". Also, when the :tag argument contained wildcard characters, it was |
| 1694 | not Vi compatible. |
| 1695 | When using '/', the argument is taken literally too, with a higher priority, |
| 1696 | so it's found before wildcard matches. |
| 1697 | Only when the '/' is used are matches with different case found, even though |
| 1698 | 'ignorecase' isn't set. |
| 1699 | Changed "g^]" to only do ":tselect" when there is more than on matching tag. |
| 1700 | |
| 1701 | Changed some of the default colors, because they were not very readable on a |
| 1702 | dark background. |
| 1703 | |
| 1704 | A character offset to a search pattern can move the cursor to the next or |
| 1705 | previous line. Also fixes that "/pattern/e+2" got stuck on "pattern" at the |
| 1706 | end of a line. |
| 1707 | |
| 1708 | Double-clicks in the status line do no longer start Visual mode. Dragging a |
| 1709 | status line no longer stops Visual mode. |
| 1710 | |
| 1711 | Perl interface: Buffers() and Windows() now use more logical arguments, like |
| 1712 | they are used in the rest of Vim (Moore). |
| 1713 | |
| 1714 | Init '" mark to the first character of the first line. Makes it possible to |
| 1715 | use '" in an autocommand without getting an error message. |
| 1716 | |
| 1717 | |
| 1718 | Added *added-5.1* |
| 1719 | ----- |
| 1720 | |
| 1721 | "shell_error" internal variable: result of last shell command. |
| 1722 | |
| 1723 | ":echohl" command: Set highlighting for ":echo". |
| 1724 | |
| 1725 | 'S' flag in 'highlight' and StatusLineNC highlight group: highlighting for |
| 1726 | status line of not-current window. Default is to use bold for current |
| 1727 | window. |
| 1728 | |
| 1729 | Added buffer_name() and buffer_number() functions (Aaron). |
| 1730 | Added flags argument "g" to substitute() function (Aaron). |
| 1731 | Added winheight() function. |
| 1732 | |
| 1733 | Win32: When an external command starts with "start ", no console is opened |
| 1734 | for it (Aaron). |
| 1735 | |
| 1736 | Win32 console: Use termcap codes for bold/reverse based on the current |
| 1737 | console attributes. |
| 1738 | |
| 1739 | Configure check for "strip". (Napier) |
| 1740 | |
| 1741 | CTRL-R CTRL-R x in Insert mode: Insert the contents of a register literally, |
| 1742 | instead of as typed. |
| 1743 | |
| 1744 | Made a few "No match" error messages more informative by adding the pattern |
| 1745 | that didn't match. |
| 1746 | |
| 1747 | "make install" now also copies the macro files. |
| 1748 | |
| 1749 | tools/tcltags, a shell script to generate a tags file from a TCL file. |
| 1750 | |
| 1751 | "--with-tlib" setting for configure. Easy way to use termlib: "./configure |
| 1752 | --with-tlib=termlib". |
| 1753 | |
| 1754 | 'u' flag in 'cino' for setting the indent for contained () parts. |
| 1755 | |
| 1756 | When Win32 OLE version can't load the registered type library, ask the user |
| 1757 | if he wants to register Vim now. (Erhardt) |
| 1758 | Win32 with OLE: When registered automatically, exit Vim. |
| 1759 | Included VisVim 1.1b, with a few enhancements and the new icon (Heiko |
| 1760 | Erhardt). |
| 1761 | |
| 1762 | Added patch from Vince Negri for Win32s support. Needs to be compiled with |
| 1763 | VC 4.1! |
| 1764 | |
| 1765 | Perl interface: Added $curbuf. Rationalized Buffers() and Windows(). |
| 1766 | (Moore) Added "group" argument to Msg(). |
| 1767 | |
| 1768 | Included Perl files in DOS source archive. Changed Makefile.bor and |
| 1769 | Makefile.w32 to support building a Win32 version with Perl included. |
| 1770 | |
| 1771 | Included new Makefile.w32 from Ken Scott. Now it's able to make all Win32 |
| 1772 | versions, including OLE, Perl and Python. |
| 1773 | |
| 1774 | Added CTRL-W g ] and CTRL-W g ^]: split window and do g] or g^]. |
| 1775 | |
| 1776 | Added "g]" to always do ":tselect" for the ident under the cursor. |
| 1777 | Added ":tjump" and ":stjump" commands. |
| 1778 | Improved listing of ":tselect" when tag names are a bit long. |
| 1779 | |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 1780 | Included patches for the Macintosh version. Also for Python interface. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 1781 | (St-Amant) |
| 1782 | |
| 1783 | ":buf foo" now also restores cursor column, when the buffer was used before. |
| 1784 | |
| 1785 | Adjusted the Makefile for different final destinations for the syntax files |
| 1786 | and scripts (for Debian Linux). |
| 1787 | |
| 1788 | Amiga: $VIM can be used everywhere. When $VIM is not defined, "VIM:" is |
| 1789 | used. This fixes that "VIM:" had to be assigned for the help files, and |
| 1790 | $VIM set for the syntax files. Now either of these work. |
| 1791 | |
| 1792 | Some xterms send vt100 compatible function keys F1-F4. Since it's not |
| 1793 | possible to detect this, recognize both type of keys and translate them to |
| 1794 | <F1> - <F4>. |
| 1795 | |
| 1796 | Added "VimEnter" autocommand. Executed after loading all the startup stuff. |
| 1797 | |
| 1798 | BeOS version now also runs on Intel CPUs (Seibert). |
| 1799 | |
| 1800 | |
| 1801 | Fixed *fixed-5.1* |
| 1802 | ----- |
| 1803 | |
| 1804 | ":ts" changed position in the tag stack when cancelled with <CR>. |
| 1805 | ":ts" changed the cursor position for CTRL-T when cancelled with <CR>. |
| 1806 | ":tn" would always jump to the second match. Was using the wrong entry in |
| 1807 | the tag stack. |
| 1808 | Doing "tag foo", then ":tselect", overwrote the original cursor position in |
| 1809 | the tag stack. |
| 1810 | |
| 1811 | "make install" changed the vim.1 manpage in a wrong way, causing "doc/doc" |
| 1812 | to appear for the documentation files. |
| 1813 | |
| 1814 | When compiled with MAX_FEAT, xterm mouse handling failed. Was caused by DEC |
| 1815 | mouse handling interfering. |
| 1816 | |
| 1817 | Was leaking memory when using selection in X11. |
| 1818 | |
| 1819 | CTRL-D halfway a command-line left some characters behind the first line(s) |
| 1820 | of the listing. |
| 1821 | |
| 1822 | When expanding directories for ":set path=", put two extra backslashes |
| 1823 | before a space in a directory name. |
| 1824 | |
| 1825 | When 'lisp' set, first line of a function would be indented. Now its indent |
| 1826 | is set to zero. And use the indent of the first previous line that is at |
| 1827 | the same () level. Added test33. |
| 1828 | |
| 1829 | "so<Esc>u" in an empty file didn't work. |
| 1830 | |
| 1831 | DOS: "seek error in swap file write" errors, when using DOS 6.2 share.exe, |
| 1832 | because the swap file was made hidden. It's no longer hidden. |
| 1833 | |
| 1834 | ":global" command would sometimes not execute on a matching line. Happened |
| 1835 | when a data block is full in ml_replace(). |
| 1836 | |
| 1837 | For AIX use a tgetent buffer of 2048 bytes, instead of 1024. |
| 1838 | |
| 1839 | Win32 gvim now only sets the console size for external commands to 25x80 |
| 1840 | on Windows 95, not on NT. |
| 1841 | |
| 1842 | Win32 console: Dead key could cause a crash, because of a missing "WINAPI" |
| 1843 | (Deshpande). |
| 1844 | |
| 1845 | The right mouse button started Visual mode, even when 'mouse' is empty, and |
| 1846 | in the command-line, a left click moved the cursor when 'mouse' is empty. |
| 1847 | In Visual mode, 'n' in 'mouse' would be used instead of 'v'. |
| 1848 | |
| 1849 | A blinking cursor or focus change cleared a non-Visual selection. |
| 1850 | |
| 1851 | CTRL-Home and CTRL-End didn't work for MS-DOS versions. |
| 1852 | |
| 1853 | Could include NUL in 'iskeyword', causing a crash when doing insert mode |
| 1854 | completion. |
| 1855 | |
| 1856 | Use _dos_commit() to flush the swap file to disk for MSDOS 16 bit version. |
| 1857 | |
| 1858 | In mappings, CTRL-H was replaced by the backspace key code. This caused |
| 1859 | problems when it was used as text, e.g. ":map _U :%s/.^H//g<CR>". |
| 1860 | |
| 1861 | ":set t_Co=0" was not handled like a normal term. Now it's translated into |
| 1862 | ":set t_Co=", which works. |
| 1863 | |
| 1864 | For ":syntax keyword" the "transparent" option did work, although not |
| 1865 | mentioned in the help. But synID() returned wrong name. |
| 1866 | |
| 1867 | "gqG" in a file with one-word-per-line (e.g. a dictionary) was very slow and |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 1868 | not interruptible. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 1869 | |
| 1870 | "gq" operator inserted screen lines in the wrong situation. Now screen |
| 1871 | lines are inserted or deleted when this speeds up displaying. |
| 1872 | |
| 1873 | cindent was wrong when an "if" contained "((". |
| 1874 | |
| 1875 | 'r' flag in 'viminfo' was not used for '%'. Could get files in the buffer |
| 1876 | list from removable media. |
| 1877 | |
| 1878 | Win32 GUI with OLE: if_ole_vc.mak could not be converted into a project. |
| 1879 | Hand-edited to fix this... |
| 1880 | |
| 1881 | With 'nosol' set, doing "$kdw" below an empty line positioned the cursor at |
| 1882 | the end of the line. |
| 1883 | |
| 1884 | Dos32 version changed "\dir\file" into "/dir/file", to work around a DJGPP |
| 1885 | bug. That bug appears to have been fixed, therefore this translation has |
| 1886 | been removed. |
| 1887 | |
| 1888 | "/^*" didn't work (find '*' in first column). |
| 1889 | |
| 1890 | "<afile>" was not always set for autocommands. E.g., for ":au BufEnter * |
| 1891 | let &tags = expand("<afile>:p:h") . "/tags". |
| 1892 | |
| 1893 | In an xterm, the window may be a child of the outer xterm window. Use the |
| 1894 | parent window when getting the title and icon names. (Smith) |
| 1895 | |
| 1896 | When starting with "gvim -bg black -fg white", the value of 'background' is |
| 1897 | only set after reading the .gvimrc file. This causes a ":syntax on" to use |
| 1898 | the wrong colors. Now allow using ":gui" to open the GUI window and set the |
| 1899 | colors. Previously ":gui" in a gvimrc crashed Vim. |
| 1900 | |
| 1901 | tempname() returned the same name all the time, unless the file was actually |
| 1902 | created. Now there are at least 26 different names. |
| 1903 | |
| 1904 | File name used for <afile> was sometimes full path, sometimes file name |
| 1905 | relative to current directory. |
| 1906 | |
| 1907 | When 'background' was set after the GUI window was opened, it could change |
| 1908 | colors that were set by the user in the .gvimrc file. Now it only changes |
| 1909 | colors that have not been set by the user. |
| 1910 | |
| 1911 | Ignore special characters after a CSI in the GUI version. These could be |
| 1912 | interpreted as special characters in a wrong way. (St-Amant) |
| 1913 | |
| 1914 | Memory leak in farsi code, when using search or ":s" command. |
| 1915 | Farsi string reversing for a mapping was only done for new mappings. Now it |
| 1916 | also works for replacing a mapping. |
| 1917 | |
| 1918 | Crash in Win32 when using a file name longer than _MAX_PATH. (Aaron) |
| 1919 | |
| 1920 | When BufDelete autocommands were executed, some things for the buffer were |
| 1921 | already deleted (esp. Perl stuff). |
| 1922 | |
| 1923 | Perl interface: Buffer specific items were deleted too soon; fixes "screen |
| 1924 | no longer exists" messages. (Moore) |
| 1925 | |
| 1926 | The Perl functions didn't set the 'modified' flag. |
| 1927 | |
| 1928 | link.sh did not return an error on exit, which may cause Vim to start |
| 1929 | installing, even though there is no executable to install. (Riehm) |
| 1930 | |
| 1931 | Vi incompatibility: In Vi "." redoes the "y" command. Added the 'y' flag to |
| 1932 | 'cpoptions'. Only for 'compatible' mode. |
| 1933 | |
| 1934 | ":echohl" defined a new group, when the argument was not an existing group. |
| 1935 | |
| 1936 | "syn on" and ":syn off" could move the cursor, if there is a hidden buffer |
| 1937 | that is shorter that the current cursor position. |
| 1938 | |
| 1939 | The " mark was not set when doing ":b file". |
| 1940 | |
| 1941 | When a "nextgroup" is used with "skipwhite" in syntax highlighting, space at |
| 1942 | the end of the line made the nextgroup also be found in the next line. |
| 1943 | |
| 1944 | ":he g<CTRL-D>", then ":" and backspace to the start didn't redraw. |
| 1945 | |
| 1946 | X11 GUI: "gvim -rv" reversed the colors twice on Sun. Now Vim checks if the |
| 1947 | result is really reverse video (background darker than foreground). |
| 1948 | |
| 1949 | "cat link.sh | vim -" didn't set syntax highlighting. |
| 1950 | |
| 1951 | Win32: Expanding "file.sw?" matched ".file.swp". This is an error of |
| 1952 | FindnextFile() that we need to work around. (Kilgore) |
| 1953 | |
| 1954 | "gqgq" gave an "Invalid lnum" error on the last line. |
| 1955 | Formatting with "gq" didn't format the first line after a change of comment |
| 1956 | leader. |
| 1957 | |
| 1958 | There was no check for out-of-memory in win_alloc(). |
| 1959 | |
| 1960 | "vim -h" didn't mention "-register" and "-unregister" for the OLE version. |
| 1961 | |
| 1962 | Could not increase 'cmdheight' when the last window is only one line. Now |
| 1963 | other windows are also made smaller, when necessary. |
| 1964 | |
| 1965 | Added a few {} to avoid "suggest braces around" warnings from gcc 2.8.x. |
| 1966 | Changed return type of main() from void to int. (Nam) |
| 1967 | |
| 1968 | Using '~' twice in a substitute pattern caused a crash. |
| 1969 | |
| 1970 | "syn on" and ":syn off" could scroll the window, if there is a hidden buffer |
| 1971 | that is shorter that the current cursor position. |
| 1972 | |
| 1973 | ":if 0 | if 1 | endif | endif" didn't work. Same for ":while" and "elseif". |
| 1974 | |
| 1975 | With two windows on modified files, with 'autowrite' set, cursor in second |
| 1976 | window, ":qa" gave a warning for the file in the first window, but then |
| 1977 | auto-wrote the file in the second window. (Webb) |
| 1978 | |
| 1979 | Win32 GUI scrollbar could only handle 32767 lines. Also makes the |
| 1980 | intellimouse wheel use the configurable number of scrolls. (Robinson) |
| 1981 | |
| 1982 | When using 'patchmode', and the backup file is on another partition, the file |
| 1983 | copying messed up the write-file message. |
| 1984 | |
| 1985 | GUI X11: Alt-Backspace and Alt-Delete didn't work. |
| 1986 | |
| 1987 | "`0" could put the cursor after the last character in the line, causing |
| 1988 | trouble for other commands, like "i". |
| 1989 | |
| 1990 | When completing tags in insert mode with ^X^], some matches were skipped, |
| 1991 | because the compare with other tags was wrong. E.g., when "mnuFileSave" was |
| 1992 | already there, "mnuFile" would be skipped. (Negri) |
| 1993 | |
| 1994 | When scrolling up/down, a syntax item with "keepend" didn't work properly. |
Bram Moolenaar | c236c16 | 2008-07-13 17:41:49 +0000 | [diff] [blame] | 1995 | Now the flags are also stored for the syntax state at the start of each line. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 1996 | |
| 1997 | When 'ic' was changed while 'hlsearch' is on, there was no redraw to show the |
| 1998 | effect. |
| 1999 | |
| 2000 | Win32 GUI: Don't display "No write since last chance" in a message box, but in |
| 2001 | the Vim window. |
| 2002 | |
| 2003 | ============================================================================== |
| 2004 | VERSION 5.2 *version-5.2* |
| 2005 | |
| 2006 | Improvements made between version 5.1 and 5.2. |
| 2007 | |
| 2008 | |
| 2009 | Long lines editable *long-lines* |
| 2010 | ------------------- |
| 2011 | |
| 2012 | A single long line that doesn't fit in the window doesn't show a line of @@@ |
| 2013 | anymore. Redrawing starts at a character further on in the line, such that |
| 2014 | the text around the cursor can be seen. This makes it possible to edit these |
| 2015 | long lines when wrapping is on. |
| 2016 | |
| 2017 | |
| 2018 | File browser added *file-browser-5.2* |
| 2019 | ------------------ |
| 2020 | |
| 2021 | The Win32, Athena and Motif GUI bring up a file requester if the user asks to |
| 2022 | ":browse" for the ":e", ":w", ":r", ":so", ":redirect" and |
Bram Moolenaar | baca7f7 | 2013-09-22 14:42:24 +0200 | [diff] [blame] | 2023 | ":mkexrc/vimrc/vsess" commands. ":browse e /foo/bar" opens the requester in |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 2024 | the /foo/bar directory, so you can have nice mapping rhs's like ":browse so |
| 2025 | $vim/macros". If no initial dir specified for ":browse e", can be compiled to |
| 2026 | either begin in the current directory, or that of the current buffer. (Negri |
| 2027 | and Kahn) |
| 2028 | Added the 'browsedir' option, with value "current", "last" or "buffer". Tells |
Bram Moolenaar | 69a7cb4 | 2004-06-20 12:51:53 +0000 | [diff] [blame] | 2029 | whether a browse dialog starts in last used dir, dir of current buffer, or |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 2030 | current dir. ":browse w" is unaffected. |
| 2031 | The default menus have been changed to use the ":browse" command. |
| 2032 | |
| 2033 | |
| 2034 | Dialogs added *dialogs-added* |
| 2035 | ------------- |
| 2036 | |
| 2037 | Added the ":confirm" command. Works on ":e", ":q", ":w", ":cl". Win32, |
| 2038 | Athena and Motif GUI uses a window-dialog. All other platforms can use |
| 2039 | prompt in command-line. ":confirm qa" offers a choice to save all modified |
| 2040 | files. |
| 2041 | |
| 2042 | confirm() function: allows user access to the confirm engine. |
| 2043 | |
| 2044 | Added 'v' flag to 'guioptions'. When included, a vertical button layout is |
| 2045 | always used for the Win32 GUI dialog. Otherwise, a horizontal layout is |
| 2046 | preferred. |
| 2047 | |
| 2048 | Win32 GUI: ":promptfind" and ":promptrepl" pop up a dialog to find/replace. |
| 2049 | To be used from a menu entry. (Negri) |
| 2050 | |
| 2051 | |
| 2052 | Popup menu added *popup-menu-added* |
| 2053 | ---------------- |
| 2054 | |
| 2055 | When the 'mousemodel' option is set to "popup", the right mouse button |
| 2056 | displays the top level menu headed with "PopUp" as pop-up context menu. The |
| 2057 | "PopUp" menu is not displayed in the normal menu bar. This currently only |
| 2058 | works for Win32 and Athena GUI. |
| 2059 | |
| 2060 | |
| 2061 | Select mode added *new-Select-mode* |
| 2062 | ----------------- |
| 2063 | |
| 2064 | A new mode has been added: "Select mode". It is like Visual mode, but typing |
| 2065 | a printable character replaces the selection. |
| 2066 | - CTRL-G can be used to toggle between Visual mode and Select mode. |
| 2067 | - CTRL-O can be used to switch from Select mode to Visual mode for one command. |
| 2068 | - Added 'selectmode' option: tells when to start Select mode instead of Visual |
| 2069 | mode. |
| 2070 | - Added 'mousemodel' option: Change use of mouse buttons. |
| 2071 | - Added 'keymodel' option: tells to use shifted special keys to start a |
| 2072 | Visual or Select mode selection. |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 2073 | - Added ":behave". Can be used to quickly set 'selectmode', 'mousemodel' |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 2074 | and 'keymodel' for MS-Windows and xterm behavior. |
| 2075 | - The xterm-like selection is now called modeless selection. |
| 2076 | - Visual mode mappings and menus are used in Select mode. They automatically |
| 2077 | switch to Visual mode first. Afterwards, reselect the area, unless it was |
| 2078 | deleted. The "gV" command can be used in a mapping to skip the reselection. |
| 2079 | - Added the "gh", "gH" and "g^H" commands: start Select (highlight) mode. |
| 2080 | - Backspace in Select mode deletes the selected area. |
| 2081 | |
| 2082 | "mswin.vim" script. Sets behavior mostly like MS-Windows. |
| 2083 | |
| 2084 | |
| 2085 | Session files added *new-session-files* |
| 2086 | ------------------- |
| 2087 | |
| 2088 | ":mks[ession]" acts like "mkvimrc", but also writes the full filenames of the |
| 2089 | currently loaded buffers and current directory, so that :so'ing the file |
| 2090 | re-loads those files and cd's to that directory. Also stores and restores |
| 2091 | windows. File names are made relative to session file. |
| 2092 | The 'sessionoptions' option sets behavior of ":mksession". (Negri) |
| 2093 | |
| 2094 | |
| 2095 | User defined functions and commands *new-user-defined* |
| 2096 | ----------------------------------- |
| 2097 | |
| 2098 | Added user defined functions. Defined with ":function" until ":endfunction". |
| 2099 | Called with "Func()". Allows the use of a variable number of arguments. |
| 2100 | Included support for local variables "l:name". Return a value with ":return". |
| 2101 | See |:function|. |
| 2102 | Call a function with ":call". When using a range, the function is called for |
| 2103 | each line in the range. |:call| |
| 2104 | "macros/justify.vim" is an example of using user defined functions. |
| 2105 | User functions do not change the last used search pattern or the command to be |
| 2106 | redone with ".". |
| 2107 | 'maxfuncdepth' option. Restricts the depth of function calls. Avoids trouble |
| 2108 | (crash because of out-of-memory) when a function uses endless recursion. |
| 2109 | |
| 2110 | User definable Ex commands: ":command", ":delcommand" and ":comclear". |
| 2111 | (Moore) See |user-commands|. |
| 2112 | |
| 2113 | |
| 2114 | New interfaces *interfaces-5.2* |
| 2115 | -------------- |
| 2116 | |
| 2117 | Tcl interface. (Wilken) See |tcl|. |
| 2118 | Uses the ":tcl", ":tcldo" and "tclfile" commands. |
| 2119 | |
| 2120 | Cscope support. (Kahn) (Sekera) See |cscope|. |
| 2121 | Uses the ":cscope" and ":cstag" commands. Uses the options 'cscopeprg', |
| 2122 | 'cscopetag', 'cscopetagorder' and 'cscopeverbose'. |
| 2123 | |
| 2124 | |
| 2125 | New ports *ports-5.2* |
| 2126 | --------- |
| 2127 | |
| 2128 | Amiga GUI port. (Nielsen) Not tested much yet! |
| 2129 | |
| 2130 | RISC OS version. (Thomas Leonard) See |riscos|. |
| 2131 | This version can run either with a GUI or in text mode, depending upon where |
| 2132 | it is invoked. |
| 2133 | Deleted the "os_archie" files, they were not working anyway. |
| 2134 | |
| 2135 | |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 2136 | Multi-byte support *new-multi-byte* *new-multibyte* |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 2137 | ------------------ |
| 2138 | |
| 2139 | MultiByte support for Win32 GUI. (Baek) |
| 2140 | The 'fileencoding' option decides how the text in the file is encoded. |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 2141 | ":ascii" works for multibyte characters. Multi-byte characters work on |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 2142 | Windows 95, even when using the US version. (Aaron) |
| 2143 | Needs to be enabled in feature.h. |
| 2144 | This has not been tested much yet! |
| 2145 | |
| 2146 | |
| 2147 | New functions *new-functions-5.2* |
| 2148 | ------------- |
| 2149 | |
| 2150 | |browse()| puts up a file requester when available. (Negri) |
| 2151 | |escape()| escapes characters in a string with a backslash. |
| 2152 | |fnamemodify()| modifies a file name. |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 2153 | |input()| asks the user to enter a line. (Aaron) There is a separate |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 2154 | history for lines typed for the input() function. |
| 2155 | |argc()| |
| 2156 | |argv()| can be used to access the argument list. |
| 2157 | |winbufnr()| buffer number of a window. (Aaron) |
| 2158 | |winnr()| window number. (Aaron) |
| 2159 | |matchstr()| Return matched string. |
| 2160 | |setline()| Set a line to a string value. |
| 2161 | |
| 2162 | |
| 2163 | New options *new-options-5.2* |
| 2164 | ----------- |
| 2165 | |
| 2166 | 'allowrevins' Enable the CTRL-_ command in Insert and Command-line mode. |
| 2167 | 'browsedir' Tells in which directory a browse dialog starts. |
| 2168 | 'confirm' when set, :q :w and :e commands always act as if ":confirm" |
| 2169 | is used. (Negri) |
| 2170 | 'cscopeprg' |
| 2171 | 'cscopetag' |
| 2172 | 'cscopetagorder' |
| 2173 | 'cscopeverbose' Set the |cscope| behavior. |
| 2174 | 'filetype' RISC-OS specific type of file. |
| 2175 | 'grepformat' |
| 2176 | 'grepprg' For the |:grep| command. |
| 2177 | 'keymodel' Tells to use shifted special keys to start a Visual or Select |
| 2178 | mode selection. |
| 2179 | 'listchars' Set character to show in 'list' mode for end-of-line, tabs and |
| 2180 | trailing spaces. (partly by Smith) Also sets character to |
| 2181 | display if a line doesn't fit when 'nowrap' is set. |
| 2182 | 'matchpairs' Allows matching '<' with '>', and other single character |
| 2183 | pairs. |
| 2184 | 'mousefocus' Window focus follows mouse (partly by Terhaar). Changing the |
| 2185 | focus with a keyboard command moves the pointer to that |
| 2186 | window. Also move the pointer when changing the window layout |
| 2187 | (split window, change window height, etc.). |
| 2188 | 'mousemodel' Change use of mouse buttons. |
| 2189 | 'selection' When set to "inclusive" or "exclusive", the cursor can go one |
| 2190 | character past the end of the line in Visual or Select mode. |
| 2191 | When set to "old" the old behavior is used. When |
| 2192 | "inclusive", the character under the cursor is included in the |
| 2193 | operation. When using "exclusive", the new "ve" entry of |
| 2194 | 'guicursor' is used. The default is a vertical bar. |
| 2195 | 'selectmode' Tells when to start Select mode instead of Visual mode. |
| 2196 | 'sessionoptions' Sets behavior of ":mksession". (Negri) |
| 2197 | 'showfulltag' When completing a tag in Insert mode, show the tag search |
| 2198 | pattern (tidied up) as a choice as well (if there is one). |
| 2199 | 'swapfile' Whether to use a swap file for a buffer. |
| 2200 | 'syntax' When it is set, the syntax by that name is loaded. Allows for |
| 2201 | setting a specific syntax from a modeline. |
| 2202 | 'ttymouse' Allows using xterm mouse codes for terminals which name |
| 2203 | doesn't start with "xterm". |
| 2204 | 'wildignore' List of patterns for files that should not be completed at |
| 2205 | all. |
| 2206 | 'wildmode' Can be used to set the type of expansion for 'wildchar'. |
| 2207 | Replaces the CTRL-T command for command line completion. |
| 2208 | Don't beep when listing all matches. |
| 2209 | 'winaltkeys' Win32 and Motif GUI. When "yes", ALT keys are handled |
| 2210 | entirely by the window system. When "no", ALT keys are never |
| 2211 | used by the window system. When "menu" it depends on whether |
| 2212 | a key is a menu shortcut. |
| 2213 | 'winminheight' Minimal height for each window. Default is 1. Set to 0 if |
| 2214 | you want zero-line windows. Scrollbar is removed for |
| 2215 | zero-height windows. (Negri) |
| 2216 | |
| 2217 | |
| 2218 | |
| 2219 | New Ex commands *new-ex-commands-5.2* |
| 2220 | --------------- |
| 2221 | |
| 2222 | |:badd| Add file name to buffer list without side effects. (Negri) |
| 2223 | |:behave| Quickly set MS-Windows or xterm behavior. |
| 2224 | |:browse| Use file selection dialog. |
| 2225 | |:call| Call a function, optionally with a range. |
| 2226 | |:cnewer| |
| 2227 | |:colder| To access a stack of quickfix error lists. |
| 2228 | |:comclear| Clear all user-defined commands. |
| 2229 | |:command| Define a user command. |
| 2230 | |:continue| Go back to ":while". |
| 2231 | |:confirm| Ask confirmation if something unexpected happens. |
| 2232 | |:cscope| Execute cscope command. |
| 2233 | |:cstag| Use cscope to jump to a tag. |
| 2234 | |:delcommand| Delete a user-defined command. |
| 2235 | |:delfunction| Delete a user-defined function. |
| 2236 | |:endfunction| End of user-defined function. |
| 2237 | |:function| Define a user function. |
| 2238 | |:grep| Works similar to ":make". (Negri) |
| 2239 | |:mksession| Create a session file. |
| 2240 | |:nohlsearch| Stop 'hlsearch' highlighting for a moment. |
| 2241 | |:Print| This is Vi compatible. Does the same as ":print". |
| 2242 | |:promptfind| Search dialog (Win32 GUI). |
| 2243 | |:promptrepl| Search/replace dialog (Win32 GUI). |
| 2244 | |:return| Return from a user-defined function. |
| 2245 | |:simalt| Win32 GUI: Simulate alt-key pressed. (Negri) |
| 2246 | |:smagic| Like ":substitute", but always use 'magic'. |
| 2247 | |:snomagic| Like ":substitute", but always use 'nomagic'. |
| 2248 | |:tcl| Execute TCL command. |
| 2249 | |:tcldo| Execute TCL command for a range of lines. |
| 2250 | |:tclfile| Execute a TCL script file. |
| 2251 | |:tearoff| Tear-off a menu (Win32 GUI). |
| 2252 | |:tmenu| |
| 2253 | |:tunmenu| Win32 GUI: menu tooltips. (Negri) |
| 2254 | |:star| :* Execute a register. |
| 2255 | |
| 2256 | |
| 2257 | Changed *changed-5.2* |
| 2258 | ------- |
| 2259 | |
| 2260 | Renamed functions: |
| 2261 | buffer_exists() -> bufexists() |
| 2262 | buffer_name() -> bufname() |
| 2263 | buffer_number() -> bufnr() |
| 2264 | file_readable() -> filereadable() |
| 2265 | highlight_exists() -> hlexists() |
| 2266 | highlightID() -> hlID() |
| 2267 | last_buffer_nr() -> bufnr("$") |
| 2268 | The old ones are still there, for backwards compatibility. |
| 2269 | |
| 2270 | The CTRL-_ command in Insert and Command-line mode is only available when the |
| 2271 | new 'allowrevins' option is set. Avoids that people who want to type SHIFT-_ |
| 2272 | accidentally enter reverse Insert mode, and don't know how to get out. |
| 2273 | |
| 2274 | When a file name path in ":tselect" listing is too long, remove a part in the |
| 2275 | middle and put "..." there. |
| 2276 | |
| 2277 | Win32 GUI: Made font selector appear inside Vim window, not just any odd |
| 2278 | place. (Negri) |
| 2279 | |
| 2280 | ":bn" skips help buffers, unless currently in a help buffer. (Negri) |
| 2281 | |
| 2282 | When there is a status line and only one window, don't show '^' in the status |
| 2283 | line of the current window. |
| 2284 | |
| 2285 | ":*" used to be used for "'<,'>", the Visual area. But in Vi it's used as an |
| 2286 | alternative for ":@". When 'cpoptions' includes '*' this is Vi compatible. |
| 2287 | |
| 2288 | When 'insertmode' is set, using CTRL-O to execute a mapping will work like |
| 2289 | 'insertmode' was not set. This allows "normal" mappings to be used even when |
| 2290 | 'insertmode' is set. |
| 2291 | |
| 2292 | When 'mouse' was set already (e.g., in the .vimrc file), don't automatically |
| 2293 | set 'mouse' when the GUI starts. |
| 2294 | |
| 2295 | Removed the 'N', 'I' and 'A' flags from the 'mouse' option. |
| 2296 | |
| 2297 | Renamed "toggle option" to "boolean option". Some people thought that ":set |
| 2298 | xyz" would toggle 'xyz' on/off each time. |
| 2299 | |
| 2300 | The internal variable "shell_error" contains the error code from the shell, |
| 2301 | instead of just 0 or 1. |
| 2302 | |
| 2303 | When inserting or replacing, typing CTRL-V CTRL-<CR> used to insert "<C-CR>". |
| 2304 | That is not very useful. Now the CTRL key is ignored and a <CR> is inserted. |
| 2305 | Same for all other "normal" keys with modifiers. Mapping these modified key |
| 2306 | combinations is still possible. |
| 2307 | In Insert mode, <C-CR> and <S-Space> can be inserted by using CTRL-K and then |
| 2308 | the special character. |
| 2309 | |
| 2310 | Moved "quotes" file to doc/quotes.txt, and "todo" file to doc/todo.txt. They |
| 2311 | are now installed like other documentation files. |
| 2312 | |
| 2313 | winheight() function returns -1 for a non-existing window. It used to be |
| 2314 | zero, but that is a valid height now. |
| 2315 | |
| 2316 | The default for 'selection' is "inclusive", which makes a difference when |
| 2317 | using "$" or the mouse to move the cursor in Visual mode. |
| 2318 | |
| 2319 | ":q!" does not exit when there are changed buffers which are hidden. Use |
| 2320 | ":qa!" to exit anyway. |
| 2321 | |
| 2322 | Disabled the Perl/Python/Tcl interfaces by default. Not many people use them |
| 2323 | and they make the executable a lot bigger. The internal scripting language is |
| 2324 | now powerful enough for most tasks. |
| 2325 | |
| 2326 | The strings from the 'titlestring' and 'iconstring' options are used |
| 2327 | untranslated for the Window title and icon. This allows for including a <CR>. |
| 2328 | Previously a <CR> would be shown as "^M" (two characters). |
| 2329 | |
| 2330 | When a mapping is started in Visual or Select mode which was started from |
| 2331 | Insert mode (the mode shows "(insert) Visual"), don't return to Insert mode |
| 2332 | until the mapping has ended. Makes it possible to use a mapping in Visual |
| 2333 | mode that also works when the Visual mode was started from Select mode. |
| 2334 | |
| 2335 | Menus in $VIMRUNTIME/menu.vim no longer overrule existing menus. This helps |
| 2336 | when defining menus in the .vimrc file, or when sourcing mswin.vim. |
| 2337 | |
| 2338 | Unix: Use /var/tmp for .swp files, if it exists. Files there survive a |
| 2339 | reboot (at least on Linux). |
| 2340 | |
| 2341 | |
| 2342 | Added *added-5.2* |
| 2343 | ----- |
| 2344 | |
| 2345 | --with-motif-lib configure argument. Allows for using a static Motif library. |
| 2346 | |
| 2347 | Support for mapping numeric keypad +,-,*,/ keys. (Negri) |
| 2348 | When not mapped, they produce the normal character. |
| 2349 | |
Bram Moolenaar | b477af2 | 2018-07-15 20:20:18 +0200 | [diff] [blame] | 2350 | Win32 GUI: When directory dropped on gVim, cd there and edit new buffer. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 2351 | (Negri) |
| 2352 | |
| 2353 | Win32 GUI: Made CTRL-Break work as interrupt, so that CTRL-C can be |
| 2354 | used for mappings. |
| 2355 | |
| 2356 | In the output of ":map", highlight the "*" to make clear it's not part of the |
| 2357 | rhs. (Roemer) |
| 2358 | |
| 2359 | When showing the Visual area, the cursor is not switched off, so that it can |
| 2360 | be located. The Visual area is now highlighted with a grey background in the |
| 2361 | GUI. This makes the cursor visible when it's also reversed. |
| 2362 | |
| 2363 | Win32: When started with single full pathname (e.g. via double-clicked file), |
| 2364 | cd to that file's directory. (Negri) |
| 2365 | |
| 2366 | Win32 GUI: Tear-off menus, with ":tearoff <menu-name>" command. (Negri) |
| 2367 | 't' option to 'guioptions': Add tearoff menu items for Win32 GUI and Motif. |
| 2368 | It's included by default. |
| 2369 | Win32 GUI: tearoff menu with submenus is indicated with a ">>". (Negri) |
| 2370 | |
| 2371 | Added ^Kaa and ^KAA digraphs. |
| 2372 | Added "euro" symbol to digraph.c. (Corry) |
| 2373 | |
| 2374 | Support for Motif menu shortcut keys, using '&' like MS-Windows (Ollis). |
| 2375 | Other GUIs ignore '&' in a menu name. |
| 2376 | |
| 2377 | DJGPP: Faster screen updating (John Lange). |
| 2378 | |
| 2379 | Clustering of syntax groups ":syntax cluster" (Bigham). |
| 2380 | Including syntax files: ":syntax include" (Bigham). |
| 2381 | |
| 2382 | Keep column when switching buffers, when 'nosol' is set (Radics). |
| 2383 | |
| 2384 | Number function for Perl interface. |
| 2385 | |
| 2386 | Support for Intellimouse in Athena GUI. (Jensen) |
| 2387 | |
| 2388 | ":sleep" also accepts an argument in milliseconds, when "m" is used. |
| 2389 | |
| 2390 | Added 'p' flag in 'guioptions': Install callbacks for enter/leave window |
| 2391 | events. Makes cursor blinking work for Terhaar, breaks it for me. |
| 2392 | |
| 2393 | "--help" and "--version" command-line arguments. |
| 2394 | |
| 2395 | Non-text in ":list" output is highlighted with NonText. |
| 2396 | |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 2397 | Added text objects: "i(" and "i)" as synonym for "ib". "i{" and "i}" as |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 2398 | synonym for "iB". New: "i<" and "i>", to select <thing>. All this also for |
| 2399 | "a" objects. |
| 2400 | |
| 2401 | 'O' flag in 'shortmess': message for reading a file overwrites any previous |
| 2402 | message. (Negri) |
| 2403 | |
| 2404 | Win32 GUI: 'T' flag in 'guioptions': switch toolbar on/off. |
| 2405 | Included a list with self-made toolbar bitmaps. (Negri) |
| 2406 | |
| 2407 | Added menu priority for sub-menus. Implemented for Win32 and Motif GUI. |
| 2408 | Display menu priority with ":menu" command. |
| 2409 | Default and Syntax menus now include priority for items. Allows inserting |
| 2410 | menu items in between the default ones. |
| 2411 | |
| 2412 | When the 'number' option is on, highlight line numbers with the LineNr group. |
| 2413 | |
| 2414 | "Ignore" highlight group: Text highlighted with this is made blank. It is |
| 2415 | used to hide special characters in the help text. |
| 2416 | |
| 2417 | Included Exuberant Ctags version 2.3, with C++ support, Java support and |
| 2418 | recurse into directories. (Hiebert) |
| 2419 | |
| 2420 | When a tags file is not sorted, and this is detected (in a simplistic way), an |
| 2421 | error message is given. |
| 2422 | |
| 2423 | ":unlet" accepts a "!", to ignore non-existing variables, and accepts more |
| 2424 | than one argument. (Roemer) |
| 2425 | Completion of variable names for ":unlet". (Roemer) |
| 2426 | |
| 2427 | When there is an error in a function which is called by another function, show |
| 2428 | the call stack in the error message. |
| 2429 | |
| 2430 | New file name modifiers: |
| 2431 | ":.": reduce file name to be relative to current dir. |
| 2432 | ":~": reduce file name to be relative to home dir. |
| 2433 | ":s?pat?sub?": substitute "pat" with "sub" once. |
| 2434 | ":gs?pat?sub?": substitute "pat" with "sub" globally. |
| 2435 | |
| 2436 | New configure arguments: --enable-min-features and --enable-max-features. |
| 2437 | Easy way to switch to minimum or maximum features. |
| 2438 | |
| 2439 | New compile-time feature: modify_fname. For file name modifiers, e.g, |
| 2440 | "%:p:h". Can be disabled to save some code (16 bit DOS). |
| 2441 | |
| 2442 | When using whole-line completion in Insert mode, and 'cindent' is set, indent |
| 2443 | the line properly. |
| 2444 | |
| 2445 | MSDOS and Win32 console: 'guicursor' sets cursor thickness. (Negri) |
| 2446 | |
| 2447 | Included new set of Farsi fonts. (Shiran) |
| 2448 | |
| 2449 | Accelerator text now also works in Motif. All menus can be defined with & for |
| 2450 | mnemonic and TAB for accelerator text. They are ignored on systems that don't |
| 2451 | support them. |
| 2452 | When removing or replacing a menu, compare the menu name only up to the <Tab> |
| 2453 | before the mnemonic. |
| 2454 | |
| 2455 | 'i' and 'I' flags after ":substitute": ignore case or not. |
| 2456 | |
| 2457 | "make install" complains if the runtime files are missing. |
| 2458 | |
| 2459 | Unix: When finding an existing swap file that can't be opened, mention the |
| 2460 | owner of the file in the ATTENTION message. |
| 2461 | |
| 2462 | The 'i', 't' and 'k' options in 'complete' now also print the place where they |
| 2463 | are looking for matches. (Acevedo) |
| 2464 | |
| 2465 | "gJ" command: Join lines without inserting a space. |
| 2466 | |
| 2467 | Setting 'keywordprg' to "man -s" is handled specifically. The "-s" is removed |
| 2468 | when no count given, the count is added otherwise. Configure checks if "man |
| 2469 | -s 2 read" works, and sets the default for 'keywordprg' accordingly. |
| 2470 | |
| 2471 | If you do a ":bd" and there is only one window open, Vim tries to move to a |
| 2472 | buffer of the same type (i.e. non-help to non-help, help to help), for |
| 2473 | consistent behavior to :bnext/:bprev. (Negri) |
| 2474 | |
| 2475 | Allow "<Nop>" to be used as the rhs of a mapping. ":map xx <Nop>", maps "xx" |
| 2476 | to nothing at all. |
| 2477 | |
| 2478 | In a ":menu" command, "<Tab>" can be used instead of a real tab, in the menu |
| 2479 | path. This makes it more easy to type, no backslash needed. |
| 2480 | |
| 2481 | POSIX compatible character classes for regexp patterns: [:alnum:], [:alpha:], |
| 2482 | [:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], |
| 2483 | [:space:], [:upper:] and [:xdigit:]. (Briscoe) |
| 2484 | |
| 2485 | regexp character classes (for fast syntax highlight matching): |
| 2486 | digits: \d [0-9] \D not digit (Roemer) |
| 2487 | hex: \x [0-9a-fA-F] \X not hex |
| 2488 | octal: \o [0-7] \O not octal |
| 2489 | word: \w [a-zA-Z0-9_] \W not word |
| 2490 | head: \h [a-zA-Z_] \H not head |
| 2491 | alphabetic: \a [a-zA-Z] \A not alphabetic |
| 2492 | lowercase: \l [a-z] \L not lowercase |
| 2493 | uppercase: \u [A-Z] \U not uppercase |
| 2494 | |
| 2495 | ":set" now accepts "+=", |^=" and "-=": add or remove parts of a string |
| 2496 | option, add or subtract a number from a number option. A comma is |
Bram Moolenaar | cbaff5e | 2022-04-08 17:45:08 +0100 | [diff] [blame] | 2497 | automagically inserted or deleted for options that are a comma-separated list. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 2498 | |
| 2499 | Filetype feature, for autocommands. Uses a file type instead of a pattern to |
| 2500 | match a file. Currently only used for RISC OS. (Leonard) |
| 2501 | |
| 2502 | In a pattern for an autocommand, environment variables can be used. They are |
| 2503 | expanded when the autocommand is defined. |
| 2504 | |
| 2505 | "BufFilePre" and "BufFilePost" autocommand evens: Before and after applying |
| 2506 | the ":file" command to change the name of a buffer. |
| 2507 | "VimLeavePre" autocommand event: before writing the .viminfo file. |
| 2508 | |
| 2509 | For autocommands argument: <abuf> is buffer number, like <afile>. |
| 2510 | |
| 2511 | Made syntax highlighting a bit faster when scrolling backwards, by keeping |
| 2512 | more syncing context. |
| 2513 | |
| 2514 | Win32 GUI: Made scrolling faster by avoiding a redraw when deleting or |
| 2515 | inserting screen lines. |
| 2516 | |
| 2517 | GUI: Made scrolling faster by not redrawing the scrollbar when the thumb moved |
| 2518 | less than a pixel. |
| 2519 | |
| 2520 | Included ":highlight" in bugreport.vim. |
| 2521 | |
| 2522 | Created install.exe program, for simplistic installation on DOS and |
| 2523 | MS-Windows. |
| 2524 | |
| 2525 | New register: '_', the black hole. When writing to it, nothing happens. When |
| 2526 | reading from it, it's always empty. Can be used to avoid a delete or change |
| 2527 | command to modify the registers, or reduce memory use for big changes. |
| 2528 | |
| 2529 | CTRL-V xff enters character by hex number. CTRL-V o123 enters character by |
| 2530 | octal number. (Aaron) |
| 2531 | |
| 2532 | Improved performance of syntax highlighting by skipping check for "keepend" |
| 2533 | when there isn't any. |
| 2534 | |
| 2535 | Moved the mode message ("-- INSERT --") to the last line of the screen. When |
| 2536 | 'cmdheight' is more than one, messages will remain readable. |
| 2537 | |
| 2538 | When listing matching files, they are also sorted on 'suffixes', such that |
| 2539 | they are listed in the same order as CTRL-N retrieves them. |
| 2540 | |
| 2541 | synIDattr() takes a third argument (optionally), which tells for which |
| 2542 | terminal type to get the attributes for. This makes it possible to run |
| 2543 | 2html.vim outside of gvim (using color names instead of #RRGGBB). |
| 2544 | |
| 2545 | Memory profiling, only for debugging. Prints at exit, and with "g^A" command. |
| 2546 | (Kahn) |
| 2547 | |
| 2548 | DOS: When using a file in the current drive, remove the drive name: |
| 2549 | "A:\dir\file" -> "\dir\file". This helps when moving a session file on a |
| 2550 | floppy from "A:\dir" to "B:\dir". |
| 2551 | |
| 2552 | Increased number of remembered jumps from 30 to 50 per window. |
| 2553 | |
| 2554 | Command to temporarily disable 'hls' highlighting until the next search: |
| 2555 | ":nohlsearch". |
| 2556 | |
| 2557 | "gp" and "gP" commands: like "p" and "P", but leave the cursor just after the |
| 2558 | inserted text. Used for the CTRL-V command in MS-Windows mode. |
| 2559 | |
| 2560 | |
| 2561 | Fixed *fixed-5.2* |
| 2562 | ----- |
| 2563 | |
| 2564 | Win32 GUI: Could draw text twice in one place, for fake-bold text. Removed |
| 2565 | this, Windows will handle the bold text anyway. (Negri) |
| 2566 | |
| 2567 | patch 5.1.1: Win32s GUI: pasting caused a crash (Negri) |
| 2568 | |
| 2569 | patch 5.1.2: When entering another window, where characters before the cursor |
| 2570 | have been deleted, could have a cursor beyond the end of the line. |
| 2571 | |
| 2572 | patch 5.1.3: Win32s GUI: Didn't wait for external command to finish. (Negri) |
| 2573 | |
| 2574 | patch 5.1.4: Makefile.w32 can now also be used to generate the OLE version |
| 2575 | (Scott). |
| 2576 | |
| 2577 | patch 5.1.5: Crashed when using syntax highlighting: cursor on a line that |
| 2578 | doesn't fit in the window, and splitting that line in two. |
| 2579 | |
| 2580 | patch 5.1.6: Visual highlighting bug: After ":set nowrap", go to end of line |
| 2581 | (so that the window scrolls horizontally), ":set wrap". Following Visual |
| 2582 | selection was wrong. |
| 2583 | |
| 2584 | patch 5.1.7: When 'tagbsearch' off, and 'ignorecase' off, still could do |
| 2585 | binary searching. |
| 2586 | |
| 2587 | patch 5.1.8: Win32 GUI: dragging the scrollbar didn't update the ruler. |
| 2588 | |
| 2589 | patch 5.1.9: Using ":gui" in .vimrc, caused xterm cursor to disappear. |
| 2590 | |
| 2591 | patch 5.1.10: A CTRL-N in Insert mode could cause a crash, when a buffer |
| 2592 | without a name exists. |
| 2593 | |
| 2594 | patch 5.1.11: "make test" didn't work in the shadow directory. Also adjusted |
| 2595 | "make shadow" for the links in the ctags directory. |
| 2596 | |
| 2597 | patch 5.1.12: "buf 123foo" used "123" as a count, instead as the start of a |
| 2598 | buffer name. |
| 2599 | |
| 2600 | patch 5.1.13: When completing file names on the command-line, reallocating the |
| 2601 | command-line may go wrong. |
| 2602 | |
| 2603 | patch 5.1.14: ":[nvci]unmenu" removed menu for all modes, when full menu patch |
| 2604 | specified. |
| 2605 | |
| 2606 | Graceful handling of NULLs in drag-dropped file list. Handle passing NULL to |
| 2607 | Fullname_save(). (Negri) |
| 2608 | |
| 2609 | Win32: ":!start" to invoke a program without opening a console, swapping |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 2610 | screens, or waiting for completion in either console or gui version, e.g. you |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 2611 | can type ":!start winfile". ALSO fixes "can't delete swapfile after spawning |
| 2612 | a shell" bug. (enhancement of Aaron patch) (Negri) |
| 2613 | |
| 2614 | Win32 GUI: Fix CTRL-X default keymapping to be more Windows-like. (Negri) |
| 2615 | |
| 2616 | Shorten filenames on startup. If in /foo/bar, entering "vim ../bar/bang.c" |
| 2617 | displays "bang.c" in status bar, not "/foo/bar/bang.c" (Negri) |
| 2618 | |
| 2619 | Win32 GUI: No copy to Windows clipboard when it's not desired. |
| 2620 | |
| 2621 | Win32s: Fix pasting from clipboard - made an assumption not valid under |
| 2622 | Win32s. (Negri) |
| 2623 | |
| 2624 | Win32 GUI: Speed up calls to gui_mch_draw_string() and cursor drawing |
| 2625 | functions. (Negri) |
| 2626 | |
| 2627 | Win32 GUI: Middle mouse button emulation now works in GUI! (Negri) |
| 2628 | |
| 2629 | Could skip messages when combining commands in one line, e.g.: |
| 2630 | ":echo "hello" | write". |
| 2631 | |
| 2632 | Perl interpreter was disabled before executing VimLeave autocommands. Could |
| 2633 | not use ":perl" in them. (Aaron) |
| 2634 | |
| 2635 | Included patch for the Intellimouse (Aaron/Robinson). |
| 2636 | |
| 2637 | Could not set 'ls' to one, when last window has only one line. (Mitterand) |
| 2638 | |
| 2639 | Fixed a memory leak when removing menus. |
| 2640 | |
| 2641 | After ":only" the ruler could overwrite a message. |
| 2642 | |
| 2643 | Dos32: removed changing of __system_flags. It appears to work better when |
| 2644 | it's left at the default value. |
| 2645 | |
| 2646 | p_aleph was an int instead of along, caused trouble on systems where |
| 2647 | sizeof(int) != sizeof(long). (Schmidt) |
| 2648 | |
| 2649 | Fixed enum problems for Ultrix. (Seibert) |
| 2650 | |
| 2651 | Small redraw problem: "dd" on last line in file cleared wrong line. |
| 2652 | |
| 2653 | Didn't interpret "cmd | endif" when "cmd" starts with a range. E.g. "if 0 | |
| 2654 | .d | endif". |
| 2655 | |
| 2656 | Command "+|" on the last line of the file caused ml_get errors. |
| 2657 | |
| 2658 | Memory underrun in eval_vars(). (Aaron) |
| 2659 | |
| 2660 | Don't rename files in a difficult way, except on Windows 95 (was also done on |
| 2661 | Windows NT). |
| 2662 | |
| 2663 | Win32 GUI: An external command that produces an error code put the error |
| 2664 | message in a dialog box. had to close the window and close the dialog. Now |
| 2665 | the error code is displayed in the console. (Negri) |
| 2666 | |
| 2667 | "comctl32.lib" was missing from the GUI libraries in Makefile.w32. (Battle) |
| 2668 | |
| 2669 | In Insert mode, when entering a window in Insert mode, allow the cursor to be |
| 2670 | one char beyond the text. |
| 2671 | |
| 2672 | Renamed machine dependent rename() to mch_rename(). Define mch_rename() to |
| 2673 | rename() when it works properly. |
| 2674 | |
| 2675 | Rename vim_chdir() to mch_chdir(), because it's machine dependent. |
| 2676 | |
| 2677 | When using an arglist, and editing file 5 of 4, ":q" could cause "-1 more |
| 2678 | files to edit" error. |
| 2679 | |
| 2680 | In if_python.c, VimCommand() caused an assertion when a do_cmdline() failed. |
| 2681 | Moved the Python_Release_Vim() to before the VimErrorCheck(). (Harkins) |
| 2682 | |
| 2683 | Give an error message for an unknown argument after "--". E.g. for "vim |
| 2684 | --xyz". |
| 2685 | |
| 2686 | The FileChangedShell autocommand didn't set <afile> to the name of the changed |
| 2687 | file. |
| 2688 | |
| 2689 | When doing ":e file", causing the attention message, there sometimes was no |
| 2690 | hit-enter prompt. Caused by empty line or "endif" at end of sourced file. |
| 2691 | |
| 2692 | A large number of patches for the VMS version. (Hunsaker) |
| 2693 | |
| 2694 | When CTRL-L completion (find longest match) results in a shorter string, no |
| 2695 | completion is done (happens with ":help"). |
| 2696 | |
| 2697 | Crash in Win32 GUI version, when using an Ex "@" command, because |
| 2698 | LinePointers[] was used while not initialized. |
| 2699 | |
| 2700 | Win32 GUI: allow mapping of Alt-Space. |
| 2701 | |
| 2702 | Output from "vim -h" was sent to stderr. Sending it to stdout is better, so |
| 2703 | one can use "vim -h | more". |
| 2704 | |
| 2705 | In command-line mode, ":vi[!]" should reload the file, just like ":e[!]". |
| 2706 | In Ex mode, ":vi" stops Ex mode, but doesn't reload the file. This is Vi |
| 2707 | compatible. |
| 2708 | |
| 2709 | When using a ":set ls=1" in the .gvimrc file, would get a status line for a |
| 2710 | single window. (Robinson) |
| 2711 | |
| 2712 | Didn't give an error message for ":set ai,xx". (Roemer) |
| 2713 | Didn't give an error message for ":set ai?xx", ":set ai&xx", ":set ai!xx". |
| 2714 | |
| 2715 | Non-Unix systems: That a file exists but is unreadable is recognized as "new |
| 2716 | file". Now check for existence when file can't be opened (like Unix). |
| 2717 | |
| 2718 | Unix: osdef.sh didn't handle declarations where the function name is at the |
| 2719 | first column of the line. |
| 2720 | |
| 2721 | DJGPP: Shortening of file names didn't work properly, because get_cwd() |
| 2722 | returned a path with backslashes. (Negri) |
| 2723 | |
| 2724 | When using a 'comments' part where a space is required after the middle part, |
| 2725 | always insert a space when starting a new line. Helps for C comments, below a |
| 2726 | line with "/****". |
| 2727 | |
| 2728 | Replacing path of home directory with "~/" could be wrong for file names |
| 2729 | with embedded spaces or commas. |
| 2730 | |
| 2731 | A few fixes for the Sniff interface. (Leherbauer) |
| 2732 | |
| 2733 | When asking to hit 'y' or 'n' (e.g. for ":3,1d"), using the mouse caused |
| 2734 | trouble. Same for ":s/x/y/c" prompt. |
| 2735 | |
| 2736 | With 'nowrap' and 'list', a Tab halfway on the screen was displayed as blanks, |
| 2737 | instead of the characters specified with 'listchars'. Also for other |
| 2738 | characters that take more than one screen character. |
| 2739 | |
| 2740 | When setting 'guifont' to an unknown font name, the previous font was lost and |
| 2741 | a default font would be used. (Steed) |
| 2742 | |
| 2743 | DOS: Filenames in the root directory didn't get shortened properly. (Negri) |
| 2744 | |
| 2745 | DJGPP: making a full path name out of a file name didn't work properly when |
| 2746 | there is no _fullpath() function. (Negri) |
| 2747 | |
| 2748 | Win32 console: ":sh" caused a crash. (Negri) |
| 2749 | |
| 2750 | Win32 console: Setting 'lines' and/or 'columns' in the _vimrc failed miserably |
| 2751 | (could hang Windows 95). (Negri) |
| 2752 | |
| 2753 | Win32: The change-drive function was not correct, went to the wrong drive. |
| 2754 | (Tsindlekht) |
| 2755 | |
| 2756 | GUI: When editing a command line in Ex mode, Tabs were sometimes not |
| 2757 | backspaced properly, and unprintable characters were displayed directly. |
| 2758 | non-GUI can still be wrong, because a system function is called for this. |
| 2759 | |
| 2760 | ":set" didn't stop after an error. For example ":set no ai" gave an error for |
| 2761 | "no", but still set "ai". Now ":set" stops after the first error. |
| 2762 | |
| 2763 | When running configure for ctags, $LDFLAGS wasn't passed to it, causing |
| 2764 | trouble for IRIX. |
| 2765 | |
| 2766 | "@%" and "@#" when file name not set gave an error message. Now they just |
| 2767 | return an empty string. (Steed) |
| 2768 | |
| 2769 | CTRL-X and CTRL-A didn't work correctly with negative hex and octal numbers. |
| 2770 | (Steed) |
| 2771 | |
| 2772 | ":echo" always started with a blank. |
| 2773 | |
| 2774 | Updating GUI cursor shape didn't always work (e.g., when blinking is off). |
| 2775 | |
| 2776 | In silent Ex mode ("ex -s" or "ex <file") ":s///p" didn't print a line. Also |
| 2777 | a few other commands that explicitly print a text line didn't work. Made this |
| 2778 | Vi compatible. |
| 2779 | |
| 2780 | Win32 version of _chdrive() didn't return correct value. (Tsindlekht) |
| 2781 | |
| 2782 | When using 't' in 'complete' option, no longer give an error message for a |
| 2783 | missing tags file. |
| 2784 | |
| 2785 | Unix: tgoto() can return NULL, which was not handled correctly in configure. |
| 2786 | |
| 2787 | When doing ":help" from a buffer where 'binary' is set, also edited the help |
| 2788 | file in binary mode. Caused extra ^Ms for DOS systems. |
| 2789 | |
| 2790 | Cursor position in a file was reset to 1 when closing a window. |
| 2791 | |
| 2792 | ":!ls" in Ex mode switched off echo. |
| 2793 | |
| 2794 | When doing a double click in window A, while currently in window B, first |
| 2795 | click would reset double click time, had to click three times to select a |
| 2796 | word. |
| 2797 | |
| 2798 | When using <F11> in mappings, ":mkexrc" produced an exrc file that can't be |
| 2799 | used in Vi compatible mode. Added setting of 'cpo' to avoid this. Also, add |
| 2800 | a CTRL-V in front of a '<', to avoid a normal string to be interpreted as a |
| 2801 | special key name. |
| 2802 | |
| 2803 | Gave confusing error message for ":set guifont=-*-lucida-*": first "font is |
| 2804 | not fixed width", then "Unknown font". |
| 2805 | |
| 2806 | Some options were still completely left out, instead of included as hidden |
| 2807 | options. |
| 2808 | |
| 2809 | While running the X11 GUI, ignore SIGHUP signals. Avoids a crash after |
| 2810 | executing an external command (in rare cases). |
| 2811 | |
| 2812 | In os_unixx.h, signal() was defined to sigset(), while it already was. |
| 2813 | |
| 2814 | Memory leak when executing autocommands (was reported as a memory leak in |
| 2815 | syntax highlighting). |
| 2816 | |
| 2817 | Didn't print source of error sometimes, because pointers were the same, |
| 2818 | although names were different. |
| 2819 | |
| 2820 | Avoid a number of UMR errors from Purify (third argument to open()). |
| 2821 | |
| 2822 | A swap file could still be created just after setting 'updatecount' to zero, |
| 2823 | when there is an empty buffer and doing ":e file". (Kutschera) |
| 2824 | |
| 2825 | Test 35 failed on 64 bit machines. (Schild) |
| 2826 | |
| 2827 | With "p" and "P" commands, redrawing was slow. |
| 2828 | |
| 2829 | Awk script for html documentation didn't work correctly with AIX awk. |
| 2830 | Replaced "[ ,.);\] ]" with "[] ,.); ]". (Briscoe) |
| 2831 | The makehtml.awk script had a small problem, causing extra lines to be |
| 2832 | inserted. (Briscoe) |
| 2833 | |
| 2834 | "gqgq" could not be repeated. Repeating for "gugu" and "gUgU" worked in a |
| 2835 | wrong way. Also made "gqq" work to be consistent with "guu". |
| 2836 | |
| 2837 | C indent was wrong after "case ':':". |
| 2838 | |
| 2839 | ":au BufReadPre *.c put": Line from put text was deleted, because the buffer |
| 2840 | was still assumed to be empty. |
| 2841 | |
| 2842 | Text pasted with the Edit/Paste menu was subject to 'textwidth' and |
| 2843 | 'autoindent'. That was inconsistent with using the mouse to paste. Now "*p |
| 2844 | is used. |
| 2845 | |
| 2846 | When using CTRL-W CTRL-] on a word that's not a tag, and then CTRL-] on a tag, |
| 2847 | window was split. |
| 2848 | |
| 2849 | ":ts" got stuck on a tags line that has two extra fields. |
| 2850 | |
| 2851 | In Insert mode, with 'showmode' on, <C-O><C-G> message was directly |
| 2852 | overwritten by mode message, if preceded with search command warning message. |
| 2853 | |
| 2854 | When putting the result of an expression with "=<expr>p, newlines were |
| 2855 | inserted like ^@ (NUL in the file). Now the string is split up in lines at |
| 2856 | the newline. |
| 2857 | |
| 2858 | putenv() was declared with "const char *" in pty.c, but with "char *" in |
| 2859 | osdef2.h.in. Made the last one also "const char *". |
| 2860 | |
| 2861 | ":help {word}", where +{word} is a feature, jumped to the feature list instead |
| 2862 | of where the command was explained. E.g., ":help browse", ":help autocmd". |
| 2863 | |
| 2864 | Using the "\<xx>" form in an expression only got one byte, even when using a |
| 2865 | special character that uses several bytes (e.g., "\<F9>"). |
| 2866 | Changed "\<BS>" to produce CTRL-H instead of the special key code for the |
| 2867 | backspace key. "\<Del>" produces 0x7f. |
| 2868 | |
| 2869 | ":mkvimrc" didn't write a command to set 'compatible' or 'nocompatible'. |
| 2870 | |
| 2871 | The shell syntax didn't contain a "syn sync maxlines" setting. In a long file |
| 2872 | without recognizable items, syncing took so long it looked like Vim hangs. |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 2873 | Added a maxlines setting, and made syncing interruptible. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 2874 | |
| 2875 | The "gs" command didn't flush output before waiting. |
| 2876 | |
| 2877 | Memory leaks for: |
| 2878 | ":if 0 | let a = b . c | endif" |
| 2879 | "let a = b[c]" |
| 2880 | ":so {file}" where {file} contains a ":while" |
| 2881 | |
| 2882 | GUI: allocated fonts were never released. (Leonard) |
| 2883 | |
| 2884 | Makefile.bor: |
| 2885 | - Changed $(DEFINES) into a list of "-D" options, so that it can also be used |
| 2886 | for the resource compiler. (not tested!) |
| 2887 | - "bcc.cfg" was used for all configurations. When building for another |
| 2888 | configuration, the settings for the previous one would be used. Moved |
| 2889 | "bcc.cfg" to the object directory. (Geddes) |
| 2890 | - Included targets for vimrun, install, ctags and xxd. Changed the default to |
| 2891 | use the Borland DLL Runtime Library, makes Vim.exe a log smaller. (Aaron) |
| 2892 | |
| 2893 | "2*" search for the word under the cursor with "2" prepended. (Leonard) |
| 2894 | |
| 2895 | When deleting into a specific register, would still overwrite the non-Win32 |
| 2896 | GUI selection. Now ""x"*P works. |
| 2897 | |
| 2898 | When deleting into the "" register, would write to the last used register. |
| 2899 | Now ""x always writes to the unnamed register. |
| 2900 | |
| 2901 | GUI Athena: A submenu with a '.' in it didn't work. E.g., |
| 2902 | ":amenu Syntax.XY\.Z.foo lll". |
| 2903 | |
| 2904 | When first doing ":tag foo" and then ":tnext" and/or ":tselect" the order of |
| 2905 | matching tags could change, because the current file is different. Now the |
| 2906 | existing matches are kept in the same order, newly found matches are added |
| 2907 | after them, not matter what the current file is. |
| 2908 | |
| 2909 | ":ta" didn't find the second entry in a tags file, if the second entry was |
| 2910 | longer than the first one. |
| 2911 | |
| 2912 | When using ":set si tw=7" inserting "foo {^P}" made the "}" inserted at the |
| 2913 | wrong position. can_si was still TRUE when the cursor is not in the indent of |
| 2914 | the line. |
| 2915 | |
| 2916 | Running an external command in Win32 version had the problem that Vim exits |
| 2917 | when the X on the console is hit (and confirmed). Now use the "vimrun" |
| 2918 | command to start the external command indirectly. (Negri) |
| 2919 | |
| 2920 | Win32 GUI: When running an external filter, do it in a minimized DOS box. |
| 2921 | (Negri) |
| 2922 | |
| 2923 | ":let" listed variables without translation into printable characters. |
| 2924 | |
| 2925 | Win32 console: When resizing the window, switching back to the old size |
| 2926 | (when exiting or executing an external command) sometimes failed. (Negri) |
| 2927 | This appears to also fix a "non fixable" problem: |
| 2928 | Win32 console in NT 4.0: When running Vim in a cmd window with a scrollbar, |
| 2929 | the scrollbar disappeared and was not restored when Vim exits. This does work |
| 2930 | under NT 3.51, it appears not to be a Vim problem. |
| 2931 | |
| 2932 | When executing BufDelete and BufUnload autocommands for a buffer without a |
| 2933 | name, the name of the current buffer was used for <afile>. |
| 2934 | |
| 2935 | When jumping to a tag it reported "tag 1 of >2", while in fact there could be |
| 2936 | only two matches. Changed to "tag 1 of 2 or more". |
| 2937 | |
| 2938 | ":tjump tag" did a linear search in the tags file, which can be slow. |
| 2939 | |
| 2940 | Configure didn't find "LibXm.so.2.0", a Xm library with a version number. |
| 2941 | |
| 2942 | Win32 GUI: When using a shifted key with ALT, the shift modifier would remain |
| 2943 | set, even when it was already used by changing the used key. E.g., "<M-S-9>" |
| 2944 | resulted in "<M-S-(>", but it should be "<M-(>". (Negri) |
| 2945 | |
| 2946 | A call to ga_init() was often followed by setting growsize and itemsize. |
| 2947 | Created ga_init2() for this, which looks better. (Aaron) |
| 2948 | |
| 2949 | Function filereadable() could call fopen() with an empty string, which might |
| 2950 | be illegal. |
| 2951 | |
| 2952 | X Windows GUI: When executing an external command that outputs text, could |
| 2953 | write one character beyond the end of a buffer, which caused a crash. (Kohan) |
| 2954 | |
| 2955 | When using "*" or "#" on a string that includes '/' or '?' (when these are |
| 2956 | included in 'isk'), they were not escaped. (Parmelan) |
| 2957 | |
| 2958 | When adding a ToolBar menu in the Motif GUI, the submenu_id field was not |
| 2959 | cleared, causing random problems. |
| 2960 | |
| 2961 | When adding a menu, the check if this menu (or submenu) name already exists |
| 2962 | didn't compare with the simplified version (no mnemonic or accelerator) of the |
| 2963 | new menu. Could get two menus with the same name, e.g., "File" and "&File". |
| 2964 | |
| 2965 | Breaking a line because of 'textwidth' at the last line in the window caused a |
| 2966 | redraw of the whole window instead of a scroll. Speeds up normal typing with |
| 2967 | 'textwidth' a lot for slow terminals. |
| 2968 | |
| 2969 | An invalid line number produced an "invalid range" error, even when it wasn't |
| 2970 | to be executed (inside "if 0"). |
| 2971 | |
| 2972 | When the unnamed, first buffer is re-used, the "BufDelete" autocommand was |
| 2973 | not called. It would stick in a buffer list menu. |
| 2974 | |
| 2975 | When doing "%" on the NUL after the line, a "{" or "}" in the last character |
| 2976 | of the line was not found. |
| 2977 | |
| 2978 | The Insert mode menu was not used for the "s" command, the Operator-pending |
| 2979 | menu was used instead. |
| 2980 | |
| 2981 | With 'compatible' set, some syntax highlighting was not correct, because of |
| 2982 | using "[\t]" for a search pattern. Now use the regexps for syntax |
| 2983 | highlighting like the 'cpoptions' option is empty (as was documented already). |
| 2984 | |
| 2985 | When using "map <M-Space> ms" or "map <Space> sss" the output of ":map" didn't |
| 2986 | show any lhs for the mapping (if 'isprint' includes 160). Now always use |
| 2987 | <Space> and <M-Space>, even when they are printable. |
| 2988 | |
| 2989 | Adjusted the Syntax menu, so that the lowest entry fits on a small screen (for |
| 2990 | Athena, where menus don't wrap). |
| 2991 | |
| 2992 | When using CTRL-E or CTRL-Y in Insert mode for characters like 'o', 'x' and |
| 2993 | digits, repeating the insert didn't work. |
| 2994 | |
| 2995 | The file "tools/ccfilter.README.txt" could not be unpacked when using short |
| 2996 | file names, because of the two dots. Renamed it to |
| 2997 | "tools/ccfilter_README.txt". |
| 2998 | |
| 2999 | For a dark 'background', using Blue for Directory and SpecialKey highlight |
| 3000 | groups is not very readable. Use Cyan instead. |
| 3001 | |
| 3002 | In the function uc_scan_attr() in ex_docmd.c there was a goto that jumped into |
| 3003 | a block with a local variable. That's illegal for some compilers. |
| 3004 | |
| 3005 | Win32 GUI: There was a row of pixels at the bottom of the window which was not |
| 3006 | drawn. (Aaron) |
| 3007 | |
| 3008 | Under DOS, editing "filename/" created a swap file of "filename/.swp". Should |
| 3009 | be "filename/_swp". |
| 3010 | |
| 3011 | Win32 GUI: pointer was hidden when executing an external command. |
| 3012 | |
| 3013 | When 'so' is 999, "J" near the end of the file didn't redisplay correctly. |
| 3014 | |
| 3015 | ":0a" inserted after the first line, instead of before the first line. |
| 3016 | |
| 3017 | Unix: Wildcard expansion didn't handle single quotes and {} patterns. Now |
| 3018 | ":file 'window.c'" removes the quotes and ":e 'main*.c'" works (literal '*'). |
| 3019 | ":file {o}{n}{e}" now results in file name "one". |
| 3020 | |
| 3021 | Memory leak when setting a string option back to its default value. |
| 3022 | |
| 3023 | ============================================================================== |
| 3024 | VERSION 5.3 *version-5.3* |
| 3025 | |
| 3026 | Version 5.3 was a bug-fix version of 5.2. There are not many changes. |
| 3027 | Improvements made between version 5.2 and 5.3: |
| 3028 | |
| 3029 | Changed *changed-5.3* |
| 3030 | ------- |
| 3031 | |
| 3032 | Renamed "IDE" menu to "Tools" menu. |
| 3033 | |
| 3034 | |
| 3035 | Added *added-5.3* |
| 3036 | ----- |
| 3037 | |
| 3038 | Win32 GUI: Give a warning when Vim is activated, and one of the files changed |
| 3039 | since editing started. (Negri) |
| 3040 | |
| 3041 | |
| 3042 | Fixed *fixed-5.3* |
| 3043 | ----- |
| 3044 | |
| 3045 | 5.2.1: Win32 GUI: space for external command was not properly allocated, could |
| 3046 | cause a crash. (Aaron) This was the reason to bring out 5.3 quickly after |
| 3047 | 5.2. |
| 3048 | |
| 3049 | 5.2.2: Some commands didn't complain when used without an argument, although |
| 3050 | they need one: ":badd", ":browse", ":call", ":confirm", ":behave", |
| 3051 | ":delfunction", ":delcommand" and ":tearoff". |
| 3052 | ":endfunction" outside of a function gave wrong error message: "Command not |
| 3053 | implemented". Should be ":endfunction not inside a function". |
| 3054 | |
| 3055 | 5.2.3: Win32 GUI: When gvim was installed in "Program files", or another path |
| 3056 | with a space in it, executing external commands with vimrun didn't work. |
| 3057 | |
| 3058 | 5.2.4: Pasting with the mouse in Insert mode left the cursor on the last |
| 3059 | pasted character, instead of behind it. |
| 3060 | |
| 3061 | 5.2.5: In Insert mode, cursor after the end of the line, a shift-cursor-left |
| 3062 | didn't include the last character in the selection. |
| 3063 | |
| 3064 | 5.2.6: When deleting text from Insert mode (with "<C-O>D" or the mouse), which |
| 3065 | includes the last character in the line, the cursor could be left on the last |
| 3066 | character in the line, instead of just after it. |
| 3067 | |
| 3068 | 5.2.7: Win32 GUI: scrollbar was one pixel too big. |
| 3069 | |
Bram Moolenaar | c236c16 | 2008-07-13 17:41:49 +0000 | [diff] [blame] | 3070 | 5.2.8: Completion of "PopUp" menu showed the derivatives "PopUpc", "PopUPi", |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 3071 | etc. ":menu" also showed these. |
| 3072 | |
| 3073 | 5.2.9: When using two input() functions on a row, the prompt would not be |
| 3074 | drawn in column 0. |
| 3075 | |
| 3076 | 5.2.10: A loop with input() could not be broken with CTRL-C. |
| 3077 | |
| 3078 | 5.2.11: ":call asdf" and ":call asdf(" didn't give an error message. |
| 3079 | |
| 3080 | 5.2.12: Recursively using ":normal" crashes Vim after a while. E.g.: |
| 3081 | ":map gq :normal gq<CR>" |
| 3082 | |
| 3083 | 5.2.13: Syntax highlighting used 'iskeyword' from wrong buffer. When using |
| 3084 | ":help", then "/\k*" in another window with 'hlsearch' set. |
| 3085 | |
| 3086 | 5.2.14: When using ":source" from a function, global variables would not be |
| 3087 | available unless "g:" was used. |
| 3088 | |
| 3089 | 5.2.15: XPM files can have the extension ".pm", which is the same as for Perl |
| 3090 | modules. Added "syntax/pmfile.vim" to handle this. |
| 3091 | |
| 3092 | 5.2.16: On Win32 and Amiga, "echo expand("%:p:h")" removed one dirname in an |
| 3093 | empty buffer. mch_Fullname() didn't append a slash at the end of a directory |
| 3094 | name. |
| 3095 | |
| 3096 | Should include the character under the cursor in the Visual area when using |
| 3097 | 'selection' "exclusive". This wasn't done for "%", "e", "E", "t" and "f". |
| 3098 | |
| 3099 | ""p would always put register 0, instead of the unnamed (last used) register. |
| 3100 | Reverse the change that ""x doesn't write in the unnamed (last used) register. |
| 3101 | It would always write in register 0, which isn't very useful. Use "-x for the |
| 3102 | paste mappings in Visual mode. |
| 3103 | |
| 3104 | When there is one long line on the screen, and 'showcmd' is off, "0$" didn't |
| 3105 | redraw the screen. |
| 3106 | |
| 3107 | Win32 GUI: When using 'mousehide', the pointer would flicker when the cursor |
| 3108 | shape is changed. (Negri) |
| 3109 | |
| 3110 | When cancelling Visual mode, and the cursor moves to the start, the wanted |
| 3111 | column wasn't set, "k" or "j" moved to the wrong column. |
| 3112 | |
| 3113 | When using ":browse" or ":confirm", was checking for a comment and separating |
| 3114 | bar, which can break some commands. |
| 3115 | |
| 3116 | Included fixes for Macintosh. (Kielhorn) |
| 3117 | |
| 3118 | ============================================================================== |
| 3119 | VERSION 5.4 *version-5.4* |
| 3120 | |
| 3121 | Version 5.4 adds new features, useful changes and a lot of bug fixes. |
| 3122 | |
| 3123 | |
| 3124 | Runtime directory introduced *new-runtime-dir* |
| 3125 | ---------------------------- |
| 3126 | |
| 3127 | The distributed runtime files are now in $VIMRUNTIME, the user files in $VIM. |
| 3128 | You normally don't set $VIMRUNTIME but let Vim find it, by using |
| 3129 | $VIM/vim{version}, or use $VIM when that doesn't exist. This allows for |
| 3130 | separating the user files from the distributed files and makes it more easy to |
| 3131 | upgrade to another version. It also makes it possible to keep two versions of |
| 3132 | Vim around, each with their own runtime files. |
| 3133 | |
| 3134 | In the Unix distribution the runtime files have been moved to the "runtime" |
| 3135 | directory. This makes it possible to copy all the runtime files at once, |
| 3136 | without the need to know what needs to be copied. |
| 3137 | |
| 3138 | The archives for DOS, Windows, Amiga and OS/2 now have an extra top-level |
| 3139 | "vim" directory. This is to make clear that user-modified files should be put |
| 3140 | here. The directory that contains the executables doesn't have '-' or '.' |
| 3141 | characters. This avoids strange extensions. |
| 3142 | |
| 3143 | The $VIM and $VIMRUNTIME variables are set when they are first used. This |
| 3144 | allows them to be used by Perl, for example. |
| 3145 | |
| 3146 | The runtime files are also found in a directory called "$VIM/runtime". This |
| 3147 | helps when running Vim after just unpacking the runtime archive. When using |
| 3148 | an executable in the "src" directory, Vim checks if "vim54" or "runtime" can |
| 3149 | be added after removing it. This make the runtime files be found just after |
| 3150 | compiling. |
| 3151 | |
| 3152 | A default for $VIMRUNTIME can be given in the Unix Makefile. This is useful |
| 3153 | if $VIM doesn't point to above the runtime directory but to e.g., "/etc/". |
| 3154 | |
| 3155 | |
| 3156 | Filetype introduced *new-filetype-5.4* |
| 3157 | ------------------- |
| 3158 | |
| 3159 | Syntax files are now loaded with the new FileType autocommand. Old |
| 3160 | "mysyntaxfile" files will no longer work. |filetypes| |
| 3161 | |
| 3162 | The scripts for loading syntax highlighting have been changed to use the |
| 3163 | new Syntax autocommand event. |
| 3164 | |
| 3165 | This combination of Filetype and Syntax events allows tuning the syntax |
| 3166 | highlighting a bit more, also when selected from the Syntax menu. The |
| 3167 | FileType autocommand can also be used to set options and mappings specifically |
| 3168 | for that type of file. |
| 3169 | |
| 3170 | The "$VIMRUNTIME/filetype.vim" file is not loaded automatically. The |
| 3171 | ":filetype on" command has been added for this. ":syntax on" also loads it. |
| 3172 | |
| 3173 | The 'filetype' option has been added. It is used to trigger the FileType |
| 3174 | autocommand event, like the 'syntax' option does for the Syntax event. |
| 3175 | |
| 3176 | ":set syntax=OFF" and ":set syntax=ON" can be used (in a modeline) to switch |
| 3177 | syntax highlighting on/off for the current file. |
| 3178 | |
| 3179 | The Syntax menu commands have been moved to $VIMRUNTIME/menu.vim. The Syntax |
| 3180 | menu is included both when ":filetype on" and when ":syntax manual" is used. |
| 3181 | |
| 3182 | Renamed the old 'filetype' option to 'osfiletype'. It was only used for |
| 3183 | RISCOS. 'filetype' is now used for the common file type. |
| 3184 | |
| 3185 | Added the ":syntax manual" command. Allows manual selection of the syntax to |
| 3186 | be used, e.g., from a modeline. |
| 3187 | |
| 3188 | |
| 3189 | Vim script line continuation *new-line-continuation* |
| 3190 | ---------------------------- |
| 3191 | |
| 3192 | When an Ex line starts with a backslash, it is concatenated to the previous |
| 3193 | line. This avoids the need for long lines. |line-continuation| (Roemer) |
| 3194 | Example: > |
| 3195 | if has("dialog_con") || |
| 3196 | \ has("dialog_gui") |
| 3197 | :let result = confirm("Enter your choice", |
| 3198 | \ "&Yes\n&No\n&Maybe", |
| 3199 | \ 2) |
| 3200 | endif |
| 3201 | |
| 3202 | |
| 3203 | Improved session files *improved-sessions* |
| 3204 | ---------------------- |
| 3205 | |
| 3206 | New words for 'sessionoptions': |
| 3207 | - "help" Restore the help window. |
| 3208 | - "blank" Restore empty windows. |
| 3209 | - "winpos" Restore the Vim window position. Uses the new ":winpos" |
| 3210 | command |
| 3211 | - "buffers" Restore hidden and unloaded buffers. Without it only the |
| 3212 | buffers in windows are restored. |
| 3213 | - "slash" Replace backward by forward slashes in file names. |
| 3214 | - "globals" Store global variables. |
| 3215 | - "unix" Use unix file format (<NL> instead of <CR><NL>) |
| 3216 | |
| 3217 | The ":mksession" and 'sessionoptions' are now in the +mksession feature. |
| 3218 | |
| 3219 | The top line of the window is also restored when using a session file. |
| 3220 | |
| 3221 | ":mksession" and ":mkvimrc" don't store 'fileformat', it should be detected |
| 3222 | when loading a file. |
| 3223 | |
| 3224 | (Most of this was done by Vince Negri and Robert Webb) |
| 3225 | |
| 3226 | |
| 3227 | Autocommands improved *improved-autocmds-5.4* |
| 3228 | --------------------- |
| 3229 | |
| 3230 | New events: |
| 3231 | |FileType| When the file type has been detected. |
| 3232 | |FocusGained| When Vim got input focus. (Negri) |
| 3233 | |FocusLost| When Vim lost input focus. (Negri) |
| 3234 | |BufCreate| Called just after a new buffer has been created or has been |
| 3235 | renamed. (Madsen) |
| 3236 | |CursorHold| Triggered when no key has been typed for 'updatetime'. Can be |
| 3237 | used to do something with the word under the cursor. (Negri) |
| 3238 | Implemented CursorHold autocommand event for Unix. (Zellner) |
| 3239 | Also for Amiga and MS-DOS. |
| 3240 | |GUIEnter| Can be used to do something with the GUI window after it has |
| 3241 | been created (e.g., a ":winpos 100 50"). |
| 3242 | |BufHidden| When a buffer becomes hidden. Used to delete the |
| 3243 | option-window when it becomes hidden. |
| 3244 | |
| 3245 | Also trigger |BufDelete| just before a buffer is going to be renamed. (Madsen) |
| 3246 | |
| 3247 | The "<amatch>" pattern can be used like "<afile>" for autocommands, except |
| 3248 | that it is the matching value for the FileType and Syntax events. |
| 3249 | |
| 3250 | When ":let @/ = <string>" is used in an autocommand, this last search pattern |
| 3251 | will be used after the autocommand finishes. |
| 3252 | |
| 3253 | Made loading autocommands a bit faster. Avoid doing strlen() on each exiting |
| 3254 | pattern for each new pattern by remembering the length. |
| 3255 | |
| 3256 | |
| 3257 | Encryption *new-encryption* |
| 3258 | ---------- |
| 3259 | |
| 3260 | Files can be encrypted when writing and decrypted when reading. Added the |
| 3261 | 'key' option, "-x" command line argument and ":X" command. |encryption| (based |
| 3262 | on patch from Mohsin Ahmed) |
| 3263 | |
| 3264 | When reading a file, there is an automatic detection whether it has been |
Bram Moolenaar | d592deb | 2022-06-17 15:42:40 +0100 | [diff] [blame] | 3265 | encrypted. Vim will then prompt for the key. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 3266 | |
| 3267 | Note that the encryption method is not compatible with Vi. The encryption is |
| 3268 | not unbreakable. This allows it to be exported from the US. |
| 3269 | |
| 3270 | |
| 3271 | GTK GUI port *new-GTK-GUI* |
| 3272 | ------------ |
| 3273 | |
| 3274 | New GUI port for GTK+. Includes a toolbar, menu tearoffs, etc. |gui-gtk| |
| 3275 | Added the |:helpfind| command. (Kahn and Dalecki) |
| 3276 | |
| 3277 | |
| 3278 | Menu changes *menu-changes-5.4* |
| 3279 | ------------ |
| 3280 | |
| 3281 | Menus can now also be used in the console. It is enabled by the new |
| 3282 | 'wildmenu' option. This shows matches for command-line completion like a |
| 3283 | menu. This works as a minimal file browser. |
| 3284 | |
| 3285 | The new |:emenu| command can be used to execute a menu item. |
| 3286 | |
| 3287 | Uses the last status line to list items, or inserts a line just above the |
| 3288 | command line. (Negri) |
| 3289 | |
| 3290 | The 'wildcharx' option can be used to trigger 'wildmenu' completion from a |
| 3291 | mapping. |
| 3292 | |
| 3293 | When compiled without menus, this can be detected with has("menu"). Also show |
| 3294 | this in the ":version" output. Allow compiling GUI versions without menu |
| 3295 | support. Only include toolbar support when there is menu support. |
| 3296 | |
| 3297 | Moved the "Window" menu all the way to the right (priority 70). Looks more |
| 3298 | familiar for people working with MS-Windows, shouldn't matter for others. |
| 3299 | |
| 3300 | Included "Buffers" menu. Works with existing autocommands and functions. It |
| 3301 | can be disabled by setting the "no_buffers_menu" variable. (Aaron and Madsen) |
| 3302 | |
| 3303 | Win32 supports separators in a menu: "-.*-". (Geddes) |
| 3304 | Menu separators for Motif now work too. |
| 3305 | |
| 3306 | Made Popup menu for Motif GUI work. (Madsen) |
| 3307 | |
| 3308 | 'M' flag in 'guioptions': Don't source the system menu. |
| 3309 | |
| 3310 | All the menu code has been moved from gui.c to menu.c. |
| 3311 | |
| 3312 | |
| 3313 | Viminfo improved *improved-viminfo* |
| 3314 | ---------------- |
| 3315 | |
| 3316 | New flags for 'viminfo': |
| 3317 | '!' Store global variables in the viminfo file if they are in uppercase |
| 3318 | letters. (Negri) |
| 3319 | 'h' Do ":nohlsearch" when loading a viminfo file. |
| 3320 | |
| 3321 | Store search patterns in the viminfo file with their offset, magic, etc. Also |
| 3322 | store the flag whether 'hlsearch' highlighting is on or off (which is not used |
| 3323 | if the 'h' flag is in 'viminfo'). |
| 3324 | |
| 3325 | Give an error message when setting 'viminfo' without commas. |
| 3326 | |
| 3327 | |
| 3328 | Various new commands *new-commands-5.4* |
| 3329 | -------------------- |
| 3330 | |
| 3331 | Operator |g?|: rot13 encoding. (Negri) |
| 3332 | |
| 3333 | |zH| and |zL| commands: Horizontal scrolling by half a page. |
| 3334 | |gm| move cursor to middle of screen line. (Ideas by Campbell) |
| 3335 | |
| 3336 | Operations on Visual blocks: |v_b_I|, |v_b_A|, |v_b_c|, |v_b_C|, |v_b_r|, |
| 3337 | |v_b_<| and |v_b_>|. (Kelly) |
| 3338 | |
| 3339 | New command: CTRL-\ CTRL-N, which does nothing in Normal mode, and goes to |
| 3340 | Normal mode when in Insert or Command-line mode. Can be used by VisVim or |
| 3341 | other OLE programs to make sure Vim is in Normal mode, without causing a beep. |
| 3342 | |CTRL-\_CTRL-N| |
| 3343 | |
| 3344 | ":cscope kill" command to use the connection filename. |:cscope| (Kahn) |
| 3345 | |
| 3346 | |:startinsert| command: Start Insert mode next. |
| 3347 | |
| 3348 | |:history| command, to show all four types of histories. (Roemer) |
| 3349 | |
| 3350 | |[m|, |[M|, |]m| and |]M| commands, for jumping backward/forward to start/end |
| 3351 | of method in a (Java) class. |
| 3352 | |
| 3353 | ":@*" executes the * register. |:@| (Acevedo) |
| 3354 | |
| 3355 | |go| and |:goto| commands: Jump to byte offset in the file. |
| 3356 | |
| 3357 | |gR| and |gr| command: Virtual Replace mode. Replace characters without |
| 3358 | changing the layout. (Webb) |
| 3359 | |
| 3360 | ":cd -" changes to the directory from before the previous ":cd" command. |
| 3361 | |:cd-| (Webb) |
| 3362 | |
| 3363 | Tag preview commands |:ptag|. Shows the result of a ":tag" in a dedicated |
| 3364 | window. Can be used to see the context of the tag (e.g., function arguments). |
| 3365 | (Negri) |
| 3366 | |:pclose| command, and CTRL-W CTRL-Z: Close preview window. (Moore) |
| 3367 | 'previewheight' option, height for the preview window. |
| 3368 | Also |:ppop|, |:ptnext|, |:ptprevious|, |:ptNext|, |:ptrewind|, |:ptlast|. |
| 3369 | |
| 3370 | |:find| and |:sfind| commands: Find a file in 'path', (split window) and edit |
| 3371 | it. |
| 3372 | |
| 3373 | The |:options| command opens an option window that shows the current option |
| 3374 | values. Or use ":browse set" to open it. Options are grouped by function. |
| 3375 | Offers short help on each option. Hit <CR> to jump to more help. Edit the |
| 3376 | option value and hit <CR> on a "set" line to set a new value. |
| 3377 | |
| 3378 | |
| 3379 | Various new options *new-options-5.4* |
| 3380 | ------------------- |
| 3381 | |
| 3382 | Scroll-binding: 'scrollbind' and 'scrollopt' options. Added |:syncbind| |
| 3383 | command. Makes windows scroll the same amount (horizontally and/or |
| 3384 | vertically). (Ralston) |
| 3385 | |
| 3386 | 'conskey' option for MS-DOS. Use direct console I/O. This should work with |
| 3387 | telnet (untested!). |
| 3388 | |
| 3389 | 'statusline' option: Configurable contents of the status line. Also allows |
| 3390 | showing the byte offset in the file. Highlighting with %1* to %9*, using the |
| 3391 | new highlight groups User1 to User9. (Madsen) |
| 3392 | |
| 3393 | 'rulerformat' option: Configurable contents of the ruler, like 'statusline'. |
| 3394 | (Madsen) |
| 3395 | |
| 3396 | 'write' option: When off, writing files is not allowed. Avoids overwriting a |
| 3397 | file even with ":w!". The |-m| command line option resets 'write'. |
| 3398 | |
| 3399 | 'clipboard' option: How the clipboard is used. Value "unnamed": Use unnamed |
| 3400 | register like "*. (Cortopassi) Value "autoselect": Like what 'a' in |
| 3401 | 'guioptions' does but works in the terminal. |
| 3402 | |
| 3403 | 'guifontset' option: Specify fonts for the +fontset feature, for the X11 GUI |
| 3404 | versions. Allows using normal fonts when vim is compiled with this feature. |
| 3405 | (Nam) |
| 3406 | |
| 3407 | 'guiheadroom' option: How much room to allow above/below the GUI window. |
| 3408 | Used for Motif, Athena and GTK. |
| 3409 | |
| 3410 | Implemented 'tagstack' option: When off, pushing tags onto the stack is |
| 3411 | disabled (Vi compatible). Useful for mappings. |
| 3412 | |
| 3413 | 'shellslash' option. Only for systems that use a backslash as a file |
| 3414 | separator. This option will use a forward slash in file names when expanding |
| 3415 | it. Useful when 'shell' is sh or csh. |
| 3416 | |
| 3417 | 'pastetoggle' option: Key sequence that toggles 'paste'. Works around the |
| 3418 | problem that mappings don't work in Insert mode when 'paste' is set. |
| 3419 | |
| 3420 | 'display' option: When set to "lastline", the last line fills the window, |
| 3421 | instead of being replaced with "@" lines. Only the last three characters are |
| 3422 | replaced with "@@@", to indicate that the line has not finished yet. |
| 3423 | |
| 3424 | 'switchbuf' option: Allows re-using existing windows on a buffer that is being |
| 3425 | jumped to, or split the window to open a new buffer. (Roemer) |
| 3426 | |
| 3427 | 'titleold' option. Replaces the fixed string "Thanks for flying Vim", which |
| 3428 | is used to set the title when exiting. (Schild) |
| 3429 | |
| 3430 | |
| 3431 | Vim scripts *new-script-5.4* |
| 3432 | ----------- |
| 3433 | |
| 3434 | The |exists()| function can also check for existence of a function. (Roemer) |
| 3435 | An internal function is now found with a binary search, should be a bit |
| 3436 | faster. (Roemer) |
| 3437 | |
| 3438 | New functions: |
| 3439 | - |getwinposx()| and |getwinposy()|: get Vim window position. (Webb) |
| 3440 | - |histnr()|, |histadd()|, |histget()| and |histdel()|: Make history |
| 3441 | available. (Roemer) |
| 3442 | - |maparg()|: Returns rhs of a mapping. Based on a patch from Vikas. |
| 3443 | - |mapcheck()|: Check if a map name matches with an existing one. |
| 3444 | - |visualmode()|: Return type of last Visual mode. (Webb) |
| 3445 | - |libcall()|: Call a function in a library. Currently only for Win32. (Negri) |
| 3446 | - |bufwinnr()|: find window that contains the specified buffer. (Roemer) |
| 3447 | - |bufloaded()|: Whether a buffer exists and is loaded. |
| 3448 | - |localtime()| and |getftime()|: wall clock time and last modification time |
| 3449 | of a file (Webb) |
| 3450 | - |glob()|: expand file name wildcards only. |
| 3451 | - |system()|: get the raw output of an external command. (based on a patch |
| 3452 | from Aaron). |
| 3453 | - |strtrans()|: Translate String into printable characters. Used for |
| 3454 | 2html.vim script. |
| 3455 | - |append()|: easy way to append a line of text in a buffer. |
| 3456 | |
| 3457 | Changed functions: |
| 3458 | - Optional argument to |strftime()| to give the time in seconds. (Webb) |
| 3459 | - |expand()| now also returns names for files that don't exist. |
| 3460 | |
| 3461 | Allow numbers in the name of a user command. (Webb) |
| 3462 | |
| 3463 | Use "v:" for internal Vim variables: "v:errmsg", "v:shell_error", etc. The |
| 3464 | ones from version 5.3 can be used without "v:" too, for backwards |
| 3465 | compatibility. |
| 3466 | |
| 3467 | New variables: |
| 3468 | "v:warningmsg" and "v:statusmsg" internal variables. Contain the last given |
| 3469 | warning and status message. |v:warningmsg| |v:statusmsg| (Madsen) |
| 3470 | "v:count1" variable: like "v:count", but defaults to one when no count is |
| 3471 | used. |v:count1| |
| 3472 | |
| 3473 | When compiling without expression evaluation, "if 1" can be used around the |
| 3474 | not supported commands to avoid it being executed. Works like in Vim 4.x. |
| 3475 | Some of the runtime scripts gave errors when used with a Vim that was compiled |
| 3476 | with minimal features. Now "if 1" is used around code that is not always |
| 3477 | supported. |
| 3478 | |
| 3479 | When evaluating an expression with && and ||, skip the parts that will not |
| 3480 | influence the outcome. This makes it faster and avoids error messages. (Webb) |
| 3481 | Also optimized the skipping of expressions inside an "if 0". |
| 3482 | |
| 3483 | |
| 3484 | Avoid hit-enter prompt *avoid-hit-enter* |
| 3485 | ----------------------- |
| 3486 | |
| 3487 | Added 'T' flag to 'shortmess': Truncate all messages that would cause the |
| 3488 | hit-enter prompt (unless that would happen anyway). |
| 3489 | The 'O' flag in 'shortmess' now also applies to quickfix messages, e.g., from |
| 3490 | the ":cn" command. |
| 3491 | |
| 3492 | The default for 'shortmess' is now "filnxtToO", to make most messages fit on |
| 3493 | the command line, and not cause the hit-enter prompt. |
| 3494 | |
| 3495 | Previous messages can be viewed with the new |:messages| command. |
| 3496 | |
| 3497 | Some messages are shown fully, even when 'shortmess' tells to shorten |
| 3498 | messages, because the user is expected to want to see them in full: CTRL-G and |
| 3499 | some quickfix commands. |
| 3500 | |
| 3501 | |
| 3502 | Improved quickfix *improved-quickfix* |
| 3503 | ----------------- |
| 3504 | |
| 3505 | Parse change-directory lines for gmake: "make[1]: Entering directory 'name'". |
| 3506 | Uses "%D" and "%X" in 'errorformat'. |
| 3507 | Also parse "Making {target} in {dir}" messages from make. Helps when not |
| 3508 | using GNU make. (Schandl) |
| 3509 | |
| 3510 | Use 'isfname' for "%f" in 'errorformat'. |
| 3511 | |
| 3512 | Parsing of multi-line messages. |errorformat-multi-line| |
| 3513 | |
| 3514 | Allow a range for the |:clist| command. (Roemer) |
| 3515 | |
| 3516 | Support for "global" file names, for error formats that output the file name |
| 3517 | once for several errors. (Roemer) |
| 3518 | |
| 3519 | |:cnfile| jumps to first error in next file. |
| 3520 | |
| 3521 | "$*" in 'makeprg' is replaced by arguments to ":make". (Roemer) |
| 3522 | |
| 3523 | |
| 3524 | Regular expressions *regexp-changes-5.4* |
| 3525 | ------------------- |
| 3526 | |
| 3527 | In a regexp, a '$' before "\)" is also considered to be an end-of-line. |/$| |
| 3528 | In patterns "^" after "\|" or "\(" is a start-of-line. |/^| (Robinson) |
| 3529 | |
| 3530 | In a regexp, in front of "\)" and "\|" both "$" and "\$" were considered |
| 3531 | end-of-line. Now use "$" as end-of-line and "\$" for a literal dollar. Same |
| 3532 | for '^' after "\(" and "\|". |/\$| |/\^| |
| 3533 | |
| 3534 | Some search patterns can be extremely slow, even though they are not really |
| 3535 | illegal. For example: "\([^a-z]\+\)\+Q". Allow interrupting any regexp |
| 3536 | search with CTRL-C. |
| 3537 | |
| 3538 | Register "/: last search string (read-only). (Kohan) Changed to use last used |
| 3539 | search pattern (like what 'hlsearch' uses). Can set the search pattern with |
| 3540 | ":let @/ = {expr}". |
| 3541 | |
| 3542 | Added character classes to search patterns, to avoid the need for removing the |
| 3543 | 'l' flag from 'cpoptions': |[:tab:]|, |[:return:]|, |[:backspace:]| and |
| 3544 | |[:escape:]|. |
| 3545 | |
| 3546 | By adding a '?' after a comparative operator in an expression, the comparison |
| 3547 | is done by ignoring case. |expr-==?| |
| 3548 | |
| 3549 | |
| 3550 | Other improvements made between version 5.3 and 5.4 |
| 3551 | --------------------------------------------------- |
| 3552 | |
| 3553 | Changed *changed-5.4* |
| 3554 | ------- |
| 3555 | |
| 3556 | Unix: Use $TMPDIR for temporary files, if it is set and exists. |
| 3557 | |
| 3558 | Removed "Empty buffer" message. It isn't useful and can cause a hit-enter |
| 3559 | prompt. (Negri) |
| 3560 | |
| 3561 | "ex -" now reads commands from stdin and works in silent mode. This is to be |
| 3562 | compatible with the original "ex" command that is used for scripts. |
| 3563 | |
| 3564 | Default range for ":tcldo" is the whole file. |
| 3565 | |
| 3566 | Cancelling Visual mode with ESC moved the cursor. There appears to be no |
| 3567 | reason for this. Now leave the cursor where it is. |
| 3568 | |
| 3569 | The ":grep" and ":make" commands see " as part of the arguments, instead of |
| 3570 | the start of a comment. |
| 3571 | |
| 3572 | In expressions the "=~" and "!~" operators no longer are affected by |
| 3573 | 'ignorecase'. |
| 3574 | |
| 3575 | Renamed vimrc_example to vimrc_example.vim and gvimrc_example to |
| 3576 | gvimrc_example.vim. Makes them being recognized as vim scripts. |
| 3577 | |
| 3578 | "gd" no longer starts searching at the end of the previous function, but at |
| 3579 | the first blank line above the start of the current function. Avoids that |
| 3580 | using "gd" in the first function finds global a variable. |
| 3581 | |
| 3582 | Default for 'complete' changed from ".,b" to ".,w,b,u,t,i". Many more matches |
| 3583 | will be found, at the cost of time (the search can be interrupted). |
| 3584 | |
| 3585 | It is no longer possible to set 'shell*' options from a modeline. Previously |
| 3586 | only a warning message was given. This reduces security risks. |
| 3587 | |
| 3588 | The ordering of the index of documentation files was changed to make it more |
| 3589 | easy to find a subject. |
| 3590 | |
| 3591 | On MS-DOS and win32, when $VIM was not set, $HOME was used. This caused |
| 3592 | trouble if $HOME was set to e.g., "C:\" for some other tool, the runtime files |
| 3593 | would not be found. Now use $HOME only for _vimrc, _gvimrc, etc., not to find |
| 3594 | the runtime file. |
| 3595 | |
| 3596 | When 'tags' is "./{fname}" and there is no file name for the current buffer, |
| 3597 | just use it. Previously it was skipped, causing "vim -t {tag}" not to find |
| 3598 | many tags. |
| 3599 | |
| 3600 | When trying to select text in the 'scrolloff' area by mouse dragging, the |
| 3601 | resulting scrolling made this difficult. Now 'scrolloff' is temporarily set |
| 3602 | to 0 or 1 to avoid this. But still allow scrolling in the top line to extend |
| 3603 | to above the displayed text. |
| 3604 | |
| 3605 | Default for 'comments' now includes "sl:/*,mb: *,ex:*/", to make javadoc |
| 3606 | comments work. Also helps for C comments that start with "/*******". |
| 3607 | |
| 3608 | CTRL-X CTRL-] Insert mode tag expansion tried to expand to all tags when used |
| 3609 | after a non-ID character, which can take a very long time. Now limit this to |
| 3610 | 200 matches. Also used for command-line tag completion. |
| 3611 | |
| 3612 | The OS/2 distribution has been split in two files. It was too big to fit on a |
| 3613 | floppy. The same runtime archive as for the PC is now used. |
| 3614 | |
| 3615 | In the documentation, items like <a-z> have been replaced with {a-z} for |
| 3616 | non-optional arguments. This avoids confusion with key names: <C-Z> is a |
| 3617 | CTRL-Z, not a character between C and Z, that is {C-Z}. |
| 3618 | |
| 3619 | |
| 3620 | Added *added-5.4* |
| 3621 | ----- |
| 3622 | |
| 3623 | Color support for the iris-ansi builtin termcap entry. (Tubman) |
| 3624 | |
| 3625 | Included VisVim version 1.3a. (Erhardt) |
| 3626 | |
| 3627 | Win32 port for SNiFF+ interface. (Leherbauer) |
| 3628 | Documentation file for sniff interface: if_sniff.txt. (Leherbauer) |
| 3629 | |
| 3630 | Included the "SendToVim" and "OpenWithVim" programs in the OleVim directory. |
| 3631 | To be used with the OLE version of gvim under MS-Windows. (Schaller) |
| 3632 | |
| 3633 | Included Exuberant Ctags version 3.2.4 with Eiffel support. (Hiebert) |
| 3634 | |
| 3635 | When a file that is being edited is deleted, give a warning (like when the |
| 3636 | time stamp changed). |
| 3637 | |
| 3638 | Included newer versions of the HTML-generating Awk and Perl scripts. (Colombo) |
| 3639 | |
| 3640 | Linux console mouse support through "gpm". (Tsindlekht) |
| 3641 | |
| 3642 | Security fix: Disallow changing 'secure' and 'exrc' from a modeline. When |
| 3643 | 'secure' is set, give a warning for changing options that contain a program |
| 3644 | name. |
| 3645 | |
| 3646 | Made the Perl interface work with Perl 5.005 and threads. (Verdoolaege) |
| 3647 | |
| 3648 | When giving an error message for an ambiguous mapping, include the offending |
| 3649 | mapping. (Roemer) |
| 3650 | |
| 3651 | Command line editing: |
| 3652 | - Command line completion of mappings. (Roemer) |
| 3653 | - Command line completion for ":function", ":delfunction", ":let", ":call", |
| 3654 | ":if", etc. (Roemer) |
| 3655 | - When using CTRL-D completion for user commands that have |
| 3656 | "-complete=tag_listfiles" also list the file names. (Madsen) |
| 3657 | - Complete the arguments of the ":command" command. (Webb) |
| 3658 | - CTRL-R . in command line inserts last inserted text. CTRL-F, CTRL-P, CTRL-W |
| 3659 | and CTRL-A after CTRL-R are used to insert an object from under the cursor. |
| 3660 | (Madsen) |
| 3661 | |
| 3662 | Made the text in uganda.txt about copying Vim a bit more clear. |
| 3663 | |
| 3664 | Updated the Vim tutor. Added the "vimtutor" command, which copies the tutor |
| 3665 | and starts Vim on it. "make install" now also copies the tutor. |
| 3666 | |
| 3667 | In the output of ":clist" the current entry is highlighted, with the 'i' |
| 3668 | highlighting (same as used for 'incsearch'). |
| 3669 | |
Bram Moolenaar | 69a7cb4 | 2004-06-20 12:51:53 +0000 | [diff] [blame] | 3670 | For the ":clist" command, you can scroll backwards with "b" (one screenful), |
| 3671 | "u" (half a screenful) and "k" (one line). |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 3672 | |
| 3673 | Multi-byte support: |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 3674 | - X-input method for multibyte characters. And various fixes for multibyte |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 3675 | support. (Nam) |
| 3676 | - Hangul input method feature: |hangul|. (Nam) |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 3677 | - Cleaned up configuration of multibyte support, XIM, fontset and Hangul |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 3678 | input. Each is now configurable separately. |
| 3679 | - Changed check for GTK_KEYBOARD to HANGUL_KEYBOARD_TYPE. (Nam) |
| 3680 | - Added doc/hangulin.txt: Documentation for the Hangul input code. (Nam) |
| 3681 | - XIM support for GTK+. (Nam) |
| 3682 | - First attempt to include support for SJIS encoding. (Nagano) |
| 3683 | - When a double-byte character doesn't fit at the end of the line, put a "~" |
| 3684 | there and print it on the next line. |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 3685 | - Optimize output of multibyte text. (Park) |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 3686 | - Win32 IME: preedit style is like over-the-spot. (Nagano) |
| 3687 | - Win32 IME: IME mode change now done with ImmSetOpenStatus. (Nagano) |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 3688 | - GUI Athena: file selection dialog can display multibyte characters. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 3689 | (Nagano) |
| 3690 | - Selection reply for XA_TEXT as XA_STRING. (Nagano) |
| 3691 | |
| 3692 | "runtime/macros/diffwin.vim". Mappings to make a diff window. (Campbell) |
| 3693 | |
| 3694 | Added ".obj" to the 'suffixes' option. |
| 3695 | |
| 3696 | Reduced size of syntax/synload.vim by using the ":SynAu" user command. |
| 3697 | Automated numbering of Syntax menu entries in menu.vim. |
| 3698 | In the Syntax menu, insert separators between syntax names that start with |
| 3699 | a different letter. (Geddes) |
| 3700 | |
| 3701 | Xterm: |
| 3702 | - Clipboard support when using the mouse in an xterm. (Madsen) |
| 3703 | - When using the xterm mouse, track dragging of the mouse. Use xterm escape |
| 3704 | sequences when possible. It is more precise than other methods, but |
| 3705 | requires a fairly recent xterm version. It is enabled with "xterm2" in |
| 3706 | 'ttymouse'. (Madsen) |
| 3707 | - Check xterm patch level, to set the value of 'ttymouse'. Has only been |
| 3708 | added to xterm recently (patch level > 95). Uses the new 't_RV' termcap |
| 3709 | option. Set 'ttymouse' to "xterm2" when a correct response is recognized. |
| 3710 | Will make xterm mouse dragging work better. |
| 3711 | - Support for shifted function keys on xterm. Changed codes for shifted |
| 3712 | cursor keys to what the xterm actually produces. Added codes for shifted |
| 3713 | <End> and <Home>. |
| 3714 | - Added 't_WP' to set the window position in pixels and 't_WS' to set the |
| 3715 | window size in characters. Xterm can now move (used for ":winpos") and |
| 3716 | resize (use for ":set lines=" and ":set columns="). |
| 3717 | |
| 3718 | X11: |
| 3719 | - When in Visual mode but not owning the selection, display the Visual area |
| 3720 | with the VisualNOS group to show this. (Madsen) |
| 3721 | - Support for requesting the type of clipboard support. Used for AIX and |
| 3722 | dtterm. (Wittig) |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 3723 | - Support compound_text selection (even when compiled without multibyte). |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 3724 | |
| 3725 | Swap file: |
| 3726 | - New variation for naming swap files: Replace path separators into %, place |
| 3727 | all swap files in one directory. Used when a name in 'dir' ends in two path |
| 3728 | separators. (Madsen) |
| 3729 | - When a swap file is found, show whether it contains modifications or not in |
| 3730 | the informative message. (Madsen) |
| 3731 | - When dialogs are supported, use a dialog to ask the user what to do when a |
| 3732 | swapfile already exists. |
| 3733 | |
| 3734 | "popup_setpos" in 'mousemodel' option. Allows for moving the cursor when |
| 3735 | using the right mouse button. |
| 3736 | |
| 3737 | When a buffer is deleted, the selection for which buffer to display instead |
| 3738 | now uses the most recent entry from the jump list. (Madsen) |
| 3739 | |
| 3740 | When using CTRL-O/CTRL-I, skip deleted buffers. |
| 3741 | |
| 3742 | A percentage is shown in the ruler, when there is room. |
| 3743 | |
| 3744 | Used autoconf 1.13 to generate configure. |
| 3745 | |
| 3746 | Included get_lisp_indent() from Dirk van Deun. Does better Lisp indenting |
| 3747 | when 'p' flag in 'cpoptions' is not included. |
| 3748 | |
| 3749 | Made the 2html.vim script quite a bit faster. (based on ideas from Geddes) |
| 3750 | |
| 3751 | Unix: |
| 3752 | - Included the name of the user that compiled Vim and the system name it was |
| 3753 | compiled on in the version message. |
| 3754 | - "make install" now also installs the "tools" directory. Makes them |
| 3755 | available for everybody. |
| 3756 | - "make check" now does the same as "make test". "make test" checks for |
| 3757 | Visual block mode shift, insert, replace and change. |
| 3758 | - Speed up comparing a file name with existing buffers by storing the |
| 3759 | device/inode number with the buffer. |
| 3760 | - Added configure arguments "--disable-gtk", "--disable-motif" and |
| 3761 | "--disable-athena", to be able to disable a specific GUI (when it doesn't |
| 3762 | work). |
| 3763 | - Renamed the configure arguments for disabling the check for specific GUIs. |
| 3764 | Should be clearer now. (Kahn) |
| 3765 | - On a Digital Unix system ("OSF1") check for the curses library before |
| 3766 | termlib and termcap. (Schild) |
| 3767 | - "make uninstall_runtime" will only delete the version-specific files. Can |
| 3768 | be used to delete the runtime files of a previous version. |
| 3769 | |
| 3770 | Macintosh: (St-Amant) |
| 3771 | - Dragging the scrollbar, like it's done for the Win32 GUI. Moved common code |
| 3772 | from gui_w32.c to gui.c |
| 3773 | - Added dialogs and file browsing. |
| 3774 | - Resource fork preserved, warning when it will be lost. |
| 3775 | - Copy original file attributes to newly written file. |
| 3776 | - Set title/notitle bug solved. |
| 3777 | - Filename completion improved. |
| 3778 | - Grow box limit resize to a char by char size. |
| 3779 | - Use of rgb.txt for more colors (but give back bad color). |
| 3780 | - Apple menu works (beside the about...). |
| 3781 | - Internal border now vim compliant. |
| 3782 | - Removing a menu doesn't crash anymore. |
| 3783 | - Weak-linking of Python 1.5.1 (only on PPC). Python is supported when the |
| 3784 | library is available. |
| 3785 | - If an error is encountered when sourcing the users .vimrc, the alert box now |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 3786 | shows right away with the OK button defaulted. There's no more "Delete"-key |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 3787 | sign at the start of each line |
| 3788 | - Better management of environment variables. Now $VIM is calculated only |
| 3789 | once, not regenerated every time it is used. |
| 3790 | - No more CPU hog when in background. |
| 3791 | - In a sourced Vim script the Mac file format can be recognized, just like DOS |
| 3792 | file format is. |
| 3793 | |
| 3794 | When both "unix" and "mac" are present in 'fileformats', prefer "mac" format |
| 3795 | when there are more CR than NL characters. |
| 3796 | When using "mac" fileformat, use CR instead of a NL, because NL is used for |
| 3797 | NUL. Will preserve all characters in a file. (Madsen) |
| 3798 | |
| 3799 | The DOS install.exe now contains checks for an existing installation. It |
| 3800 | avoids setting $VIM and $PATH again. |
| 3801 | The install program for Dos/Windows can now install Vim in the popup menu, by |
| 3802 | adding two registry keys. |
| 3803 | |
| 3804 | Port to EGCS/mingw32. New Makefile.ming. (Aaron) |
| 3805 | |
| 3806 | DOS 16 bit: Don't include cursor shape stuff. Save some bytes. |
| 3807 | |
| 3808 | TCL support to Makefile.w32. (Duperval) |
| 3809 | |
| 3810 | OS/2: Use argv[0] to find runtime files. |
| 3811 | |
| 3812 | When using "gf" to go to a buffer that has already been used, jump to the |
| 3813 | line where the cursor last was. |
| 3814 | |
| 3815 | Colored the output of ":tselect" a bit more. Different highlighting between |
| 3816 | tag name and file name. Highlight field name ("struct:") separately from |
| 3817 | argument. |
| 3818 | |
| 3819 | Backtick expansion for non-Unix systems. Based on a patch from Aaron. |
| 3820 | Allows the use of things like ":n `grep -l test *.c`" and |
| 3821 | "echo expand('`ls m*`')". |
| 3822 | |
| 3823 | Check for the 'complete' option when it is set. (Acevedo) |
| 3824 | 'd' flag in 'complete' searches for defined names or macros. |
| 3825 | While searching for Insert mode completions in include files and tags files, |
| 3826 | check for typeahead, so that you can use matches early. (Webb) |
| 3827 | The '.' flag in 'complete' now scans the current buffer completely, ignoring |
| 3828 | 'nowrapscan'. (Webb) |
| 3829 | |
| 3830 | Added '~' flag to 'whichwrap'. (Acevedo) |
| 3831 | |
| 3832 | When ending the Visual mode (e.g., with ESC) don't grab ownership of the |
| 3833 | selection. |
| 3834 | |
| 3835 | In a color terminal, "fg" and "bg" can be used as color names. They stand for |
| 3836 | the "Normal" colors. |
| 3837 | |
| 3838 | A few cscope cleanups. (Kahn) |
| 3839 | |
| 3840 | Included changed vimspell.sh from Schemenauer. |
| 3841 | |
| 3842 | Concatenation of strings in an expression with "." is a bit faster. (Roemer) |
| 3843 | |
| 3844 | The ":redir" command can now redirect to a register: ":redir @r". (Roemer) |
| 3845 | |
| 3846 | Made the output of ":marks" and ":jumps" look similar. When the mark is in |
| 3847 | the current file, show the text at the mark. Also for ":tags". |
| 3848 | |
| 3849 | When configure finds ftello() and fseeko(), they are used in tag.c (for when |
| 3850 | you have extremely big tags files). |
| 3851 | |
| 3852 | Configure check for "-FOlimit,2000" argument for the compiler. (Borsenkow) |
| 3853 | |
| 3854 | GUI: |
| 3855 | - When using ":gui" in a non-GUI Vim, give a clear error message. |
| 3856 | - "gvim -v" doesn't start the GUI (if console support is present). |
| 3857 | - When in Ex mode, use non-Visual selection for the whole screen. |
| 3858 | - When starting with "gvim -f" and using ":gui" in the .gvimrc file, Vim |
| 3859 | forked anyway. Now the "-f" flag is remembered for ":gui". Added "gui -b" |
| 3860 | to run gvim in the background anyway. |
| 3861 | |
| 3862 | Motif GUI: |
| 3863 | - Check for "-lXp" library in configure (but it doesn't work yet...). |
| 3864 | - Let configure check for Lesstif in "/usr/local/Lesstif/Motif*". Changed the |
| 3865 | order to let a local Motif version override a system standard version. |
| 3866 | |
| 3867 | Win32 GUI: |
| 3868 | - When using "-register" or "-unregister" in the non-OLE version, give an |
| 3869 | error message. |
| 3870 | - Use GTK toolbar icons. Make window border look better. Use sizing handles |
| 3871 | on the lower left&right corners of the window. (Negri) |
| 3872 | - When starting an external command with ":!start" and the command can not be |
| 3873 | executed, give an error message. (Webb) |
| 3874 | - Use sizing handles for the grey rectangles below the scrollbars. Can draw |
| 3875 | toolbar in flat mode now, looks better. (Negri) |
| 3876 | - Preparations for MS-Windows 3.1 addition. Mostly changing WIN32 to MSWIN |
| 3877 | and USE_GUI_WIN32 to USE_GUI_MSWIN. (Negri) |
| 3878 | |
| 3879 | Avoid allocating the same string four times in buflist_findpat(). (Williams) |
| 3880 | |
| 3881 | Set title and icon text with termcap options 't_ts', 't_fs', 't_IS' and |
| 3882 | 't_IE'. Allows doing this on any terminal that supports setting the title |
| 3883 | and/or icon text. (Schild) |
| 3884 | |
| 3885 | New 'x' flag in 'comments': Automatically insert the end part when its last |
| 3886 | character is typed. Helps to close a /* */ comment in C. (Webb) |
| 3887 | |
| 3888 | When expand() has a second argument which is non-zero, don't use 'suffixes' |
| 3889 | and 'wildignore', return all matches. |
| 3890 | |
Bram Moolenaar | 9b45125 | 2012-08-15 17:43:31 +0200 | [diff] [blame] | 3891 | 'O' flag in 'cpoptions' When not included, Vim will not overwrite a file, if |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 3892 | it didn't exist when editing started but it does exist when the buffer is |
| 3893 | written to the file. The file must have been created outside of Vim, possibly |
| 3894 | without the user knowing it. When this is detected after a shell command, |
| 3895 | give a warning message. |
| 3896 | |
| 3897 | When editing a new file, CTRL-G will show [New file]. When there were errors |
| 3898 | while reading the file, CTRL-G will show [Read errors]. |
| 3899 | |
| 3900 | ":wall" can now use a dialog and file-browsing when needed. |
| 3901 | |
| 3902 | Grouped functionality into new features, mainly to reduce the size of the |
| 3903 | minimal version: |
| 3904 | +linebreak: 'showbreak', 'breakat' and 'linebreak' |
| 3905 | +visualextra: "I"nsert and "A"ppend in Visual block mode, "c"hange all lines |
| 3906 | in a block, ">" and "<": Shifting a block, "r": Replacing a |
| 3907 | Visual area with one character. |
| 3908 | +comments: 'comments' |
| 3909 | +cmdline_info: 'ruler' and 'showcmd'. Replaces +showcmd. |
| 3910 | "+title" Don't add code to set title or icon for MSDOS, this was not |
| 3911 | possible anyway. |
| 3912 | +cmdline_compl Disable commandline completion at compile time, except for |
| 3913 | files, directories and help items. |
| 3914 | |
| 3915 | Moved features from a list of function calls into an array. Should save a bit |
| 3916 | of space. |
| 3917 | |
| 3918 | While entering the body of a function, adjust indent according to "if" and |
| 3919 | "while" commands. |
| 3920 | |
| 3921 | VMS: Adjusted os_vms.mms a bit according to suggestions from Arpadffy. |
| 3922 | |
| 3923 | The flags in the 'comments' option can now include an offset. This makes it |
| 3924 | possible to align "/*****", "/* xxx" and "/*" comments with the same |
| 3925 | 'comments' setting. The default value for 'comments' uses this. |
| 3926 | Added 'O' flag: Don't use this part for the "O" command. Useful for "set |
| 3927 | com=sO:*\ -,mO:*\ \ ,exO:*/" |
| 3928 | |
| 3929 | FileType autocommands recognize ".bak", ".orig" and "~" extensions and remove |
| 3930 | them to find the relevant extension. |
| 3931 | |
| 3932 | The tutorial for writing a Vim script file has been extended. |
| 3933 | |
| 3934 | Some more highlighting in help files, for items that are not typed literally. |
| 3935 | |
| 3936 | Can use "CTRL-W CTRL-G" like "CTRL-W g". |
| 3937 | |
| 3938 | "make test" for OS/2. |
| 3939 | |
| 3940 | Adjusted configure to automatically use the GUI for BeOS. |
| 3941 | |
| 3942 | |
| 3943 | Fixed *fixed-5.4* |
| 3944 | ----- |
| 3945 | |
| 3946 | 5.3.1: When using an autocommand for BufWritePre that changes the name of the |
| 3947 | buffer, freed memory would be used. (Geddes) |
| 3948 | |
| 3949 | Mac: Compiler didn't understand start of skip_class_name(). |
| 3950 | |
| 3951 | Win32 GUI: |
| 3952 | - When cancelling the font requester, don't give an error message. |
| 3953 | - When a tearoff-menu is open and its menu is deleted, Vim could crash. |
| 3954 | (Negri) |
| 3955 | - There was a problem on Windows 95 with (un)maximizing the window. |
| 3956 | (Williams) |
| 3957 | - when 'mousehide' is set, the mouse would stay hidden when a menu is dropped |
| 3958 | with the keyboard. (Ralston) |
| 3959 | - The tempname() function already created the file. Caused problems when |
| 3960 | using ":w". Now the file is deleted. |
| 3961 | - Cursor disappeared when ending up in the top-left character on the screen |
| 3962 | after scrolling. (Webb) |
| 3963 | - When adding a submenu for a torn-off menu, it was not updated. |
| 3964 | - Menu tooltip was using the toolbar tooltip. (Negri) |
| 3965 | - Setting 'notitle' didn't remove the title. (Steed) |
| 3966 | - Using ":!start cmd" scrolled the screen one line up, and didn't wait for |
| 3967 | return when the command wasn't found. |
| 3968 | |
| 3969 | Cscope interface: Sorting of matches was wrong. Starting the interface could |
| 3970 | fail. (Kahn) |
| 3971 | |
| 3972 | Motif GUI: Could not compile with Motif 1.1, because some tear-off |
| 3973 | functionality was not in #ifdefs. |
| 3974 | |
| 3975 | Configure could sometimes not compile or link the test program for sizeof(int) |
| 3976 | properly. This caused alignment problems for the undo structure allocations. |
| 3977 | Added a safety check that SIZEOF_INT is not zero. |
| 3978 | |
| 3979 | Added configure check to test if strings.h can be included after string.h. |
| 3980 | Some systems can't handle it. |
| 3981 | Some systems need both string.h and strings.h included. Adjusted vim.h for |
| 3982 | that. Removed including string.h from os_unixx.h, since it's already in |
| 3983 | vim.h. (Savage) |
| 3984 | AIX: defining _NO_PROTO in os_unix.h causes a conflict between string.h and |
| 3985 | strings.h, but after the configure check said it was OK. Also define |
| 3986 | _NO_PROTO for AIX in the configure check. (Winn) |
| 3987 | |
| 3988 | When closing a window with CTRL-W c, the value of 'hidden' was not taken into |
| 3989 | account, the buffer was always unloaded. (Negri) |
| 3990 | |
| 3991 | Unix Makefile: "make install" always tried to rename an older executable and |
| 3992 | remove it. This caused an error message when it didn't exit. Added a check |
| 3993 | for the existence of an old executable. |
| 3994 | The command line for "make install" could get too long, because of the many |
| 3995 | syntax files. Now first do a "cd" to reduce the length. |
| 3996 | |
| 3997 | On RISCOS and MSDOS, reading a file could fail, because the short filename was |
| 3998 | used, which can be wrong after a ":!cd". |
| 3999 | |
| 4000 | In the DOS versions, the wrong install.exe was included (required Windows). |
| 4001 | Now the install.exe version is included that is the same as the Vim version. |
| 4002 | This also supports long file names where possible. |
| 4003 | |
| 4004 | When recording, and stopping while in Insert mode with CTRL-O q, the CTRL-O |
| 4005 | would also be recorded. |
| 4006 | |
| 4007 | 32bit DOS version: "vim \file", while in a subdirectory, resulted in "new |
| 4008 | file" for "file" in the local directory, while "\file" did exist. When |
| 4009 | "file" in the current directory existed, this didn't happen. |
| 4010 | |
| 4011 | MSDOS: Mouse could not go beyond 80 columns in 132 columns mode. (Young) |
| 4012 | |
| 4013 | "make test" failed in the RedHat RPM, because compatible is off by default. |
| 4014 | |
| 4015 | In Insert mode <C-O><C-W><C-W> changes to other window, but the status bars |
| 4016 | were not updated until another character was typed. |
| 4017 | |
| 4018 | MSDOS: environment options in lowercase didn't work, although they did in the |
| 4019 | Win32 versions. (Negri) |
| 4020 | |
| 4021 | After ":nohlsearch", a tag command switched highlighting back on. |
| 4022 | |
| 4023 | When using "append" command as the last line in an autocommand, Vim would |
| 4024 | crash. |
| 4025 | |
| 4026 | RISCOS: The scroll bumpers (?) were not working properly. (Leonard) |
| 4027 | |
| 4028 | "zl" and "zh" could move the cursor, but this didn't set the column in which |
| 4029 | e.g., "k" would move the cursor. |
| 4030 | |
| 4031 | When doing ":set all&" the value of 'scroll' was not set correctly. This |
| 4032 | caused an error message when later setting any other number option. |
| 4033 | |
| 4034 | When 'hlsearch' highlighting has been disabled with ":nohlsearch", |
| 4035 | incremental searching would switch it back on too early. |
| 4036 | |
| 4037 | When listing tags for ":tselect", and using a non-search command, and the last |
| 4038 | character was equal to the first (e.g., "99"), the last char would not be |
| 4039 | shown. |
| 4040 | |
| 4041 | When searching for tags with ":tag" Vim would assume that all matches had been |
| 4042 | found when there were still more (e.g. from another tags file). |
| 4043 | |
| 4044 | Win32: Didn't recognize "c:\" (e.g., in tags file) as absolute path when |
| 4045 | upper/lowercase was different. |
| 4046 | |
| 4047 | Some xterms (Debian) send <Esc>OH for HOME and <Esc>OF for END. Added these |
| 4048 | to the builtin-xterm. |
| 4049 | |
| 4050 | In ex mode, any CR was seen as the end of the line. Only a NL should be |
| 4051 | handled that way. broke ":s/foo/some^Mtext/". |
| 4052 | |
| 4053 | In menu.vim, a vmenu was used to override an amenu. That didn't work, because |
| 4054 | the system menu file doesn't overwrite existing menus. Added explicit vunmenu |
| 4055 | to solve this. |
| 4056 | |
| 4057 | Configure check for terminal library could find a library that doesn't work at |
| 4058 | runtime (Solaris: shared library not found). Added a check that a program |
| 4059 | with tgoto() can run correctly. |
| 4060 | |
| 4061 | Unix: "echo -n" in the Makefile doesn't work on all systems, causing errors |
| 4062 | compiling pathdef.c. Replaced it with "tr". |
| 4063 | |
| 4064 | Perl: DO_JOIN was redefined by Perl. Undefined it in the perl files. |
| 4065 | |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 4066 | Various XIM and multibyte fixes: |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 4067 | - Fix user cannot see his language while he is typing his language with |
| 4068 | off-the-spot method. (Nagano) |
| 4069 | - Fix preedit position using text/edit area (using gui.wid). (Nagano) |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 4070 | - remove 'fix dead key' codes. It was needed since XNFocusWindow was |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 4071 | "x11_window", XNFocusWindow is now gui.wid. (Nagano) |
| 4072 | - Remove some compile warnings and fix typos. (Namsh) |
| 4073 | - For status area, check the gtk+ version while Vim runs. I believe it is |
| 4074 | better than compile time check. (Namsh) |
| 4075 | - Remove one FIXME for gtk+-xim. (Namsh) |
| 4076 | - XIM: Dead keys didn't work for Czech. (Vyskovsky) |
| 4077 | - Multibyte: If user input only 3byte such as mb1_mb2_eng or eng_mb1_mb2 VIM |
| 4078 | could convert it to special character. (Nam) |
| 4079 | - Athena/Motif with XIM: fix preedit area. (Nam) |
| 4080 | - XIM: Composed strings were sometimes ignored. Vim crashed when compose |
| 4081 | string was longer than 256 bytes. IM's geometry control is fixed. (Nam, |
| 4082 | Nagano) |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 4083 | - Win32 multibyte: hollowed cursor width on a double byte char was wrong. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 4084 | (Nagano) |
| 4085 | - When there is no GUI, selecting XIM caused compilation problems. |
| 4086 | Automatically disable XIM when there is no GUI in configure. |
| 4087 | - Motif and Athena: When compiled with XIM, but the input method was not |
| 4088 | enabled, there would still be a status line. Now the status line is gone if |
| 4089 | the input method doesn't work. (Nam) |
| 4090 | |
| 4091 | Win32: tooltip was not removed when selecting a parent menu (it was when |
| 4092 | selecting a menu entry). (Negri) |
| 4093 | |
| 4094 | Unix with X: Some systems crash on exit, because of the XtCloseDisplay() call. |
| 4095 | Removed it, it should not be necessary when exiting. |
| 4096 | |
| 4097 | Win32: Crash on keypress when compiled with Borland C++. (Aaron) |
| 4098 | |
| 4099 | When checking for Motif library files, prefer the same location as the include |
| 4100 | files (with "include" replaced with "lib") above another entry. |
| 4101 | |
| 4102 | Athena GUI: Changed "XtOffset()" in gui_at_fs.c to "XtOffsetOf()", like it's |
| 4103 | used in gui_x11.c. |
| 4104 | |
| 4105 | Win32: When testing for a timestamp of a file on floppy, would get a dialog |
| 4106 | box when the floppy has been removed. Now return with an error. (Negri) |
| 4107 | |
| 4108 | Win32 OLE: When forced to come to the foreground, a minimized window was still |
| 4109 | minimized, now it's restored. (Zivkov) |
| 4110 | |
| 4111 | There was no check for a positive 'shiftwidth'. A negative value could cause |
| 4112 | a hangup, a zero value a crash. |
| 4113 | |
| 4114 | Athena GUI: horizontal scrollbar wasn't updated correctly when clicking right |
| 4115 | or left of the thumb. |
| 4116 | |
| 4117 | When making a Visual-block selection in one window, and trying to scroll |
| 4118 | another, could cause errors for accessing non-existent line numbers. |
| 4119 | |
| 4120 | When 'matchpairs' contains "`:'", jumping from the ` to the ' didn't work |
| 4121 | properly. |
| 4122 | |
| 4123 | Changed '\"' to '"' to make it compatible with old C compilers. |
| 4124 | |
| 4125 | The command line expansion for mappings caused a script with a TAB between lhs |
| 4126 | and rhs of a map command to fail. Assume the TAB is to separate lhs and rhs |
| 4127 | when there are no mappings to expand. |
| 4128 | |
| 4129 | When editing a file with very long lines with 'scrolloff' set, "j" would |
| 4130 | sometimes end up in a line which wasn't displayed. |
| 4131 | |
| 4132 | When editing a read-only file, it was completely read into memory, even when |
| 4133 | it would not fit. Now create a swap file for a read-only file when running |
| 4134 | out of memory while reading the file. |
| 4135 | |
| 4136 | When using ":set cino={s,e-s", a line after "} else {" was not indented |
| 4137 | properly. Also added a check for this in test3.in. |
| 4138 | |
| 4139 | The Hebrew mapping for the command line was remembered for the next command |
| 4140 | line. That isn't very useful, a command is not Hebrew. (Kol) |
| 4141 | |
| 4142 | When completing file names with embedded spaces, like "Program\ files", this |
| 4143 | didn't work. Also for user commands. Moved backslash_halve() down to |
| 4144 | mch_expandpath(). |
| 4145 | |
| 4146 | When using "set mouse=a" in Ex mode, mouse events were handled like typed |
| 4147 | text. Then typing "quit" screwed up the mouse behavior of the xterm. |
| 4148 | |
| 4149 | When repeating an insert with "." that contains a CTRL-Y, a number 5 was |
| 4150 | inserted as "053". |
| 4151 | |
| 4152 | Yanking a Visual area, with the cursor past the line, didn't move the cursor |
| 4153 | back onto the line. Same for "~", "u", "U" and "g?" |
| 4154 | |
| 4155 | Win32: Default for 'grepprg' could be "findstr /n" even though there is no |
| 4156 | findstr.exe (Windows 95). Check if it exists, and fall back to "grep -n" if |
| 4157 | it doesn't. |
| 4158 | |
| 4159 | Because gui_mouse_moved() inserted a leftmouse click in the input buffer, |
| 4160 | remapping a leftmouse click caused strange effects. Now Insert another code |
| 4161 | in the input buffer. Also insert a leftmouse release, to avoid the problem |
| 4162 | with ":map <LeftMouse> l" that the next release is seen as the release for the |
| 4163 | focus click. |
| 4164 | |
| 4165 | With 'wrap' on, when using a line that doesn't fit on the screen, if the start |
| 4166 | of the Visual area is before the start of the screen, there was no |
| 4167 | highlighting. Also, 'showbreak' doesn't work properly. |
| 4168 | |
| 4169 | DOS, Win32: A pattern "[0-9]\+" didn't work in autocommands. |
| 4170 | |
| 4171 | When creating a swap file for a buffer which isn't the current buffer, could |
| 4172 | get a mixup of short file name, resulting in a long file name when a short |
| 4173 | file name was required. makeswapname() was calling modname() instead of |
| 4174 | buf_modname(). |
| 4175 | |
| 4176 | When a function caused an error, and the error message was very long because |
| 4177 | of recursiveness, this would cause a crash. |
| 4178 | |
| 4179 | 'suffixes' were always compared with matching case. For MS-DOS, Win32 and |
| 4180 | OS/2 case is now ignored. |
| 4181 | |
| 4182 | The use of CHARBITS in regexp.c didn't work on some Linux. Don't use it. |
| 4183 | |
| 4184 | When generating a script file, 'cpo' was made empty. This caused backslashes |
| 4185 | to disappear from mappings. Set it to "B" to avoid that. |
| 4186 | |
| 4187 | Lots of typos in the documentation. (Campbell) |
| 4188 | |
| 4189 | When editing an existing (hidden) buffer, jump to the last used cursor |
| 4190 | position. (Madsen) |
| 4191 | |
| 4192 | On a Sun the xterm screen was not restored properly when suspending. (Madsen) |
| 4193 | |
| 4194 | When $VIMINIT is processed, 'nocompatible' was only set after processing it. |
| 4195 | |
| 4196 | Unix: Polling for a character wasn't done for GPM, Sniff and Xterm clipboard |
| 4197 | all together. Cleaned up the code for using select() too. |
| 4198 | |
| 4199 | When executing external commands from the GUI, some typeahead was lost. Added |
| 4200 | some code to regain as much typeahead as possible. |
| 4201 | |
| 4202 | When the window height is 5 lines or fewer, <PageDown> didn't use a one-line |
| 4203 | overlap, while <PageUp> does. Made sure that <PageUp> uses the same overlap |
| 4204 | as <PageDown>, so that using them both always displays the same lines. |
| 4205 | |
| 4206 | Removed a few unused functions and variables (found with lint). |
| 4207 | |
| 4208 | Dictionary completion didn't use 'infercase'. (Raul) |
| 4209 | |
| 4210 | Configure tests failed when the Perl library was not in LD_LIBRARY_PATH. |
| 4211 | Don't use the Perl library for configure tests, add it to the linker line only |
| 4212 | when linking Vim. |
| 4213 | |
| 4214 | When using ncurses/terminfo, could get a 't_Sf' and 't_Sb' termcap entry that |
| 4215 | has "%d" instead of "%p1%d". The light background colors didn't work then. |
| 4216 | |
| 4217 | GTK GUI with ncurses: Crashed when starting up in tputs(). Don't use tputs() |
| 4218 | when the GUI is active. |
| 4219 | |
| 4220 | Could use the ":let" command to set the "count", "shell_error" and "version" |
| 4221 | variables, but that didn't work. Give an error message when trying to set |
| 4222 | them. |
| 4223 | |
| 4224 | On FreeBSD 3.0, tclsh is called tclsh8.0. Adjusted configure.in to find it. |
| 4225 | |
| 4226 | When Vim is linked with -lncurses, but python uses -ltermcap, this causes |
| 4227 | trouble: "OOPS". Configure now removes the -ltermcap. |
| 4228 | |
| 4229 | :@" and :*" didn't work properly, because the " was recognized as the start of |
| 4230 | a comment. |
| 4231 | |
| 4232 | Win32s GUI: Minimizing the console where a filter command runs in caused |
| 4233 | trouble for detecting that the filter command has finished. (Negri) |
| 4234 | |
| 4235 | After executing a filter command from an xterm, the mouse would be disabled. |
| 4236 | It would work again after changing the mode. |
| 4237 | |
| 4238 | Mac GUI: Crashed in newenv(). (St-Amant) |
| 4239 | |
| 4240 | The menus and mappings in mswin.vim didn't handle text ending in a NL |
| 4241 | correctly. (Acevedo) |
| 4242 | |
| 4243 | The ":k" command didn't check if it had a valid argument or extra characters. |
| 4244 | Now give a meaningful error message. (Webb) |
| 4245 | |
| 4246 | On SGI, the signal function doesn't always have three arguments. Check for |
| 4247 | struct sigcontext to find out. Might still be wrong... |
| 4248 | |
| 4249 | Could crash when using 'hlsearch' and search pattern is "^". |
| 4250 | |
| 4251 | When search patterns were saved and restored, status of no_hlsearch was not |
| 4252 | also saved and restored (from ":nohlsearch" command). |
| 4253 | |
| 4254 | When using setline() to make a line shorter, the cursor position was not |
| 4255 | adjusted. |
| 4256 | |
| 4257 | MS-DOS and Win95: When trying to edit a file and accidentally adding a slash |
| 4258 | or backslash at the end, the file was deleted. Probably when trying to create |
| 4259 | the swap file. Explicitly check for a trailing slash or backslash before |
| 4260 | trying to read a file. |
| 4261 | |
| 4262 | X11 GUI: When starting the GUI failed and received a deadly signal while |
| 4263 | setting the title, would lock up when trying to exit, because the title is |
| 4264 | reset again. Avoid using mch_settitle() recursively. |
| 4265 | |
| 4266 | X11 GUI: When starting the GUI fails, and then trying it again, would crash, |
| 4267 | because argv[] has been freed and x11_display was reset to NULL. |
| 4268 | |
| 4269 | Win32: When $HOME was set, would put "~user" in the swap file, which would |
| 4270 | never compare with a file name, and never cause the attention message. Put |
| 4271 | the full path in the swap file instead. |
| 4272 | |
| 4273 | Win32 console: There were funny characters at the end of the "vim -r" swap |
| 4274 | files message (direct output of CR CR LF). |
| 4275 | |
| 4276 | DOS 32 bit: "vim -r" put the text at the top of the window. |
| 4277 | |
| 4278 | GUI: With 'mousefocus' set, got mouse codes as text with "!sleep 100" or "Q". |
| 4279 | |
| 4280 | Motif and Win32 GUI: When changing 'guifont' to a font of the same size the |
| 4281 | screen wasn't redrawn. |
| 4282 | |
| 4283 | Unix: When using ":make", jumping to a file b.c, which is already open as a |
| 4284 | symbolic link a.c, opened a new buffer instead of using the existing one. |
| 4285 | |
| 4286 | Inserting text in the current buffer while sourcing the .vimrc file would |
| 4287 | cause a crash or hang. The memfile for the current buffer was never |
| 4288 | allocated. Now it's allocated as soon as something is written in the buffer. |
| 4289 | |
| 4290 | DOS 32 bit: "lightblue" background worked for text, but not drawn parts were |
| 4291 | black. |
| 4292 | |
| 4293 | DOS: Colors of console were not restored upon exiting. |
| 4294 | |
| 4295 | When recording, with 'cmdheight' set to 2 and typing Esc> in Insert mode |
| 4296 | caused the "recording" message to be doubled. |
| 4297 | |
| 4298 | Spurious "file changed" messages could happen on Windows. Now tolerate a one |
| 4299 | second difference, like for Linux. |
| 4300 | |
| 4301 | GUI: When returning from Ex mode, scrollbars were not updated. |
| 4302 | |
| 4303 | Win32: Copying text to the clipboard containing a <CR>, pasting it would |
| 4304 | replace it with a <NL> and drop the next character. |
| 4305 | |
| 4306 | Entering a double byte character didn't work if the second byte is in [xXoO]. |
| 4307 | (Eric Lee) |
| 4308 | |
| 4309 | vim_realloc was both defined and had a prototype in proto/misc2.pro. Caused |
| 4310 | conflicts on Solaris. |
| 4311 | |
| 4312 | A pattern in an autocommand was treated differently on DOS et al. than on |
| 4313 | Unix. Now it's the same, also when using backslashes. |
| 4314 | |
| 4315 | When using <Tab> twice for command line completion, without a match, the <Tab> |
| 4316 | would be inserted. (Negri) |
| 4317 | |
| 4318 | Bug in MS-Visual C++ 6.0 when compiling ex_docmd.c with optimization. (Negri) |
| 4319 | |
| 4320 | Testing the result of mktemp() for failure was wrong. Could cause a crash. |
| 4321 | (Peters) |
| 4322 | |
| 4323 | GUI: When checking for a ".gvimrc" file in the current directory, didn't check |
| 4324 | for a "_gvimrc" file too. |
| 4325 | |
| 4326 | Motif GUI: When using the popup menu and then adding an item to the menu bar, |
| 4327 | the menu bar would get very high. |
| 4328 | |
| 4329 | Mouse clicks and special keys (e.g. cursor keys) quit the more prompt and |
| 4330 | dialogs. Now they are ignored. |
| 4331 | |
| 4332 | When at the more-prompt, xterm selection didn't work. Now use the 'r' flag in |
| 4333 | 'mouse' also for the more-prompt. |
| 4334 | |
| 4335 | When selecting a Visual area of more than 1023 lines, with 'guioptions' set to |
| 4336 | "a", could mess up the display because of a message in free_yank(). Removed |
| 4337 | that message, except for the Amiga. |
| 4338 | |
| 4339 | Moved auto-selection from ui_write() to the screen update functions. Avoids |
| 4340 | unexpected behavior from a low-level function. Also makes the different |
| 4341 | feedback of owning the selection possible. |
| 4342 | |
| 4343 | Vi incompatibility: Using "i<CR>" in an indent, with 'ai' set, used the |
| 4344 | original indent instead of truncating it at the cursor. (Webb) |
| 4345 | |
| 4346 | ":echo x" didn't stop at "q" for the more prompt. |
| 4347 | |
| 4348 | Various fixes for Macintosh. (St-Amant) |
| 4349 | |
| 4350 | When using 'selectmode' set to "exclusive", selecting a word and then using |
| 4351 | CTRL-] included the character under the cursor. |
| 4352 | |
| 4353 | Using ":let a:name" in a function caused a crash. (Webb) |
| 4354 | |
| 4355 | When using ":append", an empty line didn't scroll up. |
| 4356 | |
| 4357 | DOS etc.: A file name starting with '!' didn't work. Added '!' to default for |
| 4358 | 'isfname'. |
| 4359 | |
| 4360 | BeOS: Compilation problem with prototype of skip_class_name(). (Price) |
| 4361 | |
| 4362 | When deleting more than one line, e.g., with "de", could still use "U" |
| 4363 | command, which didn't work properly then. |
| 4364 | |
| 4365 | Amiga: Could not compile ex_docmd.c, it was getting too big. Moved some |
| 4366 | functions to ex_cmds.c. |
| 4367 | |
| 4368 | The expand() function would add a trailing slash for directories. |
| 4369 | |
| 4370 | Didn't give an error message when trying to assign a value to an argument of a |
| 4371 | function. (Webb) |
| 4372 | |
| 4373 | Moved including sys/ptem.h to after termios.h. Needed for Sinix. |
| 4374 | |
| 4375 | OLE interface: Don't delete the object in CVimCF::Release() when the reference |
| 4376 | count becomes zero. (Cordell) |
| 4377 | VisVim could still crash on exit. (Erhardt) |
| 4378 | |
| 4379 | "case a: case b:" (two case statements in one line) aligned with the second |
| 4380 | case. Now it uses one 'sw' for indent. (Webb) |
| 4381 | |
| 4382 | Font initialisation wasn't right for Athena/Motif GUI. Moved the call to |
| 4383 | highlight_gui_started() gui_mch_init() to gui_mch_open(). (Nam) |
| 4384 | |
| 4385 | In Replace mode, backspacing over a TAB before where the replace mode started |
| 4386 | while 'sts' is different from 'ts', would delete the TAB. |
| 4387 | |
| 4388 | Win32 console: When executing external commands and switching between the two |
| 4389 | console screens, Vim would copy the text between the buffers. That caused the |
| 4390 | screen to be messed up for backtick expansion. |
| 4391 | |
| 4392 | ":winpos -1" then ":winpos" gave wrong error message. |
| 4393 | |
| 4394 | Windows commander creates files called c:\tmp\$wc\abc.txt. Don't remove the |
| 4395 | backslash before the $. Environment variables were not expanded anyway, |
| 4396 | because of the backslash before the dollar. |
| 4397 | |
| 4398 | Using "-=" with ":set" could remove half a part when it contains a "\,". |
| 4399 | E.g., ":set path+=a\\,b" and then "set path-=b" removed ",b". |
| 4400 | |
| 4401 | When Visually selecting lines, with 'selection' set to "inclusive", including |
| 4402 | the last char of the line, "<<" moved an extra line. Also for other operators |
| 4403 | that always work on lines. |
| 4404 | |
| 4405 | link.sh changed "-lnsl_s" to "_s" when looking for "nsl" to be removed. |
Bram Moolenaar | 130cbfc | 2021-04-07 21:07:20 +0200 | [diff] [blame] | 4406 | Now it only removes whole words. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 4407 | |
| 4408 | When jumped to a mark or using "fz", and there is an error, the current column |
| 4409 | was lost. E.g. when using "$fzj". |
| 4410 | |
| 4411 | The "g CTRL-G" command could not be interrupted, even though it can take a |
| 4412 | long time. |
| 4413 | |
| 4414 | Some terminals do have <F4> and <xF4>. <xF4> was always interpreted as <F4>. |
| 4415 | Now map <xF4> to <F4>, so that the user can override this. |
| 4416 | |
| 4417 | When compiling os_win32.c with MIN_FEAT the apply_autocmds() should not be |
| 4418 | used. (Aaron) |
| 4419 | |
Bram Moolenaar | 1c6737b | 2020-09-07 22:18:52 +0200 | [diff] [blame] | 4420 | This autocommand looped forever: ":au FileChangedShell * ++nested e <afile>" |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 4421 | Now FileChangeShell never nests. (Roemer) |
| 4422 | |
| 4423 | When evaluating an ":elseif" that was not going to matter anyway, ignore |
| 4424 | errors. (Roemer) |
| 4425 | |
| 4426 | GUI Lesstif: Tearoff bar was the last item, instead of the first. |
| 4427 | |
| 4428 | GUI Motif: Colors of tear-off widgets was wrong when 't' flag added to |
| 4429 | 'guioptions' afterwards. When 't' flag in 'guioptions' is excluded, would |
| 4430 | still get a tearoff item in a new menu. |
| 4431 | |
| 4432 | An inode number can be "long long". Use ino_t instead of long. Added |
| 4433 | configure check for ino_t. |
| 4434 | |
| 4435 | Binary search for tags was using a file offset "long" instead of "off_t". |
| 4436 | |
| 4437 | Insert mode completion of tags was not using 'ignorecase' properly. |
| 4438 | |
| 4439 | In Insert mode, the <xFn> keys were not properly mapped to <Fn> for the |
| 4440 | default mappings. Also caused errors for ":mkvimrc" and ":mksession". |
| 4441 | |
| 4442 | When jumping to another window while in Insert mode, would get the "warning: |
| 4443 | changing readonly file" even when not making a change. |
| 4444 | |
| 4445 | A '(' or '{' inside a trailing "//" comment would disturb C-indenting. |
| 4446 | When using two labels below each other, the second one was not indented |
| 4447 | properly. Comments could mess up C-indenting in many places. (Roemer) |
| 4448 | |
| 4449 | Could delete or redefine a function while it was being used. Could cause a |
| 4450 | crash. |
| 4451 | In a function it's logical to prepend "g:" to a system variable, but this |
| 4452 | didn't work. (Roemer) |
| 4453 | |
| 4454 | Hangul input: Buffer would overflow when user inputs invalid key sequence. |
| 4455 | (Nam) |
| 4456 | |
| 4457 | When BufLoad or BufEnter autocommands change the topline of the buffer in the |
| 4458 | window, it was overruled and the cursor put halfway the window. Now only put |
| 4459 | the cursor halfway if the autocommands didn't change the topline. |
| 4460 | |
| 4461 | Calling exists("&option") always returned 1. (Roemer) |
| 4462 | |
| 4463 | Win32: Didn't take actually available memory into account. (Williams) |
| 4464 | |
| 4465 | White space after an automatically inserted comment leader was not removed |
| 4466 | when 'ai' is not set and <CR> hit just after inserting it. (Webb) |
| 4467 | |
| 4468 | A few menus had duplicated accelerators. (Roemer) |
| 4469 | |
| 4470 | Spelling errors in documentation, quite a few "the the". (Roemer) |
| 4471 | |
| 4472 | Missing prototypes for Macintosh. (Kielhorn) |
| 4473 | |
| 4474 | Win32: When using 'shellquote' or 'shellxquote', the "!start cmd" wasn't |
| 4475 | executed in a disconnected process. |
| 4476 | |
| 4477 | When resizing the window, causing a line before the cursor to wrap or unwrap, |
| 4478 | the cursor was displayed in the wrong position. |
| 4479 | |
| 4480 | There was quite a bit of dead code when compiling with minimal features. |
| 4481 | |
| 4482 | When doing a ":%s///" command that makes lines shorter, such that lines above |
| 4483 | the final cursor position no longer wrap, the cursor position was not updated. |
| 4484 | |
| 4485 | get_id_list() could allocate an array one too small, when a "contains=" item |
| 4486 | has a wildcard that matches a group name that is added just after it. E.g.: |
| 4487 | "contains=a.*b,axb". Give an error message for it. |
| 4488 | |
| 4489 | When yanking a Visual area and using the middle mouse button -> crash. When |
| 4490 | clipboard doesn't work, now make "* always use "". |
| 4491 | |
| 4492 | Win32: Using ":buf a\ b\file" didn't work, it was interpreted as "ab\file". |
| 4493 | |
| 4494 | Using ":ts ident", then hit <CR>, with 'cmdheight' set to 2: command line was |
| 4495 | not cleared, the tselect prompt was on the last but one line. |
| 4496 | |
| 4497 | mksession didn't restore the cursor column properly when it was after a tab. |
| 4498 | Could not get all windows back when using a smaller terminal screen. Didn't |
| 4499 | restore all windows when "winsize" was not in 'sessionoptions'. (Webb) |
| 4500 | |
| 4501 | Command line completion for ":buffer" depended on 'ignorecase' for Unix, but |
Bram Moolenaar | 9b45125 | 2012-08-15 17:43:31 +0200 | [diff] [blame] | 4502 | not for DOS et al. Now don't use 'ignorecase', but let it depend on whether |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 4503 | file names are case sensitive or not (like when expanding file names). |
| 4504 | |
| 4505 | Win32 GUI: (Negri) |
| 4506 | - Redrawing the background caused flicker when resizing the window. Removed |
| 4507 | _OnEraseBG(). Removed CS_HREDRAW and CS_VREDRAW flags from the |
| 4508 | sndclass.style. |
| 4509 | - Some parts of the window were drawn in grey, instead of using the color from |
| 4510 | the user color scheme. |
| 4511 | - Dropping a file on gvim didn't activate the window. |
| 4512 | - When there is no menu ('guioptions' excludes 'm'), never use the ALT key for |
| 4513 | it. |
| 4514 | |
| 4515 | GUI: When resizing the window, would make the window height a bit smaller. |
| 4516 | Now round off to the nearest char cell size. (Negri) |
| 4517 | |
| 4518 | In Vi the ")" and "(" commands don't stop at a single space after a dot. |
| 4519 | Added 'J' flag in 'cpoptions' to make this behave Vi compatible. (Roemer) |
| 4520 | |
| 4521 | When saving a session without any buffers loaded, there would be a ":normal" |
| 4522 | command without arguments in it. (Webb) |
| 4523 | |
| 4524 | Memory leaks fixed: (Madsen) |
| 4525 | - eval.c: forgot to release func structure when func deleted |
| 4526 | - ex_docmd.c: forgot to release string after "<sfile>" |
| 4527 | - misc1.c: leak when completion pattern had no matches. |
| 4528 | - os_unix.c: forgot to release regexp after file completions |
| 4529 | |
| 4530 | Could crash when using a buffer without a name. (Madsen) |
| 4531 | Could crash when doing file name completion, because of backslash_halve(). |
| 4532 | (Madsen) |
| 4533 | |
| 4534 | ":@a" would do mappings on register a, which is not Vi compatible. (Roemer) |
| 4535 | |
| 4536 | ":g/foo.*()/s/foobar/_&/gc" worked fine, but then "n" searched for "foobar" |
| 4537 | and displayed "/foo.*()". (Roemer) |
| 4538 | |
| 4539 | OS/2: get_cmd_output() was not included. Didn't check for $VIM/.vimrc file. |
| 4540 | |
| 4541 | Command line completion of options didn't work after "+=" and "-=". |
| 4542 | |
| 4543 | Unix configure: Test for memmove()/bcopy()/memcpy() tried redefining these |
| 4544 | functions, which could fail if they are defined already. Use mch_memmove() to |
| 4545 | redefine. |
| 4546 | |
| 4547 | Unix: ":let a = expand("`xterm`&")" started an xterm asynchronously, but |
| 4548 | ":let a = expand("`xterm&`")" generated an error message, because the |
| 4549 | redirection was put after the '&'. |
| 4550 | |
| 4551 | Win32 GUI: Dialog buttons could not be selected properly with cursor keys, |
| 4552 | when the default is not the first button. (Webb) |
| 4553 | |
| 4554 | The "File has changed since editing started" (when regaining focus) could not |
| 4555 | always be seen. (Webb) |
| 4556 | |
| 4557 | When starting with "ex filename", the file message was overwritten with |
| 4558 | the "entering Ex mode" message. |
| 4559 | |
| 4560 | Output of ":tselect" listed name of file directly from the tags file. Now it |
| 4561 | is corrected for the position of the tags file. |
| 4562 | |
| 4563 | When 'backspace' is 0, could backspace over autoindent. Now it is no longer |
| 4564 | allowed (Vi compatible). |
| 4565 | |
| 4566 | In Replace mode, when 'noexpandtab' and 'smarttab' were set, and inserting |
| 4567 | Tabs, backspacing didn't work correctly for Tabs inserted at the start of the |
| 4568 | line (unless 'sts' was set too). Also, when replacing the first non-blank |
| 4569 | after which is a space, rounding the indent was done on the first non-blank |
| 4570 | instead of on the character under the cursor. |
| 4571 | |
| 4572 | When 'sw' at 4, 'ts' at 8 and 'smarttab' set: When a tab was appended after |
| 4573 | four spaces (they are replaced with a tab) couldn't backspace over the tab. |
| 4574 | |
| 4575 | In Insert mode, with 'bs' set to 0, couldn't backspace to before autoindent, |
| 4576 | even when it was removed with CTRL-D. |
| 4577 | |
| 4578 | When repeating an insert command where a <BS>, <Left> or other key causes an |
| 4579 | error, would flush buffers and remain in Insert mode. No longer flush |
| 4580 | buffers, only beep and continue with the insert command. |
| 4581 | |
| 4582 | Dos and Win32 console: Setting t_me didn't work to get another color. Made |
| 4583 | this works backwards compatible. |
| 4584 | |
Bram Moolenaar | 69a7cb4 | 2004-06-20 12:51:53 +0000 | [diff] [blame] | 4585 | For Turkish (LANG = "tr") uppercase 'i' is not an 'I'. Use ASCII uppercase |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 4586 | translation in vim_strup() to avoid language problems. (Komur) |
| 4587 | |
| 4588 | Unix: Use usleep() or nanosleep() for mch_delay() when available. Hopefully |
| 4589 | this avoids a hangup in select(0, ..) for Solaris 2.6. |
| 4590 | |
| 4591 | Vim would crash when using a script file with 'let &sp = "| tee"', starting |
| 4592 | vim with "vim -u test", then doing ":set sp=". The P_WAS_SET flag wasn't set |
| 4593 | for a string option, could cause problems with any string option. |
| 4594 | |
| 4595 | When using "cmd | vim -", stdin is not a terminal. This gave problems with |
| 4596 | GPM (Linux console mouse) and when executing external commands. Now close |
| 4597 | stdin and re-open it as a copy of stderr. |
| 4598 | |
| 4599 | Syntax highlighting: A "nextgroup" item was not properly stored in the state |
| 4600 | list. This caused missing of next groups when not redrawing from start to |
| 4601 | end, but starting halfway. |
| 4602 | |
| 4603 | Didn't check for valid values of 'ttymouse'. |
| 4604 | |
| 4605 | When executing an external command from the GUI, waiting for the child to |
| 4606 | terminate might not work, causing a hang. (Parmelan) |
| 4607 | |
| 4608 | "make uninstall" didn't delete the vimrc_example.vim and gvimrc_example.vim |
| 4609 | files and the vimtutor. |
| 4610 | |
| 4611 | Win32: "expand("%:p:h")" with no buffer name removed the directory name. |
| 4612 | "fnamemodify("", ":p")" did not add a trailing slash, fname_case() removed it. |
| 4613 | |
| 4614 | Fixed: When 'hlsearch' was set and the 'c' flag was not in 'cpoptions': |
| 4615 | highlighting was not correct. Now overlapping matches are handled correctly. |
| 4616 | |
| 4617 | Athena, Motif and GTK GUI: When started without focus, cursor was shown as if |
| 4618 | with focus. |
| 4619 | |
| 4620 | Don't include 'shellpipe' when compiled without quickfix, it's not used. |
| 4621 | Don't include 'dictionary' option when compiled without the +insert_expand |
| 4622 | feature. |
| 4623 | Only include the 'shelltype' option for the Amiga. |
| 4624 | |
| 4625 | When making a change to a line, with 'hlsearch' on, causing it to wrap, while |
| 4626 | executing a register, the screen would not be updated correctly. This was a |
| 4627 | generic problem in update_screenline() being called while must_redraw is |
| 4628 | VALID. |
| 4629 | |
| 4630 | Using ":bdelete" in a BufUnload autocommand could cause a crash. The window |
| 4631 | height was added to another window twice in close_window(). |
| 4632 | |
| 4633 | Win32 GUI: When removing a menu item, the tearoff wasn't updated. (Negri) |
| 4634 | |
| 4635 | Some performance bottlenecks removed. Allocating memory was not efficient. |
| 4636 | For Win32 checking for available memory was slow, don't check it every time |
| 4637 | now. On NT obtaining the user name takes a long time, cache the result (for |
| 4638 | all systems). |
| 4639 | |
| 4640 | fnamemodify() with an argument ":~:." or ":.:~" didn't work properly. |
| 4641 | |
| 4642 | When editing a new file and exiting, the marks for the buffer were not saved |
| 4643 | in the viminfo file. |
| 4644 | |
| 4645 | ":confirm only" didn't put up a dialog. |
| 4646 | |
| 4647 | These text objects didn't work when 'selection' was "exclusive": va( vi( va{ |
| 4648 | vi{ va< vi< vi[ va[. |
| 4649 | |
| 4650 | The dialog for writing a readonly file didn't have a valid default. (Negri) |
| 4651 | |
| 4652 | The line number used for error messages when sourcing a file was reset when |
| 4653 | modelines were inspected. It was wrong when executing a function. |
| 4654 | |
| 4655 | The file name and line number for an error message wasn't displayed when it |
| 4656 | was the same as for the last error, even when this was long ago. Now reset |
| 4657 | the name/lnum after a hit-enter prompt. |
| 4658 | |
| 4659 | In a session file, a "%" in a file name caused trouble, because fprintf() was |
| 4660 | used to write it to the file. |
| 4661 | |
| 4662 | When skipping statements, a mark in an address wasn't skipped correctly: |
| 4663 | "ka|if 0|'ad|else|echo|endif". (Roemer) |
| 4664 | |
| 4665 | ":wall" could overwrite a not-edited file without asking. |
| 4666 | |
| 4667 | GUI: When $DISPLAY was not set or starting the GUI failed in another way, the |
| 4668 | console mode then started with wrong colors and skipped initializations. Now |
| 4669 | do an early check if the GUI can be started. Don't source the menu.vim or |
| 4670 | gvimrc when it will not. Also do normal terminal initializations if the GUI |
| 4671 | might not start. |
| 4672 | |
| 4673 | When using a BufEnter autocommand to position the cursor and scroll the |
| 4674 | window, the cursor was always put at the last used line and halfway the window |
| 4675 | anyhow. |
| 4676 | |
| 4677 | When 'wildmode' was set to "longest,list:full", ":e *.c<Tab><Tab>" didn't list |
| 4678 | the matches. Also avoid that listing after a "longest" lists the wrong |
| 4679 | matches when the first expansion changed the string in front of the cursor. |
| 4680 | |
| 4681 | When using ":insert", ":append" or ":change" inside a while loop, was not able |
| 4682 | to break out of it with a CTRL-C. |
| 4683 | |
| 4684 | Win32: ":e ." took an awful long time before an error message when used in |
| 4685 | "C:\". Was caused by adding another backslash and then trying to get the full |
| 4686 | name for "C:\\". |
| 4687 | |
| 4688 | ":winpos -10 100" was working like ":winpos -10 -10", because a pointer was |
| 4689 | not advanced past the '-' sign. |
| 4690 | |
| 4691 | When obtaining the value of a hidden option, would give an error message. Now |
| 4692 | just use a zero value. |
| 4693 | |
| 4694 | OS/2: Was using argv[0], even though it was not a useful name. It could be |
| 4695 | just "vim", found in the search path. |
| 4696 | |
| 4697 | Xterm: ":set columns=78" didn't redraw properly (when lines wrap/unwrap) until |
| 4698 | after a delay of 'updatetime'. Didn't check for the size-changed signal. |
| 4699 | |
| 4700 | 'scrollbind' didn't work in Insert mode. |
| 4701 | Horizontal scrollbinding didn't always work for "0" and "$" commands (e.g., |
| 4702 | when 'showcmd' was off). |
| 4703 | |
| 4704 | When compiled with minimal features but with GUI, switching on the mouse in an |
| 4705 | xterm caused garbage, because the mouse codes were not recognized. Don't |
| 4706 | enable the mouse when it can't be recognized. In the GUI it also didn't work, |
| 4707 | the arguments to the mouse code were not interpreted. |
| 4708 | |
| 4709 | When 'showbreak' used, in Insert mode, when the cursor is just after the last |
| 4710 | character in the line, which is also the in the rightmost column, the cursor |
| 4711 | position would be like the 'showbreak' string is shown, but it wasn't. |
| 4712 | |
| 4713 | Autocommands could move the cursor in a new file, so that CTRL-W i didn't show |
| 4714 | the right line. Same for when using a filemark to jump to another file. |
| 4715 | |
| 4716 | When redefining the argument list, the title used for other windows could be |
| 4717 | showing the wrong info about the position in the argument list. Also update |
| 4718 | this for a ":split" command without arguments. |
| 4719 | |
| 4720 | When editing file 97 of 13, ":Next" didn't work. Now it goes to the last |
| 4721 | file in the argument list. |
| 4722 | |
| 4723 | Insert mode completion (for dictionaries or included files) could not be |
| 4724 | interrupted by typing an <Esc>. Could get hit-enter prompt after line |
| 4725 | completion, or whenever the informative message would get too long. |
| 4726 | |
| 4727 | When using the ":edit" command to re-edit the same file, an autocommand to |
| 4728 | jump to the last cursor position caused the cursor to move. Now set the last |
| 4729 | used cursor position to avoid this. |
| 4730 | |
| 4731 | When 'comments' has a part that starts with white space, formatting the |
| 4732 | comment didn't work. |
| 4733 | |
| 4734 | At the ":tselect" prompt Normal mode mappings were used. That has been |
| 4735 | disabled. |
| 4736 | |
| 4737 | When 'selection' is not "old", some commands still didn't allow the cursor |
| 4738 | past the end-of-line in Visual mode. |
| 4739 | |
| 4740 | Athena: When a menu was deleted, it would appear again (but not functional) |
| 4741 | when adding another menu. Now they don't reappear anymore (although they are |
| 4742 | not really deleted either). |
| 4743 | |
| 4744 | Borland C++ 4.x had an optimizer problem in fill_breakat_flags(). (Negri) |
| 4745 | |
| 4746 | "ze" didn't work when 'number' was on. (Davis) |
| 4747 | |
| 4748 | Win32 GUI: Intellimouse code didn't work properly on Windows 98. (Robinson) |
| 4749 | |
| 4750 | A few files were including proto.h a second time, after vim.h had already done |
| 4751 | that, which could cause problems with the vim_realloc() macro. |
| 4752 | |
| 4753 | Win32 console: <M-x> or ALT-x was not recognized. Also keypad '+', '-' and |
| 4754 | '*'. (Negri) |
| 4755 | MS-DOS: <M-x> didn't work, produced a two-byte code. Now the alphabetic and |
| 4756 | number keys work. (Negri) |
| 4757 | |
| 4758 | When finding a lot of matches for a tag completion, the check for avoiding |
| 4759 | double matches could take a lot of time. Add a line_breakcheck() to be able |
| 4760 | to interrupt this. (Deshpande) |
| 4761 | |
| 4762 | When the command line was getting longer than the screen, the more-prompt |
| 4763 | would be given regularly, and the cursor position would be wrong. Now only |
| 4764 | show the part of the command line that fits on the screen and force the cursor |
| 4765 | to be positioned on the visible part. There can be text after the cursor |
| 4766 | which isn't editable. |
| 4767 | |
| 4768 | At the more prompt and with the console dialog, a cursor key was interpreted |
| 4769 | as <Esc> and OA. Now recognize special keys in get_keystroke(). Ignore mouse |
| 4770 | and scrollbar events. |
| 4771 | |
| 4772 | When typing a BS after inserting a middle comment leader, typing the last char |
| 4773 | of the end comment leader still changed it into the end comment leader. (Webb) |
| 4774 | |
| 4775 | When a file system is full, writing to a swap file failed. Now first try to |
| 4776 | write one block to the file. Try next entry in 'dir' if it fails. |
| 4777 | |
| 4778 | When "~" is in 'whichwrap', doing "~" on last char of a line didn't update the |
| 4779 | display. |
| 4780 | |
| 4781 | Unix: Expanding wildcards for ":file {\\}" didn't work, because "\}" was |
| 4782 | translated to "}" before the shell got it. Now don't remove backslashes when |
| 4783 | wildcards are going to be expanded. |
| 4784 | |
| 4785 | Unix: ":e /tmp/$uid" didn't work. When expanding environment variables in a |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 4786 | file name doesn't work, use the shell to expand the file name. ":e /tmp/$tty" |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 4787 | still doesn't work though. |
| 4788 | |
| 4789 | "make test" didn't always work on DOS/Windows for test30, because it depended |
| 4790 | on the external "echo" command. |
| 4791 | |
| 4792 | The link.sh script used "make" instead of $MAKE from the Makefile. Caused |
| 4793 | problems for generating pathdef.c when "make" doesn't work properly. |
| 4794 | |
| 4795 | On versions that can do console and GUI: In the console a typed CSI code could |
| 4796 | cause trouble. |
| 4797 | |
| 4798 | The patterns in expression evaluation didn't ignore the 'l' flag in |
| 4799 | 'cpoptions'. This broke the working of <CR> in the options window. |
| 4800 | |
| 4801 | When 'hls' off and 'ai' on, "O<Esc>" did remove the indent, but it was still |
| 4802 | highlighted red for trailing space. |
| 4803 | |
| 4804 | Win32 GUI: Dropping an encrypted file on a running gvim didn't work right. Vim |
| 4805 | would loop while outputting "*" characters. vgetc() was called recursively, |
| 4806 | thus it returns NUL. Added safe_vgetc(), which reads input directly from the |
| 4807 | user in this situation. |
| 4808 | |
| 4809 | While reading text from stdin, only an empty screen was shown. Now show that |
| 4810 | Vim is reading from stdin. |
| 4811 | |
| 4812 | The cursor shape wasn't set properly when returning to Insert mode, after |
| 4813 | using a CTRL-O /asdf command which fails. It would be OK after a few seconds. |
| 4814 | Now it's OK right away. |
| 4815 | |
| 4816 | The 'isfname' default for DOS/Windows didn't include the '@' character. File |
| 4817 | names that contained "dir\@file" could not be edited. |
| 4818 | |
| 4819 | Win32 console: <C-S-Left> could cause a crash when compiled with Borland or |
| 4820 | egcs. (Aaron) |
| 4821 | |
| 4822 | Unix and VMS: "#if HAVE_DIRENT_H" caused problems for some compilers. Use |
| 4823 | "#ifdef HAVE_DIRENT_H" instead. (Jones) |
| 4824 | |
| 4825 | When a matching tag is in the current file but has a search pattern that |
| 4826 | doesn't match, the cursor would jump to the first line. |
| 4827 | |
| 4828 | Unix: Dependencies for pty.c were not included in Makefile. Dependency of |
| 4829 | ctags/config.h was not included (only matters for parallel make). |
| 4830 | |
| 4831 | Removed a few Uninitialized Memory Reads (potential crashes). In do_call() |
| 4832 | calling clear_var() when not evaluating. In win32_expandpath() and |
| 4833 | dos_expandpath() calling backslash_halve() past the end of a file name. |
| 4834 | |
| 4835 | Removed memory leaks: Set_vim_var_string() never freed the value. The |
| 4836 | next_list for a syntax keyword was never freed. |
| 4837 | |
| 4838 | On non-Unix systems, using a file name with wildcards without a match would |
| 4839 | silently fail. E.g., ":e *.sh". Now give a "No match" error message. |
| 4840 | |
| 4841 | The life/life.mac, urm/urm.mac and hanoi/hanoi.mac files were not recognized |
| 4842 | as Vim scripts. Renamed them to *.vim. |
| 4843 | |
| 4844 | [Note: some numbered patches are not relevant when upgrading from version 5.3, |
| 4845 | they have been removed] |
| 4846 | |
| 4847 | Patch 5.4m.1 |
| 4848 | Problem: When editing a file with a long name, would get the hit-enter |
| 4849 | prompt, even though all settings are such that the name should be |
| 4850 | truncated to avoid that. filemess() was printing the file name |
| 4851 | without truncating it. |
| 4852 | Solution: Truncate the message in filemess(). Use the same code as for |
| 4853 | msg_trunc_attr(), which is moved to the new function |
| 4854 | msg_may_trunc(). |
| 4855 | Files: src/message.c, src/proto/message.pro, src/fileio.c |
| 4856 | |
| 4857 | Patch 5.4m.3 |
| 4858 | Problem: The Motif libraries were not found by configure for Digital Unix. |
| 4859 | Solution: Add "/usr/shlib" to the search path. (Andy Kahn) |
| 4860 | Files: src/configure.in, src/configure |
| 4861 | |
| 4862 | Patch 5.4m.5 |
| 4863 | Problem: Win32 GUI: When using the Save-As menu entry and selecting an |
| 4864 | existing file in the file browser, would get a dialog to confirm |
| 4865 | overwriting twice. (Ed Krall) |
| 4866 | Solution: Removed the dialog from the file browser. It would be nicer to |
| 4867 | set the "forceit" flag and skip Vim's ":confirm" dialog, but it |
| 4868 | requires quite a few changes to do that. |
| 4869 | Files: src/gui_w32.c |
| 4870 | |
| 4871 | Patch 5.4m.6 |
| 4872 | Problem: Win32 GUI: When reading text from stdin, e.g., "cat foo | gvim -", |
| 4873 | a message box would pop up with "-stdin-" (when exiting). (Michael |
| 4874 | Schaap) |
| 4875 | Solution: Don't switch off termcap mode for versions that are GUI-only. |
| 4876 | They use another terminal to read from stdin. |
| 4877 | Files: src/main.c, src/fileio.c |
| 4878 | |
| 4879 | Patch 5.4m.7 |
| 4880 | Problem: Unix: running configure with --enable-gtk-check, |
| 4881 | --enable-motif-check, --enable-athena-check or --enable-gtktest |
| 4882 | had the reverse effect. (Thomas Koehler) |
| 4883 | Solution: Use $enable_gtk_check variable correctly in AC_ARG_ENABLE(). |
| 4884 | Files: src/configure.in, src/configure |
| 4885 | |
| 4886 | Patch 5.4m.9 |
| 4887 | Problem: Multi-byte: With wrapping lines, the cursor was sometimes 2 |
| 4888 | characters to the left. Syntax highlighting was wrong when a |
| 4889 | double-byte character was split for a wrapping line. When |
| 4890 | 'showbreak' was on the splitting also didn't work. |
| 4891 | Solution: Adjust getvcol() and win_line(). (Chong-Dae Park) |
| 4892 | Files: src/charset.c, src/screen.c |
| 4893 | |
| 4894 | Patch 5.4m.11 |
| 4895 | Problem: The ":call" command didn't check for illegal trailing characters. |
| 4896 | (Stefan Roemer) |
| 4897 | Solution: Add the check in do_call(). |
| 4898 | Files: src/eval.c |
| 4899 | |
| 4900 | Patch 5.4m.13 |
| 4901 | Problem: With the ":s" command: |
| 4902 | 1. When performing a substitute command, the mouse would be |
| 4903 | disabled and enabled for every substitution. |
| 4904 | 2. The cursor position could be beyond the end of the line. |
| 4905 | Calling line_breakcheck() could try to position the cursor, |
| 4906 | which causes a crash in the Win32 GUI. |
| 4907 | 3. When using ":s" in a ":g" command, the cursor was not put on |
| 4908 | the first non-white in the line. |
| 4909 | 4. There was a hit-enter prompt when confirming the substitution |
| 4910 | and the replacement was a bit longer. |
| 4911 | Solution: 1. Only disable/enable the mouse when asking for confirmation. |
| 4912 | 2. Always put the cursor on the first character, it is going to be |
| 4913 | moved to the first non-blank anyway. |
| 4914 | Don't use the cursor position in gui_mch_draw_hollow_cursor(), |
| 4915 | get the character from the screen buffer. |
| 4916 | 3. Added global_need_beginline flag to call beginline() after ":g" |
| 4917 | has finished all substitutions. |
| 4918 | 4. Clear the need_wait_return flag after prompting the user. |
| 4919 | Files: src/ex_cmds.c, src/gui_w32.c |
| 4920 | |
| 4921 | Patch 5.4m.14 |
| 4922 | Problem: When doing "vim xxx", ":opt", ":only" and then ":e xxx" we end |
| 4923 | up with two swapfiles for "xxx". That is caused by the ":bdel" |
| 4924 | command which is executed when unloading the option-window. |
| 4925 | Also, there was no check if closing a buffer made the new one |
| 4926 | invalid, this could cause a crash. |
| 4927 | Solution: When closing a buffer causes the current buffer to be deleted, |
| 4928 | use the new buffer to replace it. Also detect that the new buffer |
| 4929 | has become invalid as a side effect of closing the current one. |
| 4930 | Make autocommand that calls ":bdel" in optwin.vim nested, so that |
| 4931 | the buffer loading it triggers also executes autocommands. |
| 4932 | Also added a test for this in test13. |
| 4933 | Files: runtime/optwin.vim, src/buffer.c, src/ex_cmds.c, src/globals.h |
| 4934 | src/testdir/test13.in, src/testdir/test13.ok |
| 4935 | |
| 4936 | Patch 5.4m.15 |
| 4937 | Problem: When using a BufEnter autocommand to reload the syntax file, |
| 4938 | conversion to HTML caused a crash. (Sung-Hyun Nam) |
| 4939 | Solution: When using ":syntax clear" the current stack of syntax items was |
| 4940 | not cleared. This will cause memory to be used that has already |
| 4941 | been freed. Added call to invalidate_current_state() in |
| 4942 | syntax_clear(). |
| 4943 | Files: src/syntax.c |
| 4944 | |
| 4945 | Patch 5.4m.17 |
| 4946 | Problem: When omitting a ')' in an expression it would not be seen as a |
| 4947 | failure. |
| 4948 | When detecting an error inside (), there would be an error message |
| 4949 | for a missing ')' too. |
| 4950 | When using ":echo 1+|echo 2" there was no error message. (Roemer) |
| 4951 | When using ":exe 1+" there was no error message. |
| 4952 | When using ":return 1+" there was no error message. |
| 4953 | Solution: Fix do_echo(), do_execute() and do_return() to give an error |
| 4954 | message when eval1() returns FAIL. |
| 4955 | Fix eval6() to handle trailing ')' correctly and return FAIL when |
| 4956 | it's missing. |
| 4957 | Files: src/eval.c |
| 4958 | |
| 4959 | Patch 5.4m.18 |
| 4960 | Problem: When using input() from inside an expression entered with |
| 4961 | "CTRL-R =" on the command line, there could be a crash. And the |
| 4962 | resulting command line was wrong. |
| 4963 | Solution: Added getcmdline_prompt(), which handles recursive use of |
| 4964 | getcmdline() correctly. It also sets the command line prompt. |
| 4965 | Removed cmdline_prompt(). Also use getcmdline_prompt() for |
| 4966 | getting the crypt key in get_crypt_key(). |
| 4967 | Files: src/proto/ex_getln.pro, src/ex_getln.c, src/eval.c, src/misc2.c |
| 4968 | |
| 4969 | Patch 5.4m.21 |
| 4970 | Problem: When starting up, the screen structures were first allocated at |
| 4971 | the minimal size, then initializations were done with Rows |
| 4972 | possibly different from screen_Rows. Caused a crash in rare |
| 4973 | situations (GTK with XIM and fontset). |
| 4974 | Solution: Call screenalloc() in main() only after calling ui_get_winsize(). |
| 4975 | Also avoids a potential delay because of calling screenclear() |
| 4976 | while "starting" is non-zero. |
| 4977 | Files: src/main.c |
| 4978 | |
| 4979 | Patch 5.4m.22 |
| 4980 | Problem: In the GUI it was possible that the screen was resized and the |
| 4981 | screen structures re-allocated while redrawing the screen. This |
| 4982 | could cause a crash (hard to reproduce). The call sequence goes |
| 4983 | through update_screen() .. syntax_start() .. ui_breakcheck() .. |
| 4984 | gui_resize_window() .. screenalloc(). |
| 4985 | Solution: Set updating_screen while redrawing. If the window is resized |
| 4986 | remember the new size and handle it only after redrawing is |
| 4987 | finished. |
| 4988 | This also fixes that resizing the screen while still redrawing |
| 4989 | (slow syntax highlighting) would not work properly. |
| 4990 | Also disable display_hint, it was never used. |
| 4991 | Files: src/globals.h, src/gui.c, src/screen.c, src/proto/gui.pro |
| 4992 | |
| 4993 | Patch 5.4m.23 |
| 4994 | Problem: When using expand("<cword>") when there was no word under the |
| 4995 | cursor, would get an error message. Same for <cWORD> and <cfile>. |
| 4996 | Solution: Don't give an error message, return an empty string. |
| 4997 | Files: src/eval.c |
| 4998 | |
| 4999 | Patch 5.4m.24 |
| 5000 | Problem: ":help \|" didn't find anything. It was translated to "/\\|". |
| 5001 | Solution: Translate "\|" into "\\bar". First check the table for specific |
| 5002 | translations before checking for "\x". |
| 5003 | Files: src/ex_cmds.c |
| 5004 | |
| 5005 | Patch 5.4m.25 |
| 5006 | Problem: Unix: When using command line completion on files that contain |
| 5007 | ''', '"' or '|' the file name could not be used. |
| 5008 | Adding this file name to the Buffers menu caused an error message. |
| 5009 | Solution: Insert a backslash before these three characters. |
| 5010 | Adjust Mungename() function to insert a backslash before '|'. |
| 5011 | Files: src/ex_getln.c, runtime/menu.vim |
| 5012 | |
| 5013 | Patch 5.4m.26 |
| 5014 | Problem: When using a mapping of two function keys, e.g., <F1><F1>, and |
| 5015 | only the first char of the second key has been read, the mapping |
| 5016 | would not be recognized. Noticed on some Unix systems with xterm. |
| 5017 | Solution: Add 'K' flag to 'cpoptions' to wait for the whole key code, even |
| 5018 | when halfway a mapping. |
| 5019 | Files: src/option.h, src/term.c |
| 5020 | |
| 5021 | Patch 5.4m.27 |
| 5022 | Problem: When making test33 without the lisp feature it hangs. Interrupting |
| 5023 | the execution of the script then might cause a crash. |
| 5024 | Solution: In inchar(), after closing a script, don't use buf[] anymore. |
| 5025 | closescript() has freed typebuf[] and buf[] might be pointing |
| 5026 | inside typebuf[]. |
| 5027 | Avoid that test33 hangs when the lisp feature is missing. |
| 5028 | Files: src/getchar.c src/testdir/test33.in |
| 5029 | |
| 5030 | "os2" was missing from the feature list. Useful for has("os2"). |
| 5031 | |
| 5032 | BeOS: |
| 5033 | - Included patches from Richard Offer for BeOS R4.5. |
| 5034 | - menu code didn't work right. Crashed in the Buffers menu. The window title |
| 5035 | wasn't set. (Offer) |
| 5036 | |
| 5037 | Patch 5.4n.3 |
| 5038 | Problem: C-indenting was wrong after " } else". The white space was not |
| 5039 | skipped. Visible when 'cino' has "+10". |
| 5040 | Solution: Skip white space before calling cin_iselse(). (Norbert Zeh) |
| 5041 | Files: src/misc1.c |
| 5042 | |
| 5043 | Patch 5.4n.4 |
| 5044 | Problem: When the 't' flag in 'cpoptions' is included, after a |
| 5045 | ":nohlsearch" the search highlighting would not be enabled again |
| 5046 | after a tag search. (Norbert Zeh) |
| 5047 | Solution: When setting the new search pattern in jumpto_tag(), don't restore |
| 5048 | no_hlsearch. |
| 5049 | Files: src/tag.c |
| 5050 | |
| 5051 | Patch 5.4n.5 |
| 5052 | Problem: When using ":normal" from a CursorHold autocommand Vim hangs. The |
| 5053 | autocommand is executed down from vgetc(). Calling vgetc() |
| 5054 | recursively to execute the command doesn't work then. |
| 5055 | Solution: Forbid the use of ":normal" when vgetc_busy is set. Give an error |
| 5056 | message when this happens. |
| 5057 | Files: src/ex_docmd.c, runtime/doc/autocmd.txt |
| 5058 | |
| 5059 | Patch 5.4n.6 |
| 5060 | Problem: "gv" could reselect a Visual that starts and/or ends past the end |
| 5061 | of a line. (Robert Webb) |
| 5062 | Solution: Check that the start and end of the Visual area are on a valid |
| 5063 | character by calling adjust_cursor(). |
| 5064 | Files: src/normal.c |
| 5065 | |
| 5066 | Patch 5.4n.8 |
| 5067 | Problem: When a mark was on a non existing line (e.g., when the .viminfo |
| 5068 | was edited), jumping to it caused ml_get errors. (Alexey |
| 5069 | Marinichev). |
| 5070 | Solution: Added check_cursor_lnum() in nv_gomark(). |
| 5071 | Files: src/normal.c |
| 5072 | |
| 5073 | Patch 5.4n.9 |
| 5074 | Problem: ":-2" moved the cursor to a negative line number. (Ralf Schandl) |
| 5075 | Solution: Give an error message for a negative line number. |
| 5076 | Files: src/ex_docmd.c |
| 5077 | |
| 5078 | Patch 5.4n.10 |
| 5079 | Problem: Win32 GUI: At the hit-enter prompt, it was possible to scroll the |
| 5080 | text. This erased the prompt and made Vim look like it is in |
| 5081 | Normal mode, while it is actually still waiting for a <CR>. |
| 5082 | Solution: Disallow scrolling at the hit-enter prompt for systems that use |
| 5083 | on the fly scrolling. |
| 5084 | Files: src/message.c |
| 5085 | |
| 5086 | Patch 5.4n.14 |
| 5087 | Problem: Win32 GUI: When using ":winsize 80 46" and the height is more than |
| 5088 | what fits on the screen, the window size was made smaller than |
| 5089 | asked for (that's OK) and Vim crashed (that's not OK)> |
| 5090 | Solution: Call check_winsize() from gui_set_winsize() to resize the windows. |
| 5091 | Files: src/gui.c |
| 5092 | |
| 5093 | Patch 5.4n.16 |
| 5094 | Problem: Win32 GUI: The <F10> key both selected the menu and was handled as |
| 5095 | a key hit. |
| 5096 | Solution: Apply 'winaltkeys' to <F10>, like it is used for Alt keys. |
| 5097 | Files: src/gui_w32.c |
| 5098 | |
| 5099 | Patch 5.4n.17 |
| 5100 | Problem: Local buffer variables were freed when the buffer is unloaded. |
| 5101 | That's not logical, since options are not freed. (Ron Aaron) |
| 5102 | Solution: Free local buffer variables only when deleting the buffer. |
| 5103 | Files: src/buffer.c |
| 5104 | |
| 5105 | Patch 5.4n.19 |
| 5106 | Problem: Doing ":e" (without argument) in an option-window causes trouble. |
| 5107 | The mappings for <CR> and <Space> are not removed. When there is |
| 5108 | another buffer loaded, the swap file for it gets mixed up. |
| 5109 | (Steve Mueller) |
| 5110 | Solution: Also remove the mappings at the BufUnload event, if they are still |
| 5111 | present. |
| 5112 | When re-editing the same file causes the current buffer to be |
| 5113 | deleted, don't try editing it. |
| 5114 | Also added a test for this situation. |
| 5115 | Files: runtime/optwin.vim, src/ex_cmds.c, src/testdir/test13.in, |
| 5116 | src/testdir/test13.ok |
| 5117 | |
| 5118 | Patch 5.4n.24 |
| 5119 | Problem: BeOS: configure never enabled the GUI, because $with_x was "no". |
| 5120 | Unix prototypes caused problems, because Display and Widget are |
| 5121 | undefined. |
| 5122 | Freeing fonts on exit caused a crash. |
| 5123 | Solution: Only disable the GUI when $with_x is "no" and $BEOS is not "yes". |
| 5124 | Add dummy defines for Display and Widget in proto.h. |
| 5125 | Don't free the fonts in gui_exit() for BeOS. |
| 5126 | Files: src/configure.in, src/configure, src/proto.h, src/gui.c. |
| 5127 | |
| 5128 | |
| 5129 | The runtime/vim48x48.xpm icon didn't have a transparent background. (Schild) |
| 5130 | |
| 5131 | Some versions of the mingw32/egcs compiler didn't have WINBASEAPI defined. |
| 5132 | (Aaron) |
| 5133 | |
| 5134 | VMS: |
| 5135 | - mch_setenv() had two arguments instead of three. |
| 5136 | - The system vimrc and gvimrc files were called ".vimrc" and ".gvimrc". |
| 5137 | Removed the dot. |
| 5138 | - call to RealWaitForChar() had one argument too many. (Campbell) |
| 5139 | - WaitForChar() is static, removed the prototype from proto/os_vms.pro. |
| 5140 | - Many file accesses failed, because Unix style file names were used. |
| 5141 | Translate file names to VMS style by using vim_fopen(). |
| 5142 | - Filtering didn't work, because the temporary file name was generated wrong. |
| 5143 | - There was an extra newline every 9192 characters when writing a file. Work |
| 5144 | around it by writing line by line. (Campbell) |
| 5145 | - os_vms.c contained "# typedef int DESC". Should be "typedef int DESC;". |
| 5146 | Only mattered for generating prototypes. |
| 5147 | - Added file name translation to many places. Made easy by defining macros |
| 5148 | mch_access(), mch_fopen(), mch_fstat(), mch_lstat() and mch_stat(). |
| 5149 | - Set default for 'tagbsearch' to off, because binary tag searching apparently |
| 5150 | doesn't work for VMS. |
| 5151 | - make mch_get_host_name() work with /dec and /standard=vaxc. (Campbell) |
| 5152 | |
| 5153 | |
| 5154 | Patch 5.4o.2 |
| 5155 | Problem: Crash when using "gf" on "file.c://comment here". (Scott Graham) |
| 5156 | Solution: Fix wrong use of pointers in get_file_name_in_path(). |
| 5157 | Files: src/window.c |
| 5158 | |
| 5159 | Patch 5.4o.3 |
| 5160 | Problem: The horizontal scrollbar was not sized correctly when 'number' is |
| 5161 | set and 'wrap' not set. |
| 5162 | Athena: Horizontal scrollbar wasn't updated when the cursor was |
| 5163 | positioned with a mouse click just after dragging. |
| 5164 | Solution: Subtract 8 from the size when 'number' set and 'wrap' not set. |
| 5165 | Reset gui.dragged_sb when a mouse click is received. |
| 5166 | Files: src/gui.c |
| 5167 | |
| 5168 | Patch 5.4o.4 |
| 5169 | Problem: When running in an xterm and $WINDOWID is set to an illegal value, |
| 5170 | Vim would exit with "Vim: Got X error". |
| 5171 | Solution: When using the display which was opened for the xterm clipboard, |
| 5172 | check if x11_window is valid by trying to obtain the window title. |
| 5173 | Also add a check in setup_xterm_clip(), for when using X calls to |
| 5174 | get the pointer position in an xterm. |
| 5175 | Files: src/os_unix.c |
| 5176 | |
| 5177 | Patch 5.4o.5 |
| 5178 | Problem: Motif version with Lesstif: When removing the menubar and then |
| 5179 | using a menu shortcut key, Vim would crash. (raf) |
| 5180 | Solution: Disable the menu mnemonics when the menu bar is removed. |
| 5181 | Files: src/gui_motif.c |
| 5182 | |
| 5183 | Patch 5.4o.9 |
| 5184 | Problem: The DOS install.exe program used the "move" program. That doesn't |
| 5185 | work on Windows NT, where "move" is internal to cmd.exe. |
| 5186 | Solution: Don't use an external program for moving the executables. Use C |
| 5187 | functions to copy the file and delete the original. |
| 5188 | Files: src/dosinst.c |
| 5189 | |
| 5190 | Motif and Athena obtained the status area height differently from GTK. Moved |
| 5191 | status_area_enabled from global.h to gui_x11.c and call |
| 5192 | xim_get_status_area_height() to get the status area height. |
| 5193 | |
| 5194 | Patch 5.4p.1 |
| 5195 | Problem: When using auto-select, and the "gv" command is used, would not |
| 5196 | always obtain ownership of the selection. Caused by the Visual |
| 5197 | area still being the same, but ownership taken away by another |
| 5198 | program. |
| 5199 | Solution: Reset the clipboard Visual mode to force updating the selection. |
| 5200 | Files: src/normal.c |
| 5201 | |
| 5202 | Patch 5.4p.2 |
| 5203 | Problem: Motif and Athena with XIM: Typing 3-byte |
| 5204 | <multibyte><multibyte><space> doesn't work correctly with Ami XIM. |
| 5205 | Solution: Avoid using key_sym XK_VoidSymbol. (Nam) |
| 5206 | Files: src/multbyte.c, src/gui_x11.c |
| 5207 | |
| 5208 | Patch 5.4p.4 |
| 5209 | Problem: Win32 GUI: The scrollbar values were reduced for a file with more |
| 5210 | than 32767 lines. But this info was kept global for all |
| 5211 | scrollbars, causing a mixup between the windows. |
| 5212 | Using the down arrow of a scrollbar in a large file didn't work. |
| 5213 | Because of round-off errors there is no scroll at all. |
| 5214 | Solution: Give each scrollbar its own scroll_shift field. When the down |
| 5215 | arrow is used, scroll several lines. |
| 5216 | Files: src/gui.h, src/gui_w32.c |
| 5217 | |
| 5218 | Patch 5.4p.5 |
| 5219 | Problem: When changing buffers in a BufDelete autocommand, there could be |
| 5220 | ml_line errors and/or a crash. (Schandl) Was caused by deleting |
| 5221 | the current buffer. |
| 5222 | Solution: When the buffer to be deleted unexpectedly becomes the current |
| 5223 | buffer, don't delete it. |
| 5224 | Also added a check for this in test13. |
| 5225 | Files: src/buffer.c, src/testdir/test13.in, src/testdir/test13.ok |
| 5226 | |
| 5227 | Patch 5.4p.7 |
| 5228 | Problem: Win32 GUI: When using 'mousemodel' set to "popup_setpos" and |
| 5229 | clicking the right mouse button outside of the selected area, the |
| 5230 | selected area wasn't removed until the popup menu has gone. |
| 5231 | (Aaron) |
| 5232 | Solution: Set the cursor and update the display before showing the popup |
| 5233 | menu. |
| 5234 | Files: src/normal.c |
| 5235 | |
| 5236 | Patch 5.4p.8 |
| 5237 | Problem: The generated bugreport didn't contain information about |
| 5238 | $VIMRUNTIME and whether runtime files actually exist. |
| 5239 | Solution: Added a few checks to the bugreport script. |
| 5240 | Files: runtime/bugreport.vim |
| 5241 | |
| 5242 | Patch 5.4p.9 |
| 5243 | Problem: The windows install.exe created a wrong entry in the popup menu. |
| 5244 | The "%1" was "". The full directory was included, even when the |
| 5245 | executable had been moved elsewhere. (Ott) |
| 5246 | Solution: Double the '%' to get one from printf. Only include the path to |
| 5247 | gvim.exe when it wasn't moved and it's not in $PATH. |
| 5248 | Files: src/dosinst.c |
| 5249 | |
| 5250 | Patch 5.4p.10 |
| 5251 | Problem: Win32: On top of 5.4p.9: The "Edit with Vim" entry sometimes used |
| 5252 | a short file name for a directory. |
| 5253 | Solution: Change the "%1" to "%L" in the registry entry. |
| 5254 | Files: src/dosinst.c |
| 5255 | |
| 5256 | Patch 5.4p.11 |
| 5257 | Problem: Motif, Athena and GTK: When closing the GUI window when there is a |
| 5258 | changed buffer, there was only an error message and Vim would not |
| 5259 | exit. |
| 5260 | Solution: Put up a dialog, like for ":confirm qa". Uses the code that was |
| 5261 | already used for MS-Windows. |
| 5262 | Files: src/gui.c, src/gui_w32.c |
| 5263 | |
| 5264 | Patch 5.4p.12 |
| 5265 | Problem: Win32: Trying to expand a string that is longer than 256 |
| 5266 | characters could cause a crash. (Steed) |
| 5267 | Solution: For the buffer in win32_expandpath() don't use a fixed size array, |
| 5268 | allocate it. |
| 5269 | Files: src/os_win32.c |
| 5270 | |
| 5271 | MSDOS: Added "-Wall" to Makefile.djg compile flags. Function prototypes for |
| 5272 | fname_case() and mch_update_cursor() were missing. "fd" was unused in |
| 5273 | mf_sync(). "puiLocation" was unused in myputch(). "newcmd" unused in |
| 5274 | mch_call_shell() for DJGPP version. |
| 5275 | |
| 5276 | ============================================================================== |
| 5277 | VERSION 5.5 *version-5.5* |
| 5278 | |
| 5279 | Version 5.5 is a bug-fix version of 5.4. |
| 5280 | |
| 5281 | |
| 5282 | Changed *changed-5.5* |
| 5283 | ------- |
| 5284 | |
| 5285 | The DJGPP version is now compiled with "-O2" instead of "-O4" to reduce the |
| 5286 | size of the executables. |
| 5287 | |
| 5288 | Moved the src/STYLE file to runtime/doc/develop.txt. Added the design goals |
| 5289 | to it. |
| 5290 | |
| 5291 | 'backspace' is now a string option. See patch 5.4.15. |
| 5292 | |
| 5293 | |
| 5294 | Added *added-5.5* |
| 5295 | ----- |
| 5296 | |
| 5297 | Included Exuberant Ctags version 3.3. (Darren Hiebert) |
| 5298 | |
| 5299 | In runtime/mswin.vim, map CTRL-Q to CTRL-V, so that CTRL-Q can be used |
| 5300 | everywhere to do what CTRL-V used to do. |
| 5301 | |
| 5302 | Support for decompression of bzip2 files in vimrc_example.vim. |
| 5303 | |
| 5304 | When a patch is included, the patch number is entered in a table in version.c. |
| 5305 | This allows skipping a patch without breaking a next one. |
| 5306 | |
| 5307 | Support for mouse scroll wheel in X11. See patch 5.5a.14. |
| 5308 | |
| 5309 | line2byte() can be used to get the size of the buffer. See patch 5.4.35. |
| 5310 | |
| 5311 | The CTRL-R CTRL-O r and CTRL-R CTRL-P r commands in Insert mode are used to |
| 5312 | insert a register literally. See patch 5.4.48. |
| 5313 | |
| 5314 | Uninstall program for MS-Windows. To be able to remove the registry entries |
| 5315 | for "Edit with Vim". It is registered to be run from the "Add/Remove |
| 5316 | programs" application. See patch 5.4.x7. |
| 5317 | |
| 5318 | |
| 5319 | Fixed *fixed-5.5* |
| 5320 | ----- |
| 5321 | |
| 5322 | When using vimrc_example.vim: An error message when the cursor is on a line |
| 5323 | higher than the number of lines in the compressed file. Move the autocommand |
| 5324 | for jumping to the last known cursor position to after the decompressing |
| 5325 | autocommands. |
| 5326 | |
| 5327 | ":mkexrc" and ":mksession" wrote the current value of 'textmode'. That may |
| 5328 | mark a file as modified, which causes problems. This is a buffer-specific |
| 5329 | setting, it should not affect all files. |
| 5330 | |
| 5331 | "vim --version" wrote two empty lines. |
| 5332 | |
| 5333 | Unix: The alarm signal could kill Vim. It is generated by the Perl alarm() |
| 5334 | function. Ignore SIGALRM. |
| 5335 | |
| 5336 | Win32 GUI: Toolbar still had the yellow bitmap for running a Vim script. |
| 5337 | |
| 5338 | BeOS: "tmo" must be bigtime_t, instead of double. (Seibert) |
| 5339 | |
| 5340 | Patch 5.4.1 |
| 5341 | Problem: Test11 fails when $GZIP is set to "-v". (Matthew Jackson) |
| 5342 | Solution: Set $GZIP to an empty string. |
| 5343 | Files: src/testdir/test11.in |
| 5344 | |
| 5345 | Patch 5.4.2 |
| 5346 | Problem: Typing <Esc> at the crypt key prompt caused a crash. (Kallingal) |
| 5347 | Solution: Check for a NULL pointer returned from get_crypt_key(). |
| 5348 | Files: src/fileio.c |
| 5349 | |
| 5350 | Patch 5.4.3 |
| 5351 | Problem: Python: Trying to use the name of an unnamed buffer caused a |
| 5352 | crash. (Daniel Burrows) |
| 5353 | Solution: Check for b_fname being a NULL pointer. |
| 5354 | Files: src/if_python.c |
| 5355 | |
| 5356 | Patch 5.4.4 |
| 5357 | Problem: Win32: When compiled without toolbar, but the 'T' flag is in |
| 5358 | 'guioptions', there would be an empty space for the toolbar. |
| 5359 | Solution: Add two #ifdefs where checking for the 'T' flag. (Vince Negri) |
| 5360 | Files: src/gui.c |
| 5361 | |
| 5362 | Patch 5.4.5 |
| 5363 | Problem: Athena GUI: Using the Buffers.Refresh menu entry caused a crash. |
| 5364 | Looks like any ":unmenu" command may cause trouble. |
| 5365 | Solution: Disallow ":unmenu" in the Athena version. Disable the Buffers |
| 5366 | menu, because the Refresh item would not work. |
| 5367 | Files: src/menu.c, runtime/menu.vim |
| 5368 | |
| 5369 | Patch 5.4.6 |
| 5370 | Problem: GTK GUI: Using ":gui" in the .gvimrc file caused an error. Only |
| 5371 | happens when the GUI forks. |
| 5372 | Solution: Don't fork in a recursive call of gui_start(). |
| 5373 | Files: src/gui.c |
| 5374 | |
| 5375 | Patch 5.4.7 |
| 5376 | Problem: Typing 'q' at the more prompt for the ATTENTION message causes the |
| 5377 | file loading to be interrupted. (Will Day) |
| 5378 | Solution: Reset got_int after showing the ATTENTION message. |
| 5379 | Files: src/memline.c |
| 5380 | |
| 5381 | Patch 5.4.8 |
| 5382 | Problem: Edit some file, ":he", ":opt": options from help window are shown, |
| 5383 | but pressing space updates from the other window. (Phillipps) |
| 5384 | Also: When there are changes in the option-window, ":q!" gives an |
| 5385 | error message. |
| 5386 | Solution: Before creating the option-window, go to a non-help window. |
| 5387 | Use ":bdel!" to delete the buffer. |
| 5388 | Files: runtime/optwin.vim |
| 5389 | |
| 5390 | Patch 5.4.9 |
| 5391 | Just updates version.h. The real patch has been moved to 5.4.x1. |
| 5392 | This patch is just to keep the version number correct. |
| 5393 | |
| 5394 | Patch 5.4.10 |
| 5395 | Problem: GTK GUI: When $DISPLAY is invalid, "gvim -f" just exits. It |
| 5396 | should run in the terminal. |
| 5397 | Solution: Use gtk_init_check() instead of gtk_init(). |
| 5398 | Files: src/gui_gtk_x11.c |
| 5399 | |
| 5400 | Patch 5.4.11 |
| 5401 | Problem: When using the 'S' flag in 'cpoptions', 'tabstop' is not copied to |
| 5402 | the next buffer for some commands, e.g., ":buffer". |
| 5403 | Solution: When the BCO_NOHELP flag is given to buf_copy_options(), still |
| 5404 | copy the options used by do_help() when neither the "from" or "to" |
| 5405 | buffer is a help buffer. |
| 5406 | Files: src/option.c |
| 5407 | |
| 5408 | Patch 5.4.12 |
| 5409 | Problem: When using 'smartindent', there would be no extra indent if the |
| 5410 | current line did not have any indent already. (Hanus Adler) |
| 5411 | Solution: There was a wrongly placed "else", that previously matched with |
| 5412 | the "if" that set trunc_line. Removed the "else" and added a |
| 5413 | check for trunc_line to be false. |
| 5414 | Files: src/misc1.c |
| 5415 | |
| 5416 | Patch 5.4.13 |
| 5417 | Problem: New SGI C compilers need another option for optimisation. |
| 5418 | Solution: Add a check in configure for "-OPT:Olimit". (Chin A Young) |
| 5419 | Files: src/configure.in, src/configure |
| 5420 | |
| 5421 | Patch 5.4.14 |
| 5422 | Problem: Motif GUI: When the popup menu is present, a tiny window appears |
| 5423 | on the desktop for some users. |
| 5424 | Solution: Set the menu widget ID for a popup menu to 0. (Thomas Koehler) |
| 5425 | Files: src/gui_motif.c |
| 5426 | |
| 5427 | Patch 5.4.15 |
| 5428 | Problem: Since 'backspace' set to 0 has been made Vi compatible, it is no |
| 5429 | longer possible to only allow deleting autoindent. |
| 5430 | Solution: Make 'backspace' a list of parts, to allow each kind of |
| 5431 | backspacing separately. |
| 5432 | Files: src/edit.c, src/option.c, src/option.h, src/proto/option.pro, |
| 5433 | runtime/doc/option.txt, runtime/doc/insert.txt |
| 5434 | |
| 5435 | Patch 5.4.16 |
| 5436 | Problem: Multibyte: Locale zh_TW.Big5 was not checked for in configure. |
| 5437 | Solution: Add zh_TW.Big5 to configure check. (Chih-Tsun Huang) |
| 5438 | Files: src/configure.in, src/configure |
| 5439 | |
| 5440 | Patch 5.4.17 |
| 5441 | Problem: GUI: When started from inside gvim with ":!gvim", Vim would not |
| 5442 | start. ":!gvim -f" works fine. |
| 5443 | Solution: After forking, wait a moment in the parent process, to give the |
| 5444 | child a chance to set its process group. |
| 5445 | Files: src/gui.c |
| 5446 | |
| 5447 | Patch 5.4.18 |
| 5448 | Problem: Python: The clear_history() function also exists in a library. |
| 5449 | Solution: Rename clear_history() to clear_hist(). |
| 5450 | Files: src/ex_getln.c, src/eval.c, src/proto/ex_getln.pro |
| 5451 | |
| 5452 | Patch 5.4.19 |
| 5453 | Problem: In a terminal with 25 lines, there is a more prompt after the |
| 5454 | ATTENTION message. When hitting 'q' here the dialog prompt |
| 5455 | doesn't appear and file loading is interrupted. (Will Day) |
| 5456 | Solution: Don't allow quitting the printing of a message for the dialog |
| 5457 | prompt. Added the msg_noquit_more flag for this. |
| 5458 | Files: src/message.c |
| 5459 | |
| 5460 | Patch 5.4.20 |
| 5461 | Problem: GTK: When starting gvim, would send escape sequences to the |
| 5462 | terminal to switch the cursor off and on. |
| 5463 | Solution: Don't call msg_start() if the GUI is expected to start. |
| 5464 | Files: src/main.c |
| 5465 | |
| 5466 | Patch 5.4.21 |
| 5467 | Problem: Motif: Toplevel menu ordering was wrong when using tear-off items. |
| 5468 | Solution: Don't add one to the index for a toplevel menu. |
| 5469 | Files: src/gui_motif.c |
| 5470 | |
| 5471 | Patch 5.4.22 |
| 5472 | Problem: In Insert mode, <C-Left>, <S-Left>, <C-Right> and <S-Right> didn't |
| 5473 | update the column used for vertical movement. |
| 5474 | Solution: Set curwin->w_set_curswant for those commands. |
| 5475 | Files: src/edit.c |
| 5476 | |
| 5477 | Patch 5.4.23 |
| 5478 | Problem: When a Visual selection is lost to another program, and then the |
| 5479 | same text is Visually selected again, the clipboard ownership |
| 5480 | wasn't regained. |
| 5481 | Solution: Set clipboard.vmode to NUL to force regaining the clipboard. |
| 5482 | Files: src/normal.c |
| 5483 | |
| 5484 | Patch 5.4.24 |
| 5485 | Problem: Encryption: When using ":r file" while 'key' has already entered, |
| 5486 | the 'key' option would be messed up. When writing the file it |
| 5487 | would be encrypted with an unknown key and lost! (Brad Despres) |
| 5488 | Solution: Don't free cryptkey when it is equal to the 'key' option. |
| 5489 | Files: src/fileio.c |
| 5490 | |
| 5491 | Patch 5.4.25 |
| 5492 | Problem: When 'cindent' is set, but 'autoindent' isn't, comments are not |
| 5493 | properly indented when starting a new line. (Mitterand) |
| 5494 | Solution: When there is a comment leader for the new line, but 'autoindent' |
| 5495 | isn't set, do C-indenting. |
| 5496 | Files: src/misc1.c |
| 5497 | |
| 5498 | Patch 5.4.26 |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 5499 | Problem: Multi-byte: a multibyte character is never recognized in a file |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 5500 | name, causing a backslash before it to be removed on Windows. |
| 5501 | Solution: Assume that a leading-byte character is a file name character in |
| 5502 | vim_isfilec(). |
| 5503 | Files: src/charset.c |
| 5504 | |
| 5505 | Patch 5.4.27 |
| 5506 | Problem: Entries in the PopUp[nvic] menus were added for several modes, but |
| 5507 | only deleted for the mode they were used for. This resulted in |
| 5508 | the entry remaining in the PopUp menu. |
| 5509 | When removing a PopUp[nvic] menu, the name had been truncated, |
| 5510 | could result in greying-out the whole PopUp menu. |
| 5511 | Solution: Remove entries for all modes from the PopUp[nvic] menus. Remove |
| 5512 | the PopUp[nvic] menu entries first, before the name is changed. |
| 5513 | Files: src/menu.c |
| 5514 | |
| 5515 | Patch 5.4.28 |
| 5516 | Problem: When using a BufWritePre autocommand to change 'fileformat', the |
| 5517 | new value would not be used for writing the file. |
| 5518 | Solution: Check 'fileformat' after executing the autocommands instead of |
| 5519 | before. |
| 5520 | Files: src/fileio.c |
| 5521 | |
| 5522 | Patch 5.4.29 |
| 5523 | Problem: Athena GUI: When removing the 'g' flag from 'guioptions', using a |
| 5524 | menu can result in a crash. |
| 5525 | Solution: Always grey-out menus for Athena, don't hide them. |
| 5526 | Files: src/menu.c |
| 5527 | |
| 5528 | Patch 5.4.30 |
| 5529 | Problem: BeOS: Suspending Vim with CTRL-Z didn't work (killed Vim). The |
| 5530 | first character typed after ":sh" goes to Vim, instead of the |
| 5531 | started shell. |
| 5532 | Solution: Don't suspend Vim, start a new shell. Kill the async read thread |
| 5533 | when starting a new shell. It will be restarted later. (Will Day) |
| 5534 | Files: src/os_unix.c, src/ui.c |
| 5535 | |
| 5536 | Patch 5.4.31 |
| 5537 | Problem: GUI: When 'mousefocus' is set, moving the mouse over where a |
| 5538 | window boundary was, causes a hit-enter prompt to be finished. |
| 5539 | (Jeff Walker) |
| 5540 | Solution: Don't use 'mousefocus' at the hit-enter prompt. Also ignore it |
| 5541 | for the more prompt and a few other situations. When an operator |
| 5542 | is pending, abort it first. |
| 5543 | Files: src/gui.c |
| 5544 | |
| 5545 | Patch 5.4.32 |
| 5546 | Problem: Unix: $LDFLAGS was not passed to configure. |
| 5547 | Solution: Pass $LDFLAGS to configure just like $CFLAGS. (Jon Miner) |
| 5548 | Files: src/Makefile |
| 5549 | |
| 5550 | Patch 5.4.33 |
| 5551 | Problem: Unix: After expanding an environment variable with the shell, the |
| 5552 | next expansion would also use the shell, even though it is not |
| 5553 | needed. |
| 5554 | Solution: Reset "recursive" before returning from gen_expand_wildcards(). |
| 5555 | Files: src/misc1.c |
| 5556 | |
| 5557 | Patch 5.4.34 (also see 5.4.x5) |
| 5558 | Problem: When editing a file, and the file name is relative to a directory |
| 5559 | above the current directory, the file name was made absolute. |
| 5560 | (Gregory Margo) |
| 5561 | Solution: Add an argument to shorten_fnames() which indicates if all file |
| 5562 | names should be shortened, or only absolute names. In main() only |
| 5563 | use shorten_fnames() to shorten absolute names. |
| 5564 | Files: src/ex_docmd.c, src/fileio.c, src/main.c, src/proto/fileio.pro |
| 5565 | |
| 5566 | Patch 5.4.35 |
| 5567 | Problem: There is no function to get the current file size. |
| 5568 | Solution: Allow using line2byte() with the number of lines in the file plus |
| 5569 | one. This returns the offset of the line past the end of the |
| 5570 | file, which is the file size plus one. |
| 5571 | Files: src/eval.c, runtime/doc/eval.txt |
| 5572 | |
| 5573 | Patch 5.4.36 |
| 5574 | Problem: Comparing strings while ignoring case didn't work correctly for |
| 5575 | some machines. (Mide Steed) |
| 5576 | Solution: vim_stricmp() and vim_strnicmp() only returned 0 or 1. Changed |
| 5577 | them to return -1 when the first argument is smaller. |
| 5578 | Files: src/misc2.c |
| 5579 | |
| 5580 | Patch 5.4.37 (also see 5.4.40 and 5.4.43) |
| 5581 | Problem: Long strings from the viminfo file are truncated. |
| 5582 | Solution: When writing a long string to the viminfo file, first write a line |
| 5583 | with the length, then the string itself in a second line. |
| 5584 | Files: src/eval.c, src/ex_cmds.c, src/ex_getln.c, src/mark.c, src/ops.c, |
| 5585 | src/search.c, src/proto/ex_cmds.pro, runtime/syntax/viminfo.vim |
| 5586 | |
| 5587 | Patch 5.4.38 |
| 5588 | Problem: In the option-window, ":set go&" resulted in 'go' being handled |
| 5589 | like a boolean option. |
| 5590 | Mappings for <Space> and <CR> were overruled by the option-window. |
| 5591 | Solution: When the value of an option isn't 0 or 1, don't handle it like a |
| 5592 | boolean option. |
| 5593 | Save and restore mappings for <Space> and <CR> when entering and |
| 5594 | leaving the option-window. |
| 5595 | Files: runtime/optwin.vim |
| 5596 | |
| 5597 | Patch 5.4.39 |
| 5598 | Problem: When setting a hidden option, spaces before the equal sign were |
| 5599 | not skipped and cause an error message. E.g., ":set csprg =cmd". |
| 5600 | Solution: When skipping over a hidden option, check for a following "=val" |
| 5601 | and skip it too. |
| 5602 | Files: src/option.c |
| 5603 | |
| 5604 | Patch 5.4.40 (depends on 5.4.37) |
| 5605 | Problem: Compiler error for "atol(p + 1)". (Axel Kielhorn) |
| 5606 | Solution: Add a typecast: "atol((char *)p + 1)". |
| 5607 | Files: src/ex_cmds.c |
| 5608 | |
| 5609 | Patch 5.4.41 |
| 5610 | Problem: Some commands that were not included would give an error message, |
| 5611 | even when after "if 0". |
| 5612 | Solution: Don't give an error message for an unsupported command when not |
| 5613 | executing the command. |
| 5614 | Files: src/ex_docmd.c |
| 5615 | |
| 5616 | Patch 5.4.42 |
| 5617 | Problem: ":w" would also cause a truncated message to appear in the message |
| 5618 | history. |
| 5619 | Solution: Don't put a kept message in the message history when it starts |
| 5620 | with "<". |
| 5621 | Files: src/message.c |
| 5622 | |
| 5623 | Patch 5.4.43 (depends on 5.4.37) |
| 5624 | Problem: Mixing long lines with multiple lines in a register causes errors |
| 5625 | when writing the viminfo file. (Robinson) |
| 5626 | Solution: When reading the viminfo file to skip register contents, skip |
| 5627 | lines that start with "<". |
| 5628 | Files: src/ops.c |
| 5629 | |
| 5630 | Patch 5.4.44 |
| 5631 | Problem: When 'whichwrap' includes '~', a "~" command that goes on to the |
| 5632 | next line cannot be properly undone. (Zellner) |
| 5633 | Solution: Save each line for undo in n_swapchar(). |
| 5634 | Files: src/normal.c |
| 5635 | |
| 5636 | Patch 5.4.45 (also see 5.4.x8) |
| 5637 | Problem: When expand("$ASDF") fails, there is an error message. |
| 5638 | Solution: Remove the global expand_interactively. Pass a flag down to skip |
| 5639 | the error message. |
| 5640 | Also: expand("$ASDF") returns an empty string if $ASDF isn't set. |
| 5641 | Previously it returned "$ASDF" when 'shell' is "sh". |
| 5642 | Also: system() doesn't print an error when the command returns an |
| 5643 | error code. |
| 5644 | Files: many |
| 5645 | |
| 5646 | Patch 5.4.46 |
| 5647 | Problem: Backspacing did not always use 'softtabstop' after hitting <CR>, |
| 5648 | inserting a register, moving the cursor, etc. |
| 5649 | Solution: Reset inserted_space much more often in edit(). |
| 5650 | Files: src/edit.c |
| 5651 | |
| 5652 | Patch 5.4.47 |
| 5653 | Problem: When executing BufWritePre or BufWritePost autocommands for a |
| 5654 | hidden buffer, the cursor could be moved to a non-existing |
| 5655 | position. (Vince Negri) |
| 5656 | Solution: Save and restore the cursor and topline for the current window |
| 5657 | when it is going to be used to execute autocommands for a hidden |
| 5658 | buffer. Use an existing window for the buffer when it's not |
| 5659 | hidden. |
| 5660 | Files: src/fileio.c |
| 5661 | |
| 5662 | Patch 5.4.48 |
| 5663 | Problem: A paste with the mouse in Insert mode was not repeated exactly the |
| 5664 | same with ".". For example, when 'autoindent' is set and pasting |
| 5665 | text with leading indent. (Perry) |
| 5666 | Solution: Add the CTRL-R CTRL-O r and CTRL-R CTRL-P r commands in Insert |
| 5667 | mode, which insert the contents of a register literally. |
| 5668 | Files: src/edit.c, src/normal.c, runtime/doc/insert.txt |
| 5669 | |
| 5670 | Patch 5.4.49 |
| 5671 | Problem: When pasting text with [ <MiddleMouse>, the cursor could end up |
| 5672 | after the last character of the line. |
| 5673 | Solution: Correct the cursor position for the change in indent. |
| 5674 | Files: src/ops.c |
| 5675 | |
| 5676 | Patch 5.4.x1 (note: Replaces patch 5.4.9) |
| 5677 | Problem: Win32 GUI: menu hints were never used, because WANT_MENU is not |
| 5678 | defined until vim.h is included. |
| 5679 | Solution: Move the #ifdef WANT_MENU from where MENUHINTS is defined to where |
| 5680 | it is used. |
| 5681 | Files: src/gui_w32.c |
| 5682 | |
| 5683 | Patch 5.4.x2 |
| 5684 | Problem: BeOS: When pasting text, one character was moved to the end. |
| 5685 | Solution: Re-enable the BeOS code in fill_input_buf(), and fix timing out |
| 5686 | with acquire_sem_etc(). (Will Day) |
| 5687 | Files: src/os_beos.c, src/ui.c |
| 5688 | |
| 5689 | Patch 5.4.x3 |
| 5690 | Problem: Win32 GUI: When dropping a directory on a running gvim it crashes. |
| 5691 | Solution: Avoid using a NULL file name. Also display a message to indicate |
| 5692 | that the current directory was changed. |
| 5693 | Files: src/gui_w32.c |
| 5694 | |
| 5695 | Patch 5.4.x4 |
| 5696 | Problem: Win32 GUI: Removing an item from the popup menu doesn't work. |
| 5697 | Solution: Don't remove the item from the menubar, but from the parent popup |
| 5698 | menu. |
| 5699 | Files: src/gui_w32.c |
| 5700 | |
| 5701 | Patch 5.4.x5 (addition to 5.4.34) |
| 5702 | Files: src/gui_w32.c |
| 5703 | |
| 5704 | Patch 5.4.x6 |
| 5705 | Problem: Win32: Expanding (dir)name starting with a dot doesn't work. |
| 5706 | (McCormack) Only when there is a path before it. |
| 5707 | Solution: Fix the check, done before expansion, if the file name pattern |
| 5708 | starts with a dot. |
| 5709 | Files: src/os_win32.c |
| 5710 | |
| 5711 | Patch 5.4.x7 |
| 5712 | Problem: Win32 GUI: Removing "Edit with Vim" from registry is difficult. |
| 5713 | Solution: Add uninstall program to remove the registry keys. It is installed |
| 5714 | in the "Add/Remove programs" list for ease of use. |
| 5715 | Also: don't set $VIM when the executable is with the runtime files. |
| 5716 | Also: Add a text file with a step-by-step description of how to |
| 5717 | uninstall Vim for DOS and Windows. |
| 5718 | Files: src/uninstal.c, src/dosinst.c, src/Makefile.w32, uninstal.txt |
| 5719 | |
| 5720 | Patch 5.4.x8 (addition to 5.4.45) |
| 5721 | Files: many |
| 5722 | |
| 5723 | Patch 5.4.x9 |
| 5724 | Problem: Win32 GUI: After executing an external command, focus is not |
| 5725 | always regained (when using focus-follows-mouse). |
| 5726 | Solution: Add SetFocus() in mch_system(). (Mike Steed) |
| 5727 | Files: src/os_win32.c |
| 5728 | |
| 5729 | |
| 5730 | Patch 5.5a.1 |
| 5731 | Problem: ":let @* = @:" did not work. The text was not put on the |
| 5732 | I clipboard. (Fisher) |
| 5733 | Solution: Own the clipboard and put the text on it. |
| 5734 | Files: src/ops.c |
| 5735 | |
| 5736 | Patch 5.5a.2 |
| 5737 | Problem: append() did not mark the buffer modified. Marks below the |
| 5738 | new line were not adjusted. |
| 5739 | Solution: Fix the f_append() function. |
| 5740 | Files: src/eval.c |
| 5741 | |
| 5742 | Patch 5.5a.3 |
| 5743 | Problem: Editing compressed ".gz" files doesn't work on non-Unix systems, |
| 5744 | because there is no "mv" command. |
| 5745 | Solution: Add the rename() function and use it instead of ":!mv". |
| 5746 | Also: Disable the automatic jump to the last position, because it |
| 5747 | changes the jumplist. |
| 5748 | Files: src/eval.c, runtime/doc/eval.txt, runtime/vimrc_example.vim |
| 5749 | |
| 5750 | Patch 5.5a.4 |
| 5751 | Problem: When using whole-line completion in insert mode while the cursor |
| 5752 | is in the indent, get "out of memory" error. (Stekrt) |
| 5753 | Solution: Don't allocate a negative amount of memory in ins_complete(). |
| 5754 | Files: src/edit.c |
| 5755 | |
| 5756 | Patch 5.5a.5 |
| 5757 | Problem: Win32: The 'path' option can hold only up to 256 characters, |
| 5758 | because _MAX_PATH is 256. (Robert Webb) |
| 5759 | Solution: Use a fixed path length of 1024. |
| 5760 | Files: src/os_win32.h |
| 5761 | |
| 5762 | Patch 5.5a.6 |
| 5763 | Problem: Compiling with gcc on Win32, using the Unix Makefile, didn't work. |
| 5764 | Solution: Add $(SUFFIX) to all places where an executable is used. Also |
| 5765 | pass it to ctags. (Reynolds) |
| 5766 | Files: src/Makefile |
| 5767 | |
| 5768 | Patch 5.5a.7 |
| 5769 | Problem: When using "cat | vim -" in an xterm, the xterm version reply |
| 5770 | would end up in the file. |
| 5771 | Solution: Read the file from stdin before switching the terminal to RAW |
| 5772 | mode. Should also avoid problems with programs that use a |
| 5773 | specific terminal setting. |
| 5774 | Also: when using the GUI, print "Reading from stdin..." in the GUI |
| 5775 | window, to give a hint why it doesn't do anything. |
| 5776 | Files: src/main.c, src/fileio.c |
| 5777 | |
| 5778 | Patch 5.5a.8 |
| 5779 | Problem: On multi-threaded Solaris, suspending doesn't work. |
| 5780 | Solution: Call pause() when the SIGCONT signal was not received after |
| 5781 | sending the SIGTSTP signal. (Nagano) |
| 5782 | Files: src/os_unix.c |
| 5783 | |
| 5784 | Patch 5.5a.9 |
| 5785 | Problem: 'winaltkeys' could be set to an empty argument, which is illegal. |
| 5786 | Solution: Give an error message when doing ":set winaltkeys=". |
| 5787 | Files: src/option.c |
| 5788 | |
| 5789 | Patch 5.5a.10 |
| 5790 | Problem: Win32 console: Using ALTGR on a German keyboard to produce "}" |
| 5791 | doesn't work, because the 8th bit is set when ALT is pressed. |
| 5792 | Solution: Don't set the 8th bit when ALT and CTRL are used. (Leipert) |
| 5793 | Files: src/os_win32.c |
| 5794 | |
| 5795 | Patch 5.5a.11 |
| 5796 | Problem: Tcl: Configure always uses tclsh8.0. |
| 5797 | Also: Loading a library doesn't work. |
| 5798 | Solution: Add "--with-tclsh" configure argument to allow specifying another |
| 5799 | name for the tcl shell. |
| 5800 | Call Tcl_Init() in tclinit() to make loading libraries work. |
| 5801 | (Johannes Zellner) |
| 5802 | Files: src/configure.in, src/configure, src/if_tcl.c |
| 5803 | |
| 5804 | Patch 5.5a.12 |
| 5805 | Problem: The "user_commands" feature is called "user-commands". |
| 5806 | Solution: Replace "user-commands" with "user_commands". (Kim Sung-bom) |
| 5807 | Keep "user-commands" for the has() function, to remain backwards |
| 5808 | compatible with 5.4. |
| 5809 | Files: src/eval.c, src/version.c |
| 5810 | |
| 5811 | Patch 5.5a.13 |
| 5812 | Problem: OS/2: When $HOME is not defined, "C:/" is used for the viminfo |
| 5813 | file. That is very wrong when OS/2 is on another partition. |
| 5814 | Solution: Use $VIM for the viminfo file when it is defined, like for MSDOS. |
| 5815 | Also: Makefile.os2 didn't depend on os_unix.h. |
| 5816 | Files: src/os_unix.h, src/Makefile.os2 |
| 5817 | |
| 5818 | Patch 5.5a.14 |
| 5819 | Problem: Athena, Motif and GTK: The Mouse scroll wheel doesn't work. |
| 5820 | Solution: Interpret a click of the wheel as a key press of the <MouseDown> |
| 5821 | or <MouseUp> keys. Default behavior is to scroll three lines, or |
| 5822 | a full page when Shift is used. |
| 5823 | Files: src/edit.c, src/ex_getln.c, src/gui.c, src/gui_gtk_x11.c, |
| 5824 | src/gui_x11.c, src/keymap.h, src/message.c, src/misc1.c, |
| 5825 | src/misc2.c, src/normal.c, src/proto/normal.pro, src/vim.h, |
| 5826 | runtime/doc/scroll.txt |
| 5827 | |
| 5828 | Patch 5.5a.15 |
| 5829 | Problem: Using CTRL-A in Insert mode doesn't work correctly when the insert |
| 5830 | started with the <Insert> key. (Andreas Rohrschneider) |
| 5831 | Solution: Replace <Insert> with "i" before setting up the redo buffer. |
| 5832 | Files: src/normal.c |
| 5833 | |
| 5834 | Patch 5.5a.16 |
| 5835 | Problem: VMS: GUI does not compile and run. |
| 5836 | Solution: Various fixes. (Zoltan Arpadffy) |
| 5837 | Moved functions from os_unix.c to ui.c, so that VMS can use them |
| 5838 | too: open_app_context(), x11_setup_atoms() and clip_x11* functions. |
| 5839 | Made xterm_dpy global, it's now used by ui.c and os_unix.c. |
| 5840 | Use gethostname() always, sys_hostname doesn't exist. |
| 5841 | Files: src/globals.h, src/gui_x11.c, src/os_vms.mms, src/os_unix.c, |
| 5842 | src/os_vms.c, src/ui.c, src/proto/os_unix.pro, src/proto/ui.pro |
| 5843 | |
| 5844 | Renamed AdjustCursorForMultiByteCharacter() to AdjustCursorForMultiByteChar() |
| 5845 | to avoid symbol length limit of 31 characters. (Steve P. Wall) |
| 5846 | |
| 5847 | Patch 5.5b.1 |
| 5848 | Problem: SASC complains about dead assignments and implicit type casts. |
| 5849 | Solution: Removed the dead assignments. Added explicit type casts. |
| 5850 | Files: src/buffer.c, src/edit.c, src/eval.c, src/ex_cmds.c, |
| 5851 | src/ex_getln.c, src/fileio.c, src/getchar.c, src/memline.c, |
| 5852 | src/menu.c, src/misc1.c, src/normal.c, src/ops.c, src/quickfix.c, |
| 5853 | src/screen.c |
| 5854 | |
| 5855 | Patch 5.5b.2 |
| 5856 | Problem: When using "CTRL-O O" in Insert mode, hit <Esc> and then "o" in |
| 5857 | another line truncates that line. (Devin Weaver) |
| 5858 | Solution: When using a command that starts Insert mode from CTRL-O, reset |
| 5859 | "restart_edit" first. This avoids that edit() is called with a |
| 5860 | mix of starting a new edit command and restarting a previous one. |
| 5861 | Files: src/normal.c |
| 5862 | |
| 5863 | ============================================================================== |
| 5864 | VERSION 5.6 *version-5.6* |
| 5865 | |
| 5866 | Version 5.6 is a bug-fix version of 5.5. |
| 5867 | |
| 5868 | |
| 5869 | Changed *changed-5.6* |
| 5870 | ------- |
| 5871 | |
| 5872 | Small changes to OleVim files. (Christian Schaller) |
| 5873 | |
| 5874 | Inserted "/**/" between patch numbers in src/version.c. This allows for one |
| 5875 | line of context, which some versions of patch need. |
| 5876 | |
| 5877 | Reordered the Syntax menu to avoid long submenus. Removed keyboard shortcuts |
| 5878 | for alphabetical items to avoid a clash with fixed items. |
| 5879 | |
| 5880 | |
| 5881 | Added *added-5.6* |
| 5882 | ----- |
| 5883 | |
| 5884 | Included Exuberant Ctags version 3.4. (Darren Hiebert) |
| 5885 | |
| 5886 | OpenWithVim in Python. (Christian Schaller) |
| 5887 | |
| 5888 | Win32 GUI: gvimext.dll, for the context menu "Edit with Vim" entry. Avoids |
| 5889 | the reported problems with the MS Office taskbar. Now it's a Shell Extension. |
| 5890 | (Tianmiao Hu) |
| 5891 | |
| 5892 | New syntax files: |
| 5893 | abel Abel (John Cook) |
| 5894 | aml Arc Macro Language (Nikki Knuit) |
| 5895 | apachestyle Apache-style config file (Christian Hammers) |
| 5896 | cf Cold Fusion (Jeff Lanzarotta) |
| 5897 | ctrlh files with CTRL-H sequences (Bram Moolenaar) |
| 5898 | cupl CUPL (John Cook) |
| 5899 | cuplsim CUPL simulation (John Cook) |
| 5900 | erlang Erlang (Kresimir Marzic) |
| 5901 | gedcom Gedcom (Paul Johnson) |
| 5902 | icon Icon (Wendell Turner) |
| 5903 | ist MakeIndex style (Peter Meszaros) |
| 5904 | jsp Java Server Pages (Rafael Garcia-Suarez) |
| 5905 | rcslog Rcslog (Joe Karthauser) |
| 5906 | remind Remind (Davide Alberani) |
| 5907 | sqr Structured Query Report Writer (Paul Moore) |
| 5908 | tads TADS (Amir Karger) |
| 5909 | texinfo Texinfo (Sandor Kopanyi) |
| 5910 | xpm2 X Pixmap v2 (Steve Wall) |
| 5911 | |
| 5912 | The 'C' flag in 'cpoptions' can be used to switch off concatenation for |
| 5913 | sourced lines. See patch 5.5.013 below. |line-continuation| |
| 5914 | |
| 5915 | "excludenl" argument for the ":syntax" command. See patch 5.5.032 below. |
| 5916 | |:syn-excludenl| |
| 5917 | |
| 5918 | Implemented |z+| and |z^| commands. See patch 5.5.050 below. |
| 5919 | |
| 5920 | Vim logo in Corel Draw format. Can be scaled to any resolution. |
| 5921 | |
| 5922 | |
| 5923 | Fixed *fixed-5.6* |
| 5924 | ----- |
| 5925 | |
| 5926 | Using this mapping in Select mode, terminated completion: |
| 5927 | ":vnoremap <C-N> <Esc>a<C-N>" (Benji Fisher) |
| 5928 | Ignore K_SELECT in ins_compl_prep(). |
| 5929 | |
| 5930 | VMS (Zoltan Arpadffy, David Elins): |
| 5931 | - ioctl() in pty.c caused trouble, #ifndef VMS added. |
| 5932 | - Cut & paste mismatch corrected. |
| 5933 | - Popup menu line crash corrected. (Patch 5.5.047) |
| 5934 | - Motif directories during open and save as corrected. |
| 5935 | - Handle full file names with version numbers. (Patch 5.5.046) |
| 5936 | - Directory handling (CD command etc.) |
| 5937 | - Corrected file name conversion VMS to Unix and v.v. |
| 5938 | - Recovery was not working. |
| 5939 | - Terminal and signal handling was outdated compared to os_unix.c. |
| 5940 | - Improved os_vms.txt. |
| 5941 | |
| 5942 | Configure used fprintf() instead of printf() to check for __DATE__ and |
| 5943 | __TIME__. (John Card II) |
| 5944 | |
| 5945 | BeOS: Adjust computing the char_height and char_ascent. Round them up |
| 5946 | separately, avoids redrawing artifacts. (Mike Steed) |
| 5947 | |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 5948 | Fix a few multibyte problems in menu_name_skip(), set_reg_ic(), searchc() and |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 5949 | findmatchlimit(). (Taro Muraoka) |
| 5950 | |
| 5951 | GTK GUI: |
| 5952 | - With GTK 1.2.5 and later the scrollbars were not redrawn correctly. |
| 5953 | - Adjusted the gtk_form_draw() function. |
| 5954 | - SNiFF connection didn't work. |
| 5955 | - 'mousefocus' was not working. (Dalecki) |
| 5956 | - Some keys were not working with modifiers: Shift-Tab, Ctrl-Space and CTRL-@. |
| 5957 | |
| 5958 | |
| 5959 | Patch 5.5.001 |
| 5960 | Problem: Configure in the top directory did not pass on an argument with a |
| 5961 | space correctly. For example "./configure --previs="/My home". |
| 5962 | (Stephane Chazelas) |
| 5963 | Solution: Use '"$@"' instead of '$*' to pass on the arguments. |
| 5964 | Files: configure |
| 5965 | |
| 5966 | Patch 5.5.002 |
| 5967 | Problem: Compilation error for using "fds[] & POLLIN". (Jeff Walker) |
| 5968 | Solution: Use "fds[].revents & POLLIN". |
| 5969 | Files: src/os_unix.c |
| 5970 | |
| 5971 | Patch 5.5.003 |
| 5972 | Problem: The autoconf check for sizeof(int) is wrong on machines where |
| 5973 | sizeof(size_t) != sizeof(int). |
| 5974 | Solution: Use our own configure check. Also fixes the warning for |
| 5975 | cross-compiling. |
| 5976 | Files: src/configure.in, src/configure |
| 5977 | |
| 5978 | Patch 5.5.004 |
| 5979 | Problem: On Unix it's not possible to interrupt ":sleep 100". |
| 5980 | Solution: Switch terminal to cooked mode while asleep, to allow a SIGINT to |
| 5981 | wake us up. But switch off echo, added TMODE_SLEEP. |
| 5982 | Files: src/term.h, src/os_unix.c |
| 5983 | |
| 5984 | Patch 5.5.005 |
| 5985 | Problem: When using <f-args> with a user command, an empty argument to the |
| 5986 | command resulted in one empty string, while no string was |
| 5987 | expected. |
| 5988 | Solution: Catch an empty argument and pass no argument to the function. |
| 5989 | (Paul Moore) |
| 5990 | Files: src/ex_docmd.c |
| 5991 | |
| 5992 | Patch 5.5.006 |
| 5993 | Problem: Python: When platform-dependent files are in another directory |
| 5994 | than the platform-independent files it doesn't work. |
| 5995 | Solution: Also check the executable directory, and add it to CFLAGS. (Tessa |
| 5996 | Lau) |
| 5997 | Files: src/configure.in, src/configure |
| 5998 | |
| 5999 | Patch 5.5.007 (extra) |
| 6000 | Problem: Win32 OLE: Occasional crash when exiting while still being used |
| 6001 | via OLE. |
| 6002 | Solution: Move OleUninitialize() to before deleting the application object. |
| 6003 | (Vince Negri) |
| 6004 | Files: src/if_ole.cpp |
| 6005 | |
| 6006 | Patch 5.5.008 |
| 6007 | Problem: 10000@@ takes a long time and cannot be interrupted. |
| 6008 | Solution: Check for CTRL-C typed while in the loop to push the register. |
| 6009 | Files: src/normal.c |
| 6010 | |
| 6011 | Patch 5.5.009 |
| 6012 | Problem: Recent Sequent machines don't link with "-linet". (Kurtis Rader) |
| 6013 | Solution: Remove configure check for Sequent. |
| 6014 | Files: src/configure.in, src/configure |
| 6015 | |
| 6016 | Patch 5.5.010 |
| 6017 | Problem: Ctags freed a memory block twice when exiting. When out of |
| 6018 | memory, a misleading error message was given. |
| 6019 | Solution: Update to ctags 3.3.2. Also fixes a few other problems. (Darren |
| 6020 | Hiebert) |
| 6021 | Files: src/ctags/* |
| 6022 | |
| 6023 | Patch 5.5.011 |
| 6024 | Problem: After "CTRL-V s", the cursor jumps back to the start, while all |
| 6025 | other operators leave the cursor on the last changed character. |
| 6026 | (Xiangjiang Ma) |
| 6027 | Solution: Position cursor on last changed character, if possible. |
| 6028 | Files: src/ops.c |
| 6029 | |
| 6030 | Patch 5.5.012 |
| 6031 | Problem: Using CTRL-] in Visual mode doesn't work when the text includes a |
| 6032 | space (just where it's useful). (Stefan Bittner) |
| 6033 | Solution: Don't escape special characters in a tag name with a backslash. |
| 6034 | Files: src/normal.c |
| 6035 | |
| 6036 | Patch 5.5.013 |
| 6037 | Problem: The ":append" and ":insert" commands allow using a leading |
| 6038 | backslash in a line. The ":source" command concatenates those |
| 6039 | lines. (Heinlein) |
| 6040 | Solution: Add the 'C' flag in 'cpoptions' to switch off concatenation. |
| 6041 | Files: src/ex_docmd.c, src/option.h, runtime/doc/options.txt, |
| 6042 | runtime/filetype.vim, runtime/scripts.vim |
| 6043 | |
| 6044 | Patch 5.5.014 |
| 6045 | Problem: When executing a register with ":@", the ":append" command would |
| 6046 | get text lines with a ':' prepended. (Heinlein) |
| 6047 | Solution: Remove the ':' characters. |
| 6048 | Files: src/ex_docmd.c, src/ex_getln.c, src/globals.h |
| 6049 | |
| 6050 | Patch 5.5.015 |
| 6051 | Problem: When using ":g/pat/p", it's hard to see where the output starts, |
| 6052 | the ":g" command is overwritten. Vi keeps the ":g" command. |
| 6053 | Solution: Keep the ":g" command, but allow overwriting it with the report |
| 6054 | for the number of changes. |
| 6055 | Files: src/ex_cmds.c |
| 6056 | |
| 6057 | Patch 5.5.016 (extra) |
| 6058 | Problem: Win32: Using regedit to install Vim in the popup menu requires the |
| 6059 | user to confirm this in a dialog. |
| 6060 | Solution: Use "regedit /s" to avoid the dialog |
| 6061 | Files: src/dosinst.c |
| 6062 | |
| 6063 | Patch 5.5.017 |
| 6064 | Problem: If an error occurs when closing the current window, Vim could get |
| 6065 | stuck in the error handling. |
| 6066 | Solution: Don't set curwin to NULL when closing the current window. |
| 6067 | Files: src/window.c |
| 6068 | |
| 6069 | Patch 5.5.018 |
| 6070 | Problem: Absolute paths in shell scripts do not always work. |
| 6071 | Solution: Use /usr/bin/env to find out the path. |
| 6072 | Files: runtime/doc/vim2html.pl, runtime/tools/efm_filter.pl, |
| 6073 | runtime/tools/shtags.pl |
| 6074 | |
| 6075 | Patch 5.5.019 |
| 6076 | Problem: A function call in 'statusline' stops using ":q" twice from |
| 6077 | exiting, when the last argument hasn't been edited. |
| 6078 | Solution: Don't decrement quitmore when executing a function. (Madsen) |
| 6079 | Files: src/ex_docmd.c |
| 6080 | |
| 6081 | Patch 5.5.020 |
| 6082 | Problem: When the output of CTRL-D completion in the commandline goes all |
| 6083 | the way to the last column, there is an empty line. |
| 6084 | Solution: Don't add a newline when the cursor wrapped already. (Madsen) |
| 6085 | Files: src/ex_getln.c |
| 6086 | |
| 6087 | Patch 5.5.021 |
| 6088 | Problem: When checking if a file name in the tags file is relative, |
| 6089 | environment variables were not expanded. |
| 6090 | Solution: Expand the file name before checking if it is relative. (Madsen) |
| 6091 | Files: src/tag.c |
| 6092 | |
| 6093 | Patch 5.5.022 |
| 6094 | Problem: When setting or resetting 'paste' the ruler wasn't updated. |
| 6095 | Solution: Update the status lines when 'ruler' changes because of 'paste'. |
| 6096 | Files: src/option.c |
| 6097 | |
| 6098 | Patch 5.5.023 |
| 6099 | Problem: When editing a new file and autocommands change the cursor |
| 6100 | position, the cursor was moved back to the first non-white, unless |
| 6101 | 'startofline' was reset. |
| 6102 | Solution: Keep the new column, just like the line number. |
| 6103 | Files: src/ex_cmds.c |
| 6104 | |
| 6105 | Patch 5.5.024 (extra) |
| 6106 | Problem: Win32 GUI: When using confirm() to put up a dialog without a |
| 6107 | default button, the dialog would not have keyboard focus. |
| 6108 | (Krishna) |
| 6109 | Solution: Always set focus to the dialog window. Only set focus to a button |
| 6110 | when a default one is specified. |
| 6111 | Files: src/gui_w32.c |
| 6112 | |
| 6113 | Patch 5.5.025 |
| 6114 | Problem: When using "keepend" in a syntax region, a contained match that |
| 6115 | includes the end-of-line could still force that region to |
| 6116 | continue, if there is another contained match in between. |
| 6117 | Solution: Check the keepend_level in check_state_ends(). |
| 6118 | Files: src/syntax.c |
| 6119 | |
| 6120 | Patch 5.5.026 |
| 6121 | Problem: When starting Vim in a white-on-black xterm, with 'bg' set to |
| 6122 | "dark", and then starting the GUI with ":gui", setting 'bg' to |
| 6123 | "light" in the gvimrc, the highlighting isn't set. (Tsjokwing) |
| 6124 | Solution: Set the highlighting when 'bg' is changed in the gvimrc, even |
| 6125 | though full_screen isn't set. |
| 6126 | Files: src/option.c |
| 6127 | |
| 6128 | Patch 5.5.027 |
| 6129 | Problem: Unix: os_unix.c doesn't compile when XTERM_CLIP is used but |
| 6130 | WANT_TITLE isn't. (Barnum) |
| 6131 | Solution: Move a few functions that are used by the X11 title and clipboard |
| 6132 | and put another "#if" around it. |
| 6133 | Files: src/os_unix.c |
| 6134 | |
| 6135 | Patch 5.5.028 (extra) |
| 6136 | Problem: Win32 GUI: When a file is dropped on Win32 gvim while at the ":" |
| 6137 | prompt, the file is edited but the command line is actually still |
| 6138 | there, the cursor goes back to command line on the next command. |
| 6139 | (Krishna) |
| 6140 | Solution: When dropping a file or directory on gvim while at the ":" prompt, |
| 6141 | insert the name of the file/directory. Allows using the |
| 6142 | file/directory name for any Ex command. |
| 6143 | Files: src/gui_w32.c |
| 6144 | |
| 6145 | Patch 5.5.029 |
| 6146 | Problem: "das" at the end of the file didn't delete the last character of |
| 6147 | the sentence. |
| 6148 | Solution: When there is no character after the sentence, make the operation |
| 6149 | inclusive in current_sent(). |
| 6150 | Files: src/search.c |
| 6151 | |
| 6152 | Patch 5.5.030 |
| 6153 | Problem: Unix: in os_unix.c, "term_str" is used, which is also defined in |
| 6154 | vim.h as a macro. (wuxin) |
| 6155 | Solution: Renamed "term_str" to "buf" in do_xterm_trace(). |
| 6156 | Files: src/os_unix.c |
| 6157 | |
| 6158 | Patch 5.5.031 (extra) |
| 6159 | Problem: Win32 GUI: When exiting Windows, gvim will leave swap files behind |
| 6160 | and will be killed ungracefully. (Krishna) |
| 6161 | Solution: Catch the WM_QUERYENDSESSION and WM_ENDSESSION messages and try to |
| 6162 | exit gracefully. Allow the user to cancel the shutdown if there |
| 6163 | is a changed buffer. |
| 6164 | Files: src/gui_w32.c |
| 6165 | |
| 6166 | Patch 5.5.032 |
| 6167 | Problem: Patch 5.5.025 wasn't right. And C highlighting was still not |
| 6168 | working correctly for a #define. |
| 6169 | Solution: Added "excludenl" argument to ":syntax", to be able not to extend |
| 6170 | a containing item when there is a match with the end-of-line. |
| 6171 | Files: src/syntax.c, runtime/doc/syntax.txt, runtime/syntax/c.vim |
| 6172 | |
| 6173 | Patch 5.5.033 |
| 6174 | Problem: When reading from stdin, a long line in viminfo would mess up the |
| 6175 | file message. readfile() uses IObuff for keep_msg, which could be |
| 6176 | overwritten by anyone. |
| 6177 | Solution: Copy the message from IObuff to msg_buf and set keep_msg to that. |
| 6178 | Also change vim_fgets() to not use IObuff any longer. |
| 6179 | Files: src/fileio.c |
| 6180 | |
| 6181 | Patch 5.5.034 |
| 6182 | Problem: "gvim -rv" caused a crash. Using 't_Co' before it's set. |
| 6183 | Solution: Don't try to initialize the highlighting before it has been |
| 6184 | initialized from main(). |
| 6185 | Files: src/syntax.c |
| 6186 | |
| 6187 | Patch 5.5.035 |
| 6188 | Problem: GTK with XIM: Resizing with status area was messy, and |
| 6189 | ":set guioptions+=b" didn't work. |
| 6190 | Solution: Make status area a separate widget, but not a separate window. |
| 6191 | (Chi-Deok Hwang) |
| 6192 | Files: src/gui_gtk_f.c, src/gui_gtk_x11.c, src/multbyte.c |
| 6193 | |
| 6194 | Patch 5.5.036 |
| 6195 | Problem: The GZIP_read() function in $VIMRUNTIME/vimrc_example.vim to |
| 6196 | uncompress a file did not do detection for 'fileformat'. This is |
| 6197 | because the filtering is done with 'binary' set. |
| 6198 | Solution: Split the filtering into separate write, filter and read commands. |
| 6199 | Files: runtime/vimrc_example.vim |
| 6200 | |
| 6201 | Patch 5.5.037 |
| 6202 | Problem: The "U" command didn't mark the buffer as changed. (McCormack) |
| 6203 | Solution: Set the 'modified' flag when using "U". |
| 6204 | Files: src/undo.c |
| 6205 | |
| 6206 | Patch 5.5.038 |
| 6207 | Problem: When typing a long ":" command, so that the screen scrolls up, |
| 6208 | causes the hit-enter prompt, even though the user just typed |
| 6209 | return to execute the command. |
| 6210 | Solution: Reset need_wait_return if (part of) the command was typed in |
| 6211 | getcmdline(). |
| 6212 | Files: src/ex_getln.c |
| 6213 | |
| 6214 | Patch 5.5.039 |
| 6215 | Problem: When using a custom status line, "%a" (file # of #) reports the |
| 6216 | index of the current window for all windows. |
| 6217 | Solution: Pass a window pointer to append_arg_number(), and pass the window |
| 6218 | being updated from build_stl_str_hl(). (Stephen P. Wall) |
| 6219 | Files: src/buffer.c, src/screen.c, src/proto/buffer.pro |
| 6220 | |
| 6221 | Patch 5.5.040 |
| 6222 | Problem: Multi-byte: When there is some error in xim_real_init(), it can |
| 6223 | close XIM and return. After this there can be a segv. |
| 6224 | Solution: Test "xic" for being non-NULL, don't set "xim" to NULL. Also try |
| 6225 | to find more matches for supported styles. (Sung-Hyun Nam) |
| 6226 | Files: src/multbyte.c |
| 6227 | |
| 6228 | Patch 5.5.041 |
| 6229 | Problem: X11 GUI: CTRL-_ requires the SHIFT key only on some machines. |
| 6230 | Solution: Translate CTRL-- to CTRL-_. (Robert Webb) |
| 6231 | Files: src/gui_x11.c |
| 6232 | |
| 6233 | Patch 5.5.042 |
| 6234 | Problem: X11 GUI: keys with ALT were assumed to be used for the menu, even |
| 6235 | when the menu has been disabled by removing 'm' from 'guioptions'. |
| 6236 | Solution: Ignore keys with ALT only when gui.menu_is_active is set. (Raf) |
| 6237 | Files: src/gui_x11.c |
| 6238 | |
| 6239 | Patch 5.5.043 |
| 6240 | Problem: GTK: Handling of fontset fonts was not right when 'guifontset' |
| 6241 | contains exactly 14 times '-'. |
| 6242 | Solution: Avoid setting fonts when working with a fontset. (Sung-Hyun Nam) |
| 6243 | Files: src/gui_gtk_x11.c |
| 6244 | |
| 6245 | Patch 5.5.044 |
| 6246 | Problem: pltags.pl contains an absolute path "/usr/local/bin/perl". That |
| 6247 | might not work everywhere. |
| 6248 | Solution: Use "/usr/bin/env perl" instead. |
| 6249 | Files: runtime/tools/pltags.pl |
| 6250 | |
| 6251 | Patch 5.5.045 |
| 6252 | Problem: Using "this_session" variable does not work, requires preceding it |
| 6253 | with "v:". Default filename for ":mksession" isn't mentioned |
| 6254 | in the docs. (Fisher) |
| 6255 | Solution: Support using "this_session" to be backwards compatible. |
| 6256 | Files: src/eval.c, runtime/doc/options.txt |
| 6257 | |
| 6258 | Patch 5.5.046 (extra) |
| 6259 | Problem: VMS: problems with path and filename. |
| 6260 | Solution: Truncate file name at last ';', etc. (Zoltan Arpadffy) |
| 6261 | Files: src/buffer.c, src/fileio.c, src/gui_motif.c, src/os_vms.c, |
| 6262 | src/proto/os_vms.pro |
| 6263 | |
| 6264 | Patch 5.5.047 |
| 6265 | Problem: VMS: Crash when using the popup menu |
| 6266 | Solution: Turn the #define MENU_MODE_CHARS into an array. (Arpadffy) |
| 6267 | Files: src/structs.h, src/menu.c |
| 6268 | |
| 6269 | Patch 5.5.048 |
| 6270 | Problem: HP-UX 11: Compiling doesn't work, because both string.h and |
| 6271 | strings.h are included. (Squassabia) |
| 6272 | Solution: The configure test for including both string.h and strings.h |
| 6273 | must include <Xm/Xm.h> first, because it causes problems. |
| 6274 | Files: src/configure.in, src/configure, src/config.h.in |
| 6275 | |
| 6276 | Patch 5.5.049 |
| 6277 | Problem: Unix: When installing Vim, the protection bits of files might be |
| 6278 | influenced by the umask. |
| 6279 | Solution: Add $(FILEMOD) to Makefile. (Shetye) |
| 6280 | Files: src/Makefile |
| 6281 | |
| 6282 | Patch 5.5.050 |
| 6283 | Problem: "z+" and "z^" commands are missing. |
| 6284 | Solution: Implemented "z+" and "z^". |
| 6285 | Files: src/normal.c, runtime/doc/scroll.txt, runtime/doc/index.txt |
| 6286 | |
| 6287 | Patch 5.5.051 |
| 6288 | Problem: Several Unix systems have a problem with the optimization limits |
| 6289 | check in configure. |
| 6290 | Solution: Removed the configure check, let the user add it manually in |
| 6291 | Makefile or the environment. |
| 6292 | Files: src/configure.in, src/configure, src/Makefile |
| 6293 | |
| 6294 | Patch 5.5.052 |
| 6295 | Problem: Crash when using a cursor key at the ATTENTION prompt. (Alberani) |
| 6296 | Solution: Ignore special keys at the console dialog. Also ignore characters |
| 6297 | > 255 for other uses of tolower() and toupper(). |
| 6298 | Files: src/menu.c, src/message.c, src/misc2.c |
| 6299 | |
| 6300 | Patch 5.5.053 |
| 6301 | Problem: Indenting is wrong after a function when 'cino' has "fs". Another |
| 6302 | problem when 'cino' has "{s". |
| 6303 | Solution: Put line after closing "}" of a function at the left margin. |
| 6304 | Apply ind_open_extra in the right way after a '{'. |
| 6305 | Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok |
| 6306 | |
| 6307 | Patch 5.5.054 |
| 6308 | Problem: Unix: ":e #" doesn't work if the alternate file name contains a |
| 6309 | space or backslash. (Hudacek) |
| 6310 | Solution: When replacing "#", "%" or other items that stand for a file name, |
| 6311 | prepend a backslash before special characters. |
| 6312 | Files: src/ex_docmd.c |
| 6313 | |
| 6314 | Patch 5.5.055 |
| 6315 | Problem: Using "<C-V>$r-" in blockwise Visual mode replaces one character |
| 6316 | beyond the end of the line. (Zivkov) |
| 6317 | Solution: Only replace existing characters. |
| 6318 | Files: src/ops.c |
| 6319 | |
| 6320 | Patch 5.5.056 |
| 6321 | Problem: After "z20<CR>" messages were printed at the old command line |
| 6322 | position once. (Veselinovic) |
| 6323 | Solution: Set msg_row and msg_col when changing cmdline_row in |
| 6324 | win_setheight(). |
| 6325 | Files: src/window.c |
| 6326 | |
| 6327 | Patch 5.5.057 |
| 6328 | Problem: After "S<Esc>" it should be possible to restore the line with "U". |
| 6329 | (Veselinovic) |
| 6330 | Solution: Don't call u_clearline() in op_delete() when changing only one |
| 6331 | line. |
| 6332 | Files: src/ops.c |
| 6333 | |
| 6334 | Patch 5.5.058 |
| 6335 | Problem: Using a long search pattern and then "n" causes the hit-enter |
| 6336 | prompt. (Krishna) |
| 6337 | Solution: Truncate the echoed pattern, like other messages. Moved code for |
| 6338 | truncating from msg_attr() to msg_strtrunc(). |
| 6339 | Files: src/message.c, src/proto/message.pro, src/search.c |
| 6340 | |
| 6341 | Patch 5.5.059 |
| 6342 | Problem: GTK GUI: When $term is invalid, using "gvim" gives an error |
| 6343 | message, even though $term isn't really used. (Robbins) |
| 6344 | Solution: When the GUI is about to start, skip the error messages for a |
| 6345 | wrong $term. |
| 6346 | Files: src/term.c |
| 6347 | |
| 6348 | Patch 5.5.060 (extra) |
| 6349 | Problem: Dos 32 bit: When a directory in 'backupdir' doesn't exist, ":w" |
| 6350 | causes the file to be renamed to "axlqwqhy.ba~". (Matzdorf) |
| 6351 | Solution: The code to work around a LFN bug in Windows 95 doesn't handle a |
| 6352 | non-existing target name correctly. When renaming fails, make |
| 6353 | sure the file has its original name. Also do this for the Win32 |
| 6354 | version, although it's unlikely that it runs into this problem. |
| 6355 | Files: src/os_msdos.c, src/os_win32.c |
| 6356 | |
| 6357 | Patch 5.5.061 |
| 6358 | Problem: When using "\:" in a modeline, the backslash is included in the |
| 6359 | option value. (Mohsin) |
| 6360 | Solution: Remove one backslash before the ':' in a modeline. |
| 6361 | Files: src/buffer.c, runtime/doc/options.txt |
| 6362 | |
| 6363 | Patch 5.5.062 (extra) |
| 6364 | Problem: Win32 console: Temp files are created in the root of the current |
| 6365 | drive, which may be read-only. (Peterson) |
| 6366 | Solution: Use the same mechanism of the GUI version: Use $TMP, $TEMP or the |
| 6367 | current directory. Cleaned up vim_tempname() a bit. |
| 6368 | Files: src/fileio.c, src/os_win32.h, runtime/doc/os_dos.txt |
| 6369 | |
| 6370 | Patch 5.5.063 |
| 6371 | Problem: When using whole-line completion in Insert mode, 'cindent' is |
| 6372 | applied, even after changing the indent of the line. |
| 6373 | Solution: Don't reindent the completed line after inserting/removing indent. |
| 6374 | (Robert Webb) |
| 6375 | Files: src/edit.c |
| 6376 | |
| 6377 | Patch 5.5.064 |
| 6378 | Problem: has("sniff") doesn't work correctly. |
| 6379 | Solution: Return 1 when Vim was compiled with the +sniff feature. (Pruemmer) |
| 6380 | Files: src/eval.c |
| 6381 | |
| 6382 | Patch 5.5.065 |
| 6383 | Problem: When dropping a file on Vim, the 'shellslash' option is not |
| 6384 | effective. (Krishna) |
| 6385 | Solution: Fix the slashes in the dropped file names according to |
| 6386 | 'shellslash'. |
| 6387 | Files: src/ex_docmd.c, runtime/doc/options.txt |
| 6388 | |
| 6389 | Patch 5.5.066 |
| 6390 | Problem: For systems with backslash in file name: Setting a file name |
| 6391 | option to a value starting with "\\machine" removed a backslash. |
| 6392 | Solution: Keep the double backslash for "\\machine", but do change |
| 6393 | "\\\\machine" to "\\machine" for backwards compatibility. |
| 6394 | Files: src/option.c, runtime/doc/options.txt |
| 6395 | |
| 6396 | Patch 5.5.067 |
| 6397 | Problem: With 'hlsearch' set, the pattern "\>" doesn't highlight the first |
| 6398 | match in a line. (Benji Fisher) |
| 6399 | Solution: Fix highlighting an empty match. Also highlight the first |
| 6400 | character in an empty line for "$". |
| 6401 | Files: src/screen.c |
| 6402 | |
| 6403 | Patch 5.5.068 |
| 6404 | Problem: Crash when a ":while" is used with an argument that has an error. |
| 6405 | (Sylvain Viart) |
| 6406 | Solution: Was using an uninitialized index in the cs_line[] array. The |
| 6407 | crash only happened when the index was far off. Made sure the |
| 6408 | uninitialized index isn't used. |
| 6409 | Files: src/ex_docmd.c |
| 6410 | |
| 6411 | Patch 5.5.069 |
| 6412 | Problem: Shifting lines in blockwise Visual mode didn't set the 'modified' |
| 6413 | flag. |
| 6414 | Solution: Do set the 'modified' flag. |
| 6415 | Files: src/ops.c |
| 6416 | |
| 6417 | Patch 5.5.070 |
| 6418 | Problem: When editing a new file, creating that file outside of Vim, then |
| 6419 | editing it again, ":w" still warns for overwriting an existing |
| 6420 | file. (Nam) |
| 6421 | Solution: The BF_NEW flag in the "b_flags" field wasn't cleared properly. |
| 6422 | Files: src/buffer.c, src/fileio.c |
| 6423 | |
| 6424 | Patch 5.5.071 |
| 6425 | Problem: Using a matchgroup in a ":syn region", which is the same syntax |
| 6426 | group as the region, didn't stop a contained item from matching in |
| 6427 | the start pattern. |
| 6428 | Solution: Also push an item on the stack when the syntax ID of the |
| 6429 | matchgroup is the same as the syntax ID of the region. |
| 6430 | Files: src/syntax.c |
| 6431 | |
| 6432 | Patch 5.5.072 (extra) |
| 6433 | Problem: Dos 32 bit: When setting 'columns' to a too large value, Vim may |
| 6434 | crash, and the DOS console too. |
| 6435 | Solution: Check that the value of 'columns' isn't larger than the number of |
| 6436 | columns that the BIOS reports. |
| 6437 | Files: src/os_msdos.c, src/proto/os_msdos.pro, src/option.c |
| 6438 | |
| 6439 | Patch 5.5.073 (extra) |
| 6440 | Problem: Win 32 GUI: The Find and Find/Replace dialogs didn't show the |
| 6441 | "match case" checkbox. The Find/Replace dialog didn't handle the |
| 6442 | "match whole word" checkbox. |
| 6443 | Solution: Support the "match case" and "match whole word" checkboxes. |
| 6444 | Files: src/gui_w32.c |
| 6445 | |
| 6446 | Patch 5.6a.001 |
| 6447 | Problem: Using <C-End> with a count doesn't work like it does with "G". |
| 6448 | (Benji Fisher) |
| 6449 | Solution: Accept a count for <C-End> and <C-Home>. |
| 6450 | Files: src/normal.c |
| 6451 | |
| 6452 | Patch 5.6a.002 |
| 6453 | Problem: The script for conversion to HTML was an older version. |
| 6454 | Solution: Add support for running 2html.vim on a color terminal. |
| 6455 | Files: runtime/syntax/2html.vim |
| 6456 | |
| 6457 | Patch 5.6a.003 |
| 6458 | Problem: Defining a function inside a function didn't give an error |
| 6459 | message. A missing ":endfunction" doesn't give an error message. |
| 6460 | Solution: Allow defining a function inside a function. |
| 6461 | Files: src/eval.c, runtime/doc/eval.txt |
| 6462 | |
| 6463 | Patch 5.6a.004 |
| 6464 | Problem: A missing ":endwhile" or ":endif" doesn't give an error message. |
| 6465 | (Johannes Zellner) |
| 6466 | Solution: Check for missing ":endwhile" and ":endif" in sourced files. |
| 6467 | Add missing ":endif" in file selection macros. |
| 6468 | Files: src/ex_docmd.c, runtime/macros/file_select.vim |
| 6469 | |
| 6470 | Patch 5.6a.005 |
| 6471 | Problem: 'hlsearch' was not listed alphabetically. The value of 'toolbar' |
| 6472 | was changed when 'compatible' is set. |
| 6473 | Solution: Moved entry of 'hlsearch' in options[] table down. |
| 6474 | Don't reset 'toolbar' option to the default value when |
| 6475 | 'compatible' is set. |
| 6476 | Files: src/option.c |
| 6477 | |
| 6478 | Patch 5.6a.006 |
| 6479 | Problem: Using a backwards range inside ":if 0" gave an error message. |
| 6480 | Solution: Don't complain about a range when it is not going to be used. |
| 6481 | (Stefan Roemer) |
| 6482 | Files: src/ex_docmd.c |
| 6483 | |
| 6484 | Patch 5.6a.007 |
| 6485 | Problem: ":let" didn't show internal Vim variables. (Ron Aaron) |
| 6486 | Solution: Do show ":v" variables for ":let" and ":let v:name". |
| 6487 | Files: src/eval.c |
| 6488 | |
| 6489 | Patch 5.6a.008 |
| 6490 | Problem: Selecting a syntax from the Syntax menu gives an error message. |
| 6491 | Solution: Replace "else if" in SetSyn() with "elseif". (Ronald Schild) |
| 6492 | Files: runtime/menu.vim |
| 6493 | |
| 6494 | Patch 5.6a.009 |
| 6495 | Problem: When compiling with +extra_search but without +syntax, there is a |
| 6496 | compilation error in screen.c. (Axel Kielhorn) |
| 6497 | Solution: Adjust the #ifdef for declaring and initializing "line" in |
| 6498 | win_line(). Also solve compilation problem when +statusline is |
| 6499 | used without +eval. Another one when +cmdline_compl is used |
| 6500 | without +eval. |
| 6501 | Files: src/screen.c, src/misc2.c |
| 6502 | |
| 6503 | Patch 5.6a.010 |
| 6504 | Problem: In a function, ":startinsert!" does not append to the end of the |
| 6505 | line if a ":normal" command was used to move the cursor. (Fisher) |
| 6506 | Solution: Reset "w_set_curswant" to avoid that w_curswant is changed again. |
| 6507 | Files: src/ex_docmd.c |
| 6508 | |
| 6509 | Patch 5.6a.011 (depends on 5.6a.004) |
| 6510 | Problem: A missing ":endif" or ":endwhile" in a function doesn't give an |
| 6511 | error message. |
| 6512 | Solution: Give that error message. |
| 6513 | Files: src/ex_docmd.c |
| 6514 | |
| 6515 | Patch 5.6a.012 (depends on 5.6a.008) |
| 6516 | Problem: Some Syntax menu entries caused a hit-enter prompt. |
| 6517 | Solution: Call a function to make the command shorter. Also rename a few |
| 6518 | functions to avoid name clashes. |
| 6519 | Files: runtime/menu.vim |
| 6520 | |
| 6521 | Patch 5.6a.013 |
| 6522 | Problem: Command line completion works different when another completion |
| 6523 | was done earlier. (Johannes Zellner) |
| 6524 | Solution: Reset wim_index when starting a new completion. |
| 6525 | Files: src/ex_getln.c |
| 6526 | |
| 6527 | Patch 5.6a.014 |
| 6528 | Problem: Various warning messages when compiling and running lint with |
| 6529 | different combinations of features. |
| 6530 | Solution: Fix the warning messages. |
| 6531 | Files: src/eval.c, src/ex_cmds.c, src/ex_docmd.c, src/gui_gtk_x11.c, |
| 6532 | src/option.c, src/screen.c, src/search.c, src/syntax.c, |
| 6533 | src/feature.h, src/globals.h |
| 6534 | |
| 6535 | Patch 5.6a.015 |
| 6536 | Problem: The vimtutor command doesn't always know the value of $VIMRUNTIME. |
| 6537 | Solution: Let Vim expand $VIMRUNTIME, instead of the shell. |
| 6538 | Files: src/vimtutor |
| 6539 | |
| 6540 | Patch 5.6a.016 (extra) |
| 6541 | Problem: Mac: Window size is restricted when starting. Cannot drag the |
| 6542 | window all over the desktop. |
| 6543 | Solution: Get real screen size instead of assuming 640x400. Do not use a |
| 6544 | fixed number for the drag limits. (Axel Kielhorn) |
| 6545 | Files: src/gui_mac.c |
| 6546 | |
| 6547 | Patch 5.6a.017 |
| 6548 | Problem: The "Paste" entry in popup menu for Visual, Insert and Cmdline |
| 6549 | mode is in the wrong position. (Stol) |
| 6550 | Solution: Add priority numbers for all Paste menu entries. |
| 6551 | Files: runtime/menu.vim |
| 6552 | |
| 6553 | Patch 5.6a.018 |
| 6554 | Problem: GTK GUI: submenu priority doesn't work. |
| 6555 | Help dialog could be destroyed too soon. |
| 6556 | When closing a dialog window (e.g. the "ATTENTION" one), Vim would |
| 6557 | just hang. |
| 6558 | When GTK theme is changed, Vim doesn't adjust to the new colors. |
| 6559 | Argument for ":promptfind" isn't used. |
| 6560 | Solution: Fixed the mentioned problems. |
| 6561 | Made the dialogs look&feel nicer. |
| 6562 | Moved functions to avoid the need for a forward declaration. |
| 6563 | Fixed reentrancy of the file browser dialog. |
| 6564 | Added drag&drop support for GNOME. |
| 6565 | Init the text for the Find/replace dialog from the last used |
| 6566 | search string. Set "match whole word" toggle button correctly. |
| 6567 | Made repeat rate for drag outside of window depend on the |
| 6568 | distance from the window. (Marcin Dalecki) |
| 6569 | Made the drag in Visual mode actually work. |
| 6570 | Removed recursiveness protection from gui_mch_get_rgb(), it might |
| 6571 | cause more trouble than it solves. |
| 6572 | Files: src/ex_docmd.c, src/gui_gtk.c, src/gui_gtk_x11.c, src/ui.c, |
| 6573 | src/proto/ui.pro, src/misc2.c |
| 6574 | |
| 6575 | Patch 5.6a.019 |
| 6576 | Problem: When trying to recover through NFS, which uses a large block size, |
| 6577 | Vim might think the swap file is empty, because mf_blocknr_max is |
| 6578 | zero. (Scott McDermott) |
| 6579 | Solution: When computing the number of blocks of the file in mf_open(), |
| 6580 | round up instead of down. |
| 6581 | Files: src/memfile.c |
| 6582 | |
| 6583 | Patch 5.6a.020 |
| 6584 | Problem: GUI GTK: Could not set display for gvim. |
| 6585 | Solution: Add "-display" and "--display" arguments. (Marcin Dalecki) |
| 6586 | Files: src/gui_gtk_x11.c |
| 6587 | |
| 6588 | Patch 5.6a.021 |
| 6589 | Problem: Recovering still may not work when the block size of the device |
| 6590 | where the swap file is located is larger than 4096. |
| 6591 | Solution: Read block 0 with the minimal block size. |
| 6592 | Files: src/memline.c, src/memfile.c, src/vim.h |
| 6593 | |
| 6594 | Patch 5.6a.022 (extra) |
| 6595 | Problem: Win32 GUI: When an error in the vimrc causes a dialog to pop up |
| 6596 | (e.g., for an existing swap file), Vim crashes. (David Elins) |
| 6597 | Solution: Before showing a dialog, open the main window. |
| 6598 | Files: src/gui_w32.c |
| 6599 | |
| 6600 | Patch 5.6a.023 |
| 6601 | Problem: Using expand("%:gs??/?") causes a crash. (Ron Aaron) |
| 6602 | Solution: Check for running into the end of the string in do_string_sub(). |
| 6603 | Files: src/eval.c |
| 6604 | |
| 6605 | Patch 5.6a.024 |
| 6606 | Problem: Using an autocommand to delete a buffer when leaving it can cause |
| 6607 | a crash when jumping to a tag. (Franz Gorkotte) |
| 6608 | Solution: In do_tag(), store tagstacklen before jumping to another buffer. |
| 6609 | Check tagstackidx after jumping to another buffer. |
| 6610 | Add extra check in win_split() if tagname isn't NULL. |
| 6611 | Files: src/tag.c, src/window.c |
| 6612 | |
| 6613 | Patch 5.6a.025 (extra) |
| 6614 | Problem: Win32 GUI: The tables for toupper() and tolower() are initialized |
| 6615 | too late. (Mike Steed) |
| 6616 | Solution: Move the initialization to win32_init() and call it from main(). |
| 6617 | Files: src/main.c, src/os_w32.c, src/proto/os_w32.pro |
| 6618 | |
| 6619 | Patch 5.6a.026 |
| 6620 | Problem: When the SNiFF connection is open, shell commands hang. (Pruemmer) |
| 6621 | Solution: Skip a second wait() call if waitpid() already detected that the |
| 6622 | child has exited. |
| 6623 | Files: src/os_unix.c |
| 6624 | |
| 6625 | Patch 5.6a.027 (extra) |
| 6626 | Problem: Win32 GUI: The "Edit with Vim" popup menu entry causes problems |
| 6627 | for the Office toolbar. |
| 6628 | Solution: Use a shell extension dll. (Tianmiao Hu) |
| 6629 | Added it to the install and uninstal programs, replaces the old |
| 6630 | "Edit with Vim" menu registry entries. |
| 6631 | Files: src/dosinst.c, src/uninstal.c, gvimext/*, runtime/doc/gui_w32.txt |
| 6632 | |
| 6633 | Patch 5.6a.028 (extra) |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 6634 | Problem: Win32 GUI: Dialogs and tear-off menus can't handle multibyte |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 6635 | characters. |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 6636 | Solution: Adjust nCopyAnsiToWideChar() to handle multibyte characters |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 6637 | correctly. |
| 6638 | Files: src/gui_w32.c |
| 6639 | |
| 6640 | ============================================================================== |
| 6641 | VERSION 5.7 *version-5.7* |
| 6642 | |
| 6643 | Version 5.7 is a bug-fix version of 5.6. |
| 6644 | |
| 6645 | Changed *changed-5.7* |
| 6646 | ------- |
| 6647 | |
| 6648 | Renamed src/INSTALL.mac to INSTALL_mac.txt to avoid it being recognized with a |
| 6649 | wrong file type. Also renamed src/INSTALL.amiga to INSTALL_ami.txt. |
| 6650 | |
| 6651 | |
| 6652 | Added *added-5.7* |
| 6653 | ----- |
| 6654 | |
| 6655 | New syntax files: |
| 6656 | stp Stored Procedures (Jeff Lanzarotta) |
| 6657 | snnsnet, snnspat, snnsres SNNS (Davide Alberani) |
| 6658 | mel MEL (Robert Minsk) |
| 6659 | ruby Ruby (Mirko Nasato) |
| 6660 | tli TealInfo (Kurt W. Andrews) |
| 6661 | ora Oracle config file (Sandor Kopanyi) |
| 6662 | abaqus Abaqus (Carl Osterwisch) |
| 6663 | jproperties Java Properties (Simon Baldwin) |
| 6664 | apache Apache config (Allan Kelly) |
| 6665 | csp CSP (Jan Bredereke) |
| 6666 | samba Samba config (Rafael Garcia-Suarez) |
| 6667 | kscript KDE script (Thomas Capricelli) |
| 6668 | hb Hyper Builder (Alejandro Forero Cuervo) |
| 6669 | fortran Fortran (rewritten) (Ajit J. Thakkar) |
| 6670 | sml SML (Fabrizio Zeno Cornelli) |
| 6671 | cvs CVS commit (Matt Dunford) |
| 6672 | aspperl ASP Perl (Aaron Hope) |
| 6673 | bc BC calculator (Vladimir Scholtz) |
| 6674 | latte Latte (Nick Moffitt) |
| 6675 | wml WML (Gerfried Fuchs) |
| 6676 | |
| 6677 | Included Exuberant ctags 3.5.1. (Darren Hiebert) |
| 6678 | |
| 6679 | "display" and "fold" arguments for syntax items. For future extension, they |
| 6680 | are ignored now. |
| 6681 | |
| 6682 | strftime() function for the Macintosh. |
| 6683 | |
| 6684 | macros/explorer.vim: A file browser script (M A Aziz Ahmed) |
| 6685 | |
| 6686 | |
| 6687 | Fixed *fixed-5.7* |
| 6688 | ----- |
| 6689 | |
| 6690 | The 16 bit MS-DOS version is now compiled with Bcc 3.1 instead of 4.0. The |
| 6691 | executable is smaller. |
| 6692 | |
| 6693 | When a "make test" failed, the output file was lost. Rename it to |
| 6694 | test99.failed to be able to see what went wrong. |
| 6695 | |
| 6696 | After sourcing bugreport.vim, it's not clear that bugreport.txt has been |
| 6697 | written in the current directory. Edit bugreport.txt to avoid that. |
| 6698 | |
| 6699 | Adding IME support when using Makefile.w32 didn't work. (Taro Muraoka) |
| 6700 | |
| 6701 | Win32 console: Mouse drags were passed on even when the mouse didn't move. |
| 6702 | |
| 6703 | Perl interface: In Buffers(), type of argument to SvPV() was int, should be |
| 6704 | STRLEN. (Tony Leneis) |
| 6705 | |
| 6706 | Problem with prototype for index() on AIX 4.3.0. Added check for _AIX43 in |
| 6707 | os_unix.h. (Jake Hamby) |
| 6708 | |
| 6709 | Mappings in mswin.vim could break when some commands are mapped. Add "nore" |
| 6710 | to most mappings to avoid re-mapping. |
| 6711 | |
| 6712 | modify_fname() made a copy of a file name for ":p" when it already was a full |
| 6713 | path name, which is a bit slow. |
| 6714 | |
| 6715 | Win32 with Borland C++ 5.5: Pass the path to the compiler on to xxd and ctags, |
| 6716 | to avoid depending on $PATH. Fixed "make clean". |
| 6717 | |
| 6718 | Many fixes to Macintosh specific parts: (mostly by Dany StAmant) |
| 6719 | - Only one Help menu. |
| 6720 | - No more crash when removing a menu item. |
| 6721 | - Support as External Editor for Codewarrior (still some little glitches). |
| 6722 | - Popup menu support. |
| 6723 | - Fixed crash when pasting after application switch. |
| 6724 | - Color from rgb.txt properly displayed. |
| 6725 | - 'isprint' default includes all chars above '~'. (Axel Kielhorn) |
| 6726 | - mac_expandpath() was leaking memory. |
| 6727 | - Add digraphs table. (Axel Kielhorn) |
| 6728 | - Multi-byte support: (Kenichi Asai) |
| 6729 | Switch keyscript when going in/out of Insert mode. |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 6730 | Draw multibyte character correctly. |
| 6731 | Don't use mblen() but highest bit of char to detect multibyte char. |
| 6732 | Display value of multibyte in statusline (also for other systems). |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 6733 | - mouse button was not initialized properly to MOUSE_LEFT when |
| 6734 | USE_CTRLCLICKMENU not defined. |
| 6735 | - With Japanese SJIS characters: Make "w", "b", and "e" work |
| 6736 | properly. (Kenichi Asai) |
| 6737 | - Replaced old CodeWarrior file os_mac.CW9.hqx with os_mac.cw5.sit.hqx. |
| 6738 | |
| 6739 | Fixes for VMS: (Zoltan Arpadffy) (also see patch 5.6.045 below) |
| 6740 | - Added Makefile_vms.mms and vimrc.vms to src/testdir to be able to run the |
| 6741 | tests. |
| 6742 | - Various fixes. |
| 6743 | - Set 'undolevels' to 1000 by default. |
| 6744 | - Made mch_settitle() equivalent to the one in os_unix.c. |
| 6745 | |
| 6746 | RiscOS: A few prototypes for os_riscos.c were outdated. Generate prototypes |
| 6747 | automatically. |
| 6748 | |
| 6749 | |
| 6750 | Previously released patches: |
| 6751 | |
| 6752 | Patch 5.6.001 |
| 6753 | Problem: When using "set bs=0 si cin", Inserting "#<BS>" or "}<BS>" which |
| 6754 | reduces the indent doesn't delete the "#" or "}". (Lorton) |
| 6755 | Solution: Adjust ai_col in ins_try_si(). |
| 6756 | Files: src/edit.c |
| 6757 | |
| 6758 | Patch 5.6.002 |
| 6759 | Problem: When using the vim.vim syntax file, a comment with all uppercase |
| 6760 | characters causes a hang. |
| 6761 | Solution: Adjust pattern for vimCommentTitle (Charles Campbell) |
| 6762 | Files: runtime/syntax/vim.vim |
| 6763 | |
| 6764 | Patch 5.6.003 |
| 6765 | Problem: GTK GUI: Loading a user defined toolbar bitmap gives a warning |
| 6766 | about the colormap. Probably because the window has not been |
| 6767 | opened yet. |
| 6768 | Solution: Use gdk_pixmap_colormap_create_from_xpm() to convert the xpm file. |
| 6769 | (Keith Radebaugh) |
| 6770 | Files: src/gui_gtk.c |
| 6771 | |
| 6772 | Patch 5.6.004 (extra) |
| 6773 | Problem: Win32 GUI with IME: When setting 'guifont' to "*", the font |
| 6774 | requester appears twice. |
| 6775 | Solution: In gui_mch_init_font() don't call get_logfont() but copy |
| 6776 | norm_logfont from fh. (Yasuhiro Matsumoto) |
| 6777 | Files: src/gui_w32.c |
| 6778 | |
| 6779 | Patch 5.6.005 |
| 6780 | Problem: When 'winminheight' is zero, CTRL-W - with a big number causes a |
| 6781 | crash. (David Kotchan) |
| 6782 | Solution: Check for negative window height in win_setheight(). |
| 6783 | Files: src/window.c |
| 6784 | |
| 6785 | Patch 5.6.006 |
| 6786 | Problem: GTK GUI: Bold font cannot always be used. Memory is freed too |
| 6787 | early in gui_mch_init_font(). |
| 6788 | Solution: Move call to g_free() to after where sdup is used. (Artem Hodyush) |
| 6789 | Files: src/gui_gtk_x11.c |
| 6790 | |
| 6791 | Patch 5.6.007 (extra) |
| 6792 | Problem: Win32 IME: Font is not changed when screen font is changed. And |
| 6793 | IME composition window does not trace the cursor. |
| 6794 | Solution: Initialize IME font. When cursor is moved, set IME composition |
| 6795 | window with ImeSetCompositionWindow(). Add call to |
| 6796 | ImmReleaseContext() in several places. (Taro Muraoka) |
| 6797 | Files: src/gui.c, src/gui_w32.c, src/proto/gui_w32.pro |
| 6798 | |
| 6799 | Patch 5.6.008 (extra) |
| 6800 | Problem: Win32: When two files exist with the same name but different case |
| 6801 | (through NFS or Samba), fixing the file name case could cause the |
| 6802 | wrong one to be edited. |
| 6803 | Solution: Prefer a perfect match above a match while ignoring case in |
| 6804 | fname_case(). (Flemming Madsen) |
| 6805 | Files: src/os_win32.c |
| 6806 | |
| 6807 | Patch 5.6.009 (extra) |
| 6808 | Problem: Win32 GUI: Garbage in Windows Explorer help line when selecting |
| 6809 | "Edit with Vim" popup menu entry. |
| 6810 | Solution: Only return the help line when called with the GCS_HELPTEXT flag. |
| 6811 | (Tianmiao Hu) |
| 6812 | Files: GvimExt/gvimext.cpp |
| 6813 | |
| 6814 | Patch 5.6.010 |
| 6815 | Problem: A file name which contains a TAB was not read correctly from the |
| 6816 | viminfo file and the ":ls" listing was not aligned properly. |
| 6817 | Solution: Parse the buffer list lines in the viminfo file from the end |
| 6818 | backwards. Count a Tab for two characters to align the ":ls" list. |
| 6819 | Files: src/buffer.c |
| 6820 | |
| 6821 | Patch 5.6.011 |
| 6822 | Problem: When 'columns' is huge (using a tiny font) and 'statusline' is |
| 6823 | used, Vim can crash. |
| 6824 | Solution: Limit maxlen to MAXPATHL in win_redr_custom(). (John Mullin) |
| 6825 | Files: src/screen.c |
| 6826 | |
| 6827 | Patch 5.6.012 |
| 6828 | Problem: When using "zsh" for /bin/sh, toolcheck may hang until "exit" is |
| 6829 | typed. (Kuratczyk) |
| 6830 | Solution: Add "-c exit" when checking for the shell version. |
| 6831 | Files: src/toolcheck |
| 6832 | |
| 6833 | Patch 5.6.013 |
| 6834 | Problem: Multibyte char in tooltip is broken. |
| 6835 | Solution: Consider multibyte char in replace_termcodes(). (Taro Muraoka) |
| 6836 | Files: src/term.c |
| 6837 | |
| 6838 | Patch 5.6.014 |
| 6839 | Problem: When cursor is at the end of line and the character under cursor |
| 6840 | is a multibyte character, "yl" doesn't yank 1 multibyte-char. |
| 6841 | (Takuhiro Nishioka) |
| 6842 | Solution: Recognize a multibyte-char at end-of-line correctly in oneright(). |
| 6843 | (Taro Muraoka) |
| 6844 | Also: make "+quickfix" in ":version" output appear alphabetically. |
| 6845 | Files: src/edit.c |
| 6846 | |
| 6847 | Patch 5.6.015 |
| 6848 | Problem: New xterm delete key sends <Esc>[3~ by default. |
| 6849 | Solution: Added <kDel> and <kIns> to make the set of keypad keys complete. |
| 6850 | Files: src/edit.c, src/ex_getln.c, src/keymap.h, src/misc1.c, |
| 6851 | src/misc2.c, src/normal.c, src/os_unix.c, src/term.c |
| 6852 | |
| 6853 | Patch 5.6.016 |
| 6854 | Problem: When deleting a search string from history from inside a mapping, |
| 6855 | another entry is deleted too. (Benji Fisher) |
| 6856 | Solution: Reset last_maptick when deleting the last entry of the search |
| 6857 | history. Also: Increment maptick when starting a mapping from |
| 6858 | typed characters to avoid a just added search string being |
| 6859 | overwritten or removed from history. |
| 6860 | Files: src/ex_getln.c, src/getchar.c |
| 6861 | |
| 6862 | Patch 5.6.017 |
| 6863 | Problem: ":s/e/\^M/" should replace an "e" with a CTRL-M, not split the |
| 6864 | line. (Calder) |
| 6865 | Solution: Replace the backslash with a CTRL-V internally. (Stephen P. Wall) |
| 6866 | Files: src/ex_cmds.c |
| 6867 | |
| 6868 | Patch 5.6.018 |
| 6869 | Problem: ":help [:digit:]" takes a long time to jump to the wrong place. |
| 6870 | Solution: Insert a backslash to avoid the special meaning of '[]'. |
| 6871 | Files: src/ex_cmds.c |
| 6872 | |
| 6873 | Patch 5.6.019 |
| 6874 | Problem: "snd.c", "snd.java", etc. were recognized as "mail" filetype. |
| 6875 | Solution: Make pattern for mail filetype more strict. |
| 6876 | Files: runtime/filetype.vim |
| 6877 | |
| 6878 | Patch 5.6.020 (extra) |
| 6879 | Problem: The DJGPP version eats processor time (Walter Briscoe). |
| 6880 | Solution: Call __dpmi_yield() in the busy-wait loop. |
| 6881 | Files: src/os_msdos.c |
| 6882 | |
| 6883 | Patch 5.6.021 |
| 6884 | Problem: When 'selection' is "exclusive", a double mouse click in Insert |
| 6885 | mode doesn't select last char in line. (Lutz) |
| 6886 | Solution: Allow leaving the cursor on the NUL past the line in this case. |
| 6887 | Files: src/edit.c |
| 6888 | |
| 6889 | Patch 5.6.022 |
| 6890 | Problem: ":e \~<Tab>" expands to ":e ~\$ceelen", which doesn't work. |
| 6891 | Solution: Re-insert the backslash before the '~'. |
| 6892 | Files: src/ex_getln.c |
| 6893 | |
| 6894 | Patch 5.6.023 (extra) |
| 6895 | Problem: Various warnings for the Ming compiler. |
| 6896 | Solution: Changes to avoid the warnings. (Bill McCarthy) |
| 6897 | Files: src/ex_cmds.c, src/gui_w32.c, src/os_w32exe.c, src/os_win32.c, |
| 6898 | src/syntax.c, src/vim.rc |
| 6899 | |
| 6900 | Patch 5.6.024 (extra) |
| 6901 | Problem: Win32 console: Entering CTRL-_ requires the shift key. (Kotchan) |
| 6902 | Solution: Specifically catch keycode 0xBD, like the GUI. |
| 6903 | Files: src/os_win32.c |
| 6904 | |
| 6905 | Patch 5.6.025 |
| 6906 | Problem: GTK GUI: Starting the GUI could be interrupted by a SIGWINCH. |
| 6907 | (Nils Lohner) |
| 6908 | Solution: Repeat the read() call to get the gui_in_use value when |
| 6909 | interrupted by a signal. |
| 6910 | Files: src/gui.c |
| 6911 | |
| 6912 | Patch 5.6.026 (extra) |
| 6913 | Problem: Win32 GUI: Toolbar bitmaps are searched for in |
| 6914 | $VIMRUNTIME/bitmaps, while GTK looks in $VIM/bitmaps. (Keith |
| 6915 | Radebaugh) |
| 6916 | Solution: Use $VIM/bitmaps for both, because these are not part of the |
| 6917 | distribution but defined by the user. |
| 6918 | Files: src/gui_w32.c, runtime/doc/gui.txt |
| 6919 | |
| 6920 | Patch 5.6.027 |
| 6921 | Problem: TCL: Crash when using a Tcl script (reported for Win32). |
| 6922 | Solution: Call Tcl_FindExecutable() in main(). (Brent Fulgham) |
| 6923 | Files: src/main.c |
| 6924 | |
| 6925 | Patch 5.6.028 |
| 6926 | Problem: Xterm patch level 126 sends codes for mouse scroll wheel. |
| 6927 | Fully works with xterm patch level 131. |
| 6928 | Solution: Recognize the codes for button 4 (0x60) and button 5 (0x61). |
| 6929 | Files: src/term.c |
| 6930 | |
| 6931 | Patch 5.6.029 |
| 6932 | Problem: GTK GUI: Shortcut keys cannot be used for a dialog. (Johannes |
| 6933 | Zellner) |
| 6934 | Solution: Add support for shortcut keys. (Marcin Dalecki) |
| 6935 | Files: src/gui_gtk.c |
| 6936 | |
| 6937 | Patch 5.6.030 |
| 6938 | Problem: When closing a window and 'ea' is set, Vim can crash. (Yasuhiro |
| 6939 | Matsumoto) |
| 6940 | Solution: Set "curbuf" to a valid value in win_close(). |
| 6941 | Files: src/window.c |
| 6942 | |
| 6943 | Patch 5.6.031 |
| 6944 | Problem: Multi-byte: When a double-byte character ends in CSI, Vim waits |
| 6945 | for another character to be typed. |
| 6946 | Solution: Recognize the CSI as the second byte of a character and don't wait |
| 6947 | for another one. (Yasuhiro Matsumoto) |
| 6948 | Files: src/getchar.c |
| 6949 | |
| 6950 | Patch 5.6.032 |
| 6951 | Problem: Functions with an argument that is a line number don't all accept |
| 6952 | ".", "$", etc. (Ralf Arens) |
| 6953 | Solution: Add get_art_lnum() and use it for setline(), line2byte() and |
| 6954 | synID(). |
| 6955 | Files: src/eval.c |
| 6956 | |
| 6957 | Patch 5.6.033 |
| 6958 | Problem: Multi-byte: "f " sometimes skips to the second space. (Sung-Hyun |
| 6959 | Nam) |
| 6960 | Solution: Change logic in searchc() to skip trailing byte of a double-byte |
| 6961 | character. |
| 6962 | Also: Ask for second byte when searching for double-byte |
| 6963 | character. (Park Chong-Dae) |
| 6964 | Files: src/search.c |
| 6965 | |
| 6966 | Patch 5.6.034 (extra) |
| 6967 | Problem: Compiling with Borland C++ 5.5 fails on tolower() and toupper(). |
| 6968 | Solution: Use TO_LOWER() and TO_UPPER() instead. Also adjust the Makefile |
| 6969 | to make using bcc 5.5 easier. |
| 6970 | Files: src/edit.c, src/ex_docmd.c, src/misc1.c, src/Makefile.bor |
| 6971 | |
| 6972 | Patch 5.6.035 |
| 6973 | Problem: Listing the"+comments" feature in the ":version" output depended |
| 6974 | on the wrong ID. (Stephen P. Wall) |
| 6975 | Solution: Change "CRYPTV" to "COMMENTS". |
| 6976 | Files: src/version.c |
| 6977 | |
| 6978 | Patch 5.6.036 |
| 6979 | Problem: GTK GUI: Copy/paste text doesn't work between gvim and Eterm. |
| 6980 | Solution: Support TEXT and COMPOUND_TEXT selection targets. (ChiDeok Hwang) |
| 6981 | Files: src/gui_gtk_x11.c |
| 6982 | |
| 6983 | Patch 5.6.037 |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 6984 | Problem: Multi-byte: Can't use "f" command with multibyte character in GUI. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 6985 | Solution: Enable XIM in Normal mode for the GUI. (Sung-Hyun Nam) |
| 6986 | Files: src/gui_gtk_x11.c, src/multbyte.c |
| 6987 | |
| 6988 | Patch 5.6.038 |
| 6989 | Problem: Multi-clicks in GUI are interpreted as a mouse wheel click. When |
| 6990 | 'ttymouse' is "xterm" a mouse click is interpreted as a mouse |
| 6991 | wheel click. |
| 6992 | Solution: Don't recognize the mouse wheel in check_termcode() in the GUI. |
| 6993 | Use 0x43 for a mouse drag in do_xterm_trace(), not 0x63. |
| 6994 | Files: src/term.c, src/os_unix.c |
| 6995 | |
| 6996 | Patch 5.6.039 |
| 6997 | Problem: Motif GUI under KDE: When trying to logout, Vim hangs up the |
| 6998 | system. (Hermann Rochholz) |
| 6999 | Solution: When handling the WM_SAVE_YOURSELF event, set the WM_COMMAND |
| 7000 | property of the window to let the session manager know we finished |
| 7001 | saving ourselves. |
| 7002 | Files: src/gui_x11.c |
| 7003 | |
| 7004 | Patch 5.6.040 |
| 7005 | Problem: When using ":s" command, matching the regexp is done twice. |
| 7006 | Solution: After copying the matched line, adjust the pointers instead of |
| 7007 | finding the match again. (Loic Grenie) Added vim_regnewptr(). |
| 7008 | Files: src/ex_cmds.c, src/regexp.c, src/proto/regexp.pro |
| 7009 | |
| 7010 | Patch 5.6.041 |
| 7011 | Problem: GUI: Athena, Motif and GTK don't give more than 10 dialog buttons. |
| 7012 | Solution: Remove the limit on the number of buttons. |
| 7013 | Also support the 'v' flag in 'guioptions'. |
| 7014 | For GTK: Center the buttons. |
| 7015 | Files: src/gui_athena.c, src/gui_gtk.c, src/gui_motif.c |
| 7016 | |
| 7017 | Patch 5.6.042 |
| 7018 | Problem: When doing "vim -u vimrc" and vimrc contains ":q", the cursor in |
| 7019 | the terminal can remain off. |
| 7020 | Solution: Call cursor_on() in mch_windexit(). |
| 7021 | Files: src/os_unix.c |
| 7022 | |
| 7023 | Patch 5.6.043 (extra) |
| 7024 | Problem: Win32 GUI: When selecting guifont with the dialog, 'guifont' |
| 7025 | doesn't include the bold or italic attributes. |
| 7026 | Solution: Append ":i" and/or ":b" to 'guifont' in gui_mch_init_font(). |
| 7027 | Files: src/gui_w32.c |
| 7028 | |
| 7029 | Patch 5.6.044 (extra) |
| 7030 | Problem: MS-DOS and Windows: The line that dosinst.exe appends to |
| 7031 | autoexec.bat to set PATH is wrong when Vim is in a directory with |
| 7032 | an embedded space. |
| 7033 | Solution: Use double quotes for the value when there is an embedded space. |
| 7034 | Files: src/dosinst.c |
| 7035 | |
| 7036 | Patch 5.6.045 (extra) (fixed version) |
| 7037 | Problem: VMS: Various small problems. |
| 7038 | Solution: Many small changes. (Zoltan Arpadffy) |
| 7039 | File name modifier ":h" keeps the path separator. |
| 7040 | File name modifier ":e" also removes version. |
| 7041 | Compile with MAX_FEAT by default. |
| 7042 | When checking for autocommands ignore version in file name. |
| 7043 | Be aware of file names being case insensitive. |
| 7044 | Added vt320 builtin termcap. |
| 7045 | Be prepared for an empty default_vim_dir. |
| 7046 | Files: runtime/gvimrc_example.vim, runtime/vimrc_example.vim, |
| 7047 | runtime/doc/os_vms.txt, src/eval.c, src/feature.h, src/fileio.c, |
| 7048 | src/gui_motif.c, src/gui_vms_conf.h, src/main.c, src/memline.c, |
| 7049 | src/misc1.c, src/option.c, src/os_vms_conf.h, src/os_vms.c, |
| 7050 | src/os_vms.h, src/os_vms.mms, src/tag.c, src/term.c, src/version.c |
| 7051 | |
| 7052 | Patch 5.6.046 |
| 7053 | Problem: Systems with backslash in file name: With 'shellslash' set, "vim |
| 7054 | */*.c" only uses a slash for the first file name. (Har'El) |
| 7055 | Solution: Fix slashes in file name arguments after reading the vimrc file. |
| 7056 | Files: src/option.c |
| 7057 | |
| 7058 | Patch 5.6.047 |
| 7059 | Problem: $CPPFLAGS is not passed on to ctags configure. |
| 7060 | Solution: Add it. (Walter Briscoe) |
| 7061 | Files: src/config.mk.in, src/Makefile |
| 7062 | |
| 7063 | Patch 5.6.048 |
| 7064 | Problem: CTRL-R in Command-line mode is documented to insert text as typed, |
| 7065 | but inserts text literally. |
| 7066 | Solution: Make CTRL-R insert text as typed, use CTRL-R CTRL-R to insert |
| 7067 | literally. This is consistent with Insert mode. But characters |
| 7068 | that end Command-line mode are inserted literally. |
| 7069 | Files: runtime/doc/index.txt, runtime/doc/cmdline.txt, src/ex_getln.c, |
| 7070 | src/ops.c, src/proto/ops.pro |
| 7071 | |
| 7072 | Patch 5.6.049 |
| 7073 | Problem: Documentation for [!] after ":ijump" is wrong way around. (Benji |
| 7074 | Fisher) |
| 7075 | Solution: Fix the documentation. Also improve the code to check for a match |
| 7076 | after a /* */ comment. |
| 7077 | Files: runtime/doc/tagsearch.txt, src/search.c |
| 7078 | |
| 7079 | Patch 5.6.050 |
| 7080 | Problem: Replacing is wrong when replacing a single-byte char with |
| 7081 | double-byte char or the other way around. |
| 7082 | Solution: Shift the text after the character when it is replaced. |
| 7083 | (Yasuhiro Matsumoto) |
| 7084 | Files: src/normal.c, src/misc1.c |
| 7085 | |
| 7086 | Patch 5.6.051 |
| 7087 | Problem: ":tprev" and ":tnext" don't give an error message when trying to |
| 7088 | go before the first or beyond the last tag. (Robert Webb) |
| 7089 | Solution: Added error messages. Also: Delay a second when a file-read |
| 7090 | message is going to overwrite an error message, otherwise it won't |
| 7091 | be seen. |
| 7092 | Files: src/fileio.c, src/tag.c |
| 7093 | |
| 7094 | Patch 5.6.052 |
| 7095 | Problem: Multi-byte: When an Ex command has a '|' or '"' as a second byte, |
| 7096 | it terminates the command. |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 7097 | Solution: Skip second byte of multibyte char when checking for '|' and '"'. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 7098 | (Asai Kenichi) |
| 7099 | Files: src/ex_docmd.c |
| 7100 | |
| 7101 | Patch 5.6.053 |
| 7102 | Problem: CTRL-] doesn't work on a tag that contains a '|'. (Cesar Crusius) |
| 7103 | Solution: Escape '|', '"' and '\' in tag names when using CTRL-] and also |
| 7104 | for command-line completion. |
| 7105 | Files: src/ex_getln.c, src/normal.c |
| 7106 | |
| 7107 | Patch 5.6.054 |
| 7108 | Problem: When using ":e" and ":e #" the cursor is put in the first column |
| 7109 | when 'startofline' is set. (Cordell) |
| 7110 | Solution: Use the last known column when 'startofline' is set. |
| 7111 | Also, use ECMD_LAST more often to simplify the code. |
| 7112 | Files: src/buffer.c, src/ex_cmds.c, src/ex_docmd.c, src/proto/buffer.pro |
| 7113 | |
| 7114 | Patch 5.6.055 |
| 7115 | Problem: When 'statusline' only contains a text without "%" and doesn't fit |
| 7116 | in the window, Vim crashes. (Ron Aaron) |
| 7117 | Solution: Don't use the pointer for the first item if there is no item. |
| 7118 | Files: src/screen.c |
| 7119 | |
| 7120 | Patch 5.6.056 (extra) |
| 7121 | Problem: MS-DOS: F11 and F12 don't work when 'bioskey' is set. |
| 7122 | Solution: Use enhanced keyboard functions. (Vince Negri) |
| 7123 | Detect presence of enhanced keyboard and set bioskey_read and |
| 7124 | bioskey_ready. |
| 7125 | Files: src/os_msdos.c |
| 7126 | |
| 7127 | Patch 5.6.057 (extra) |
| 7128 | Problem: Win32 GUI: Multi-byte characters are wrong in dialogs and tear-off |
| 7129 | menus. |
| 7130 | Solution: Use system font instead of a fixed font. (Matsumoto, Muraoka) |
| 7131 | Files: src/gui_w32.c |
| 7132 | |
| 7133 | Patch 5.6.058 |
| 7134 | Problem: When the 'a' flag is not in 'guioptions', non-Windows systems |
| 7135 | copy Visually selected text to the clipboard/selection on a yank |
| 7136 | or delete command anyway. On Windows it isn't done even when the |
| 7137 | 'a' flag is included. |
| 7138 | Solution: Respect the 'a' flag in 'guioptions' on all systems. |
| 7139 | Files: src/normal.c |
| 7140 | |
| 7141 | Patch 5.6.059 (extra) |
| 7142 | Problem: When moving the cursor over italic text and the characters spill |
| 7143 | over to the cell on the right, that spill-over is deleted. |
| 7144 | Noticed in the Win32 GUI, can happen on other systems too. |
| 7145 | Solution: Redraw italic text starting from a blank, like this is already |
| 7146 | done for bold text. (Vince Negri) |
| 7147 | Files: src/gui.c, src/gui.h, src/gui_w32.c |
| 7148 | |
| 7149 | Patch 5.6.060 |
| 7150 | Problem: Some bold characters spill over to the cell on the left, that |
| 7151 | spill-over can remain sometimes. |
Bram Moolenaar | 06b5d51 | 2010-05-22 15:37:44 +0200 | [diff] [blame] | 7152 | Solution: Redraw a character when the next character was bold and needs |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 7153 | redrawing. (Robert Webb) |
| 7154 | Files: src/screen.c |
| 7155 | |
| 7156 | Patch 5.6.061 |
| 7157 | Problem: When xterm sends 8-bit controls, recognizing the version response |
| 7158 | doesn't work. |
| 7159 | When using CSI instead of <Esc>[ for the termcap color codes, |
| 7160 | using 16 colors doesn't work. (Neil Bird) |
| 7161 | Solution: Also accept CSI in place of <Esc>[ for the version string. |
| 7162 | Also check for CSI when handling colors 8-15 in term_color(). |
| 7163 | Use CSI for builtin xterm termcap entries when 'term' contains |
| 7164 | "8bit". |
| 7165 | Files: runtime/doc/term.txt, src/ex_cmds.c, src/option.c, src/term.c, |
| 7166 | src/os_unix.c, src/proto/option.pro, src/proto/term.pro |
| 7167 | |
| 7168 | Patch 5.6.062 |
| 7169 | Problem: The documentation says that setting 'smartindent' doesn't have an |
| 7170 | effect when 'cindent' is set, but it does make a difference for |
| 7171 | lines starting with "#". (Neil Bird) |
| 7172 | Solution: Really ignore 'smartindent' when 'cindent' is set. |
| 7173 | Files: src/misc1.c, src/ops.c |
| 7174 | |
| 7175 | Patch 5.6.063 |
| 7176 | Problem: Using "I" in Visual-block mode doesn't accept a count. (Johannes |
| 7177 | Zellner) |
| 7178 | Solution: Pass the count on to do_insert() and edit(). (Allan Kelly) |
| 7179 | Files: src/normal.c, src/ops.c, src/proto/ops.pro |
| 7180 | |
| 7181 | Patch 5.6.064 |
| 7182 | Problem: MS-DOS and Win32 console: Mouse doesn't work correctly after |
| 7183 | including patch 5.6.28. (Vince Negri) |
| 7184 | Solution: Don't check for mouse scroll wheel when the mouse code contains |
| 7185 | the number of clicks. |
| 7186 | Files: src/term.c |
| 7187 | |
| 7188 | Patch 5.6.065 |
| 7189 | Problem: After moving the cursor around in Insert mode, typing a space can |
| 7190 | still trigger an abbreviation. (Benji Fisher) |
| 7191 | Solution: Don't check for an abbreviation after moving around in Insert mode. |
| 7192 | Files: src/edit.c |
| 7193 | |
| 7194 | Patch 5.6.066 |
| 7195 | Problem: Still a few bold character spill-over remains after patch 60. |
| 7196 | Solution: Clear character just in front of blanking out rest of the line. |
| 7197 | (Robert Webb) |
| 7198 | Files: src/screen.c |
| 7199 | |
| 7200 | Patch 5.6.067 |
| 7201 | Problem: When a file name contains a NL, the viminfo file is corrupted. |
| 7202 | Solution: Use viminfo_writestring() to convert the NL to CTRL-V n. |
| 7203 | Also fix the Buffers menu and listing a menu name with a newline. |
| 7204 | Files: runtime/menu.vim, src/buffer.c, src/mark.c, src/menu.c |
| 7205 | |
| 7206 | Patch 5.6.068 |
| 7207 | Problem: Compiling the Perl interface doesn't work with Perl 5.6.0. |
| 7208 | (Bernhard Rosenkraenzer) |
| 7209 | Solution: Also check xs_apiversion for the version number when prepending |
| 7210 | defines for PL_*. |
| 7211 | Files: src/Makefile |
| 7212 | |
| 7213 | Patch 5.6.069 |
| 7214 | Problem: "go" doesn't always end up at the right character when |
| 7215 | 'fileformat' is "dos". (Bruce DeVisser) |
| 7216 | Solution: Correct computations in ml_find_line_or_offset(). |
| 7217 | Files: src/memline. |
| 7218 | |
| 7219 | Patch 5.6.070 (depends on 5.6.068) |
| 7220 | Problem: Compiling the Perl interface doesn't work with Perl 5.6.0. |
| 7221 | (Bernhard Rosenkraenzer) |
| 7222 | Solution: Simpler check instead of the one from patch 68. |
| 7223 | Files: src/Makefile |
| 7224 | |
| 7225 | Patch 5.6.071 |
| 7226 | Problem: "A" in Visual block mode on a Tab positions the cursor one char to |
| 7227 | the right. (Michael Haumann) |
| 7228 | Solution: Correct the column computation in op_insert(). |
| 7229 | Files: src/ops.c |
| 7230 | |
| 7231 | Patch 5.6.072 |
| 7232 | Problem: When starting Vim with "vim +startinsert", it enters Insert mode |
| 7233 | only after typing the first command. (Andrew Pimlott) |
| 7234 | Solution: Insert a dummy command in the stuff buffer. |
| 7235 | Files: src/main.c |
| 7236 | |
| 7237 | Patch 5.6.073 (extra) (depends on 5.6.034) |
| 7238 | Problem: Win32 GUI: When compiled with Bcc 5.5 menus don't work. |
| 7239 | In dosinst.c toupper() and tolower() give an "internal compiler |
| 7240 | error" for Bcc 5.5. |
| 7241 | Solution: Define WINVER to 4 to avoid compiling for Windows 2000. (Dan |
| 7242 | Sharp) Also cleaned up compilation arguments. |
| 7243 | Use our own implementation of toupper() in dosinst.c. Use |
| 7244 | mytoupper() instead of tolower(). |
| 7245 | Files: src/Makefile.bor, src/dosinst.c |
| 7246 | |
| 7247 | Patch 5.6.074 (extra) |
| 7248 | Problem: Entering CSI directly doesn't always work, because it's recognized |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 7249 | as the start of a special key. Mostly a problem with multibyte |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 7250 | in the GUI. |
| 7251 | Solution: Use K_CSI for a typed CSI character. Use <CSI> for a normal CSI, |
| 7252 | <xCSI> for a CSI typed in the GUI. |
| 7253 | Files: runtime/doc/intro.txt, src/getchar.c, src/gui_amiga.c, |
| 7254 | src/gui_gtk_x11.c, src/gui_mac.c, src/gui_riscos.c, src/gui_w32.c, |
| 7255 | src/keymap.h, src/misc2.c |
| 7256 | |
| 7257 | Patch 5.6.075 |
| 7258 | Problem: When using "I" or "A" in Visual block mode while 'sts' is set may |
| 7259 | change spaces to a Tab the inserted text is not correct. (Mike |
| 7260 | Steed) And some other problems when using "A" to append after the |
| 7261 | end of the line. |
| 7262 | Solution: Check for change in spaces/tabs after inserting the text. Append |
| 7263 | spaces to fill the gap between the end-of-line and the right edge |
| 7264 | of the block. |
| 7265 | Files: src/ops.c |
| 7266 | |
| 7267 | Patch 5.6.076 |
| 7268 | Problem: GTK GUI: Mapping <M-Space> doesn't work. |
| 7269 | Solution: Don't use the "Alt" modifier twice in key_press_event(). |
| 7270 | Files: src/gui_gtk_x11.c |
| 7271 | |
| 7272 | Patch 5.6.077 |
| 7273 | Problem: GUI: When interrupting an external program with CTRL-C, gvim might |
| 7274 | crash. (Benjamin Korvemaker) |
| 7275 | Solution: Avoid using a NULL pointer in ui_inchar_undo(). |
| 7276 | Files: src/ui.c |
| 7277 | |
| 7278 | Patch 5.6.078 |
| 7279 | Problem: Locale doesn't always work on FreeBSD. (David O'Brien) |
| 7280 | Solution: Link with the "xpg4" library when available. |
| 7281 | Files: src/configure.in, src/configure |
| 7282 | |
| 7283 | Patch 5.6.079 |
| 7284 | Problem: Vim could crash when several Tcl interpreters are created and |
| 7285 | destroyed. |
| 7286 | Solution: handle the "exit" command and nested ":tcl" commands better. (Ingo |
| 7287 | Wilken) |
| 7288 | Files: runtime/doc/if_tcl.txt, src/if_tcl.c |
| 7289 | |
| 7290 | Patch 5.6.080 |
| 7291 | Problem: When jumping to a tag, generating the tags file and jumping to the |
| 7292 | same tag again uses the old search pattern. (Sung-Hyun Nam) |
| 7293 | Solution: Flush cached tag matches when executing an external command. |
| 7294 | Files: src/misc2.c, src/proto/tag.pro, src/tag.c |
| 7295 | |
| 7296 | Patch 5.6.081 |
| 7297 | Problem: ":syn include" uses a level for the included file, this confuses |
| 7298 | contained items included at the same level. |
| 7299 | Solution: Use a unique tag for each included file. Changed sp_syn_inc_lvl |
| 7300 | to sp_syn_inc_tag. (Scott Bigham) |
| 7301 | Files: src/syntax.c, src/structs.h |
| 7302 | |
| 7303 | Patch 5.6.082 |
| 7304 | Problem: When using cscope, Vim can crash. |
| 7305 | Solution: Initialize tag_fname in find_tags(). (Anton Blanchard) |
| 7306 | Files: src/tag.c |
| 7307 | |
| 7308 | Patch 5.6.083 (extra) |
| 7309 | Problem: Win32: The visual beep can't be seen. (Eric Roesinger) |
| 7310 | Solution: Flush the output before waiting with GdiFlush(). (Maurice S. Barnum) |
| 7311 | Also: Allow specifying the delay in t_vb for the GUI. |
| 7312 | Files: src/gui.c, src/gui_amiga.c, src/gui_gtk_x11.c, src/gui_mac.c, |
| 7313 | src/gui_riscos.c, src/gui_w32.c, src/gui_x11.c, src/gui_beos.cc, |
| 7314 | src/proto/gui_amiga.pro, src/proto/gui_gtk_x11.pro, |
| 7315 | src/proto/gui_mac.pro, src/proto/gui_riscos.pro, |
| 7316 | src/proto/gui_w32.pro, src/proto/gui_x11.pro, |
| 7317 | src/proto/gui_beos.pro |
| 7318 | |
| 7319 | Patch 5.6.084 (depends on 5.6.074) |
| 7320 | Problem: GUI: Entering CSI doesn't always work for Athena and Motif. |
| 7321 | Solution: Handle typed CSI as <xCSI> (forgot this bit in 5.6.074). |
| 7322 | Files: src/gui_x11.c |
| 7323 | |
| 7324 | Patch 5.6.085 |
| 7325 | Problem: Multi-byte: Using "r" to replace a double-byte char with a |
| 7326 | single-byte char moved the cursor one character. (Matsumoto) |
| 7327 | Also, using a count when replacing a single-byte char with a |
| 7328 | double-byte char didn't work. |
| 7329 | Solution: Don't use del_char() to delete the second byte. |
| 7330 | Get "ptr" again after calling ins_char(). |
| 7331 | Files: src/normal.c |
| 7332 | |
| 7333 | Patch 5.6.086 (extra) |
| 7334 | Problem: Win32: When using libcall() and the returned value is not a valid |
| 7335 | pointer, Vim crashes. |
| 7336 | Solution: Use IsBadStringPtr() to check if the pointer is valid. |
| 7337 | Files: src/os_win32.c |
| 7338 | |
| 7339 | Patch 5.6.087 |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 7340 | Problem: Multi-byte: Commands and messages with multibyte characters are |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 7341 | displayed wrong. |
| 7342 | Solution: Detect double-byte characters. (Yasuhiro Matsumoto) |
| 7343 | Files: src/ex_getln.c, src/message.c, src/misc2.c, src/screen.c |
| 7344 | |
| 7345 | Patch 5.6.088 |
| 7346 | Problem: Multi-byte with Motif or Athena: The message "XIM requires |
| 7347 | fontset" is annoying when Vim was compiled with XIM support but it |
| 7348 | is not being used. |
| 7349 | Solution: Remove that message. |
| 7350 | Files: src/multbyte.c |
| 7351 | |
| 7352 | Patch 5.6.089 |
| 7353 | Problem: On non-Unix systems it's possible to overwrite a read-only file |
| 7354 | without using "!". |
| 7355 | Solution: Check if the file permissions allow overwriting before moving the |
| 7356 | file to become the backup file. |
| 7357 | Files: src/fileio.c |
| 7358 | |
| 7359 | Patch 5.6.090 |
| 7360 | Problem: When editing a file in "/home/dir/home/dir" this was replaced with |
| 7361 | "~~". (Andreas Jellinghaus) |
| 7362 | Solution: Replace the home directory only once in home_replace(). |
| 7363 | Files: src/misc1.c |
| 7364 | |
| 7365 | Patch 5.6.091 |
| 7366 | Problem: When editing many "no file" files, can't create swap file, because |
| 7367 | .sw[a-p] have all been used. (Neil Bird) |
| 7368 | Solution: Also use ".sv[a-z]", ".su[a-z]", etc. |
| 7369 | Files: src/memline.c |
| 7370 | |
| 7371 | Patch 5.6.092 |
| 7372 | Problem: FreeBSD: When setting $TERM to a non-valid terminal name, Vim |
| 7373 | hangs in tputs(). |
| 7374 | Solution: After tgetent() returns an error code, call it again with the |
| 7375 | terminal name "dumb". This apparently creates an environment in |
| 7376 | which tputs() doesn't fail. |
| 7377 | Files: src/term.c |
| 7378 | |
| 7379 | Patch 5.6.093 (extra) |
| 7380 | Problem: Win32 GUI: "ls | gvim -" will show a message box about reading |
| 7381 | stdin when Vim exits. (Donohue) |
| 7382 | Solution: Don't write a message about the file read from stdin until the GUI |
| 7383 | has started. |
| 7384 | Files: src/fileio.c |
| 7385 | |
| 7386 | Patch 5.6.094 |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 7387 | Problem: Problem with multibyte string for ":echo var". |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 7388 | Solution: Check for length in msg_outtrans_len_attr(). (Sung-Hyun Nam) |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 7389 | Also make do_echo() aware of multibyte characters. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 7390 | Files: src/eval.c, src/message.c |
| 7391 | |
| 7392 | Patch 5.6.095 |
| 7393 | Problem: With an Emacs TAGS file that include another a relative path |
| 7394 | doesn't always work. |
| 7395 | Solution: Use expand_tag_fname() on the name of the included file. |
| 7396 | (Utz-Uwe Haus) |
| 7397 | Files: src/tag.c |
| 7398 | |
| 7399 | Patch 5.6.096 |
| 7400 | Problem: Unix: When editing many files, startup can be slow. (Paul |
| 7401 | Ackersviller) |
| 7402 | Solution: Halve the number of stat() calls used to add a file to the buffer |
| 7403 | list. |
| 7404 | Files: src/buffer.c |
| 7405 | |
| 7406 | Patch 5.7a.001 |
| 7407 | Problem: GTK doesn't respond on drag&drop from ROX-Filer. |
| 7408 | Solution: Add "text/uri-list" target. (Thomas Leonard) |
| 7409 | Also: fix problem with checking for trash arguments. |
| 7410 | Files: src/gui_gtk_x11.c |
| 7411 | |
| 7412 | Patch 5.7a.002 |
| 7413 | Problem: Multi-byte: 'showmatch' is performed when second byte of an |
| 7414 | inserted double-byte char is a paren or brace. |
| 7415 | Solution: Check IsTrailByte() before calling showmatch(). (Taro Muraoka) |
| 7416 | Files: src/misc1.c |
| 7417 | |
| 7418 | Patch 5.7a.003 |
| 7419 | Problem: Multi-byte: After using CTRL-O in Insert mode with the cursor at |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 7420 | the end of the line on a multibyte character the cursor moves to |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 7421 | the left. |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 7422 | Solution: Check for multibyte character at end-of-line. (Taro Muraoka) |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 7423 | Also: fix cls() to detect a double-byte character. (Chong-Dae Park) |
| 7424 | Files: src/edit.c, src/search.c |
| 7425 | |
| 7426 | Patch 5.7a.004 |
| 7427 | Problem: When reporting the search pattern offset, the string could be |
| 7428 | unterminated, which may cause a crash. |
| 7429 | Solution: Terminate the string for the search offset. (Stephen P. Wall) |
| 7430 | Files: src/search.c |
| 7431 | |
| 7432 | Patch 5.7a.005 |
| 7433 | Problem: When ":s//~/" doesn't find a match it reports "[NULL]" for the |
| 7434 | pattern. |
| 7435 | Solution: Use get_search_pat() to obtain the actually used pattern. |
| 7436 | Files: src/ex_cmds.c, src/proto/search.pro, src/search.c |
| 7437 | |
| 7438 | Patch 5.7a.006 (extra) |
| 7439 | Problem: VMS: Various problems, also with the VAXC compiler. |
| 7440 | Solution: In many places use the Unix code for VMS too. |
| 7441 | Added time, date and compiler version to version message. |
| 7442 | (Zoltan Arpadffy) |
| 7443 | Files: src/ex_cmds.c, src/ex_docmd.c, src/globals.h, src/gui_vms_conf.h, |
| 7444 | src/main.c, src/message.c, src/misc1.c, src/os_vms.c, |
| 7445 | src/os_vms.h, src/os_vms.mms, src/os_vms_conf.h, |
| 7446 | src/proto/os_vms.pro, src/proto/version.pro, src/term.c, |
| 7447 | src/version.c, src/xxd/os_vms.mms, src/xxd/xxd.c |
| 7448 | |
| 7449 | Patch 5.7a.007 |
| 7450 | Problem: Motif and Athena GUI: CTRL-@ is interpreted as CTRL-C. |
| 7451 | Solution: Only use "intr_char" when it has been set. |
| 7452 | Files: src/gui_x11.c |
| 7453 | |
| 7454 | Patch 5.7a.008 |
| 7455 | Problem: GTK GUI: When using CTRL-L the screen is redrawn twice, causing |
| 7456 | trouble for bold characters. Also happens when moving with the |
| 7457 | scrollbar. Best seen when 'writedelay' is non-zero. |
| 7458 | When starting the GUI with ":gui" the screen is redrawn once with |
| 7459 | the wrong colors. |
| 7460 | Solution: Only set the geometry hints when the window size really changed. |
| 7461 | This avoids setting it each time the scrollbar is forcefully |
| 7462 | redrawn. |
| 7463 | Don't redraw in expose_event() when gui.starting is still set. |
| 7464 | Files: src/gui_gtk_x11.c |
| 7465 | |
| 7466 | |
| 7467 | ============================================================================== |
| 7468 | VERSION 5.8 *version-5.8* |
| 7469 | |
| 7470 | Version 5.8 is a bug-fix version of 5.7. |
| 7471 | |
| 7472 | |
| 7473 | Changed *changed-5.8* |
| 7474 | ------- |
| 7475 | |
| 7476 | Ctags is no longer included with Vim. It has grown into a project of its own. |
| 7477 | You can find it here: http://ctags.sf.net. It is highly recommended as a Vim |
| 7478 | companion when you are writing programs. |
| 7479 | |
| 7480 | |
| 7481 | Added *added-5.8* |
| 7482 | ----- |
| 7483 | |
| 7484 | New syntax files: |
| 7485 | acedb AceDB (Stewart Morris) |
| 7486 | aflex Aflex (Mathieu Clabaut) |
| 7487 | antlr Antlr (Mathieu Clabaut) |
| 7488 | asm68k 68000 Assembly (Steve Wall) |
| 7489 | automake Automake (John Williams) |
| 7490 | ayacc Ayacc (Mathieu Clabaut) |
| 7491 | b B (Mathieu Clabaut) |
| 7492 | bindzone BIND zone (glory hump) |
| 7493 | blank Blank (Rafal Sulejman) |
| 7494 | cfg Configure files (Igor Prischepoff) |
| 7495 | changelog ChangeLog (Gediminas Paulauskas) |
| 7496 | cl Clever (Phil Uren) |
| 7497 | crontab Crontab (John Hoelzel) |
| 7498 | csc Essbase script (Raul Segura Acevedo) |
| 7499 | cynlib Cynlib(C++) (Phil Derrick) |
| 7500 | cynpp Cyn++ (Phil Derrick) |
| 7501 | debchangelog Debian Changelog (Wichert Akkerman) |
| 7502 | debcontrol Debian Control (Wichert Akkerman) |
| 7503 | dns DNS zone file (Jehsom) |
| 7504 | dtml Zope's DTML (Jean Jordaan) |
| 7505 | dylan Dylan, Dylan-intr and Dylan-lid (Brent Fulgham) |
| 7506 | ecd Embedix Component Description (John Beppu) |
| 7507 | fgl Informix 4GL (Rafal Sulejman) |
| 7508 | foxpro FoxPro (Powing Tse) |
| 7509 | gsp GNU Server Pages (Nathaniel Harward) |
| 7510 | gtkrc GTK rc (David Necas) |
| 7511 | hercules Hercules (Avant! Corporation) (Dana Edwards) |
| 7512 | htmlos HTML/OS by Aestiva (Jason Rust) |
| 7513 | inittab SysV process control (David Necas) |
| 7514 | iss Inno Setup (Dominique Stephan) |
| 7515 | jam Jam (Ralf Lemke) |
| 7516 | jess Jess (Paul Baleme) |
| 7517 | lprolog LambdaProlog (Markus Mottl) |
| 7518 | ia64 Intel Itanium (parth malwankar) |
| 7519 | kix Kixtart (Nigel Gibbs) |
| 7520 | mgp MaGic Point (Gerfried Fuchs) |
| 7521 | mason Mason (HTML with Perl) (Andrew Smith) |
| 7522 | mma Mathematica (Wolfgang Waltenberger) |
| 7523 | nqc Not Quite C (Stefan Scherer) |
| 7524 | omnimark Omnimark (Paul Terray) |
| 7525 | openroad OpenROAD (Luis Moreno Serrano) |
| 7526 | named BIND configuration (glory hump) |
| 7527 | papp PApp (Marc Lehmann) |
| 7528 | pfmain Postfix main config (Peter Kelemen) |
| 7529 | pic PIC assembly (Aleksandar Veselinovic) |
| 7530 | ppwiz PPWizard (Stefan Schwarzer) |
| 7531 | progress Progress (Phil Uren) |
| 7532 | psf Product Specification File (Rex Barzee) |
| 7533 | r R (Tom Payne) |
| 7534 | registry MS-Windows registry (Dominique Stephan) |
| 7535 | robots Robots.txt (Dominique Stephan) |
| 7536 | rtf Rich Text Format (Dominique Stephan) |
| 7537 | setl SETL (Alex Poylisher) |
| 7538 | sgmldecl SGML Declarations (Daniel A. Molina W.) |
| 7539 | sinda Sinda input (Adrian Nagle) |
| 7540 | sindacmp Sinda compare (Adrian Nagle) |
| 7541 | sindaout Sinda output (Adrian Nagle) |
| 7542 | smith SMITH (Rafal Sulejman) |
| 7543 | snobol4 Snobol 4 (Rafal Sulejman) |
| 7544 | strace Strace (David Necas) |
| 7545 | tak TAK input (Adrian Nagle) |
| 7546 | takcmp TAK compare (Adrian Nagle) |
| 7547 | takout TAK output (Adrian Nagle) |
| 7548 | tasm Turbo assembly (FooLman) |
| 7549 | texmf TeX configuration (David Necas) |
| 7550 | trasys Trasys input (Adrian Nagle) |
| 7551 | tssgm TSS Geometry (Adrian Nagle) |
| 7552 | tssop TSS Optics (Adrian Nagle) |
| 7553 | tsscl TSS Command line (Adrian Nagle) |
| 7554 | virata Virata Configuration Script (Manuel M.H. Stol) |
| 7555 | vsejcl VSE JCL (David Ondrejko) |
| 7556 | wdiff Wordwise diff (Gerfried Fuchs) |
| 7557 | wsh Windows Scripting Host (Paul Moore) |
| 7558 | xkb X Keyboard Extension (David Necas) |
| 7559 | |
| 7560 | Renamed php3 to php, it now also supports php4 (Lutz Eymers) |
| 7561 | |
| 7562 | Patch 5.7.015 |
| 7563 | Problem: Syntax files for Vim 6.0 can't be used with 5.x. |
| 7564 | Solution: Add the "default" argument to the ":highlight" command: Ignore the |
| 7565 | command if highlighting was already specified. |
| 7566 | Files: src/syntax.c |
| 7567 | |
| 7568 | Generate the Syntax menu with makemenu.vim, so that it doesn't have to be done |
| 7569 | when Vim is starting up. Reduces the startup time of the GUI. |
| 7570 | |
| 7571 | |
| 7572 | Fixed *fixed-5.8* |
| 7573 | ----- |
| 7574 | |
| 7575 | Conversion of docs to HTML didn't convert "|tag|s" to a hyperlink. |
| 7576 | |
| 7577 | Fixed compiling under NeXT. (Jeroen C.M. Goudswaard) |
| 7578 | |
| 7579 | optwin.vim gave an error when used in Vi compatible mode ('cpo' contains 'C'). |
| 7580 | |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 7581 | Tcl interpreter: "buffer" command didn't check for presence of an argument. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 7582 | (Dave Bodenstab) |
| 7583 | |
| 7584 | dosinst.c: Added checks for too long file name. |
| 7585 | |
| 7586 | Amiga: a file name starting with a colon was considered absolute but it isn't. |
| 7587 | Amiga: ":pwd" added a slash when in the root of a drive. |
| 7588 | |
| 7589 | Macintosh: Warnings for unused variables. (Bernhard Pruemmer) |
| 7590 | |
| 7591 | Unix: When catching a deadly signal, handle it in such a way that it's |
| 7592 | unlikely that Vim will hang. Call _exit() instead of exit() in case of a |
| 7593 | severe problem. |
| 7594 | |
| 7595 | Setting the window title from nothing to something didn't work after patch 29. |
| 7596 | |
| 7597 | Check for ownership of .exrc and .vimrc was done with stat(). Use lstat() as |
| 7598 | well for extra security. |
| 7599 | |
| 7600 | Win32 GUI: Printing a file with 'fileformat' "unix" didn't work. Set |
| 7601 | 'fileformat' to "dos" before writing the temp file. |
| 7602 | |
| 7603 | Unix: Could start waiting for a character when checking for a CTRL-C typed |
| 7604 | when an X event is received. |
| 7605 | |
| 7606 | Could not use Perl and Python at the same time on FreeBSD, because Perl used |
| 7607 | "-lc" and Python used the threaded C library. |
| 7608 | |
| 7609 | Win32: The Mingw compiler gave a few warning messages. |
| 7610 | |
| 7611 | When using "ZZ" and an autocommand for writing uses an abbreviation it didn't |
| 7612 | work. Don't stuff the ":x" command but execute it directly. (Mikael Berthe) |
| 7613 | |
| 7614 | VMS doesn't always have lstat(), added an #ifdef around it. |
| 7615 | |
| 7616 | Added a few corrections for the Macintosh. (Axel Kielhorn) |
| 7617 | |
Bram Moolenaar | b477af2 | 2018-07-15 20:20:18 +0200 | [diff] [blame] | 7618 | Win32: GvimExt could not edit more than a few files at once, the length of the |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 7619 | argument was fixed. |
| 7620 | |
| 7621 | |
| 7622 | Previously released patches for Vim 5.7: |
| 7623 | |
| 7624 | Patch 5.7.001 |
Bram Moolenaar | d592deb | 2022-06-17 15:42:40 +0100 | [diff] [blame] | 7625 | Problem: When the current buffer is encrypted, and another modified buffer |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 7626 | isn't, ":wall" will encrypt the other buffer. |
| 7627 | Solution: In buf_write() use "buf" instead of "curbuf" to check for the |
| 7628 | crypt key. |
| 7629 | Files: src/fileio.c |
| 7630 | |
| 7631 | Patch 5.7.002 |
| 7632 | Problem: When 'showmode' is set, using "CTRL-O :r file" waits three seconds |
| 7633 | before displaying the read text. (Wichert Akkerman) |
| 7634 | Solution: Set "keep_msg" to the file message so that the screen is redrawn |
| 7635 | before the three seconds wait for displaying the mode message. |
| 7636 | Files: src/fileio.c |
| 7637 | |
| 7638 | Patch 5.7.003 |
| 7639 | Problem: Searching for "[[:cntrl:]]" doesn't work. |
| 7640 | Solution: Exclude NUL from the matching characters, it terminates the list. |
| 7641 | Files: src/regexp.c |
| 7642 | |
| 7643 | Patch 5.7.004 |
| 7644 | Problem: GTK: When selecting a new font, Vim can crash. |
| 7645 | Solution: In gui_mch_init_font() unreference the old font, not the new one. |
| 7646 | Files: src/gui_gtk_x11.c |
| 7647 | |
| 7648 | Patch 5.7.005 |
| 7649 | Problem: Multibyte: Inserting a wrapped line corrupts kterm screen. |
| 7650 | Pasting TEXT/COMPOUND_TEXT into Vim does not work. |
| 7651 | On Motif no XIM status line is displayed even though it is |
| 7652 | available. |
| 7653 | Solution: Don't use xterm trick for wrapping lines for multibyte mode. |
| 7654 | Correct a missing "break", added TEXT/COMPOUND_TEXT selection |
| 7655 | request. |
| 7656 | Add XIMStatusArea fallback code. |
| 7657 | (Katsuhito Nagano) |
| 7658 | Files: src/gui_gtk_x11.c, src/multbyte.c, src/screen.c, src/ui.c |
| 7659 | |
| 7660 | Patch 5.7.006 |
| 7661 | Problem: GUI: redrawing the non-Visual selection is wrong when the window |
| 7662 | is unobscured. (Jean-Pierre Etienne) |
| 7663 | Solution: Redraw the selection properly and don't clear it. Added "len" |
| 7664 | argument to clip_may_redraw_selection(). |
| 7665 | Files: src/gui.c, src/ui.c, src/proto/ui.pro |
| 7666 | |
| 7667 | Patch 5.7.007 |
| 7668 | Problem: Python: Crash when using the current buffer twice. |
| 7669 | Solution: Increase the reference count for buffer and window objects. |
| 7670 | (Johannes Zellner) |
| 7671 | Files: src/if_python.c |
| 7672 | |
| 7673 | Patch 5.7.008 |
| 7674 | Problem: In Ex mode, backspacing over the first TAB doesn't work properly. |
| 7675 | (Wichert Akkerman) |
| 7676 | Solution: Switch the cursor on before printing the newline. |
| 7677 | Files: src/ex_getln.c |
| 7678 | |
| 7679 | Patch 5.7.009 (extra) |
| 7680 | Problem: Mac: Crash when using a long file. |
| 7681 | Solution: Don't redefine malloc() and free(), because it will break using |
| 7682 | realloc(). |
| 7683 | Files: src/os_mac.h |
| 7684 | |
| 7685 | Patch 5.7.010 |
| 7686 | Problem: When using CTRL-A on a very long number Vim can crash. (Michael |
| 7687 | Naumann) |
| 7688 | Solution: Truncate the length of the new number to avoid a buffer overflow. |
| 7689 | Files: src/ops.c |
| 7690 | |
| 7691 | Patch 5.7.011 (extra) |
| 7692 | Problem: Win32 GUI on NT 5 and Win98: Displaying Hebrew is reversed. |
| 7693 | Solution: Output each character separately, to avoid that Windows reverses |
| 7694 | the text for some fonts. (Ron Aaron) |
| 7695 | Files: src/gui_w32.c |
| 7696 | |
| 7697 | Patch 5.7.012 |
| 7698 | Problem: When using "-complete=buffer" for ":command" the user command |
| 7699 | fails. |
| 7700 | Solution: In a user command don't replace the buffer name with a count for |
| 7701 | the buffer number. |
| 7702 | Files: src/ex_docmd.c |
| 7703 | |
| 7704 | Patch 5.7.013 |
| 7705 | Problem: "gD" didn't always find a match in the first line, depending on |
| 7706 | the column the search started at. |
| 7707 | Solution: Reset the column to zero before starting to search. |
| 7708 | Files: src/normal.c |
| 7709 | |
| 7710 | Patch 5.7.014 |
| 7711 | Problem: Rot13 encoding was done on characters with accents, which is |
| 7712 | wrong. (Sven Gottwald) |
| 7713 | Solution: Only do rot13 encoding on ASCII characters. |
| 7714 | Files: src/ops.c |
| 7715 | |
| 7716 | Patch 5.7.016 |
| 7717 | Problem: When hitting 'n' for a ":s///c" command, the ignore-case flag was |
| 7718 | not restored, some matches were skipped. (Daniel Blaustein) |
| 7719 | Solution: Restore the reg_ic variable when 'n' was hit. |
| 7720 | Files: src/ex_cmds.c |
| 7721 | |
| 7722 | Patch 5.7.017 |
| 7723 | Problem: When using a Vim script for Vim 6.0 with <SID> before a function |
| 7724 | name, it produces an error message even when inside an "if version |
| 7725 | >= 600". (Charles Campbell) |
| 7726 | Solution: Ignore errors in the function name when the function is not going |
| 7727 | to be defined. |
| 7728 | Files: src/eval.c |
| 7729 | |
| 7730 | Patch 5.7.018 |
| 7731 | Problem: When running "rvim" or "vim -Z" it was still possible to execute a |
| 7732 | shell command with system() and backtick-expansion. (Antonios A. |
| 7733 | Kavarnos) |
| 7734 | Solution: Disallow executing a shell command in get_cmd_output() and |
| 7735 | mch_expand_wildcards(). |
| 7736 | Files: src/misc1.c, src/os_unix.c |
| 7737 | |
| 7738 | Patch 5.7.019 |
Bram Moolenaar | 207f009 | 2020-08-30 17:20:20 +0200 | [diff] [blame] | 7739 | Problem: Multibyte: In a substitute string, a multibyte character isn't |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 7740 | skipped properly, can be a problem when the second byte is a |
| 7741 | backslash. |
| 7742 | Solution: Skip an extra byte for a double-byte character. (Muraoka Taro) |
| 7743 | Files: src/ex_cmds.c |
| 7744 | |
| 7745 | Patch 5.7.020 |
| 7746 | Problem: Compilation doesn't work on MacOS-X. |
| 7747 | Solution: Add a couple of #ifdefs. (Jamie Curmi) |
| 7748 | Files: src/regexp.c, src/ctags/general.h |
| 7749 | |
| 7750 | Patch 5.7.021 |
| 7751 | Problem: Vim sometimes produces a beep when started in an xterm. Only |
| 7752 | happens when compiled without mouse support. |
| 7753 | Solution: Requesting the xterm version results in a K_IGNORE. This wasn't |
| 7754 | handled when mouse support is disabled. Accept K_IGNORE always. |
| 7755 | Files: src/normal.c |
| 7756 | |
| 7757 | Patch 5.7.022 |
| 7758 | Problem: %v in 'statusline' is not displayed when it's equal to %c. |
| 7759 | Solution: Check if %V or %v is used and handle them differently. |
| 7760 | Files: src/screen.c |
| 7761 | |
| 7762 | Patch 5.7.023 |
| 7763 | Problem: Crash when a WinLeave autocommand deletes the buffer in the other |
| 7764 | window. |
| 7765 | Solution: Check that after executing the WinLeave autocommands there still |
| 7766 | is a window to be closed. Also update the test that was supposed |
| 7767 | to check for this problem. |
| 7768 | Files: src/window.c, testdir/test13.in, testdir/test13.ok |
| 7769 | |
| 7770 | Patch 5.7.024 |
| 7771 | Problem: Evaluating an expression for 'statusline' can have side effects. |
| 7772 | Solution: Evaluate the expression in a sandbox. |
| 7773 | Files: src/edit.c, src/eval.c, src/proto/eval.pro, src/ex_cmds.c, |
| 7774 | src/ex_cmds.h, src/ex_docmd.c, src/globals.h, src/option.c, |
| 7775 | src/screen.c, src/undo.c |
| 7776 | |
| 7777 | Patch 5.7.025 (fixed) |
| 7778 | Problem: Creating a temp file has a race condition. |
| 7779 | Solution: Create a private directory to write the temp files in. |
| 7780 | Files: src/fileio.c, src/misc1.c, src/proto/misc1.pro, |
| 7781 | src/proto/fileio.pro, src/memline.c, src/os_unix.h |
| 7782 | |
| 7783 | Patch 5.7.026 (extra) |
| 7784 | Problem: Creating a temp file has a race condition. |
| 7785 | Solution: Create a private directory to write the temp files in. |
| 7786 | This is the extra part of patch 5.7.025. |
| 7787 | Files: src/os_msdos.h |
| 7788 | |
| 7789 | Patch 5.7.027 |
| 7790 | Problem: Starting to edit a file can cause a crash. For example when in |
| 7791 | Insert mode, using CTRL-O :help abbr<Tab> to scroll the screen and |
| 7792 | then <CR>, which edits a help file. (Robert Bogomip) |
| 7793 | Solution: Check if keep_msg is NULL before copying it. |
| 7794 | Files: src/fileio.c |
| 7795 | |
| 7796 | Patch 5.7.028 |
| 7797 | Problem: Creating a backup or swap file could fail in rare situations. |
| 7798 | Solution: Use O_EXCL for open(). |
| 7799 | Files: src/fileio.c, src/memfile.c |
| 7800 | |
| 7801 | Patch 5.7.029 |
| 7802 | Problem: Editing a file with an extremely long name crashed Vim. |
| 7803 | Solution: Check for length of the name when setting the window title. |
| 7804 | Files: src/buffer.c |
| 7805 | |
| 7806 | Patch 5.7.030 |
| 7807 | Problem: A ":make" or ":grep" command with a very long argument could cause |
| 7808 | a crash. |
| 7809 | Solution: Allocate the buffer for the shell command. |
| 7810 | Files: src/ex_docmd.c |
| 7811 | |
| 7812 | |
Bram Moolenaar | d473c8c | 2018-08-11 18:00:22 +0200 | [diff] [blame] | 7813 | vim:tw=78:ts=8:noet:ft=help:norl: |