1 *version7.txt* For Vim version 7.2a. Last change: 2008 Jun 30
4 VIM REFERENCE MANUAL by Bram Moolenaar
7 Welcome to Vim 7! A large number of features has been added. This file
8 mentions all the new items, changes to existing features and bug fixes
9 since Vim 6.x. Use this command to see the version you are using: >
12 See |vi_diff.txt| for an overview of differences between Vi and Vim 7.0.
13 See |version4.txt| for differences between Vim 3.x and Vim 4.x.
14 See |version5.txt| for differences between Vim 4.x and Vim 5.x.
15 See |version6.txt| for differences between Vim 5.x and Vim 6.x.
17 INCOMPATIBLE CHANGES |incompatible-7|
21 Vim script enhancements |new-vim-script|
22 Spell checking |new-spell|
23 Omni completion |new-omni-completion|
24 MzScheme interface |new-MzScheme|
25 Printing multi-byte text |new-print-multi-byte|
26 Tab pages |new-tab-pages|
27 Undo branches |new-undo-branches|
28 Extended Unicode support |new-more-unicode|
29 More highlighting |new-more-highlighting|
30 Translated manual pages |new-manpage-trans|
31 Internal grep |new-vimgrep|
32 Scroll back in messages |new-scroll-back|
33 Cursor past end of the line |new-onemore|
34 POSIX compatibility |new-posix|
35 Debugger support |new-debug-support|
36 Remote file explorer |new-netrw-explore|
37 Define an operator |new-define-operator|
38 Mapping to an expression |new-map-expression|
39 Visual and Select mode mappings |new-map-select|
40 Location list |new-location-list|
41 Various new items |new-items-7|
43 IMPROVEMENTS |improvements-7|
45 COMPILE TIME CHANGES |compile-changes-7|
47 BUG FIXES |bug-fixes-7|
49 VERSION 7.1 |version-7.1|
54 VERSION 7.2 |version-7.2|
59 ==============================================================================
60 INCOMPATIBLE CHANGES *incompatible-7*
62 These changes are incompatible with previous releases. Check this list if you
63 run into a problem when upgrading from Vim 6.x to 7.0.
65 A ":write file" command no longer resets the 'modified' flag of the buffer,
66 unless the '+' flag is in 'cpoptions' |cpo-+|. This was illogical, since the
67 buffer is still modified compared to the original file. And when undoing
68 all changes the file would actually be marked modified. It does mean that
71 ":helpgrep" now uses a help window to display a match.
73 In an argument list double quotes could be used to include spaces in a file
74 name. This caused a difference between ":edit" and ":next" for escaping
75 double quotes and it is incompatible with some versions of Vi.
76 Command Vim 6.x file name Vim 7.x file name ~
77 :edit foo\"888 foo"888 foo"888
78 :next foo\"888 foo888 foo"888
79 :next a\"b c\"d ab cd a"b and c"d
81 In a |literal-string| a single quote can be doubled to get one.
82 ":echo 'a''b'" would result in "a b", but now that two quotes stand for one it
85 When overwriting a file with ":w! fname" there was no warning for when "fname"
86 was being edited by another Vim. Vim now gives an error message |E768|.
88 The support for Mac OS 9 has been removed.
90 Files ending in .tex now have 'filetype' set to "context", "plaintex", or
91 "tex". |ft-tex-plugin|
94 Minor incompatibilities:
96 For filetype detection: For many types, use */.dir/filename instead of
97 ~/.dir/filename, so that it also works for other user's files.
99 For quite a few filetypes the indent settings have been moved from the
100 filetype plugin to the indent plugin. If you used: >
102 Then some indent settings may be missing. You need to use: >
103 :filetype plugin indent on
105 ":0verbose" now sets 'verbose' to zero instead of one.
107 Removed the old and incomplete "VimBuddy" code.
109 Buffers without a name report "No Name" instead of "No File". It was
110 confusing for buffers with a name and 'buftype' set to "nofile".
112 When ":file xxx" is used in a buffer without a name, the alternate file name
113 isn't set. This avoids creating buffers without a name, they are not useful.
115 The "2html.vim" script now converts closed folds to HTML. This means the HTML
116 looks like it's displayed, with the same folds open and closed. Use "zR", or
117 "let html_ignore_folding=1", if no folds should appear in the HTML. (partly by
119 Diff mode is now also converted to HTML as it is displayed.
121 Win32: The effect of the <F10> key depended on 'winaltkeys'. Now it depends
122 on whether <F10> has been mapped or not. This allows mapping <F10> without
123 changing 'winaltkeys'.
125 When 'octal' is in 'nrformats' and using CTRL-A on "08" it became "018", which
126 is illogical. Now it becomes "9". The leading zero(s) is(are) removed to
127 avoid the number becoming octal after incrementing "009" to "010".
129 When 'encoding' is set to a Unicode encoding, the value for 'fileencodings'
130 now includes "default" before "latin1". This means that for files with 8-bit
131 encodings the default is to use the encoding specified by the environment, if
132 possible. Previously latin1 would always be used, which is wrong in a
133 non-latin1 environment, such as Russian.
135 Previously Vim would exit when there are two windows, both of them displaying
136 a help file, and using ":quit". Now only the window is closed.
138 "-w {scriptout}" only works when {scriptout} doesn't start with a digit.
139 Otherwise it's used to set the 'window' option.
141 Previously <Home> and <xHome> could be mapped separately. This had the
142 disadvantage that all mappings (with modifiers) had to be duplicated, since
143 you can't be sure what the keyboard generates. Now all <xHome> are internally
144 translated to <Home>, both for the keys and for mappings. Also for <xEnd>,
147 ":put" now leaves the cursor on the last inserted line.
149 When a .gvimrc file exists then 'compatible' is off, just like when a ".vimrc"
152 When making a string upper-case with "vlllU" or similar then the German sharp
153 s is replaced with "SS". This does not happen with "~" to avoid backwards
154 compatibility problems and because "SS" can't be changed back to a sharp s.
156 "gd" previously found the very first occurrence of a variable in a function,
157 that could be the function argument without type. Now it finds the position
158 where the type is given.
160 The line continuation in functions was not taken into account, line numbers in
161 errors were logical lines, not lines in the sourced file. That made it
162 difficult to locate errors. Now the line number in the sourced file is
163 reported, relative to the function start. This also means that line numbers
164 for ":breakadd func" are different.
166 When defining a user command with |:command| the special items could be
167 abbreviated. This caused unexpected behavior, such as <li> being recognized
168 as <line1>. The items can no longer be abbreviated.
170 When executing a FileChangedRO autocommand it is no longer allowed to switch
171 to another buffer or edit another file. This is to prevent crashes (the event
172 is triggered deep down in the code where changing buffers is not anticipated).
173 It is still possible to reload the buffer.
175 At the |more-prompt| and the |hit-enter-prompt|, when the 'more' option is
176 set, the 'k', 'u', 'g' and 'b' keys are now used to scroll back to previous
177 messages. Thus they are no longer used as typeahead.
179 ==============================================================================
182 Vim script enhancements *new-vim-script*
183 -----------------------
185 In Vim scripts the following types have been added:
187 |List| ordered list of items
188 |Dictionary| associative array of items
189 |Funcref| reference to a function
191 Many functions and commands have been added to support the new types.
193 The |string()| function can be used to get a string representation of a
194 variable. Works for Numbers, Strings and composites of them. Then |eval()|
195 can be used to turn the string back into the variable value.
197 The |:let| command can now use "+=", "-=" and ".=": >
198 :let var += expr " works like :let var = var + expr
199 :let var -= expr " works like :let var = var - expr
200 :let var .= string " works like :let var = var . string
202 With the |:profile| command you can find out where your function or script
205 In the Python interface vim.eval() also handles Dictionaries and Lists.
206 |python-eval| (G. Sumner Hayes)
208 The |getscript| plugin was added as a convenient way to update scripts from
209 www.vim.org automatically. (Charles Campbell)
211 The |vimball| plugin was added as a convenient way to distribute a set of
212 files for a plugin (plugin file, autoload script, documentation). (Charles
216 Spell checking *new-spell*
219 Spell checking has been integrated in Vim. There were a few implementations
220 with scripts, but they were slow and/or required an external program.
222 The 'spell' option is used to switch spell checking on or off
223 The 'spelllang' option is used to specify the accepted language(s)
224 The 'spellfile' option specifies where new words are added
225 The 'spellsuggest' option specifies the methods used for making suggestions
227 The |[s| and |]s| commands can be used to move to the next or previous error
228 The |zg| and |zw| commands can be used to add good and wrong words
229 The |z=| command can be used to list suggestions and correct the word
230 The |:mkspell| command is used to generate a Vim spell file from word lists
232 The "undercurl" highlighting attribute was added to nicely point out spelling
233 mistakes in the GUI (based on patch from Marcin Dalecki).
234 The "guisp" color can be used to give it a color different from foreground and
236 The number of possible different highlight attributes was raised from about
237 220 to over 30000. This allows for the attributes of spelling to be combined
238 with syntax highlighting attributes. This is also used for syntax
239 highlighting and marking the Visual area.
241 Much more info here: |spell|.
244 Omni completion *new-omni-completion*
247 This could also be called "intellisense", but that is a trademark. It is a
248 smart kind of completion. The text in front of the cursor is inspected to
249 figure out what could be following. This may suggest struct and class
250 members, system functions, etc.
252 Use CTRL-X CTRL-O in Insert mode to start the completion. |i_CTRL-X_CTRL-O|
254 The 'omnifunc' option is set by filetype plugins to define the function that
255 figures out the completion.
257 Currently supported languages:
259 (X)HTML with CSS |ft-html-omni|
260 JavaScript |ft-javascript-omni|
266 any language with syntax highlighting |ft-syntax-omni|
268 You can add your own omni completion scripts.
270 When the 'completeopt' option contains "menu" then matches for Insert mode
271 completion are displayed in a (rather primitive) popup menu.
274 MzScheme interface *new-MzScheme*
277 The MzScheme interpreter is supported. |MzScheme|
279 The |:mzscheme| command can be used to execute MzScheme commands
280 The |:mzfile| command can be used to execute an MzScheme script file
282 This depends on Vim being compiled with the |+mzscheme| feature.
285 Printing multi-byte text *new-print-multi-byte*
286 ------------------------
288 The |:hardcopy| command now supports printing multi-byte characters when using
291 The 'printmbcharset' and 'printmbfont' options are used for this.
292 Also see |postscript-cjk-printing|. (Mike Williams)
295 Tab pages *new-tab-pages*
298 A tab page is page with one or more windows with a label (aka tab) at the top.
299 By clicking on the label you can quickly switch between the tab pages. And
300 with the keyboard, using the |gt| (Goto Tab) command. This is a convenient
301 way to work with many windows.
303 To start Vim with each file argument in a separate tab page use the |-p|
304 argument. The maximum number of pages can be set with 'tabpagemax'.
306 The line with tab labels is either made with plain text and highlighting or
307 with a GUI mechanism. The GUI labels look better but are only available on a
308 few systems. The line can be customized with 'tabline', 'guitablabel' and
309 'guitabtooltip'. Whether it is displayed is set with 'showtabline'. Whether
310 to use the GUI labels is set with the "e" flag in 'guioptions'.
312 The |:tab| command modifier can be used to have most commands that open a new
313 window open a new tab page instead.
315 The |--remote-tab| argument can be used to edit a file in a new tab page in an
316 already running Vim server.
318 Variables starting with "t:" are local to a tab page.
320 More info here: |tabpage|
321 Most of the GUI stuff was implemented by Yegappan Lakshmanan.
324 Undo branches *new-undo-branches*
327 Previously there was only one line of undo-redo. If, after undoing a number
328 of changes, a new change was made all the undone changes were lost. This
329 could lead to accidentally losing work.
331 Vim now makes an undo branch in this situation. Thus you can go back to the
332 text after any change, even if they were undone. So long as you do not run
333 into 'undolevels', when undo information is freed up to limit the memory used.
335 To be able to navigate the undo branches each change is numbered sequentially.
336 The commands |g-| and |:earlier| go back in time, to older changes. The
337 commands |g+| and |:later| go forward in time, to newer changes.
339 The changes are also timestamped. Use ":earlier 10m" to go to the text as it
340 was about ten minutes earlier.
342 The |:undolist| command can be used to get an idea of which undo branches
343 exist. The |:undo| command now takes an argument to directly jump to a
344 specific position in this list. The |changenr()| function can be used to
345 obtain the change number.
347 There is no graphical display of the tree with changes, navigation can be
351 Extended Unicode support *new-more-unicode*
352 ------------------------
354 Previously only two combining characters were displayed. The limit is now
355 raised to 6. This can be set with the 'maxcombine' option. The default is
358 |ga| now shows all combining characters, not just the first two.
360 Previously only 16 bit Unicode characters were supported for displaying. Now
361 the full 32 bit character set can be used. Unless manually disabled at
362 compile time to save a bit of memory.
364 For pattern matching it is now possible to search for individual composing
365 characters. |patterns-composing|
367 The |8g8| command searches for an illegal UTF-8 byte sequence.
370 More highlighting *new-more-highlighting*
373 Highlighting matching parens:
375 When moving the cursor through the text and it is on a paren, then the
376 matching paren can be highlighted. This uses the new |CursorMoved|
379 This means some commands are executed every time you move the cursor. If this
380 slows you down too much switch it off with: >
383 See |matchparen| for more information.
385 The plugin uses the |:match| command. It now supports three match patterns.
386 The plugin uses the third one. The first one is for the user and the second
387 one can be used by another plugin.
389 Highlighting the cursor line and column:
391 The 'cursorline' and 'cursorcolumn' options have been added. These highlight
392 the screen line and screen column of the cursor. This makes the cursor
393 position easier to spot. 'cursorcolumn' is also useful to align text. This
394 may make screen updating quite slow. The CursorColumn and CursorLine
395 highlight groups allow changing the colors used. |hl-CursorColumn|
398 The number of possible different highlight attributes was raised from about
399 220 to over 30000. This allows for the attributes of spelling to be combined
400 with syntax highlighting attributes. This is also used for syntax
401 highlighting, marking the Visual area, CursorColumn, etc.
404 Translated manual pages *new-manpage-trans*
405 -----------------------
407 The manual page of Vim and associated programs is now also available in
408 several other languages.
410 French - translated by David Blanchet
411 Italian - translated by Antonio Colombo
412 Russian - translated by Vassily Ragosin
413 Polish - translated by Mikolaj Machowski
415 The Unix Makefile installs the Italian manual pages in .../man/it/man1/,
416 .../man/it.ISO8859-1/man1/ and .../man/it.UTF-8/man1/. There appears to be no
417 standard for what encoding goes in the "it" directory, the 8-bit encoded file
418 is used there as a best guess.
419 Other languages are installed in similar places.
420 The translated pages are not automatically installed when Vim was configured
421 with "--disable-nls", but "make install-languages install-tool-languages" will
425 Internal grep *new-vimgrep*
428 The ":vimgrep" command can be used to search for a pattern in a list of files.
429 This is like the ":grep" command, but no external program is used. Besides
430 better portability, handling of different file encodings and using multi-line
431 patterns, this also allows grepping in compressed and remote files.
434 If you want to use the search results in a script you can use the
435 |getqflist()| function.
437 To grep files in various directories the "**" pattern can be used. It expands
438 into an arbitrary depth of directories. "**" can be used in all places where
439 file names are expanded, thus also with |:next| and |:args|.
442 Scroll back in messages *new-scroll-back*
443 -----------------------
445 When displaying messages, at the |more-prompt| and the |hit-enter-prompt|, The
446 'k', 'u', 'g' and 'b' keys can be used to scroll back to previous messages.
447 This is especially useful for commands such as ":syntax", ":autocommand" and
448 ":highlight". This is implemented in a generic way thus it works for all
449 commands and highlighting is kept. Only works when the 'more' option is set.
450 Previously it only partly worked for ":clist".
452 The |g<| command can be used to see the last page of messages after you have
453 hit <Enter> at the |hit-enter-prompt|. Then you can scroll further back.
456 Cursor past end of the line *new-onemore*
457 ---------------------------
459 When the 'virtualedit' option contains "onemore" the cursor can move just past
460 the end of the line. As if it's on top of the line break.
462 This makes some commands more consistent. Previously the cursor was always
463 past the end of the line if the line was empty. But it is far from Vi
464 compatible. It may also break some plugins or Vim scripts. Use with care!
466 The patch was provided by Mattias Flodin.
469 POSIX compatibility *new-posix*
472 The POSIX test suite was used to verify POSIX compatibility. A number of
473 problems have been fixed to make Vim more POSIX compatible. Some of them
474 conflict with traditional Vi or expected behavior. The $VIM_POSIX environment
475 variable can be set to get POSIX compatibility. See |posix|.
477 Items that were fixed for both Vi and POSIX compatibility:
478 - repeating "R" with a count only overwrites text once; added the 'X' flag to
480 - a vertical movement command that moves to a non-existing line fails; added
481 the '-' flag to 'cpoptions' |cpo--|
482 - when preserving a file and doing ":q!" the file can be recovered; added the
483 '&' flag to 'cpoptions' |cpo-&|
484 - The 'window' option is partly implemented. It specifies how much CTRL-F and
485 CTRL-B scroll when there is one window. The "-w {number}" argument is now
486 accepted. "-w {scriptout}" only works when {scriptout} doesn't start with a
488 - Allow "-c{command}" argument, no space between "-c" and {command}.
489 - When writing a file with ":w!" don't reset 'readonly' when 'Z' is present in
491 - Allow 'l' and '#' flags for ":list", ":print" and ":number".
492 - Added the '.' flag to 'cpoptions': ":cd" fails when the buffer is modified.
493 - In Ex mode with an empty buffer ":read file" doesn't keep an empty line
494 above or below the new lines.
495 - Remove a backslash before a NL for the ":global" command.
496 - When ":append", ":insert" or ":change" is used with ":global", get the
497 inserted lines from the command. Can use backslash-NL to separate lines.
498 - Can use ":global /pat/ visual" to execute Normal mode commands at each
499 matched line. Use "Q" to continue and go to the next line.
500 - The |:open| command has been partially implemented. It stops Ex mode, but
501 redraws the whole screen, not just one line as open mode is supposed to do.
502 - Support using a pipe to read the output from and write input to an external
503 command. Added the 'shelltemp' option and has("filterpipe").
504 - In ex silent mode the ":set" command output is displayed.
505 - The ":@@" and ":**" give an error message when no register was used before.
506 - The search pattern "[]-`]" matches ']', '^', '_' and '`'.
507 - Autoindent for ":insert" is using the line below the insert.
508 - Autoindent for ":change" is using the first changed line.
509 - Editing Ex command lines is not done in cooked mode, because CTRL-D and
510 CTRL-T cannot be handled then.
511 - In Ex mode, "1,3" prints three lines. "%" prints all lines.
512 - In Ex mode "undo" would undo all changes since Ex mode was started.
513 - Implemented the 'prompt' option.
516 Debugger support *new-debug-support*
519 The 'balloonexpr' option has been added. This is a generic way to implement
520 balloon functionality. You can use it to show info for the word under the
524 Remote file explorer *new-netrw-explore*
527 The netrw plugin now also supports viewing a directory, when "scp://" is used.
528 Deleting and renaming files is possible.
530 To avoid duplicating a lot of code, the previous file explorer plugin has been
531 integrated in the netrw plugin. This means browsing local and remote files
534 ":browse edit" and ":browse split" use the netrw plugin when it's available
535 and a GUI dialog is not possible.
537 The netrw plugin is maintained by Charles Campbell.
540 Define an operator *new-define-operator*
543 Previously it was not possible to define your own operator; a command that is
544 followed by a {motion}. Vim 7 introduces the 'operatorfunc' option and the
545 |g@| operator. This makes it possible to define a mapping that works like an
546 operator. The actual work is then done by a function, which is invoked
547 through the |g@| operator.
549 See |:map-operator| for the explanation and an example.
552 Mapping to an expression *new-map-expression*
553 ------------------------
555 The {rhs} argument of a mapping can be an expression. That means the
556 resulting characters can depend on the context. Example: >
557 :inoremap <expr> . InsertDot()
558 Here the dot will be mapped to whatever InsertDot() returns.
560 This also works for abbreviations. See |:map-<expr>| for the details.
563 Visual and Select mode mappings *new-map-select*
564 -------------------------------
566 Previously Visual mode mappings applied both to Visual and Select mode. With
567 a trick to have the mappings work in Select mode like they would in Visual
570 Commands have been added to define mappings for Visual and Select mode
571 separately: |:xmap| and |:smap|. With the associated "noremap" and "unmap"
574 The same is done for menus: |:xmenu|, |:smenu|, etc.
577 Location list *new-location-list*
580 The support for a per-window quickfix list (location list) is added. The
581 location list can be displayed in a location window (similar to the quickfix
582 window). You can open more than one location list window. A set of commands
583 similar to the quickfix commands are added to browse the location list.
584 (Yegappan Lakshmanan)
587 Various new items *new-items-7*
590 Normal mode commands: ~
592 a", a' and a` New text objects to select quoted strings. |a'|
593 i", i' and i` (Taro Muraoka)
595 CTRL-W <Enter> In the quickfix window: opens a new window to show the
596 location of the error under the cursor.
598 |at| and |it| text objects select a block of text between HTML or XML tags.
600 <A-LeftMouse> ('mousemodel' "popup" or "popup-setpos")
601 <A-RightMouse> ('mousemodel' "extend")
602 Make a blockwise selection. |<A-LeftMouse>|
604 gF Start editing the filename under the cursor and jump
605 to the line number following the file name.
606 (Yegappan Lakshmanan)
608 CTRL-W F Start editing the filename under the cursor in a new
609 window and jump to the line number following the file
610 name. (Yegappan Lakshmanan)
612 Insert mode commands: ~
614 CTRL-\ CTRL-O Execute a Normal mode command. Like CTRL-O but
615 without moving the cursor. |i_CTRL-\_CTRL-O|
619 'balloonexpr' expression for text to show in evaluation balloon
620 'completefunc' The name of the function used for user-specified
621 Insert mode completion. CTRL-X CTRL-U can be used in
622 Insert mode to do any kind of completion. (Taro
624 'completeopt' Enable popup menu and other settings for Insert mode
626 'cursorcolumn' highlight column of the cursor
627 'cursorline' highlight line of the cursor
628 'formatexpr' expression for formatting text with |gq| and when text
629 goes over 'textwidth' in Insert mode.
630 'formatlistpat' pattern to recognize a numbered list for formatting.
632 'fsync' Whether fsync() is called after writing a file.
634 'guitablabel' expression for text to display in GUI tab page label
635 'guitabtooltip' expression for text to display in GUI tab page tooltip
636 'macatsui' Mac: use ATSUI text display functions
637 'maxcombine' maximum number of combining characters displayed
638 'maxmempattern' maximum amount of memory to use for pattern matching
639 'mkspellmem' parameters for |:mkspell| memory use
640 'mzquantum' Time in msec to schedule MzScheme threads.
641 'numberwidth' Minimal width of the space used for the 'number'
642 option. (Emmanuel Renieris)
643 'omnifunc' The name of the function used for omni completion.
644 'operatorfunc' function to be called for |g@| operator
645 'printmbcharset' CJK character set to be used for :hardcopy
646 'printmbfont' font names to be used for CJK output of :hardcopy
647 'pumheight' maximum number of items to show in the popup menu
648 'quoteescape' Characters used to escape quotes inside a string.
649 Used for the a", a' and a` text objects. |a'|
650 'shelltemp' whether to use a temp file or pipes for shell commands
651 'showtabline' whether to show the tab pages line
652 'spell' switch spell checking on/off
653 'spellcapcheck' pattern to locate the end of a sentence
654 'spellfile' file where good and wrong words are added
655 'spelllang' languages to check spelling for
656 'spellsuggest' methods for spell suggestions
657 'synmaxcol' maximum column to look for syntax items; avoids very
658 slow redrawing when there are very long lines
659 'tabline' expression for text to display in the tab pages line
660 'tabpagemax' maximum number of tab pages to open for |-p|
661 'verbosefile' Log messages in a file.
662 'wildoptions' "tagfile" value enables listing the file name of
663 matching tags for CTRL-D command line completion.
664 (based on an idea from Yegappan Lakshmanan)
665 'winfixwidth' window with fixed width, similar to 'winfixheight'
670 Win32: The ":winpos" command now also works in the console. (Vipin Aravind)
672 |:startreplace| Start Replace mode. (Charles Campbell)
673 |:startgreplace| Start Virtual Replace mode.
675 |:0file| Removes the name of the buffer. (Charles Campbell)
677 |:diffoff| Switch off diff mode in the current window or in all
680 |:delmarks| Delete marks.
682 |:exusage| Help for Ex commands (Nvi command).
683 |:viusage| Help for Vi commands (Nvi command).
685 |:sort| Sort lines in the buffer without depending on an
686 external command. (partly by Bryce Wagner)
688 |:vimgrep| Internal grep command, search for a pattern in files.
689 |:vimgrepadd| Like |:vimgrep| but don't make a new list.
691 |:caddfile| Add error messages to an existing quickfix list
692 (Yegappan Lakshmanan).
693 |:cbuffer| Read error lines from a buffer. (partly by Yegappan
695 |:cgetbuffer| Create a quickfix list from a buffer but don't jump to
697 |:caddbuffer| Add errors from the current buffer to the quickfix
699 |:cexpr| Read error messages from a Vim expression (Yegappan
701 |:caddexpr| Add error messages from a Vim expression to an
702 existing quickfix list. (Yegappan Lakshmanan).
703 |:cgetexpr| Create a quickfix list from a Vim expression, but
704 don't jump to the first error. (Yegappan Lakshmanan).
706 |:lfile| Like |:cfile| but use the location list.
707 |:lgetfile| Like |:cgetfile| but use the location list.
708 |:laddfile| Like |:caddfile| but use the location list.
709 |:lbuffer| Like |:cbuffer| but use the location list.
710 |:lgetbuffer| Like |:cgetbuffer| but use the location list.
711 |:laddbuffer| Like |:caddbuffer| but use the location list.
712 |:lexpr| Like |:cexpr| but use the location list.
713 |:lgetexpr| Like |:cgetexpr| but use the location list.
714 |:laddexpr| Like |:caddexpr| but use the location list.
715 |:ll| Like |:cc| but use the location list.
716 |:llist| Like |:clist| but use the location list.
717 |:lnext| Like |:cnext| but use the location list.
718 |:lprevious| Like |:cprevious| but use the location list.
719 |:lNext| Like |:cNext| but use the location list.
720 |:lfirst| Like |:cfirst| but use the location list.
721 |:lrewind| Like |:crewind| but use the location list.
722 |:llast| Like |:clast| but use the location list.
723 |:lnfile| Like |:cnfile| but use the location list.
724 |:lpfile| Like |:cpfile| but use the location list.
725 |:lNfile| Like |:cNfile| but use the location list.
726 |:lolder| Like |:colder| but use the location list.
727 |:lnewer| Like |:cnewer| but use the location list.
728 |:lwindow| Like |:cwindow| but use the location list.
729 |:lopen| Like |:copen| but use the location list.
730 |:lclose| Like |:cclose| but use the location list.
731 |:lmake| Like |:make| but use the location list.
732 |:lgrep| Like |:grep| but use the location list.
733 |:lgrepadd| Like |:grepadd| but use the location list.
734 |:lvimgrep| Like |:vimgrep| but use the location list.
735 |:lvimgrepadd| Like |:vimgrepadd| but use the location list.
736 |:lhelpgrep| Like |:helpgrep| but use the location list.
737 |:lcscope| Like |:cscope| but use the location list.
738 |:ltag| Jump to a tag and add matching tags to a location list.
740 |:undojoin| Join a change with the previous undo block.
741 |:undolist| List the leafs of the undo tree.
743 |:earlier| Go back in time for changes in the text.
744 |:later| Go forward in time for changes in the text.
746 |:for| Loop over a |List|.
749 |:lockvar| Lock a variable, prevents it from being changed.
750 |:unlockvar| Unlock a locked variable.
752 |:mkspell| Create a Vim spell file.
753 |:spellgood| Add a word to the list of good words.
754 |:spellwrong| Add a word to the list of bad words
755 |:spelldump| Dump list of good words.
756 |:spellinfo| Show information about the spell files used.
757 |:spellrepall| Repeat a spelling correction for the whole buffer.
758 |:spellundo| Remove a word from list of good and bad words.
760 |:mzscheme| Execute MzScheme commands.
761 |:mzfile| Execute an MzScheme script file.
763 |:nbkey| Pass a key to NetBeans for processing.
765 |:profile| Commands for Vim script profiling.
766 |:profdel| Stop profiling for specified items.
768 |:smap| Select mode mapping.
773 |:xmap| Visual mode mapping, not used for Select mode.
778 |:smenu| Select mode menu.
782 |:xmenu| Visual mode menu, not used for Select mode.
786 |:tabclose| Close the current tab page.
787 |:tabdo| Perform a command in every tab page.
788 |:tabedit| Edit a file in a new tab page.
789 |:tabnew| Open a new tab page.
790 |:tabfind| Search for a file and open it in a new tab page.
791 |:tabnext| Go to the next tab page.
792 |:tabprevious| Go to the previous tab page.
793 |:tabNext| Go to the previous tab page.
794 |:tabfirst| Go to the first tab page.
795 |:tabrewind| Go to the first tab page.
796 |:tablast| Go to the last tab page.
797 |:tabmove| Move the current tab page elsewhere.
798 |:tabonly| Close all other tab pages.
799 |:tabs| List the tab pages and the windows they contain.
801 Ex command modifiers: ~
803 |:keepalt| Do not change the alternate file.
805 |:noautocmd| Do not trigger autocommand events.
807 |:sandbox| Execute a command in the sandbox.
809 |:tab| When opening a new window create a new tab page.
812 Ex command arguments: ~
814 |++bad| Specify what happens with characters that can't be
815 converted and illegal bytes. (code example by Yasuhiro
817 Also, when a conversion error occurs or illegal bytes
818 are found include the line number in the error
822 New and extended functions: ~
824 |add()| append an item to a List
825 |append()| append List of lines to the buffer
826 |argv()| without an argument return the whole argument list
827 |browsedir()| dialog to select a directory
828 |bufnr()| takes an extra argument: create buffer
829 |byteidx()| index of a character (Ilya Sher)
830 |call()| call a function with List as arguments
831 |changenr()| number of current change
832 |complete()| set matches for Insert mode completion
833 |complete_add()| add match for 'completefunc'
834 |complete_check()| check for key pressed, for 'completefunc'
835 |copy()| make a shallow copy of a List or Dictionary
836 |count()| count nr of times a value is in a List or Dictionary
837 |cursor()| also accepts an offset for 'virtualedit', and
838 the first argument can be a list: [lnum, col, off]
839 |deepcopy()| make a full copy of a List or Dictionary
840 |diff_filler()| returns number of filler lines above line {lnum}.
841 |diff_hlID()| returns the highlight ID for diff mode
842 |empty()| check if List or Dictionary is empty
843 |eval()| evaluate {string} and return the result
844 |extend()| append one List to another or add items from one
845 Dictionary to another
846 |feedkeys()| put characters in the typeahead buffer
847 |filter()| remove selected items from a List or Dictionary
848 |finddir()| find a directory in 'path'
849 |findfile()| find a file in 'path' (Johannes Zellner)
850 |foldtextresult()| the text displayed for a closed fold at line "lnum"
851 |function()| make a Funcref out of a function name
852 |garbagecollect()| cleanup unused |Lists| and |Dictionaries| with circular
854 |get()| get an item from a List or Dictionary
855 |getbufline()| get a list of lines from a specified buffer
856 (Yegappan Lakshmanan)
857 |getcmdtype()| return the current command-line type
858 (Yegappan Lakshmanan)
859 |getfontname()| get actual font name being used
860 |getfperm()| get file permission string (Nikolai Weibull)
861 |getftype()| get type of file (Nikolai Weibull)
862 |getline()| with second argument: get List with buffer lines
863 |getloclist()| list of location list items (Yegappan Lakshmanan)
864 |getpos()| return a list with the position of cursor, mark, etc.
865 |getqflist()| list of quickfix errors (Yegappan Lakshmanan)
866 |getreg()| get contents of a register
867 |gettabwinvar()| get variable from window in specified tab page.
868 |has_key()| check whether a key appears in a Dictionary
869 |haslocaldir()| check if current window used |:lcd|
870 |hasmapto()| check for a mapping to a string
871 |index()| index of item in List
872 |inputlist()| prompt the user to make a selection from a list
873 |insert()| insert an item somewhere in a List
874 |islocked()| check if a variable is locked
875 |items()| get List of Dictionary key-value pairs
876 |join()| join List items into a String
877 |keys()| get List of Dictionary keys
878 |len()| number of items in a List or Dictionary
879 |map()| change each List or Dictionary item
880 |maparg()| extra argument: use abbreviation
881 |mapcheck()| extra argument: use abbreviation
882 |match()| extra argument: count
883 |matcharg()| return arguments of |:match| command
884 |matchend()| extra argument: count
885 |matchlist()| list with match and submatches of a pattern in a string
886 |matchstr()| extra argument: count
887 |max()| maximum value in a List or Dictionary
888 |min()| minimum value in a List or Dictionary
889 |mkdir()| create a directory
890 |pathshorten()| reduce directory names to a single character
891 |printf()| format text
892 |pumvisible()| check whether the popup menu is displayed
893 |range()| generate a List with numbers
894 |readfile()| read a file into a list of lines
895 |reltime()| get time value, possibly relative
896 |reltimestr()| turn a time value into a string
897 |remove()| remove one or more items from a List or Dictionary
898 |repeat()| repeat "expr" "count" times (Christophe Poucet)
899 |reverse()| reverse the order of a List
900 |search()| extra argument:
901 |searchdecl()| search for declaration of variable
902 |searchpair()| extra argument: line to stop searching
903 |searchpairpos()| return a List with the position of the match
904 |searchpos()| return a List with the position of the match
905 |setloclist()| modify a location list (Yegappan Lakshmanan)
906 |setpos()| set cursor or mark to a position
907 |setqflist()| modify a quickfix list (Yegappan Lakshmanan)
908 |settabwinvar()| set variable in window of specified tab page
910 |soundfold()| get the sound-a-like equivalent of a word
911 |spellbadword()| get a badly spelled word
912 |spellsuggest()| get suggestions for correct spelling
913 |split()| split a String into a List
914 |str2nr()| convert a string to a number, base 8, 10 or 16
915 |stridx()| extra argument: start position
916 |strridx()| extra argument: start position
917 |string()| string representation of a List or Dictionary
918 |system()| extra argument: filters {input} through a shell command
919 |tabpagebuflist()| List of buffers in a tab page
920 |tabpagenr()| number of current or last tab page
921 |tabpagewinnr()| window number in a tab page
922 |tagfiles()| List with tags file names
923 |taglist()| get list of matching tags (Yegappan Lakshmanan)
924 |tr()| translate characters (Ron Aaron)
925 |values()| get List of Dictionary values
926 |winnr()| takes an argument: what window to use
927 |winrestview()| restore the view of the current window
928 |winsaveview()| save the view of the current window
929 |writefile()| write a list of lines into a file
931 User defined functions can now be loaded automatically from the "autoload"
932 directory in 'runtimepath'. See |autoload-functions|.
937 |v:insertmode| used for |InsertEnter| and |InsertChange| autocommands
938 |v:val| item value in a |map()| or |filter()| function
939 |v:key| item key in a |map()| or |filter()| function
940 |v:profiling| non-zero after a ":profile start" command
941 |v:fcs_reason| the reason why |FileChangedShell| was triggered
942 |v:fcs_choice| what should happen after |FileChangedShell|
943 |v:beval_bufnr| buffer number for 'balloonexpr'
944 |v:beval_winnr| window number for 'balloonexpr'
945 |v:beval_lnum| line number for 'balloonexpr'
946 |v:beval_col| column number for 'balloonexpr'
947 |v:beval_text| text under the mouse pointer for 'balloonexpr'
948 |v:scrollstart| what caused the screen to be scrolled up
949 |v:swapname| name of the swap file for the |SwapExists| event
950 |v:swapchoice| what to do for an existing swap file
951 |v:swapcommand| command to be executed after handling |SwapExists|
952 |v:char| argument for evaluating 'formatexpr'
955 New autocommand events: ~
957 |ColorScheme| after loading a color scheme
959 |CursorHoldI| the user doesn't press a key for a while in Insert mode
960 |CursorMoved| the cursor was moved in Normal mode
961 |CursorMovedI| the cursor was moved in Insert mode
963 |FileChangedShellPost| after handling a file changed outside of Vim
965 |InsertEnter| starting Insert or Replace mode
966 |InsertChange| going from Insert to Replace mode or back
967 |InsertLeave| leaving Insert or Replace mode
969 |MenuPopup| just before showing popup menu
971 |QuickFixCmdPre| before :make, :grep et al. (Ciaran McCreesh)
972 |QuickFixCmdPost| after :make, :grep et al. (Ciaran McCreesh)
974 |SessionLoadPost| after loading a session file. (Yegappan Lakshmanan)
976 |ShellCmdPost| after executing a shell command
977 |ShellFilterPost| after filtering with a shell command
979 |SourcePre| before sourcing a Vim script
981 |SpellFileMissing| when a spell file can't be found
983 |SwapExists| found existing swap file when editing a file
985 |TabEnter| just after entering a tab page
986 |TabLeave| just before leaving a tab page
988 |VimResized| after the Vim window size changed (Yakov Lerner)
991 New highlight groups: ~
993 Pmenu Popup menu: normal item |hl-Pmenu|
994 PmenuSel Popup menu: selected item |hl-PmenuSel|
995 PmenuThumb Popup menu: scrollbar |hl-PmenuThumb|
996 PmenuSbar Popup menu: Thumb of the scrollbar |hl-PmenuSbar|
998 TabLine tab pages line, inactive label |hl-TabLine|
999 TabLineSel tab pages line, selected label |hl-TabLineSel|
1000 TabLineFill tab pages line, filler |hl-TabLineFill|
1002 SpellBad badly spelled word |hl-SpellBad|
1003 SpellCap word with wrong caps |hl-SpellCap|
1004 SpellRare rare word |hl-SpellRare|
1005 SpellLocal word only exists in other region |hl-SpellLocal|
1007 CursorColumn 'cursorcolumn' |hl-CursorColumn|
1008 CursorLine 'cursorline' |hl-CursorLine|
1010 MatchParen matching parens |pi_paren.txt| |hl-MatchParen|
1013 New items in search patterns: ~
1014 |/\%d| \%d123 search for character with decimal number
1015 |/\]| [\d123] idem, in a collection
1016 |/\%o| \%o103 search for character with octal number
1017 |/\]| [\o1o3] idem, in a collection
1018 |/\%x| \%x1a search for character with 2 pos. hex number
1019 |/\]| [\x1a] idem, in a collection
1020 |/\%u| \%u12ab search for character with 4 pos. hex number
1021 |/\]| [\u12ab] idem, in a collection
1022 |/\%U| \%U1234abcd search for character with 8 pos. hex number
1023 |/\]| [\U1234abcd] idem, in a collection
1024 (The above partly by Ciaran McCreesh)
1026 |/[[=| [[=a=]] an equivalence class (only for latin1 characters)
1027 |/[[.| [[.a.]] a collation element (only works with single char)
1029 |/\%'m| \%'m match at mark m
1030 |/\%<'m| \%<'m match before mark m
1031 |/\%>'m| \%>'m match after mark m
1032 |/\%V| \%V match in Visual area
1034 Nesting |/multi| items no longer is an error when an empty match is possible.
1036 It is now possible to use \{0}, it matches the preceding atom zero times. Not
1037 useful, just for compatibility.
1040 New Syntax/Indent/FTplugin files: ~
1042 Moved all the indent settings from the filetype plugin to the indent file.
1043 Implemented b:undo_indent to undo indent settings when setting 'filetype' to a
1046 a2ps syntax and ftplugin file. (Nikolai Weibull)
1047 ABAB/4 syntax file. (Marius van Wyk)
1048 alsaconf ftplugin file. (Nikolai Weibull)
1049 AppendMatchGroup ftplugin file. (Dave Silvia)
1050 arch ftplugin file. (Nikolai Weibull)
1051 asterisk and asteriskvm syntax file. (Tilghman Lesher)
1052 BDF ftplugin file. (Nikolai Weibull)
1053 BibTeX indent file. (Dorai Sitaram)
1054 BibTeX Bibliography Style syntax file. (Tim Pope)
1055 BTM ftplugin file. (Bram Moolenaar)
1056 calendar ftplugin file. (Nikolai Weibull)
1057 Changelog indent file. (Nikolai Weibull)
1058 ChordPro syntax file. (Niels Bo Andersen)
1059 Cmake indent and syntax file. (Andy Cedilnik)
1060 conf ftplugin file. (Nikolai Weibull)
1061 context syntax and ftplugin file. (Nikolai Weibull)
1062 CRM114 ftplugin file. (Nikolai Weibull)
1063 cvs RC ftplugin file. (Nikolai Weibull)
1064 D indent file. (Jason Mills)
1065 Debian Sources.list syntax file. (Matthijs Mohlmann)
1066 dictconf and dictdconf syntax, indent and ftplugin files. (Nikolai Weibull)
1067 diff ftplugin file. (Bram Moolenaar)
1068 dircolors ftplugin file. (Nikolai Weibull)
1069 django and htmldjango syntax file. (Dave Hodder)
1070 doxygen syntax file. (Michael Geddes)
1071 elinks ftplugin file. (Nikolai Weibull)
1072 eterm ftplugin file. (Nikolai Weibull)
1073 eviews syntax file. (Vaidotas Zemlys)
1074 fetchmail RC ftplugin file. (Nikolai Weibull)
1075 FlexWiki syntax and ftplugin file. (George Reilly)
1076 Generic indent file. (Dave Silvia)
1077 gpg ftplugin file. (Nikolai Weibull)
1078 gretl syntax file. (Vaidotas Zemlys)
1079 groovy syntax file. (Alessio Pace)
1080 group syntax and ftplugin file. (Nikolai Weibull)
1081 grub ftplugin file. (Nikolai Weibull)
1082 Haskell ftplugin file. (Nikolai Weibull)
1083 help ftplugin file. (Nikolai Weibull)
1084 indent ftplugin file. (Nikolai Weibull)
1085 Javascript ftplugin file. (Bram Moolenaar)
1086 Kconfig ftplugin and syntax file. (Nikolai Weibull)
1087 ld syntax, indent and ftplugin file. (Nikolai Weibull)
1088 lftp ftplugin file. (Nikolai Weibull)
1089 libao config ftplugin file. (Nikolai Weibull)
1090 limits syntax and ftplugin file. (Nikolai Weibull)
1091 Lisp indent file. (Sergey Khorev)
1092 loginaccess and logindefs syntax and ftplugin file. (Nikolai Weibull)
1093 m4 ftplugin file. (Nikolai Weibull)
1094 mailaliases syntax file. (Nikolai Weibull)
1095 mailcap ftplugin file. (Nikolai Weibull)
1096 manconf syntax and ftplugin file. (Nikolai Weibull)
1097 matlab ftplugin file. (Jake Wasserman)
1098 Maxima syntax file. (Robert Dodier)
1099 MGL syntax file. (Gero Kuhlmann)
1100 modconf ftplugin file. (Nikolai Weibull)
1101 mplayer config ftplugin file. (Nikolai Weibull)
1102 Mrxvtrc syntax and ftplugin file. (Gautam Iyer)
1103 MuPAD source syntax, indent and ftplugin. (Dave Silvia)
1104 mutt RC ftplugin file. (Nikolai Weibull)
1105 nanorc syntax and ftplugin file. (Nikolai Weibull)
1106 netrc ftplugin file. (Nikolai Weibull)
1107 pamconf syntax and ftplugin file. (Nikolai Weibull)
1108 Pascal indent file. (Neil Carter)
1109 passwd syntax and ftplugin file. (Nikolai Weibull)
1110 PHP compiler plugin. (Doug Kearns)
1111 pinfo ftplugin file. (Nikolai Weibull)
1112 plaintex syntax and ftplugin files. (Nikolai Weibull, Benji Fisher)
1113 procmail ftplugin file. (Nikolai Weibull)
1114 prolog ftplugin file. (Nikolai Weibull)
1115 protocols syntax and ftplugin file. (Nikolai Weibull)
1116 quake ftplugin file. (Nikolai Weibull)
1117 racc syntax and ftplugin file. (Nikolai Weibull)
1118 readline ftplugin file. (Nikolai Weibull)
1119 rhelp syntax file. (Johannes Ranke)
1120 rnoweb syntax file. (Johannes Ranke)
1121 Relax NG compact ftplugin file. (Nikolai Weibull)
1122 Scheme indent file. (Sergey Khorev)
1123 screen ftplugin file. (Nikolai Weibull)
1124 sensors syntax and ftplugin file. (Nikolai Weibull)
1125 services syntax and ftplugin file. (Nikolai Weibull)
1126 setserial syntax and ftplugin file. (Nikolai Weibull)
1127 sieve syntax and ftplugin file. (Nikolai Weibull)
1128 SiSU syntax file (Ralph Amissah)
1129 Sive syntax file. (Nikolai Weibull)
1130 slp config, reg and spi syntax and ftplugin files. (Nikolai Weibull)
1131 SML indent file. (Saikat Guha)
1132 SQL anywhere syntax and indent file. (David Fishburn)
1134 SQL-Informix syntax file. (Dean L Hill)
1135 SQL: Handling of various variants. (David Fishburn)
1136 sshconfig ftplugin file. (Nikolai Weibull)
1137 Stata and SMCL syntax files. (Jeff Pitblado)
1138 sudoers ftplugin file. (Nikolai Weibull)
1139 sysctl syntax and ftplugin file. (Nikolai Weibull)
1140 terminfo ftplugin file. (Nikolai Weibull)
1141 trustees syntax file. (Nima Talebi)
1142 Vera syntax file. (David Eggum)
1143 udev config, permissions and rules syntax and ftplugin files. (Nikolai Weibull)
1144 updatedb syntax and ftplugin file. (Nikolai Weibull)
1145 VHDL indent file (Gerald Lai)
1146 WSML syntax file. (Thomas Haselwanter)
1147 Xdefaults ftplugin file. (Nikolai Weibull)
1148 XFree86 config ftplugin file. (Nikolai Weibull)
1149 xinetd syntax, indent and ftplugin file. (Nikolai Weibull)
1150 xmodmap ftplugin file. (Nikolai Weibull)
1151 Xquery syntax file. (Jean-Marc Vanel)
1152 xsd (XML schema) indent file.
1153 YAML ftplugin file. (Nikolai Weibull)
1154 Zsh ftplugin file. (Nikolai Weibull)
1159 Sinhala (Sri Lanka) (Harshula Jayasuriya)
1160 Tamil in TSCII encoding (Yegappan Lakshmanan)
1161 Greek in cp737 (Panagiotis Louridas)
1162 Polish-slash (HS6_06)
1163 Ukrainian-jcuken (Anatoli Sakhnik)
1164 Kana (Edward L. Fox)
1167 New message translations: ~
1169 The Ukrainian messages are now also available in cp1251.
1170 Vietnamese message translations and menu. (Phan Vinh Thinh)
1175 The |:read| command has the |++edit| argument. This means it will use the
1176 detected 'fileformat', 'fileencoding' and other options for the buffer. This
1177 also fixes the problem that editing a compressed file didn't set these
1180 The Netbeans interface was updated for Sun Studio 10. The protocol number
1181 goes from 2.2 to 2.3. (Gordon Prieur)
1183 Mac: When starting up Vim will load the $VIMRUNTIME/macmap.vim script to
1184 define default command-key mappings. (mostly by Benji Fisher)
1185 This only applies to the older Carbon version of Vim, MacVim.app does not
1188 Mac: Add the selection type to the clipboard, so that Block, line and
1189 character selections can be used between two Vims. (Eckehard Berns)
1190 Also fixes the problem that setting 'clipboard' to "unnamed" breaks using
1193 Mac: GUI font selector. (Peter Cucka)
1195 Mac: support for multi-byte characters. (Da Woon Jung)
1196 This doesn't always work properly. If you see text drawing problems try
1197 switching the 'macatsui' option off.
1199 Mac: Support the xterm mouse in the non-GUI version.
1201 Mac: better integration with Xcode. Post a fake mouse-up event after the odoc
1202 event and the drag receive handler to work around a stall after Vim loads a
1203 file. Fixed an off-by-one line number error. (Da Woon Jung)
1205 Mac: When started from Finder change directory to the file being edited or the
1206 user home directory.
1208 Added the t_SI and t_EI escape sequences for starting and ending Insert mode.
1209 To be used to set the cursor shape to a bar or a block. No default values,
1210 they are not supported by termcap/terminfo.
1212 GUI font selector for Motif. (Marcin Dalecki)
1214 Nicer toolbar buttons for Motif. (Marcin Dalecki)
1216 Mnemonics for the Motif find/replace dialog. (Marcin Dalecki)
1218 Included a few improvements for Motif from Marcin Dalecki. Draw label
1219 contents ourselves to make them handle fonts in a way configurable by Vim and
1220 a bit less dependent on the X11 font management.
1222 Autocommands can be defined local to a buffer. This means they will also work
1223 when the buffer does not have a name or no specific name. See
1224 |autocmd-buflocal|. (Yakov Lerner)
1226 For xterm most combinations of modifiers with function keys are recognized.
1227 |xterm-modifier-keys|
1229 When 'verbose' is set the output of ":highlight" will show where a highlight
1231 When 'verbose' is set the output of the ":map", ":abbreviate", ":command",
1232 ":function" and ":autocmd" commands will show where it was last defined.
1233 (Yegappan Lakshmanan)
1235 ":function /pattern" lists functions matching the pattern.
1237 "1gd" can be used like "gd" but ignores matches in a {} block that ends before
1238 the cursor position. Likewise for "1gD" and "gD".
1240 'scrolljump' can be set to a negative number to scroll a percentage of the
1243 The |v:scrollstart| variable has been added to help finding the location in
1244 your script that causes the hit-enter prompt.
1246 To make it possible to handle the situation that a file is being edited that
1247 is already being edited by another Vim instance, the |SwapExists| event has
1248 been added. The |v:swapname|, |v:swapchoice| and |v:swapcommand| variables
1249 can be used, for example to use the |client-server| functionality to bring the
1250 other Vim to the foreground.
1251 When starting Vim with a "-t tag" argument, there is an existing swapfile and
1252 the user selects "quit" or "abort" then exit Vim.
1254 Undo now also restores the '< and '> marks. "gv" selects the same area as
1255 before the change and undo.
1257 When editing a search pattern for a "/" or "?" command and 'incsearch' is set
1258 CTRL-L can be used to add a character from the current match. CTRL-R CTRL-W
1259 will add a word, but exclude the part of the word that was already typed.
1261 Ruby interface: add line number methods. (Ryan Paul)
1263 The $MYVIMRC environment variable is set to the first found vimrc file.
1264 The $MYGVIMRC environment variable is set to the first found gvimrc file.
1266 ==============================================================================
1267 IMPROVEMENTS *improvements-7*
1269 ":helpgrep" accepts a language specifier after the pattern: "pat@it".
1271 Moved the help for printing to a separate help file. It's quite a lot now.
1273 When doing completion for ":!cmd", ":r !cmd" or ":w !cmd" executable files are
1274 found in $PATH instead of looking for ordinary files in the current directory.
1276 When ":silent" is used and a backwards range is given for an Ex command the
1277 range is swapped automatically instead of asking if that is OK.
1279 The pattern matching code was changed from a recursive function to an
1280 iterative mechanism. This avoids out-of-stack errors. State is stored in
1281 allocated memory, running out of memory can always be detected. Allows
1282 matching more complex things, but Vim may seem to hang while doing that.
1284 Previously some options were always evaluated in the |sandbox|. Now that only
1285 happens when the option was set from a modeline or in secure mode. Applies to
1286 'balloonexpr', 'foldexpr', 'foldtext' and 'includeexpr'. (Sumner Hayes)
1288 Some commands and expressions could have nasty side effects, such as using
1289 CTRL-R = while editing a search pattern and the expression invokes a function
1290 that jumps to another window. The |textlock| has been added to prevent this
1293 ":breakadd here" and ":breakdel here" can be used to set or delete a
1294 breakpoint at the cursor.
1296 It is now possible to define a function with: >
1297 :exe "func Test()\n ...\n endfunc"
1299 The tutor was updated to make it simpler to use and text was added to explain
1300 a few more important commands. Used ideas from Gabriel Zachmann.
1302 Unix: When libcall() fails obtain an error message with dlerror() and display
1303 it. (Johannes Zellner)
1305 Mac and Cygwin: When editing an existing file make the file name the same case
1306 of the edited file. Thus when typing ":e os_UNIX.c" the file name becomes
1309 Added "nbsp" in 'listchars'. (David Blanchet)
1311 Added the "acwrite" value for the 'buftype' option. This is for a buffer that
1312 does not have a name that refers to a file and is written with BufWriteCmd
1315 For lisp indenting and matching parenthesis: (Sergey Khorev)
1316 - square brackets are recognized properly
1317 - #\(, #\), #\[ and #\] are recognized as character literals
1318 - Lisp line comments (delimited by semicolon) are recognized
1320 Added the "count" argument to match(), matchend() and matchstr(). (Ilya Sher)
1322 winnr() takes an optional "$" or "#" argument. (Nikolai Weibull, Yegappan
1325 Added 's' flag to search(): set ' mark if cursor moved. (Yegappan Lakshmanan)
1326 Added 'n' flag to search(): don't move the cursor. (Nikolai Weibull)
1327 Added 'c' flag to search(): accept match at the cursor.
1328 Added 'e' flag to search(): move to end of the match. (Benji Fisher)
1329 Added 'p' flag to search(): return number of sub-pattern. (Benji Fisher)
1330 These also apply to searchpos(), searchpair() and searchpairpos().
1332 The search() and searchpair() functions have an extra argument to specify
1333 where to stop searching. Speeds up searches that should not continue too far.
1335 When uncompressing fails in the gzip plugin, give an error message but don't
1336 delete the raw text. Helps if the file has a .gz extension but is not
1337 actually compressed. (Andrew Pimlott)
1339 When C, C++ or IDL syntax is used, may additionally load doxygen syntax.
1342 Support setting 'filetype' and 'syntax' to "aaa.bbb" for "aaa" plus "bbb"
1345 The ":registers" command now displays multi-byte characters properly.
1347 VMS: In the usage message mention that a slash can be used to make a flag
1348 upper case. Add color support to the builtin vt320 terminal codes.
1351 For the '%' item in 'viminfo', allow a number to set a maximum for the number
1354 For recognizing the file type: When a file looks like a shell script, check
1355 for an "exec" command that starts the tcl interpreter. (suggested by Alexios
1358 Support conversion between utf-8 and latin9 (iso-8859-15) internally, so that
1359 digraphs still work when iconv is not available.
1361 When a session file is loaded while editing an unnamed, empty buffer that
1362 buffer is wiped out. Avoids that there is an unused buffer in the buffer
1365 Win32: When libintl.dll supports bind_textdomain_codeset(), use it.
1366 (NAKADAIRA Yukihiro)
1368 Win32: Vim was not aware of hard links on NTFS file systems. These are
1369 detected now for when 'backupcopy' is "auto". Also fixed a bogus "file has
1370 been changed since reading it" error for links.
1372 When foldtext() finds no text after removing the comment leader, use the
1373 second line of the fold. Helps for C-style /* */ comments where the first
1376 When editing the same file from two systems (e.g., Unix and MS-Windows) there
1377 mostly was no warning for an existing swap file, because the name of the
1378 edited file differs (e.g., y:\dir\file vs /home/me/dir/file). Added a flag to
1379 the swap file to indicate it is in the same directory as the edited file. The
1380 used path then doesn't matter and the check for editing the same file is much
1383 Unix: When editing a file through a symlink the swap file would use the name
1384 of the symlink. Now use the name of the actual file, so that editing the same
1385 file twice is detected. (suggestions by Stefano Zacchiroli and James Vega)
1387 Client-server communication now supports 'encoding'. When setting 'encoding'
1388 in a Vim server to "utf-8", and using "vim --remote fname" in a console,
1389 "fname" is converted from the console encoding to utf-8. Also allows Vims
1390 with different 'encoding' settings to exchange messages.
1392 Internal: Changed ga_room into ga_maxlen, so that it doesn't need to be
1393 incremented/decremented each time.
1395 When a register is empty it is not stored in the viminfo file.
1397 Removed the tcltags script, it's obsolete.
1399 ":redir @*>>" and ":redir @+>>" append to the clipboard. Better check for
1400 invalid characters after the register name. |:redir|
1402 ":redir => variable" and ":redir =>> variable" write or append to a variable.
1403 (Yegappan Lakshmanan) |:redir|
1405 ":redir @{a-z}>>" appends to register a to z. (Yegappan Lakshmanan)
1407 The 'verbosefile' option can be used to log messages in a file. Verbose
1408 messages are not displayed then. The "-V{filename}" argument can be used to
1409 log startup messages.
1411 ":let g:" lists global variables.
1412 ":let b:" lists buffer-local variables.
1413 ":let w:" lists window-local variables.
1414 ":let v:" lists Vim variables.
1416 The stridx() and strridx() functions take a third argument, where to start
1417 searching. (Yegappan Lakshmanan)
1419 The getreg() function takes an extra argument to be able to get the expression
1420 for the '=' register instead of the result of evaluating it.
1422 The setline() function can take a List argument to set multiple lines. When
1423 the line number is just below the last line the line is appended.
1425 g CTRL-G also shows the number of characters if it differs from the number of
1428 Completion for ":debug" and entering an expression for the '=' register. Skip
1429 ":" between range and command name. (Peter winters)
1431 CTRL-Q in Insert mode now works like CTRL-V by default. Previously it was
1434 When "beep" is included in 'debug' a function or script that causes a beep
1435 will result in a message with the source of the error.
1437 When completing buffer names, match with "\(^\|[\/]\)" instead of "^", so that
1438 ":buf stor<Tab>" finds both "include/storage.h" and "storage/main.c".
1440 To count items (pattern matches) without changing the buffer the 'n' flag has
1441 been added to |:substitute|. See |count-items|.
1443 In a |:substitute| command the \u, \U, \l and \L items now also work for
1444 multi-byte characters.
1446 The "screen.linux" $TERM name is recognized to set the default for
1447 'background' to "dark". (Ciaran McCreesh) Also for "cygwin" and "putty".
1449 The |FileChangedShell| autocommand event can now use the |v:fcs_reason|
1450 variable that specifies what triggered the event. |v:fcs_choice| can be used
1451 to reload the buffer or ask the user what to do.
1453 Not all modifiers were recognized for xterm function keys. Added the
1454 possibility in term codes to end in ";*X" or "O*X", where X is any character
1455 and the * stands for the modifier code.
1456 Added the <xUp>, <xDown>, <xLeft> and <xRight> keys, to be able to recognize
1457 the two forms that xterm can send their codes in and still handle all possible
1460 getwinvar() now also works to obtain a buffer-local option from the specified
1463 Added the "%s" item to 'errorformat'. (Yegappan Lakshmanan)
1464 Added the "%>" item to 'errorformat'.
1466 For 'errorformat' it was not possible to have a file name that contains the
1467 character that follows after "%f". For example, in "%f:%l:%m" the file name
1468 could not contain ":". Now include the first ":" where the rest of the
1469 pattern matches. In the example a ":" not followed by a line number is
1470 included in the file name. (suggested by Emanuele Giaquinta)
1472 GTK GUI: use the GTK file dialog when it's available. Mix from patches by
1473 Grahame Bowland and Evan Webb.
1475 Added ":scriptnames" to bugreport.vim, so that we can see what plugins were
1478 Win32: If the user changes the setting for the number of lines a scroll wheel
1479 click scrolls it is now used immediately. Previously Vim would need to be
1482 When using @= in an expression the value is expression @= contains. ":let @=
1483 = value" can be used to set the register contents.
1485 A ! can be added to ":popup" to have the popup menu appear at the mouse
1486 pointer position instead of the text cursor.
1488 The table with encodings has been expanded with many MS-Windows codepages,
1489 such as cp1250 and cp737, so that these can also be used on Unix without
1491 When an encoding name starts with "microsoft-cp" ignore the "microsoft-" part.
1493 Added the "customlist" completion argument to a user-defined command. The
1494 user-defined completion function should return the completion candidates as a
1495 Vim List and the returned results are not filtered by Vim. (Yegappan
1498 Win32: Balloons can have multiple lines if common controls supports it.
1501 For command-line completion the matches for various types of arguments are now
1502 sorted: user commands, variables, syntax names, etc.
1504 When no locale is set, thus using the "C" locale, Vim will work with latin1
1505 characters, using its own isupper()/toupper()/etc. functions.
1507 When using an rxvt terminal emulator guess the value of 'background' using the
1508 COLORFGBG environment variable. (Ciaran McCreesh)
1510 Also support t_SI and t_EI on Unix with normal features. (Ciaran McCreesh)
1512 When 'foldcolumn' is one then put as much info in it as possible. This allows
1513 closing a fold with the mouse by clicking on the '-'.
1515 input() takes an optional completion argument to specify the type of
1516 completion supported for the input. (Yegappan Lakshmanan)
1518 "dp" works with more than two buffers in diff mode if there is only one where
1519 'modifiable' is set.
1521 The 'diffopt' option has three new values: "horizontal", "vertical" and
1524 When the 'include' option contains \zs the file name found is what is being
1525 matched from \zs to the end or \ze. Useful to pass more to 'includeexpr'.
1527 Loading plugins on startup now supports subdirectories in the plugin
1528 directory. |load-plugins|
1530 In the foldcolumn always show the '+' for a closed fold, so that it can be
1531 opened easily. It may overwrite another character, esp. if 'foldcolumn' is 1.
1533 It is now possible to get the W10 message again by setting 'readonly'. Useful
1534 in the FileChangedRO autocommand when checking out the file fails.
1536 Unix: When open() returns EFBIG give an appropriate message.
1538 ":mksession" sets the SessionLoad variable to notify plugins. A modeline is
1539 added to the session file to set 'filetype' to "vim".
1541 In the ATTENTION prompt put the "Delete it" choice before "Quit" to make it
1542 more logical. (Robert Webb)
1544 When appending to a file while the buffer has no name the name of the appended
1545 file would be used for the current buffer. But the buffer contents is
1546 actually different from the file content. Don't set the file name, unless the
1547 'P' flag is present in 'cpoptions'.
1549 When starting to edit a new file and the directory for the file doesn't exist
1550 then Vim will report "[New DIRECTORY]" instead of "[New File] to give the user
1551 a hint that something might be wrong.
1553 Win32: Preserve the hidden attribute of the viminfo file.
1555 In Insert mode CTRL-A didn't keep the last inserted text when using CTRL-O and
1556 then a cursor key. Now keep the previously inserted text if nothing is
1557 inserted after the CTRL-O. Allows using CTRL-O commands to move the cursor
1558 without losing the last inserted text.
1560 The exists() function now supports checking for autocmd group definition
1561 and for supported autocommand events. (Yegappan Lakshmanan)
1563 Allow using ":global" in the sandbox, it doesn't do anything harmful by
1566 ":saveas asdf.c" will set 'filetype' to c when it's empty. Also for ":w
1567 asdf.c" when it sets the filename for the buffer.
1569 Insert mode completion for whole lines now also searches unloaded buffers.
1571 The colortest.vim script can now be invoked directly with ":source" or
1572 ":runtime syntax/colortest.vim".
1574 The 'statusline' option can be local to the window, so that each window can
1575 have a different value. (partly by Yegappan Lakshmanan)
1577 The 'statusline' option and other options that support the same format can now
1578 use these new features:
1579 - When it starts with "%!" the value is first evaluated as an expression
1580 before parsing the value.
1581 - "%#HLname#" can be used to start highlighting with HLname.
1583 When 'statusline' is set to something that causes an error message then it is
1584 made empty to avoid an endless redraw loop. Also for other options, such at
1585 'tabline' and 'titlestring'. ":verbose set statusline" will mention that it
1586 was set in an error handler.
1588 When there are several matching tags, the ":tag <name>" and CTRL-] commands
1589 jump to the [count] matching tag. (Yegappan Lakshmanan)
1591 Win32: In the batch files generated by the install program, use $VIMRUNTIME or
1592 $VIM if it's set. Example provided by Mathias Michaelis.
1593 Also create a vimtutor.bat batch file.
1595 The 'balloonexpr' option is now |global-local|.
1597 The system() function now runs in cooked mode, thus can be interrupted by
1600 ==============================================================================
1601 COMPILE TIME CHANGES *compile-changes-7*
1603 Dropped the support for the BeOS and Amiga GUI. They were not maintained and
1604 probably didn't work. If you want to work on this: get the Vim 6.x version
1605 and merge it back in.
1607 When running the tests and one of them fails to produce "test.out" the
1608 following tests are still executed. This helps when running out of memory.
1610 When compiling with EXITFREE defined and the ccmalloc library it is possible
1611 to detect memory leaks. Some memory will always reported as leaked, such as
1612 allocated by X11 library functions and the memory allocated in alloc_cmdbuff()
1613 to store the ":quit" command.
1615 Moved the code for printing to src/hardcopy.c.
1617 Moved some code from main() to separate functions to make it easier to see
1618 what is being done. Using a structure to avoid a lot of arguments to the
1621 Moved unix_expandpath() to misc1.c, so that it can also be used by os_mac.c
1622 without copying the code.
1626 "make" now creates the Vim.app directory and "make install" copies it to its
1627 final destination. (Raf)
1629 Put the runtime directory not directly in Vim.app but in
1630 Vim.app/Contents/Resources/vim, so that it's according to Mac specs.
1632 Made it possible to compile with Motif, Athena or GTK without tricks and still
1633 being able to use the MacRoman conversion. Added the os_mac_conv.c file.
1635 When running "make install" the runtime files are installed as for Unix.
1636 Avoids that too many files are copied. When running "make" a link to the
1637 runtime files is created to avoid a recursive copy that takes much time.
1639 Configure will attempt to build Vim for both Intel and PowerPC. The
1640 --with-mac-arch configure argument can change it.
1644 The Make_mvc.mak file was adjusted to work with the latest MS compilers,
1645 including the free version of Visual Studio 2005. (George Reilly)
1647 INSTALLpc.txt was updated for the recent changes. (George Reilly)
1649 The distributed executable is now produced with the free Visual C++ Toolkit
1650 2003 and other free SDK chunks. msvcsetup.bat was added to support this.
1652 Also generate the .pdb file that can be used to generate a useful crash report
1653 on MS-Windows. (George Reilly)
1655 ==============================================================================
1656 BUG FIXES *bug-fixes-7*
1658 When using PostScript printing on MS-DOS the default 'printexpr' used "lpr"
1659 instead of "copy". When 'printdevice' was empty the copy command did not
1660 work. Use "LPT1" then.
1662 The GTK font dialog uses a font size zero when the font name doesn't include a
1663 size. Use a default size of 10.
1665 This example in the documentation didn't work:
1667 Skip over the expression in `=expr` when looking for comments, |, % and #.
1669 When ":helpgrep" doesn't find anything there is no error message.
1671 "L" and "H" did not take closed folds into account.
1673 Win32: The "-P title" argument stopped at the first title that matched, even
1674 when it doesn't support MDI.
1676 Mac GUI: CTRL-^ and CTRL-@ did not work.
1678 "2daw" on "word." at the end of a line didn't include the preceding white
1681 Win32: Using FindExecutable() doesn't work to find a program. Use
1682 SearchPath() instead. For executable() use $PATHEXT when the program searched
1683 for doesn't have an extension.
1685 When 'virtualedit' is set, moving the cursor up after appending a character
1686 may move it to a different column. Was caused by auto-formatting moving the
1687 cursor and not putting it back where it was.
1689 When indent was added automatically and then moving the cursor, the indent was
1690 not deleted (like when pressing ESC). The "I" flag in 'cpoptions' can be used
1691 to make it work the old way.
1693 When opening a command-line window, 'textwidth' gets set to 78 by the Vim
1694 filetype plugin. Reset 'textwidth' to 0 to avoid lines are broken.
1696 After using cursor(line, col) moving up/down doesn't keep the same column.
1698 Win32: Borland C before 5.5 requires using ".u." for LowPart and HighPart
1699 fields. (Walter Briscoe)
1701 On Sinix SYS_NMLN isn't always defined. Define it ourselves. (Cristiano De
1704 Printing with PostScript may keep the printer waiting for more. Append a
1705 CTRL-D to the printer output. (Mike Williams)
1707 When converting a string with a hex or octal number the leading '-' was
1708 ignored. ":echo '-05' + 0" resulted in 5 instead of -5.
1710 Using "@:" to repeat a command line didn't work when it contains control
1711 characters. Also remove "'<,'>" when in Visual mode to avoid that it appears
1714 When using file completion for a user command, it would not expand environment
1715 variables like for a regular command with a file argument.
1717 'cindent': When the argument of a #define looks like a C++ class the next line
1718 is indented too much.
1720 When 'comments' includes multi-byte characters inserting the middle part and
1721 alignment may go wrong. 'cindent' also suffers from this for right-aligned
1724 Win32: when 'encoding' is set to "utf-8" getenv() still returns strings in the
1725 active codepage. Convert to utf-8. Also for $HOME.
1727 The default for 'helplang' was "zh" for both "zh_cn" and "zh_tw". Now use
1728 "cn" or "tw" as intended.
1730 When 'bin' is set and 'eol' is not set then line2byte() added the line break
1731 after the last line while it's not there.
1733 Using foldlevel() in a WinEnter autocommand may not work. Noticed when
1734 resizing the GUI shell upon startup.
1736 Python: Using buffer.append(f.readlines()) didn't work. Allow appending a
1737 string with a trailing newline. The newline is ignored.
1739 When using the ":saveas f2" command for buffer "f1", the Buffers menu would
1740 contain "f2" twice, one of them leading to "f1". Also trigger the BufFilePre
1741 and BufFilePost events for the alternate buffer that gets the old name.
1743 strridx() did not work well when the needle is empty. (Ciaran McCreesh)
1745 GTK: Avoid a potential hang in gui_mch_wait_for_chars() when input arrives
1746 just before it is invoked
1748 VMS: Occasionally CR characters were inserted in the file. Expansion of
1749 environment variables was not correct. (Zoltan Arpadffy)
1751 UTF-8: When 'delcombine' is set "dw" only deleted the last combining character
1752 from the first character of the word.
1754 When using ":sball" in an autocommand only the filetype in one buffer was
1755 detected. Reset did_filetype in enter_buffer().
1757 When using ":argdo" and the window already was at the first argument index,
1758 but not actually editing it, the current buffer would be used instead.
1760 When ":next dir/*" includes many matches, adding the names to the argument
1761 list may take an awful lot of time and can't be interrupted. Allow
1764 When editing a file that was already loaded in a buffer, modelines were not
1765 used. Now window-local options in the modeline are set. Buffer-local options
1766 and global options remain unmodified.
1768 Win32: When 'encoding' is set to "utf-8" in the vimrc file, files from the
1769 command line with non-ASCII characters are not used correctly. Recode the
1770 file names when 'encoding' is set, using the Unicode command line.
1772 Win32 console: When the default for 'encoding' ends up to be "latin1", the
1773 default value of 'isprint' was wrong.
1775 When an error message is given while waiting for a character (e.g., when an
1776 xterm reports the number of colors), the hit-enter prompt overwrote the last
1777 line. Don't reset msg_didout in normal_cmd() for K_IGNORE.
1779 Mac GUI: Shift-Tab didn't work.
1781 When defining tooltip text, don't translate terminal codes, since it's not
1782 going to be used like a command.
1784 GTK 2: Check the tooltip text for valid utf-8 characters to avoid getting a
1785 GTK error. Invalid characters may appear when 'encoding' is changed.
1787 GTK 2: Add a safety check for invalid utf-8 sequences, they can crash pango.
1789 Win32: When 'encoding' is changed while starting up, use the Unicode command
1790 line to convert the file arguments to 'encoding'. Both for the GUI and the
1793 Win32 GUI: latin9 text (iso-8859-15) was not displayed correctly, because
1794 there is no codepage for latin9. Do our own conversion from latin9 to UCS2.
1796 When two versions of GTK+ 2 are installed it was possible to use the header
1797 files from one and the library from the other. Use GTK_LIBDIR to put the
1798 directory for the library early in the link flags.
1800 With the GUI find/replace dialog a replace only worked if the pattern was
1801 literal text. Now it works for any pattern.
1803 When 'equalalways' is set and 'eadirection' is "hor", ":quit" would still
1804 cause equalizing window heights in the vertical direction.
1806 When ":emenu" is used in a startup script the command was put in the typeahead
1807 buffer, causing a prompt for the crypt key to be messed up.
1809 Mac OS/X: The default for 'isprint' included characters 128-160, causes
1810 problems for Terminal.app.
1812 When a syntax item with "containedin" is used, it may match in the start or
1813 end of a region with a matchgroup, while this doesn't happen for a "contains"
1816 When a transparent syntax items matches in another item where the highlighting
1817 has already stopped (because of a he= argument), the highlighting would come
1820 When cscope is used to set the quickfix error list, it didn't get set if there
1821 was only one match. (Sergey Khorev)
1823 When 'confirm' is set and using ":bdel" in a modified buffer, then selecting
1824 "cancel", would still give an error message.
1826 The PopUp menu items that started Visual mode didn't work when not in Normal
1827 mode. Switching between selecting a word and a line was not possible.
1829 Win32: The keypad decimal point always resulted in a '.', while on some
1830 keyboards it's a ','. Use MapVirtualKey(VK_DECIMAL, 2).
1832 Removed unused function DisplayCompStringOpaque() from gui_w32.c
1834 In Visual mode there is not always an indication whether the line break is
1835 selected or not. Highlight the character after the line when the line break
1836 is included, e.g., after "v$o".
1838 GTK: The <F10> key can't be mapped, it selects the menu. Disable that with a
1839 GTK setting and do select the menu when <F10> isn't mapped. (David Necas)
1841 After "Y" '[ and '] were not at start/end of the yanked text.
1843 When a telnet connection is dropped Vim preserves files and exits. While
1844 doing that a SIGHUP may arrive and disturb us, thus ignore it. (Scott
1845 Anderson) Also postpone SIGHUP, SIGQUIT and SIGTERM until it's safe to
1846 handle. Added handle_signal().
1848 When completing a file name on the command line backslashes are required for
1849 white space. Was only done for a space, not for a Tab.
1851 When configure could not find a terminal library, compiling continued for a
1852 long time before reporting the problem. Added a configure check for tgetent()
1853 being found in a library.
1855 When the cursor is on the first char of the last line a ":g/pat/s///" command
1856 may cause the cursor to be displayed below the text.
1858 Win32: Editing a file with non-ASCII characters doesn't work when 'encoding'
1859 is "utf-8". use _wfullpath() instead of _fullpath(). (Yu-sung Moon)
1861 When recovering the 'fileformat' and 'fileencoding' were taken from the
1862 original file instead of from the swapfile. When the file didn't exist, was
1863 empty or the option was changed (e.g., with ":e ++fenc=cp123 file") it could
1864 be wrong. Now store 'fileformat' and 'fileencoding' in the swapfile and use
1865 the values when recovering.
1867 ":bufdo g/something/p" overwrites each last printed text line with the file
1868 message for the next buffer. Temporarily clear 'shortmess' to avoid that.
1870 Win32: Cannot edit a file starting with # with --remote. Do escape % and #
1871 when building the ":drop" command.
1873 A comment or | just after a expression-backtick argument was not recognized.
1874 E.g. in :e `="foo"`"comment.
1876 "(" does not stop at an empty sentence (single dot and white space) while ")"
1877 does. Also breaks "das" on that dot.
1879 When doing "yy" with the cursor on a TAB the ruler could be wrong and "k"
1880 moved the cursor to another column.
1882 When 'commentstring' is '"%s' and there is a double quote in the line a double
1883 quote before the fold marker isn't removed in the text displayed for a closed
1886 In Visual mode, when 'bin' and 'eol' set, g CTRL-G counted the last line
1887 break, resulting in "selected 202 of 201 bytes".
1889 Motif: fonts were not used for dialog components. (Marcin Dalecki)
1891 Motif: After using a toolbar button the keyboard focus would be on the toolbar
1892 (Lesstif problem). (Marcin Dalecki)
1894 When using "y<C-V>`x" where mark x is in the first column, the last line was
1897 Not all test scripts work properly on MS-Windows when checked out from CVS.
1898 Use a Vim command to fix all fileformats to dos before executing the tests.
1900 When using ":new" and the file fits in the window, lines could still be above
1901 the window. Now remove empty lines instead of keeping the relative position.
1903 Cmdline completion didn't work after ":let var1 var<Tab>".
1905 When using ":startinsert" or ":startreplace" when already in Insert mode
1906 (possible when using CTRL-R =), pressing Esc would directly restart Insert
1907 mode. (Peter Winters)
1909 "2daw" didn't work at end of file if the last word is a single character.
1911 Completion for ":next a'<Tab>" put a backslash before single quote, but it was
1912 not removed when editing a file. Now halve backslashes in save_patterns().
1913 Also fix expanding a file name with the shell that contains "\'".
1915 When doing "1,6d|put" only "fewer lines" was reported. Now a following "more
1916 lines" overwrites the message.
1918 Configure could not handle "-Dfoo=long\ long" in the TCL config output.
1920 When searching backwards, using a pattern that matches a newline and uses \zs
1921 after that, didn't find a match. Could also get a hang or end up in the right
1922 column in the wrong line.
1924 When $LANG is "sl" for slovenian, the slovak menu was used, since "slovak"
1927 When 'paste' is set in the GUI the Paste toolbar button doesn't work. Clear
1928 'paste' when starting the GUI.
1930 A message about a wrong viminfo line included the trailing NL.
1932 When 'paste' is set in the GUI the toolbar button doesn't work in Insert mode.
1933 Use ":exe" in menu.vim to avoid duplicating the commands, instead of using a
1936 Treat "mlterm" as an xterm-like terminal. (Seiichi Sato)
1938 ":z.4" and ":z=4" didn't work Vi compatible.
1940 When sourcing a file, editing it and sourcing it again, it could appear twice
1941 in ":scriptnames" and get a new <SID>, because the inode has changed.
1943 When $SHELL is set but empty the 'shell' option would be empty. Don't use an
1946 A command "w! file" in .vimrc or $EXINIT didn't work. Now it writes an empty
1949 When a CTRL-F command at the end of the file failed, the cursor was still
1950 moved to the start of the line. Now it remains where it is.
1952 When using ":s" or "&" to repeat the last substitute and "$" was used to put
1953 the cursor in the last column, put the cursor in the last column again. This
1956 Vim is not fully POSIX compliant but sticks with traditional Vi behavior.
1957 Added a few flags in 'cpoptions' to behave the POSIX way when wanted. The
1958 $VIM_POSIX environment variable is checked to set the default.
1960 Appending to a register didn't insert a line break like Vi. Added the '>'
1961 flag to 'cpoptions' for this.
1963 Using "I" in a line with only blanks appended to the line. This is not Vi
1964 compatible. Added the 'H' flag in 'coptions' for this.
1966 When joining multiple lines the cursor would be at the last joint, but Vi
1967 leaves it at the position where "J" would put it. Added the 'q' flag in
1968 'cpoptions' for this.
1970 Autoindent didn't work for ":insert" and ":append".
1972 Using ":append" in an empty buffer kept the dummy line. Now it's deleted to
1975 When reading commands from a file and stdout goes to a terminal, would still
1976 request the xterm version. Vim can't read it, thus the output went to the
1977 shell and caused trouble there.
1979 When redirecting to a register with an invalid name the redirection would
1980 still be done (after an error message). Now reset "redir_reg". (Yegappan
1983 It was not possible to use a NL after a backslash in Ex mode. This is
1984 sometimes used to feed multiple lines to a shell command.
1986 When 'cmdheight' is set to 2 in .vimrc and the GUI uses the number of lines
1987 from the terminal we actually get 3 lines for the cmdline in gvim.
1989 When setting $HOME allocated memory would leak.
1991 Win32: bold characters may sometimes write in another character cell. Use
1992 unicodepdy[] as for UTF-8. (Taro Muraoka)
1994 ":w fname" didn't work for files with 'buftype' set to "nofile".
1996 The method used to locate user commands for completion differed from when they
1997 are executed. Ambiguous command names were not completed properly.
1999 Incremental search may cause a crash when there is a custom statusline that
2000 indirectly invokes ":normal".
2002 Diff mode failed when $DIFF_OPTIONS was set in the environment. Unset it
2003 before invoking "diff".
2005 Completion didn't work after ":argdo", ":windo" and ":bufdo". Also for ":set
2006 &l:opt" and ":set &g:opt". (Peter Winters)
2008 When setting 'ttymouse' to "dec" in an xterm that supports the DEC mouse
2009 locator it doesn't work. Now switch off the mouse before selecting another
2012 When the CursorHold event is triggered and the commands peek for typed
2013 characters the typeahead buffer may be messed up, e.g., when a mouse-up event
2014 is received. Avoid invoking the autocommands from the function waiting for a
2015 character, let it put K_CURSORHOLD in the input buffer.
2017 Removed the "COUNT" flag from ":argadd", to avoid ":argadd 1*" to be used like
2018 ":1argadd *". Same for ":argdelete" and ":argedit".
2020 Avoid that $LANG is used for the menus when LC_MESSAGES is "en_US".
2022 Added backslashes before dashes in the vim.1 manual page to make the appear as
2023 real dashes. (Pierr Habouzit)
2025 Where "gq" left the cursor depended on the value of 'formatprg'. Now "gq"
2026 always leaves the cursor at the last line of the formatted text.
2028 When editing a compressed file, such as "changelog.Debian.gz" file, filetype
2029 detection may try to check the contents of the file while it's still
2030 compressed. Skip setting 'filetype' for compressed files until they have been
2031 decompressed. Required for patterns that end in a "*".
2033 Starting with an argument "+cmd" or "-S script" causes the cursor the be moved
2034 to the first line. That breaks a BufReadPost autocommand that uses g`".
2035 Don't move the cursor if it's somewhere past the first line.
2037 "gg=G" while 'modifiable' is off was uninterruptible.
2039 When 'encoding' is "sjis" inserting CTRL-V u d800 a few times causes a crash.
2040 Don't insert a DBCS character with a NUL second byte.
2042 In Insert mode CTRL-O <Home> didn't move the cursor. Made "ins_at_eol" global
2043 and reset it in nv_home().
2045 Wildcard expansion failed: ":w /tmp/$$.`echo test`". Don't put quotes around
2046 spaces inside backticks.
2048 After this sequence of commands: Y V p gv: the wrong line is selected. Now
2049 let "gv" select the text that was put, since the original text is deleted.
2050 This should be the most useful thing to do.
2052 ":sleep 100u" sleeps for 100 seconds, not 100 usec as one might expect. Give
2053 an error message when the argument isn't recognized.
2055 In gui_mch_draw_string() in gui_w32.c "unibuflen" wasn't static, resulting in
2056 reallocating the buffer every time. (Alexei Alexandrov)
2058 When using a Python "atexit" function it was not invoked when Vim exits. Now
2059 call Py_Finalize() for that. (Ugo Di Girolamo)
2060 This breaks the thread stuff though, fixed by Ugo.
2062 GTK GUI: using a .vimrc with "set cmdheight=2 lines=43" and ":split" right
2063 after startup, the window layout is messed up. (Michael Schaap) Added
2064 win_new_shellsize() call in gui_init() to fix the topframe size.
2066 Trick to get ...MOUSE_NM not used when there are vertical splits. Now pass
2067 column -1 for the left most window and add MOUSE_COLOFF for others. Limits
2068 mouse column to 10000.
2070 searchpair() may hang when the end pattern has "\zs" at the end. Check that
2071 we find the same position again and advance one character.
2073 When in diff mode and making a change that causes the "changed" highlighting
2074 to disappear or reappear, it was still highlighted in another window.
2076 When a ":next" command fails because the user selects "Abort" at the ATTENTION
2077 prompt the argument index was advanced anyway.
2079 When "~" is in 'iskeyword' the "gd" doesn't work, it's used for the previous
2080 substitute pattern. Put "\V" in the pattern to avoid that.
2082 Use of sprintf() sometimes didn't check properly for buffer overflow. Also
2083 when using smsg(). Included code for snprintf() to avoid having to do size
2084 checks where invoking them
2086 ":help \=<Tab>" didn't find "sub-replace-\=". Wild menu for help tags didn't
2087 show backslashes. ":he :s\=" didn't work.
2089 When reading an errorfile "~/" in a file name was not expanded.
2091 GTK GUI: When adding a scrollbar (e.g. when using ":vsplit") in a script or
2092 removing it the window size may change. GTK sends us resize events when we
2093 change the window size ourselves, but they may come at an unexpected moment.
2094 Peek for a character to get any window resize events and fix 'columns' and
2095 'lines' to undo this.
2097 When using the GTK plug mechanism, resizing and focus was not working
2098 properly. (Neil Bird)
2100 After deleting files from the argument list a session file generated with
2101 ":mksession" may contain invalid ":next" commands.
2103 When 'shortmess' is empty and 'keymap' set to accents, in Insert mode CTRL-N
2104 may cause the hit-enter prompt. Typing 'a then didn't result in the accented
2105 character. Put the character typed at the prompt back in the typeahead buffer
2106 so that mapping is done in the right mode.
2108 setbufvar() and setwinvar() did not give error messages.
2110 It was possible to set a variable with an illegal name, e.g. with setbufvar().
2111 It was possible to define a function with illegal name, e.t. ":func F{-1}()"
2113 CTRL-W F and "gf" didn't use the same method to get the file name.
2115 When reporting a conversion error the line number of the last error could be
2116 given. Now report the first encountered error.
2118 When using ":e ++enc=name file" and iconv() was used for conversion an error
2119 caused a fall-back to no conversion. Now replace a character with '?' and
2122 When opening a new buffer the local value of 'bomb' was not initialized from
2125 Win32: When using the "Edit with Vim" entry the file name was limited to about
2128 When using command line completion for ":e *foo" and the file "+foo" exists
2129 the resulting command ":e +foo" doesn't work. Now insert a backslash: ":e
2132 When the translation of "-- More --" was not 10 characters long the following
2133 message would be in the wrong position.
2135 At the more-prompt the last character in the last line wasn't drawn.
2137 When deleting non-existing text while 'virtualedit' is set the '[ and '] marks
2140 Win32: Could not use "**/" in 'path', it had to be "**\".
2142 The search pattern "\n" did not match at the end of the last line.
2144 Searching for a pattern backwards, starting on the NUL at the end of the line
2145 and 'encoding' is "utf-8" would match the pattern just before it incorrectly.
2146 Affected searchpair('/\*', '', '\*/').
2148 For the Find/Replace dialog it was possible that not finding the text resulted
2149 in an error message while redrawing, which cleared the syntax highlighting
2150 while it was being used, resulting in a crash. Now don't clear syntax
2151 highlighting, disable it with b_syn_error.
2153 Win32: Combining UTF-8 characters were drawn on the previous character.
2154 Could be noticed with a Thai font.
2156 Output of ":function" could leave some of the typed text behind. (Yegappan
2159 When the command line history has only a few lines the command line window
2160 would be opened with these lines above the first window line.
2162 When using a command line window for search strings ":qa" would result in
2163 searching for "qa" instead of quitting all windows.
2165 GUI: When scrolling with the scrollbar and there is a line that doesn't fit
2166 redrawing may fail. Make sure w_skipcol is valid before redrawing.
2168 Limit the values of 'columns' and 'lines' to avoid an overflow in Rows *
2169 Columns. Fixed bad effects when running out of memory (command line would be
2170 reversed, ":qa!" resulted in ":!aq").
2172 Motif: "gvim -iconic" opened the window anyway. (David Harrison)
2174 There is a tiny chance that a symlink gets created between checking for an
2175 existing file and creating a file. Use the O_NOFOLLOW for open() if it's
2178 In an empty line "ix<CTRL-O>0" moved the cursor to after the line instead of
2179 sticking to the first column.
2181 When using ":wq" and a BufWriteCmd autocmd uses inputsecret() the text was
2182 echoed anyway. Set terminal to raw mode in getcmdline().
2184 Unix: ":w a;b~c" caused an error in expanding wildcards.
2186 When appending to a file with ":w >>fname" in a buffer without a name, causing
2187 the buffer to use "fname", the modified flag was reset.
2189 When appending to the current file the "not edited" flag would be reset.
2190 ":w" would overwrite the file accidentally.
2192 Unix: When filtering text with an external command Vim would still read input,
2193 causing text typed for the command (e.g., a password) to be eaten and echoed.
2194 Don't read input when the terminal is in cooked mode.
2196 The Cygwin version of xxd used CR/LF line separators. (Corinna Vinschen)
2198 Unix: When filtering text through a shell command some resulting text may be
2199 dropped. Now after detecting that the child has exited try reading some more
2202 When inside input(), using "CTRL-R =" and the expression throws an exception
2203 the command line was not abandoned but it wasn't used either. Now abandon
2204 typing the command line.
2206 'delcombine' was also used in Visual and Select mode and for commands like
2207 "cl". That was illogical and has been disabled.
2209 When recording while a CursorHold autocommand was defined special keys would
2210 appear in the register. Now the CursorHold event is not triggered while
2213 Unix: the src/configure script used ${srcdir-.}, not all shells understand
2214 that. Use ${srcdir:-.} instead.
2216 When editing file "a" which is a symlink to file "b" that doesn't exist,
2217 writing file "a" to create "b" and then ":split b" resulted in two buffers on
2218 the same file with two different swapfile names. Now set the inode in the
2219 buffer when creating a new file.
2221 When 'esckeys' is not set don't send the xterm code to request the version
2222 string, because it may cause trouble in Insert mode.
2224 When evaluating an expression for CTRL-R = on the command line it was possible
2225 to call a function that opens a new window, resulting in errors for
2226 incremental search, and many other nasty things were possible. Now use the
2227 |textlock| to disallow changing the buffer or jumping to another window
2228 to protect from unexpected behavior. Same for CTRL-\ e.
2230 "d(" deleted the character under the cursor, while the documentation specified
2231 an exclusive motion. Vi also doesn't delete the character under the cursor.
2233 Shift-Insert in Insert mode could put the cursor before the last character
2234 when it just fits in the window. In coladvance() don't stop at the window
2235 edge when filling with spaces and when in Insert mode. In mswin.vim avoid
2236 getting a beep from the "l" command.
2238 Win32 GUI: When Alt-F4 is used to close the window and Cancel is selected in
2239 the dialog then Vim would insert <M-F4> in the text. Now it's ignored.
2241 When ":silent! {cmd}" caused the swap file dialog, which isn't displayed,
2242 there would still be a hit-enter prompt.
2244 Requesting the termresponse (|t_RV|) early may cause problems with "-c"
2245 arguments that invoke an external command or even "-c quit". Postpone it
2246 until after executing "-c" arguments.
2248 When typing in Insert mode so that a new line is started, using CTRL-G u to
2249 break undo and start a new change, then joining the lines with <BS> caused
2250 undo info to be missing. Now reset the insertion start point.
2252 Syntax HL: When a region start match has a matchgroup and an offset that
2253 happens to be after the end of the line then it continued in the next line and
2254 stopped at the region end match, making the region continue after that.
2255 Now check for the column being past the end of the line in syn_add_end_off().
2257 When changing a file, setting 'swapfile' off and then on again, making another
2258 change and killing Vim, then some blocks may be missing from the swapfile.
2259 When 'swapfile' is switched back on mark all blocks in the swapfile as dirty.
2260 Added mf_set_dirty().
2262 Expanding wildcards in a command like ":e aap;<>!" didn't work. Put
2263 backslashes before characters that are special to the shell. (Adri Verhoef)
2265 A CursorHold autocommand would cause a message to be cleared. Don't show the
2266 special key for the event for 'showcmd'.
2268 When expanding a file name for a shell command, as in "!cmd foo<Tab>" or ":r
2269 !cmd foo<Tab>" also escape characters that are special for the shell:
2272 When the name of the buffer was set by a ":r fname" command |cpo-f| no
2273 autocommands were triggered to notify about the change in the buffer list.
2275 In the quickfix buffer 'bufhidden' was set to "delete", which caused closing
2276 the quickfix window to leave an unlisted "No Name" buffer behind every time.
2278 Win32: when using two screens of different size, setting 'lines' to a large
2279 value didn't fill the whole screen. (SungHyun Nam)
2281 Win32 installer: The generated _vimrc contained an absolute path to diff.exe.
2282 After upgrading it becomes invalid. Now use $VIMRUNTIME instead.
2284 The command line was cleared to often when 'showmode' was set and ":silent
2285 normal vy" was used. Don't clear the command line unless the mode was
2286 actually displayed. Added the "mode_displayed" variable.
2288 The "load session" toolbar item could not handle a space or other special
2289 characters in v:this_session.
2291 ":set sta ts=8 sw=4 sts=2" deleted 4 spaces halfway a line instead of 2.
2293 In a multi-byte file the foldmarker could be recognized in the trail byte.
2296 Pasting with CTRL-V and menu didn't work properly when some commands are
2297 mapped. Use ":normal!" instead of ":normal". (Tony Apuzzo)
2299 Crashed when expanding a file name argument in backticks.
2301 In some situations the menu and scrollbar didn't work, when the value contains
2302 a CSI byte. (Yukihiro Nakadaira)
2304 GTK GUI: When drawing the balloon focus changes and we might get a key release
2305 event that removed the balloon again. Ignore the key release event.
2307 'titleold' was included in ":mkexrc" and ":mksession" files.
2309 ":set background&" didn't use the same logic as was used when starting up.
2311 When "umask" is set such that nothing is writable then the viminfo file would
2312 be written without write permission. (Julian Bridle)
2314 Motif: In diff mode dragging one scrollbar didn't update the scrollbar of the
2315 other diff'ed window.
2317 When editing in an xterm with a different number of colors than expected the
2318 screen would be cleared and redrawn, causing the message about the edited file
2319 to be cleared. Now set "keep_msg" to redraw the last message.
2321 For a color terminal: When the Normal HL uses bold, possibly to make the color
2322 lighter, and another HL group specifies a color it might become light as well.
2323 Now reset bold if a HL group doesn't specify bold itself.
2325 When using 256 color xterm the color 255 would show up as color 0. Use a
2326 short instead of a char to store the color number.
2328 ml_get errors when searching for "\n\zs" in an empty file.
2330 When selecting a block and using "$" to select until the end of every line and
2331 not highlighting the character under the cursor the first character of the
2332 block could be unhighlighted.
2334 When counting words for the Visual block area and using "$" to select until
2335 the end of every line only up to the length of the last line was counted.
2337 "dip" in trailing empty lines left one empty line behind.
2339 The script ID was only remembered globally for each option. When a buffer- or
2340 window-local option was set the same "last set" location was changed for all
2341 buffers and windows. Now remember the script ID for each local option
2344 GUI: The "Replace All" button didn't handle backslashes in the replacement in
2345 the same way as "Replace". Escape backslashes so that they are taken
2348 When using Select mode from Insert mode and typing a key, causing lines to be
2349 deleted and a message displayed, delayed the effect of inserting the key.
2350 Now overwrite the message without delay.
2352 When 'whichwrap' includes "l" then "dl" and "yl" on a single letter line
2353 worked differently. Now recognize all operators when using "l" at the end of
2356 GTK GUI: when the font selector returned a font name with a comma in it then
2357 it would be handled like two font names. Now put a backslash before the
2360 MS-DOS, Win32: When 'encoding' defaults to "latin1" then the value for
2361 'iskeyword' was still for CPxxx. And when 'nocompatible' was set 'isprint'
2362 would also be the wrong value.
2364 When a command was defined not to take arguments and no '|' no warning message
2365 would be given for using a '|'. Also with ":loadkeymap".
2367 Motif: When using a fontset and 'encoding' is "utf-8" and sizeof(wchar_t) !=
2368 sizeof(XChar2b) then display was wrong. (Yukihiro Nakadaira)
2370 ":all" always set the current window to the first window, even when it
2371 contains a buffer that is not in the argument list (can't be closed because it
2372 is modified). Now go to the window that has the first item of the argument
2375 GUI: To avoid left-over pixels from bold text all characters after a character
2376 with special attributes were redrawn. Now only do this for characters that
2377 actually are bold. Speeds up displaying considerably.
2379 When only highlighting changes and the text is scrolled at the same time
2380 everything is redraw instead of using a scroll and updating the changed text.
2381 E.g., when using ":match" to highlight a paren that the cursor landed on.
2382 Added SOME_VALID: Redraw the whole window but also try to scroll to minimize
2385 Win32: When using Korean IME making it active didn't work properly. (Moon,
2386 Yu-sung, 2005 March 21)
2388 Ruby interface: when inserting/deleting lines display wasn't updated. (Ryan
2391 --- fixes since Vim 7.0b ---
2393 Getting the GCC version in configure didn't work with Solaris sed. First
2394 strip any "darwin." and then get the version number.
2396 The "autoload" directory was missing from the self-installing executable for
2399 The MS-Windows install program would find "vimtutor.bat" in the install
2400 directory. After changing to "c:" also change to "\" to avoid looking in the
2403 To make the 16 bit DOS version compile exclude not used highlight
2404 initializations and build a tiny instead of small version.
2406 finddir() and findfile() accept a negative count and return a List then.
2408 The Python indent file contained a few debugging statements, removed.
2410 Expanding {} for a function name, resulting in a name starting with "s:" was
2411 not handled correctly.
2413 Spelling: renamed COMPOUNDMAX to COMPOUNDWORDMAX. Added several items to be
2414 able to handle the new Hungarian dictionary.
2416 Mac: Default to building for the current platform only, that is much faster
2417 than building a universal binary. Also, using Perl/Python/etc. only works for
2418 the current platform.
2420 The time on undo messages disappeared for someone. Using %T for strftime()
2421 apparently doesn't work everywhere. Use %H:%M:%S instead.
2423 Typing BS at the "z=" prompt removed the prompt.
2425 --- fixes and changes since Vim 7.0c ---
2427 When jumping to another tab page the Vim window size was always set, even when
2428 nothing in the layout changed.
2430 Win32 GUI tab pages line wasn't always enabled. Do a proper check for the
2433 Win32: When switching between tab pages the Vim window was moved when part of
2434 it was outside of the screen. Now only do that in the direction of a size
2437 Win32: added menu to GUI tab pages line. (Yegappan Lakshmanan)
2439 Mac: Added document icons. (Benji Fisher)
2441 Insert mode completion: Using Enter to accept the current match causes
2442 confusion. Use CTRL-Y instead. Also, use CTRL-E to go back to the typed
2445 GUI: When there are left and right scrollbars, ":tabedit" kept them instead of
2446 using the one that isn't needed.
2448 Using "gP" to replace al the text could leave the cursor below the last line,
2449 causing ml_get errors.
2451 When 'cursorline' is set don't use the highlighting when Visual mode is
2452 active, otherwise it's difficult to see the selected area.
2454 The matchparen plugin restricts the search to 100 lines, to avoid a long delay
2455 when there are closed folds.
2457 Sometimes using CTRL-X s to list spelling suggestions used text from another
2460 Win32: Set the default for 'isprint' back to the wrong default "@,~-255",
2461 because many people use Windows-1252 while 'encoding' is "latin1".
2463 GTK: Added a workaround for gvim crashing when used over an untrusted ssh
2464 link, caused by GTK doing something nasty. (Ed Catmur)
2466 Win32: The font used for the tab page labels is too big. Use the system menu
2467 font. (George Reilly)
2469 Win32: Adjusting the window position and size to keep it on the screen didn't
2470 work properly when the taskbar is on the left or top of the screen.
2472 The installman.sh and installml.sh scripts use ${10}, that didn't work with
2473 old shells. And use "test -f" instead of "test -e".
2475 Win32: When 'encoding' was set in the vimrc then a directory argument for diff
2478 GUI: at the inputlist() prompt the cursorshape was adjusted as if the windows
2479 were still at their old position.
2481 The parenmatch plugin didn't remember the highlighting per window.
2483 Using ":bd" for a buffer that's the current window in another tab page caused
2486 For a new tab page the 'scroll' option wasn't set to a good default.
2488 Using an end offset for a search "/pat/e" didn't work properly for multi-byte
2489 text. (Yukihiro Nakadaira)
2491 ":s/\n/,/" doubled the text when used on the last line.
2493 When "search" is in 'foldopen' "[s" and "]s" now open folds.
2495 When using a numbered function "dict" can be omitted, but "self" didn't work
2496 then. Always add FC_DICT to the function flags when it's part of a
2499 When "--remote-tab" executes locally it left an empty tab page.
2501 "gvim -u NONE", ":set cursorcolumn", "C" in the second line didn't update
2502 text. Do update further lines even though the "$" is displayed.
2504 VMS: Support GTK better, also enable +clientserver. (Zoltan Arpadffy)
2506 When highlighting of statusline or tabline is changed there was no redraw to
2509 Mac: Added "CFBundleIdentifier" to infplist.xml.
2511 Added tabpage-local variables t:var.
2513 Win32: Added double-click in tab pages line creates new tab. (Yegappan
2516 Motif: Added GUI tab pages line. (Yegappan Lakshmanan)
2518 Fixed crash when 'lines' was set to 1000 in a modeline.
2520 When init_spellfile() finds a writable directory in 'runtimepath' but it
2521 doesn't contain a "spell" directory, create one.
2523 Win32: executable() also finds "xxd" in the directory where Vim was started,
2524 but "!xxd" doesn't work. Append the Vim starting directory to $PATH.
2526 The tab page labels are shortened, directory names are reduced to a single
2527 letter by default. Added the pathshorten() function to allow a user to do the
2530 ":saveas" now resets 'readonly' if the file was successfully written.
2532 Set $MYVIMRC file to the first found .vimrc file.
2533 Set $MYGVIMRC file to the first found .gvimrc file.
2534 Added menu item "Startup Settings" that edits the $MYVIMRC file
2538 Error message E745 appeared twice. Renamed one to E786.
2540 Fixed crash when using "au BufRead * Sexplore" and doing ":help". Was wiping
2541 out a buffer that's still in a window.
2543 ":hardcopy" resulted in an error message when 'encoding' is "utf-8" and
2544 'printencoding' is empty. Now it assumes latin1. (Mike Williams)
2546 The check for the toolbar feature for Motif, depending on certain included
2547 files, wasn't detailed enough, causing building to fail in gui_xmebw.c.
2549 Using CTRL-E in Insert mode completion after CTRL-P inserted the first match
2550 instead of the original text.
2552 When displaying a UTF-8 character with a zero lower byte Vim might think the
2553 previous character is double-wide.
2555 The "nbsp" item of 'listchars' didn't work when 'encoding' was utf-8.
2557 Motif: when Xm/xpm.h is missing gui_xmebw.c would not compile.
2558 HAVE_XM_UNHIGHLIGHTT_H was missing a T.
2560 Mac: Moved the .icns files into src/os_mac_rsrc, so that they can all be
2561 copied at once. Adjusted the Info.plist file for three icons.
2563 When Visual mode is active while switching to another tabpage could get ml_get
2566 When 'list' is set, 'nowrap' the $ in the first column caused 'cursorcolumn'
2567 to move to the right.
2569 When a line wraps, 'cursorcolumn' was never displayed past the end of the
2572 'autochdir' was only available when compiled with NetBeans and GUI. Now it's
2573 a separate feature, also available in the "big" version.
2575 Added CTRL-W gf: open file under cursor in new tab page.
2577 When using the menu in the tab pages line, "New Tab" opens the new tab before
2578 where the click was. Beyond the labels the new tab appears at the end instead
2579 of after the current tab page.
2581 Inside a mapping with an expression getchar() could not be used.
2583 When vgetc is used recursively vgetc_busy protects it from being used
2584 recursively. But after a ":normal" command the protection was reset.
2586 ":s/a/b/n" didn't work when 'modifiable' was off.
2588 When $VIMRUNTIME includes a multi-byte character then rgb.txt could not be
2589 found. (Yukihiro Nakadaira)
2591 ":mkspell" didn't work correctly for non-ASCII affix flags when conversion is
2592 needed on the spell file.
2594 glob('/dir/\$ABC/*') didn't work.
2596 When using several tab pages and changing 'cmdheight' the display could become
2597 messed up. Now store the value of 'cmdheight' separately for each tab page.
2599 The user of the Enter key while the popup menu is visible was still confusing.
2600 Now use Enter to select the match after using a cursor key.
2602 Added "usetab" to 'switchbuf'.
2605 --- fixes and changes since Vim 7.0d ---
2607 Added CTRL-W T: move a window to a new tab page.
2609 Using CTRL-X s in Insert mode to complete spelling suggestions and using BS
2610 deleted characters before the bad word.
2612 A few small fixes for the VMS makefile. (Zoltan Arpadffy)
2614 With a window of 91 lines 45 cols, ":vsp" scrolled the window. Copy w_wrow
2615 when splitting a window and skip setting the height when it's already at the
2618 Using <silent> in a mapping with a shell command and the GUI caused redraw
2619 to use wrong attributes.
2621 Win32: Using MSVC 4.1 for install.exe resulted in the start menu items to be
2622 created in the administrator directory instead of "All Users". Define the
2623 CSIDL_ items if they are missing.
2625 Motif: The GUI tabline did not use the space above the right scrollbar. Work
2626 around a bug in the Motif library. (Yegappan Lakshmanan)
2628 The extra files for XML Omni completion are now also installed.
2631 GTK GUI: when 'm' is missing from 'guioptions' during startup and pressing
2632 <F10> GTK produced error messages. Now do create the menu but disable it just
2633 after the first gui_mch_update().
2635 ":mkspell" doesn't work well with the Hungarian dictionary from the Hunspell
2636 project. Back to the Myspell dictionary.
2638 In help files hide the | used around tags.
2640 Renamed pycomplete to pythoncomplete.
2642 Added "tabpages" to 'sessionoptions'.
2644 When 'guitablabel' is set the effect wasn't visible right away.
2646 Fixed a few 'cindent' errors.
2648 When completing menu names, e.g., after ":emenu", don't sort the entries but
2649 keep them in the original order.
2651 Fixed a crash when editing a directory in diff mode. Don't trigger
2652 autocommands when executing the diff command.
2654 Getting a keystroke could get stuck if 'encoding' is a multi-byte encoding and
2655 typing a special key.
2657 When 'foldignore' is set the folds were not updated right away.
2659 When a list is indexed with [a : b] and b was greater than the length an error
2660 message was given. Now silently truncate the result.
2662 When using BS during Insert mode completion go back to the original text, so
2663 that CTRL-N selects the first matching entry.
2665 Added the 'M' flag to 'cinoptions'.
2667 Win32: Make the "gvim --help" window appear in the middle of the screen
2668 instead of at an arbitrary position. (Randall W. Morris)
2670 Added gettabwinvar() and settabwinvar().
2672 Command line completion: pressing <Tab> after ":e /usr/*" expands the whole
2673 tree, because it becomes ":e /usr/**". Don't add a star if there already is
2676 Added grey10 to grey90 to all GUIs, so that they can all be used for
2677 initializing highlighting. Use grey40 for CursorColumn and CursorLine when
2678 'background' is "dark".
2680 When reading a file and using iconv for conversion, an incomplete byte
2681 sequence at the end caused problems. (Yukihiro Nakadaira)
2684 --- fixes and changes since Vim 7.0e ---
2686 Default color for MatchParen when 'background' is "dark" is now DarkCyan.
2688 ":syn off" had to be used twice in a file that sets 'syntax' in a modeline.
2691 When using ":vsp" or ":sp" the available space wasn't used equally between
2692 windows. (Servatius Brandt)
2694 Expanding <cWORD> on a trailing blank resulted in the first word in the line
2695 if 'encoding' is a multi-byte encoding.
2697 Spell checking: spellbadword() didn't see a missing capital in the first word
2698 of a line. Popup menu now only suggest the capitalized word when appropriate.
2700 When using whole line completion CTRL-L moves through the matches but it
2701 didn't work when at the original text.
2703 When completion finds the longest match, don't go to the first match but stick
2704 at the original text, so that CTRL-N selects the first one.
2706 Recognize "zsh-beta" like "zsh" for setting the 'shellpipe' default. (James
2709 When using ":map <expr>" and the expression results in something with a
2710 special byte (NUL or CSI) then it didn't work properly. Now escape special
2713 The default Visual highlighting for a color xterm with 8 colors was a magenta
2714 background, which made magenta text disappear. Now use reverse in this
2717 After completing the longest match "." didn't insert the same text. Repeating
2718 also didn't work correctly for multi-byte text.
2720 When using Insert mode completion and BS the whole word that was completed
2721 would result in all possible matches. Now stop completion. Also fixes that
2722 for spell completion the previous word was deleted.
2724 GTK: When 'encoding' is "latin1" and using non-ASCII characters in a file name
2725 the tab page label was wrong and an error message would be given.
2727 The taglist() function could hang on a tags line with a non-ASCII character.
2729 Win32: When 'encoding' differs from the system encoding tab page labels with
2730 non-ASCII characters looked wrong. (Yegappan Lakshmanan)
2732 Motif: building failed when Xm/Notebook.h doesn't exist. Added a configure
2733 check, disable GUI tabline when it's missing.
2735 Mac: When compiled without multi-byte feature the clipboard didn't work.
2737 It was possible to switch to another tab page when the cmdline window is open.
2739 Completion could hang when 'lines' is 6 and a preview window was opened.
2741 Added CTRL-W gF: open file under cursor in new tab page and jump to the line
2742 number following the file name.
2743 Added 'guitabtooltip'. Implemented for Win32 (Yegappan Lakshmanan).
2745 Added "throw" to 'debug' option: throw an exception for error messages even
2746 whey they would otherwise be ignored.
2748 When 'keymap' is set and a line contains an invalid entry could get a "No
2749 mapping found" warning instead of a proper error message.
2751 Motif: default to using XpmAttributes instead of XpmAttributes_21.
2753 A few more changes for 64 bit MS-Windows. (George Reilly)
2755 Got ml_get errors when doing "o" and selecting in other window where there are
2756 less line shorter than the cursor position in the other window. ins_mouse()
2757 was using position in wrong window.
2759 Win32 GUI: Crash when giving a lot of messages during startup. Allocate twice
2760 as much memory for the dialog template.
2762 Fixed a few leaks and wrong pointer use reported by coverity.
2764 When showing menus the mode character was sometimes wrong.
2766 Added feedkeys(). (Yakov Lerner)
2768 Made matchlist() always return all submatches.
2770 Moved triggering QuickFixCmdPost to before jumping to the first location.
2772 Mac: Added the 'macatsui' option as a temporary work around for text drawing
2775 Line completion on "/**" gave error messages when scanning an unloaded buffer.
2777 --- fixes and changes since Vim 7.0f ---
2779 Win32: The height of the tab page labels is now adjusted to the font height.
2780 (Yegappan Lakshmanan)
2782 Win32: selecting the tab label was off by one. (Yegappan Lakshmanan)
2784 Added tooltips for Motif and GTK tab page labels. (Yegappan Lakshmanan)
2786 When 'encoding' is "utf-8" then ":help spell" would report an illegal byte and
2787 the file was not converted from latin1 to utf-8. Now retry with latin1 if
2788 reading the file as utf-8 results in illegal bytes.
2790 Escape the argument of feedkeys() before putting it in the typeahead buffer.
2791 (Yukihiro Nakadaira)
2793 Added the v:char variable for evaluating 'formatexpr'. (Yukihiro Nakadaira)
2795 With 8 colors Search highlighting combined with Statement highlighted text
2796 made the text disappear.
2798 VMS: avoid warnings for redefining MAX and MIN. (Zoltan Arpadffy)
2800 When 'virtualedit' includes "onemore", stopping Visual selection would still
2801 move the cursor left.
2803 Prevent that using CTRL-R = in Insert mode can start Visual mode.
2805 Fixed a crash that occurred when in Insert mode with completion active and a
2806 mapping caused edit() to be called recursively.
2808 When using CTRL-O in Insert mode just after the last character while
2809 'virtualedit' is "all", then typing CR moved the last character to the next
2810 line. Call coladvance() before starting the new line.
2812 When using |:shell| ignore clicks on the tab page labels. Also when using the
2813 command line window.
2815 When 'eventignore' is "all" then adding more to ignoring some events, e.g.,
2816 for ":vimgrep", would actually trigger more events.
2818 Win32: When a running Vim uses server name GVIM1 then "gvim --remote fname"
2819 didn't find it. When looking for a server name that doesn't end in a digit
2820 and it is not found then use another server with that name and a number (just
2823 When using "double" in 'spellsuggest' when the language doesn't support sound
2824 folding resulted in too many suggestions.
2826 Win32: Dropping a shortcut on the Vim icon didn't edit the referred file like
2827 editing it in another way would. Use fname_expand() in buf_set_name() instead
2828 of simply make the file name a full path.
2830 Using feedkeys() could cause Vim to hang.
2832 When closing another tab page from the tabline menu in Insert mode the tabline
2833 was not updated right away.
2835 The syntax menu didn't work in compatible mode.
2837 After using ":tag id" twice with the same "id", ":ts" and then ":pop" a ":ts"
2838 reported no matching tag. Clear the cached tag name.
2840 In Insert mode the matchparen plugin highlighted the wrong paren when there is
2841 a string just next to a paren.
2843 GTK: After opening a new tab page the text was sometimes not drawn correctly.
2844 Flush output and catch up with events when updating the tab page labels.
2846 In the GUI, using CTRL-W q to close the last window of a tab page could cause
2849 GTK: The tab pages line menu was not converted from 'encoding' to utf-8.
2851 Typing a multi-byte character or a special key at the hit-enter prompt did not
2854 When 'virtualedit' contains "onemore" CTRL-O in Insert mode still moved the
2855 cursor left when it was after the end of the line, even though it's allowed to
2858 Added test for using tab pages.
2860 towupper() and towlower() were not used, because of checking for
2861 __STDC__ISO_10646__ instead of __STDC_ISO_10646__. (sertacyildiz)
2863 For ":map <expr>" forbid changing the text, jumping to another buffer and
2864 using ":normal" to avoid nasty side effects.
2866 --- fixes and changes since Vim 7.0g ---
2868 Compilation error on HP-UX, use of "dlerr" must be inside a #ifdef.
2871 Report +reltime feature in ":version" output.
2873 The tar and zip plugins detect failure to get the contents of the archive and
2874 edit the file as-is.
2876 When the result of 'guitablabel' is empty fall back to the default label.
2878 Fixed crash when using ":insert" in a while loop and missing "endwhile".
2880 "gt" and other commands could move to another window when |textlock| active
2881 and when the command line window was open.
2883 Spell checking a file with syntax highlighting and a bad word at the end of
2884 the line is ignored could make "]s" hang.
2886 Mac: inputdialog() didn't work when compiled with big features.
2888 Interrupting ":vimgrep" while it is busy loading a file left a modified and
2889 hidden buffer behind. Use enter_cleanup() and leave_cleanup() around
2892 When making 'keymap' empty the b:keymap_name variable wasn't deleted.
2894 Using CTRL-N that searches a long time, pressing space to interrupt the
2895 searching and accept the first match, the popup menu was still displayed
2898 When setting the Vim window height with -geometry the 'window' option could be
2899 at a value that makes CTRL-F behave differently.
2901 When opening a quickfix window in two tabs they used different buffers,
2902 causing redrawing problems later. Now use the same buffer for all quickfix
2903 windows. (Yegappan Lakshmanan)
2905 When 'mousefocus' is set moving the mouse to the text tab pages line would
2906 move focus to the first window. Also, the mouse pointer would jump to the
2909 In a session file, when an empty buffer is wiped out, do this silently.
2911 When one window has the cursor on the last line and another window is resized
2912 to make that window smaller, the cursor line could go below the displayed
2913 lines. In win_new_height() subtract one from the available space.
2914 Also avoid that using "~" lines makes the window scroll down.
2916 Mac: When sourcing the "macmap.vim" script and then finding a .vimrc file the
2917 'cpo' option isn't set properly, because it was already set and restored.
2918 Added the <special> argument to ":map", so that 'cpo' doesn't need to be
2919 changed to be able to use <> notation. Also do this for ":menu" for
2922 When using "/encoding=abc" in a spell word list, only "bc" was used.
2924 When 'encoding' and 'printencoding' were both "utf-8" then ":hardcopy" didn't
2925 work. (Mike Williams)
2927 Mac: When building with "--disable-gui" the install directory would still be
2928 "/Applications" and Vim.app would be installed. Now install in /usr/local as
2929 usual for a console application.
2931 GUI: when doing completion and there is one match and still searching for
2932 another, the cursor was displayed at the end of the line instead of after the
2933 match. Now show the cursor after the match while still searching for matches.
2935 GUI: The mouse shape changed on the statusline even when 'mouse' was empty and
2936 they can't be dragged..
2938 GTK2: Selecting a button in the confirm() dialog with Tab or cursor keys and
2939 hitting Enter didn't select that button. Removed GTK 1 specific code. (Neil
2942 When evaluating 'balloonexpr' takes a long time it could be called
2943 recursively, which could cause a crash.
2945 exists() could not be used to detect whether ":2match" is supported. Added a
2946 check for it specifically.
2948 GTK1: Tab page labels didn't work. (Yegappan Lakshmanan)
2950 Insert mode completion: When finding matches use 'ignorecase', but when adding
2951 matches to the list don't use it, so that all words with different case are
2952 added, "word", "Word" and "WORD".
2954 When 'cursorline' and 'hlsearch' are set and the search pattern is "x\n"
2955 the rest of the line was highlighted as a match.
2957 Cursor moved while evaluating 'balloonexpr' that invokes ":isearch" and
2958 redirects the output. Don't move the cursor to the command line if msg_silent
2961 exists() ignored text after a function name and option name, which could
2962 result in false positives.
2964 exists() ignored characters after the recognized word, which can be wrong when
2965 using a name with non-keyword characters. Specifically, these calls no longer
2966 allow characters after the name: exists('*funcname') exists('*funcname(...')
2967 exists('&option') exists(':cmd') exists('g:name') exists('g:name[n]')
2970 Trigger the TabEnter autocommand only after entering the current window of the
2971 tab page, otherwise the commands are executed with an invalid current window.
2973 Win32: When using two monitors and Vim is on the second monitor, changing the
2974 width of the Vim window could make it jump to the first monitor.
2976 When scrolling back at the more prompt and the quitting a line of text would
2977 be left behind when 'cmdheight' is 2 or more.
2979 Fixed a few things for Insert mode completion, especially when typing BS,
2980 CTRL-N or a printable character while still searching for matches.
2983 ==============================================================================
2984 VERSION 7.1 *version-7.1*
2986 This section is about improvements made between version 7.0 and 7.1.
2988 This is a bug-fix release, there are no fancy new features.
2991 Changed *changed-7.1*
2994 Added setting 'mouse' in vimrc_example.vim.
2996 When building with MZscheme also look for include files in the "plt"
2997 subdirectory. That's where they are for FreeBSD.
2999 The Ruby interface module is now called "Vim" instead of "VIM". But "VIM" is
3000 an alias, so it's backwards compatible. (Tim Pope)
3007 /var/log/messages (Yakov Lerner)
3008 Autohotkey (Nikolai Weibull)
3009 AutoIt v3 (Jared Breland)
3010 Bazaar commit file "bzr". (Dmitry Vasiliev)
3011 Cdrdao TOC (Nikolai Weibull)
3012 Cmusrc (Nikolai Weibull)
3013 Conary recipe (rPath Inc)
3014 Framescript (Nikolai Weibull)
3015 FreeBasic (Mark Manning)
3016 Hamster (David Fishburn)
3017 IBasic (Mark Manning)
3018 Initng (Elan Ruusamae)
3019 Ldapconf (Nikolai Weibull)
3020 Litestep (Nikolai Weibull)
3021 Privoxy actions file (Doug Kearns)
3022 Streaming Descriptors "sd" (Puria Nafisi Azizi)
3026 Hungarian (Arpad Horvath)
3027 Turkish (Serkan kkk)
3028 utf-8 version of Greek tutor.
3029 utf-8 version of Russian tutor.
3030 utf-8 version of Slowak tutor.
3032 New filetype plugins:
3036 Hamster (David Fishburn)
3037 Django HTML template (Dave Hodder)
3042 Hamster (David Fishburn)
3043 Django HTML template (Dave Hodder)
3045 JSP (David Fishburn)
3048 Bulgarian (Boyko Bantchev)
3049 Mongolian (Natsagdorj Shagdar)
3050 Thaana (Ibrahim Fayaz)
3051 Vietnamese (Samuel Thibault)
3053 Other new runtime files:
3054 Ada support files. (Neil Bird, Martin Krischik)
3055 Slovenian menu translations (Mojca Miklavec)
3056 Mono C# compiler plugin (Jarek Sobiecki)
3062 Could not build the Win32s version. Added a few structure definitions in
3067 Problem: ":set spellsuggest+=10" does not work. (Suresh Govindachar)
3068 Solution: Add P_COMMA to the 'spellsuggest' flags.
3072 Problem: C omni completion has a problem with tags files with a path
3073 containing "#" or "%".
3074 Solution: Escape these characters. (Sebastian Baberowski)
3075 Files: runtime/autoload/ccomplete.vim
3078 Problem: GUI: clicking in the lower part of a label in the tab pages line
3079 while 'mousefocus' is set may warp the mouse pointer. (Robert
3081 Solution: Check for a negative mouse position.
3085 Problem: Compiler warning for debug_saved used before set. (Todd Blumer)
3086 Solution: Remove the "else" for calling save_dbg_stuff().
3087 Files: src/ex_docmd.c
3089 Patch 7.0.005 (extra)
3090 Problem: Win32: The installer doesn't remove the "autoload" and "spell"
3091 directories. (David Fishburn)
3092 Solution: Add the directories to the list to be removed.
3093 Files: nsis/gvim.nsi
3096 Problem: Mac: "make shadow" doesn't make a link for infplist.xml. (Axel
3098 Solution: Make the link.
3102 Problem: AIX: compiling fails for message.c. (Ruediger Hornig)
3103 Solution: Move the #if outside of memchr().
3104 Files: src/message.c
3107 Problem: Can't call a function that uses both <SID> and {expr}. (Thomas)
3108 Solution: Check both the expanded and unexpanded name for <SID>.
3112 Problem: ml_get errors with both 'sidescroll' and 'spell' set.
3113 Solution: Use ml_get_buf() instead of ml_get(), get the line from the right
3114 buffer, not the current one.
3118 Problem: The spellfile plugin required typing login name and password.
3119 Solution: Use "anonymous" and "vim7user" by default. No need to setup a
3121 Files: runtime/autoload/spellfile.vim
3124 Problem: Can't compile without the folding and with the eval feature.
3125 Solution: Add an #ifdef. (Vallimar)
3129 Problem: Using the matchparen plugin, moving the cursor in Insert mode to a
3130 shorter line that ends in a brace, changes the preferred column
3131 Solution: Use winsaveview()/winrestview() instead of getpos()/setpos().
3132 Files: runtime/plugin/matchparen.vim
3135 Problem: Insert mode completion: using CTRL-L to add an extra character
3136 also deselects the current match, making it impossible to use
3137 CTRL-L a second time.
3138 Solution: Keep the current match. Also make CTRL-L work at the original
3139 text, using the first displayed match.
3143 Problem: Compiling gui_xmebw.c fails on Dec Alpha Tru64. (Rolfe)
3144 Solution: Disable some code for Motif 1.2 and older.
3145 Files: src/gui_xmebw.c
3148 Problem: Athena: compilation problems with modern compiler.
3149 Solution: Avoid type casts for lvalue. (Alexey Froloff)
3150 Files: src/gui_at_fs.c
3153 Problem: Printing doesn't work for "dec-mcs" encoding.
3154 Solution: Add "dec-mcs", "mac-roman" and "hp-roman8" to the list of
3155 recognized 8-bit encodings. (Mike Williams)
3158 Patch 7.0.017 (after 7.0.014)
3159 Problem: Linking gui_xmebw.c fails on Dec Alpha Tru64. (Rolfe)
3160 Solution: Adjust defines for Motif 1.2 and older.
3161 Files: src/gui_xmebw.c
3164 Problem: VMS: plugins are not loaded on startup.
3165 Solution: Remove "**" from the path. (Zoltan Arpadffy)
3169 Problem: Repeating "VjA789" may cause a crash. (James Vega)
3170 Solution: Check the cursor column after moving it to another line.
3174 Problem: Crash when using 'mousefocus'. (William Fulton)
3175 Solution: Make buffer for mouse coordinates 2 bytes longer. (Juergen Weigert)
3179 Problem: Crash when using "\\[" and "\\]" in 'errorformat'. (Marc Weber)
3180 Solution: Check for valid submatches after matching the pattern.
3181 Files: src/quickfix.c
3184 Problem: Using buffer.append() in Ruby may append the line to the wrong
3185 buffer. (Alex Norman)
3186 Solution: Properly switch to the buffer to do the appending. Also for
3187 buffer.delete() and setting a buffer line.
3188 Files: src/if_ruby.c
3191 Problem: Crash when doing spell completion in an empty line and pressing
3193 Solution: Check for a zero pointer. (James Vega)
3194 Also handle a situation without a matching pattern better, report
3195 "No matches" instead of remaining in undefined CTRL-X mode. And
3196 get out of CTRL-X mode when typing a letter.
3200 Problem: It is possible to set arbitrary "v:" variables.
3201 Solution: Disallow setting "v:" variables that are not predefined.
3205 Problem: Crash when removing an element of a:000. (Nikolai Weibull)
3206 Solution: Mark the a:000 list with VAR_FIXED.
3210 Problem: Using libcall() may show an old error.
3211 Solution: Invoke dlerror() to clear a previous error. (Yukihiro Nakadaira)
3212 Files: src/os_unix.c
3214 Patch 7.0.027 (extra)
3215 Problem: Win32: When compiled with SNIFF gvim may hang on exit.
3216 Solution: Translate and dispatch the WM_USER message. (Mathias Michaelis)
3217 Files: src/gui_w48.c
3219 Patch 7.0.028 (extra)
3220 Problem: OS/2: Vim doesn't compile with gcc 3.2.1.
3221 Solution: Add argument to after_pathsep(), don't define vim_handle_signal(),
3222 define HAVE_STDARG_H. (David Sanders)
3223 Files: src/os_unix.c, src/vim.h, src/os_os2_cfg.h
3226 Problem: getchar() may not position the cursor after a space.
3227 Solution: Position the cursor explicitly.
3231 Problem: The ":compiler" command can't be used in a FileChangedRO event.
3233 Solution: Add the CMDWIN flag to the ":compiler" command.
3234 Files: src/ex_cmds.h
3237 Problem: When deleting a buffer the buffer-local mappings for Select mode
3239 Solution: Add the Select mode bit to MAP_ALL_MODES. (Edwin Steiner)
3242 Patch 7.0.032 (extra, after 7.0.027)
3243 Problem: Missing semicolon.
3244 Solution: Add the semicolon.
3245 Files: src/gui_w48.c
3248 Problem: When pasting text, with the menu or CTRL-V, autoindent is removed.
3249 Solution: Use "x<BS>" to avoid indent to be removed. (Benji Fisher)
3250 Files: runtime/autoload/paste.vim
3253 Problem: After doing completion and typing more characters or using BS
3254 repeating with "." didn't work properly. (Martin Stubenschrott)
3255 Solution: Don't put BS and other characters in the redo buffer right away,
3256 do this when finishing completion.
3260 Problem: Insert mode completion works when typed but not when replayed from
3261 a register. (Hari Krishna Dara)
3262 Also: Mappings for Insert mode completion don't always work.
3263 Solution: When finding a non-completion key in the input don't interrupt
3264 completion when it wasn't typed.
3265 Do use mappings when checking for typeahead while still finding
3266 completions. Avoids that completion is interrupted too soon.
3267 Use "compl_pending" in a different way.
3271 Problem: Can't compile with small features and syntax highlighting or the
3273 Solution: Define LINE_ATTR whenever syntax highlighting or the diff feature
3278 Problem: Crash when resizing the GUI window vertically when there is a line
3280 Solution: Don't redraw while the screen data is invalid.
3284 Problem: When calling complete() from an Insert mode expression mapping
3285 text could be inserted in an improper way.
3286 Solution: Make undo_allowed() global and use it in complete().
3287 Files: src/undo.c, src/proto/undo.pro, src/eval.c
3290 Problem: Calling inputdialog() with a third argument in the console doesn't
3292 Solution: Make a separate function for input() and inputdialog(). (Yegappan
3297 Problem: When 'cmdheight' is larger than 1 using inputlist() or selecting
3298 a spell suggestion with the mouse gets the wrong entry.
3299 Solution: Start listing the first alternative on the last line of the screen.
3300 Files: src/eval.c, src/spell.c
3303 Problem: cursor([1, 1]) doesn't work. (Peter Hodge)
3304 Solution: Allow leaving out the third item of the list and use zero for the
3305 virtual column offset.
3309 Problem: When pasting a block of text in Insert mode Vim hangs or crashes.
3311 Solution: Avoid that the cursor is positioned past the NUL of a line.
3315 Problem: Using "%!" at the start of 'statusline' doesn't work.
3316 Solution: Recognize the special item when the option is being set.
3320 Problem: Perl: setting a buffer line in another buffer may result in
3321 changing the current buffer.
3322 Solution: Properly change to the buffer to be changed.
3323 Files: src/if_perl.xs
3325 Patch 7.0.045 (extra)
3326 Problem: Win32: Warnings when compiling OLE version with MSVC 2005.
3327 Solution: Move including vim.h to before windows.h. (Ilya Bobir)
3328 Files: src/if_ole.cpp
3331 Problem: The matchparen plugin ignores parens in strings, but not in single
3332 quotes, often marked with "character".
3333 Solution: Also ignore parens in syntax items matching "character".
3334 Files: runtime/plugin/matchparen.vim
3337 Problem: When running configure the exit status is wrong.
3338 Solution: Handle the exit status properly. (Matthew Woehlke)
3339 Files: configure, src/configure
3342 Problem: Writing a compressed file fails when there are parens in the name.
3344 Solution: Put quotes around the temp file name.
3345 Files: runtime/autoload/gzip.vim
3348 Problem: Some TCL scripts are not recognized. (Steven Atkinson)
3349 Solution: Check for "exec wish" in the file.
3350 Files: runtime/scripts.vim
3353 Problem: After using the netbeans interface close command a stale pointer
3355 Solution: Clear the pointer to the closed buffer. (Xaview de Gaye)
3356 Files: src/netbeans.c
3358 Patch 7.0.051 (after 7.0.44)
3359 Problem: The Perl interface doesn't compile or doesn't work properly.
3360 Solution: Remove the spaces before #ifdef and avoid an empty line above it.
3361 Files: src/if_perl.xs
3364 Problem: The user may not be aware that the Vim server allows others more
3365 functionality than desired.
3366 Solution: When running Vim as root don't become a Vim server without an
3367 explicit --servername argument.
3371 Problem: Shortening a directory name may fail when there are multi-byte
3373 Solution: Copy the correct bytes. (Titov Anatoly)
3377 Problem: Mac: Using a menu name that only has a mnemonic or accelerator
3378 causes a crash. (Elliot Shank)
3379 Solution: Check for an empty menu name. Also delete empty submenus that
3380 were created before detecting the error.
3384 Problem: ":startinsert" in a CmdwinEnter autocommand doesn't take immediate
3385 effect. (Bradley White)
3386 Solution: Put a NOP key in the typeahead buffer. Also avoid that using
3387 CTRL-C to go back to the command line moves the cursor left.
3388 Files: src/edit.c, src/ex_getln.c
3391 Problem: "#!something" gives an error message.
3392 Solution: Ignore this line, so that it can be used in an executable Vim
3394 Files: src/ex_docmd.c
3396 Patch 7.0.057 (extra, after 7.0.45)
3397 Problem: Win32: Compilation problem with Borland C 5.5.
3398 Solution: Include vim.h as before. (Mark S. Williams)
3399 Files: src/if_ole.cpp
3402 Problem: The gbk and gb18030 encodings are not recognized.
3403 Solution: Add aliases to cp936. (Edward L. Fox)
3407 Problem: The Perl interface doesn't compile with ActiveState Perl 5.8.8.
3408 Solution: Remove the __attribute__() items. (Liu Yubao)
3409 Files: src/if_perl.xs
3411 Patch 7.0.060 (after 7.0.51)
3412 Problem: Code for temporarily switching to another buffer is duplicated in
3414 Solution: Use aucmd_prepbuf() and aucmd_restbuf() also when FEAT_AUTOCMD is
3416 Files: src/buffer.c, src/eval.c, src/fileio.c, src/if_ruby.c,
3417 src/if_perl.xs, src/quickfix.c, src/structs.h
3420 Problem: Insert mode completion for Vim commands may crash if there is
3421 nothing to complete.
3422 Solution: Instead of freeing the pattern make it empty, so that a "not
3423 found" error is given. (Yukihiro Nakadaira)
3427 Problem: Mac: Crash when using the popup menu for spell correction. The
3428 popup menu appears twice when letting go of the right mouse button
3430 Solution: Don't show the popup menu on the release of the right mouse
3431 button. Also check that a menu pointer is actually valid.
3432 Files: src/proto/menu.pro, src/menu.c, src/normal.c, src/term.c
3435 Problem: Tiny chance for a memory leak. (coverity)
3436 Solution: Free pointer when next memory allocation fails.
3440 Problem: Using uninitialized variable. (Tony Mechelynck)
3441 Solution: When not used set "temp" to zero. Also avoid a warning for
3442 "files" in ins_compl_dictionaries().
3445 Patch 7.0.065 (extra)
3446 Problem: Mac: left-right movement of the scrollwheel causes up-down
3448 Solution: Ignore mouse wheel events that are not up-down. (Nicolas Weber)
3449 Files: src/gui_mac.c
3452 Problem: After the popup menu for Insert mode completion overlaps the tab
3453 pages line it is not completely removed.
3454 Solution: Redraw the tab pages line after removing the popup menu. (Ori
3456 Files: src/popupmnu.c
3459 Problem: Undo doesn't always work properly when using "scim" input method.
3460 Undo is split up when using preediting.
3461 Solution: Reset xim_has_preediting also when preedit_start_col is not
3462 MAXCOL. Don't split undo when <Left> is used while preediting.
3463 (Yukihiro Nakadaira)
3464 Files: src/edit.c, src/mbyte.c
3467 Problem: When 'ignorecase' is set and using Insert mode completion,
3468 typing characters to change the list of matches, case is not
3469 ignored. (Hugo Ahlenius)
3470 Solution: Store the 'ignorecase' flag with the matches where needed.
3471 Files: src/edit.c, src/search.c, src/spell.c
3474 Problem: Setting 'guitablabel' to %!expand(\%) causes Vim to free an
3475 invalid pointer. (Kim Schulz)
3476 Solution: Don't try freeing a constant string pointer.
3480 Problem: Compiler warnings for shadowed variables and uninitialized
3482 Solution: Rename variables such as "index", "msg" and "dup". Initialize
3484 Files: src/edit.c, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c,
3485 src/ex_docmd.c, src/gui_beval.c, src/gui_gtk.c, src/gui_gtk_x11.c,
3486 src/hardcopy.c, src/if_cscope.c, src/main.c, src/mbyte.c,
3487 src/memline.c, src/netbeans.c, src/normal.c, src/option.c,
3488 src/os_unix.c, src/quickfix.c, src/regexp.c, src/screen.c,
3489 src/search.c, src/spell.c, src/ui.c, src/undo.c, src/window.c,
3493 Problem: Using an empty search pattern may cause a crash.
3494 Solution: Avoid using a NULL pointer.
3498 Problem: When starting the GUI fails there is no way to adjust settings or
3500 Solution: Add the GUIFailed autocommand event.
3501 Files: src/fileio.c, src/gui.c, src/vim.h
3504 Problem: Insert mode completion: Typing <CR> sometimes selects the original
3505 text instead of keeping what was typed. (Justin Constantino)
3506 Solution: Don't let <CR> select the original text if there is no popup menu.
3509 Patch 7.0.074 (extra)
3510 Problem: Win32: tooltips were not converted from 'encoding' to Unicode.
3511 Solution: Set the tooltip to use Unicode and do the conversion. Also
3512 cleanup the code for the tab pages tooltips. (Yukihiro Nakadaira)
3513 Files: src/gui_w32.c, src/gui_w48.c
3516 Problem: winsaveview() did not store the actual value of the desired cursor
3517 column. This could move the cursor in the matchparen plugin.
3518 Solution: Call update_curswant() before using the value w_curswant.
3521 Patch 7.0.076 (after 7.0.010)
3522 Problem: Automatic downloading of spell files only works for ftp.
3523 Solution: Don't add login and password for non-ftp URLs. (Alexander Patrakov)
3524 Files: runtime/autoload/spellfile.vim
3527 Problem: ":unlet v:this_session" causes a crash. (Marius Roets)
3528 Solution: When trying to unlet a fixed variable give an error message.
3532 Problem: There are two error messages E46.
3533 Solution: Change the number for the sandbox message to E794.
3534 Files: src/globals.h
3537 Problem: Russian tutor doesn't work when 'encoding' is "utf-8".
3538 Solution: Use tutor.ru.utf-8 as the master, and generate the other encodings
3539 from it. Select the right tutor depending on 'encoding'. (Alexey
3541 Files: runtime/tutor/Makefile, runtime/tutor/tutor.vim,
3542 runtime/tutor/tutor.ru.utf-8
3545 Problem: Generating auto/pathdef.c fails for CFLAGS with a backslash.
3546 Solution: Double backslashes in the string. (Alexey Froloff)
3550 Problem: Command line completion doesn't work for a shell command with an
3552 Solution: Don't use $PATH when there is an absolute path.
3553 Files: src/ex_getln.c
3556 Problem: Calling a function that waits for input may cause List and
3557 Dictionary arguments to be freed by the garbage collector.
3558 Solution: Keep a list of all arguments to internal functions.
3562 Problem: Clicking with the mouse on an item for inputlist() doesn't work
3563 when 'compatible' is set and/or when 'cmdheight' is more than one.
3564 (Christian J. Robinson)
3565 Solution: Also decrement "lines_left" when 'more' isn't set. Set
3566 "cmdline_row" to zero to get all mouse events.
3567 Files: src/message.c, src/misc1.c
3570 Problem: The garbage collector may do its work while some Lists or
3571 Dictionaries are used internally, e.g., by ":echo" that runs into
3572 the more-prompt or ":echo [garbagecollect()]".
3573 Solution: Only do garbage collection when waiting for a character at the
3574 toplevel. Let garbagecollect() set a flag that is handled at the
3575 toplevel before waiting for a character.
3576 Files: src/eval.c, src/getchar.c, src/globals.h, src/main.c
3579 Problem: When doing "make test" the viminfo file is modified.
3580 Solution: Use another viminfo file after setting 'compatible.
3581 Files: src/testdir/test56.in
3584 Problem: getqflist() returns entries for pattern and text with the number
3585 zero. Passing these to setqflist() results in the string "0".
3586 Solution: Use an empty string instead of the number zero.
3587 Files: src/quickfix.c
3590 Problem: After ":file fname" and ":saveas fname" the 'autochdir' option
3591 does not take effect. (Yakov Lerner)
3592 Commands for handling 'autochdir' are repeated many times.
3593 Solution: Add the DO_AUTOCHDIR macro and do_autochdir(). Use it for
3594 ":file fname" and ":saveas fname".
3595 Files: src/proto/buffer.pro, src/buffer.c, src/ex_cmds.c, src/macros.h,
3596 src/netbeans.c, src/option.c, src/window.c
3599 Problem: When compiled with Perl the generated prototypes have "extern"
3600 unnecessarily added.
3601 Solution: Remove the "-pipe" argument from PERL_CFLAGS.
3602 Files: src/auto/configure, src/configure.in
3605 Problem: "ga" does not work properly for a non-Unicode multi-byte encoding.
3606 Solution: Only check for composing chars for utf-8. (Taro Muraoka)
3607 Files: src/ex_cmds.c
3610 Problem: Cancelling the conform() dialog on the console with Esc requires
3611 typing it twice. (Benji Fisher)
3612 Solution: When the start of an escape sequence is found use 'timeoutlen' or
3617 Problem: Using winrestview() while 'showcmd' is set causes the cursor to be
3618 displayed in the wrong position. (Yakov Lerner)
3619 Solution: Set the window topline properly.
3622 Patch 7.0.092 (after 7.0.082 and 7.0.084)
3623 Problem: The list of internal function arguments is obsolete now that
3624 garbage collection is only done at the toplevel.
3625 Solution: Remove the list of all arguments to internal functions.
3629 Problem: The matchparen plugin can't handle a 'matchpairs' value where a
3631 Solution: Change the split() that is used to change 'matchpairs' into a
3633 Files: runtime/plugin/matchparen.vim
3636 Problem: When a hidden buffer is made the current buffer and another file
3637 edited later, the file message will still be given. Using
3638 ":silent" also doesn't prevent the file message. (Marvin Renich)
3639 Solution: Reset the need_fileinfo flag when reading a file. Don't set
3640 need_fileinfo when msg_silent is set.
3641 Files: src/buffer.c, src/fileio.c
3644 Problem: The Greek tutor is not available in utf-8. "el" is used for the
3645 language, only "gr" for the country is recognized.
3646 Solution: Add the utf-8 Greek tutor. Use it for conversion to iso-8859-7
3647 and cp737. (Lefteris Dimitroulakis)
3648 Files: runtime/tutor/Makefile, runtime/tutor/tutor.gr.utf-8,
3649 runtime/tutor/tutor.vim
3652 Problem: taglist() returns the filename relative to the tags file, while
3653 the directory of the tags file is unknown. (Hari Krishna Dara)
3654 Solution: Expand the file name. (Yegappan Lakshmanan)
3658 Problem: ":tabclose N" that closes another tab page does not remove the tab
3659 pages line. Same problem when using the mouse.
3660 Solution: Adjust the tab pages line when needed in tabpage_close_other().
3661 Files: src/ex_docmd.c
3664 Problem: Redirecting command output in a cmdline completion function
3665 doesn't work. (Hari Krishna Dara)
3666 Solution: Enable redirection when redirection is started.
3667 Files: src/ex_docmd.c, src/ex_getln.c
3670 Problem: GUI: When the popup menu is visible using the scrollbar messes up
3672 Solution: Disallow scrolling the current window. Redraw the popup menu
3673 after scrolling another window.
3677 Problem: "zug" may report the wrong filename. (Lawrence Kesteloot)
3678 Solution: Call home_replace() to fill NameBuff[].
3682 Problem: When the "~/.vim/spell" directory does not exist "zg" may create
3683 a wrong directory. "zw" doesn't work.
3684 Solution: Use the directory of the file name instead of NameBuff. For "zw"
3685 not only remove a good word but also add the word with "!".
3689 Problem: Redrawing cmdline is not correct when using SCIM.
3690 Solution: Don't call im_get_status(). (Yukihiro Nakadaira)
3691 Files: src/ex_getln.c
3693 Patch 7.0.103 (after 7.0.101)
3694 Problem: Compiler warning for uninitialized variable. (Tony Mechelynck)
3695 Solution: Init variable.
3699 Problem: The CursorHoldI event only triggers once in Insert mode. It also
3700 triggers after CTRL-V and other two-key commands.
3701 Solution: Set "did_cursorhold" before getting a second key. Reset
3702 "did_cursorhold" after handling a command.
3703 Files: src/edit.c, src/fileio.c
3706 Problem: When using incremental search the statusline ruler isn't updated.
3708 Solution: Update the statusline when it contains the ruler.
3709 Files: src/ex_getln.c
3712 Problem: The spell popup menu uses ":amenu", triggering mappings. Other
3713 PopupMenu autocommands are removed. (John Little)
3714 Solution: Use ":anoremenu" and use an autocmd group.
3715 Files: runtime/menu.vim
3718 Problem: Incremental search doesn't redraw the text tabline. (Ilya Bobir)
3719 Also happens in other situations with one window in a tab page.
3720 Solution: Redraw the tabline after clearing the screen.
3723 Patch 7.0.108 (extra)
3724 Problem: Amiga: Compilation problem.
3725 Solution: Have mch_mkdir() return a failure flag. (Willy Catteau)
3726 Files: src/os_amiga.c, src/proto/os_amiga.pro
3729 Problem: Lisp indenting is confused by escaped quotes in strings. (Dorai
3731 Solution: Check for backslash inside strings. (Sergey Khorev)
3735 Problem: Amiga: Compilation problems when not using libnix.
3736 Solution: Change a few #ifdefs. (Willy Catteau)
3737 Files: src/memfile.c
3740 Problem: The gzip plugin can't handle filenames with single quotes.
3741 Solution: Add and use the shellescape() function. (partly by Alexey Froloff)
3742 Files: runtime/autoload/gzip.vim, runtime/doc/eval.txt, src/eval.c,
3743 src/mbyte.c, src/misc2.c, src/proto/misc2.pro
3746 Problem: Python interface does not work with Python 2.5.
3747 Solution: Change PyMem_DEL() to Py_DECREF(). (Sumner Hayes)
3748 Files: src/if_python.c
3751 Problem: Using CTRL-L in Insert completion when there is no current match
3752 may cause a crash. (Yukihiro Nakadaira)
3753 Solution: Check for compl_leader to be NULL
3757 Problem: When aborting an insert with CTRL-C an extra undo point is
3758 created in the GUI. (Yukihiro Nakadaira)
3759 Solution: Call gotchars() only when advancing.
3760 Files: src/getchar.c
3763 Problem: When 'ignorecase' is set, Insert mode completion only adds "foo"
3764 and not "Foo" when both are found.
3765 A found match isn't displayed right away when 'completeopt' does
3766 not have "menu" or "menuone".
3767 Solution: Do not ignore case when checking if a completion match already
3768 exists. call ins_compl_check_keys() also when not using a popup
3769 menu. (Yukihiro Nakadaira)
3773 Problem: 64 bit Windows version reports "32 bit" in the ":version" output.
3775 Solution: Change the text for Win64.
3776 Files: src/version.c
3779 Problem: Using "extend" on a syntax item inside a region with "keepend", an
3780 intermediate item may be truncated.
3781 When applying the "keepend" and there is an offset to the end
3782 pattern the highlighting of a contained item isn't adjusted.
3783 Solution: Use the seen_keepend flag to remember when to apply the "keepend"
3784 flag. Adjust the keepend highlighting properly. (Ilya Bobir)
3788 Problem: printf() does not do zero padding for strings.
3789 Solution: Do allow zero padding for strings.
3790 Files: src/message.c
3793 Problem: When going back from Insert to Normal mode the CursorHold event
3794 doesn't trigger. (Yakov Lerner)
3795 Solution: Reset "did_cursorhold" when leaving Insert mode.
3799 Problem: Crash when using CTRL-R = at the command line and entering
3800 "getreg('=')". (James Vega)
3801 Solution: Avoid recursiveness of evaluating the = register.
3805 Problem: GUI: Dragging the last status line doesn't work when there is a
3806 text tabline. (Markus Wolf)
3807 Solution: Take the text tabline into account when deciding to start modeless
3812 Problem: GUI: When clearing after a bold, double-wide character half a
3813 character may be drawn.
3814 Solution: Check for double-wide character and redraw it. (Yukihiro Nakadaira)
3818 Problem: On SCO Openserver configure selects the wrong terminal library.
3819 Solution: Put terminfo before the other libraries. (Roger Cornelius)
3820 Also fix a small problem compiling on Mac without Darwin.
3821 Files: src/configure.in, src/auto/configure
3824 Problem: getwinvar() obtains a dictionary with window-local variables, but
3825 it's always for the current window.
3826 Solution: Get the variables of the specified window. (Geoff Reedy)
3830 Problem: When "autoselect" is in the 'clipboard' option then the '< and '>
3831 marks are set while Visual mode is still active.
3832 Solution: Don't set the '< and '> marks when yanking the selected area for
3837 Problem: When 'formatexpr' uses setline() and later internal formatting is
3838 used undo information is not correct. (Jiri Cerny, Benji Fisher)
3839 Solution: Set ins_need_undo after using 'formatexpr'.
3843 Problem: Crash when swap files has invalid timestamp.
3844 Solution: Check return value of ctime() for being NULL.
3845 Files: src/memline.c
3848 Problem: GUI: when closing gvim is cancelled because there is a changed
3849 buffer the screen isn't updated to show the changed buffer in the
3850 current window. (Krzysztof Kacprzak)
3851 Solution: Redraw when closing gvim is cancelled.
3855 Problem: GTK GUI: the GTK file dialog can't handle a relative path.
3856 Solution: Make the initial directory a full path before passing it to GTK.
3857 (James Vega) Also postpone adding the default file name until
3858 after setting the directory.
3859 Files: src/gui_gtk.c
3861 Patch 7.0.130 (extra)
3862 Problem: Win32: Trying to edit or write devices may cause Vim to get stuck.
3863 Solution: Add the 'opendevice' option, default off. Disallow
3864 reading/writing from/to devices when it's off.
3865 Also detect more devices by the full name starting with "\\.\".
3866 Files: runtime/doc/options.txt, src/fileio.c, src/option.c, src/option.h,
3870 Problem: Win32: "vim -r" does not list all the swap files.
3871 Solution: Also check for swap files starting with a dot.
3872 Files: src/memline.c
3874 Patch 7.0.132 (after 7.0.130)
3875 Problem: Win32: Crash when Vim reads from stdin.
3876 Solution: Only use mch_nodetype() when there is a file name.
3880 Problem: When searching included files messages are added to the history.
3881 Solution: Set msg_hist_off for messages about scanning included files.
3882 Set msg_silent to avoid message about wrapping around.
3883 Files: src/edit.c, src/globals.h, src/message.c, src/search.c
3886 Problem: Crash when comparing a recursively looped List or Dictionary.
3887 Solution: Limit recursiveness for comparing to 1000.
3891 Problem: Crash when garbage collecting list or dict with loop.
3892 Solution: Don't use DEL_REFCOUNT but don't recurse into Lists and
3893 Dictionaries when freeing them in the garbage collector.
3894 Also add allocated Dictionaries to the list of Dictionaries to
3895 avoid leaking memory.
3896 Files: src/eval.c, src/proto/eval.pro, src/tag.c
3899 Problem: Using "O" while matching parens are highlighted may not remove the
3900 highlighting. (Ilya Bobir)
3901 Solution: Also trigger CursorMoved when a line is inserted under the cursor.
3905 Problem: Configure check for big features is wrong.
3906 Solution: Change "==" to "=". (Martti Kuparinen)
3907 Files: src/auto/configure, src/configure.in
3909 Patch 7.0.138 (extra)
3910 Problem: Mac: modifiers don't work with function keys.
3911 Solution: Use GetEventParameter() to obtain modifiers. (Nicolas Weber)
3912 Files: src/gui_mac.c
3915 Problem: Using CTRL-PageUp or CTRL-PageDown in Insert mode to go to another
3916 tab page does not prepare for undo properly. (Stefano Zacchiroli)
3917 Solution: Call start_arrow() before switching tab page.
3920 Patch 7.0.140 (after 7.0.134)
3921 Problem: Comparing recursively looped List or Dictionary doesn't work well.
3922 Solution: Detect comparing a List or Dictionary with itself.
3926 Problem: When pasting a while line on the command line an extra CR is added
3928 Solution: Don't add the trailing CR when pasting with the mouse.
3929 Files: src/ex_getln.c, src/proto/ops.pro, src/ops.c
3932 Problem: Using the middle mouse button in Select mode to paste text results
3933 in an extra "y". (Kriton Kyrimis)
3934 Solution: Let the middle mouse button replace the selected text with the
3935 contents of the clipboard.
3939 Problem: Setting 'scroll' to its default value was not handled correctly.
3940 Solution: Compare the right field to PV_SCROLL.
3944 Problem: May compare two unrelated pointers when matching a pattern against
3945 a string. (Dominique Pelle)
3946 Solution: Avoid calling reg_getline() when REG_MULTI is false.
3949 Patch 7.0.145 (after 7.0.142)
3950 Problem: Compiler warning.
3951 Solution: Add type cast.
3955 Problem: When 'switchbuf' is set to "usetab" and the current tab has only a
3956 quickfix window, jumping to an error always opens a new window.
3957 Also, when the buffer is open in another tab page it's not found.
3958 Solution: Check for the "split" value of 'switchbuf' properly. Search in
3959 other tab pages for the desired buffer. (Yegappan Lakshmanan)
3960 Files: src/buffer.c, src/quickfix.c
3963 Problem: When creating a session file and there are several tab pages and
3964 some windows have a local directory a short file name may be used
3965 when it's not valid. (Marius Roets)
3966 A session with multiple tab pages may result in "No Name" buffers.
3968 Solution: Don't enter tab pages when going through the list, only use a
3969 pointer to the first window in each tab page.
3970 Use "tabedit" instead of "tabnew | edit" when possible.
3971 Files: src/ex_docmd.c
3974 Problem: When doing "call a.xyz()" and "xyz" does not exist in dictionary
3975 "a" there is no error message. (Yegappan Lakshmanan)
3976 Solution: Add the error message.
3980 Problem: When resizing a window that shows "~" lines the text sometimes
3982 Solution: Remove code that uses "~" lines in some situations. Fix the
3983 computation of the screen line of the cursor. Also set w_skipcol
3984 to handle very long lines.
3985 Files: src/misc1.c, src/window.c
3988 Problem: When resizing the Vim window scrollbinding doesn't work. (Yakov
3990 Solution: Do scrollbinding in set_shellsize().
3994 Problem: Buttons in file dialog are not according to Gnome guidelines.
3995 Solution: Swap Cancel and Open buttons. (Stefano Zacchiroli)
3996 Files: src/gui_gtk.c
3999 Problem: Crash when using lesstif 2.
4000 Solution: Fill in the extension field. (Ben Hutchings)
4001 Files: src/gui_xmebw.c
4004 Problem: When using cscope and opening the temp file fails Vim crashes.
4006 Solution: Check for NULL pointer returned from mch_open().
4007 Files: src/if_cscope.c
4010 Problem: When 'foldnextmax' is negative Vim can hang. (James Vega)
4011 Solution: Avoid the fold level becoming negative.
4012 Files: src/fold.c, src/syntax.c
4015 Problem: When getchar() returns a mouse button click there is no way to get
4016 the mouse coordinates.
4017 Solution: Add v:mouse_win, v:mouse_lnum and v:mouse_col.
4018 Files: runtime/doc/eval.txt, src/eval.c, src/vim.h
4020 Patch 7.0.156 (extra)
4021 Problem: Vim doesn't compile for Amiga OS 4.
4022 Solution: Various changes for Amiga OS4. (Peter Bengtsson)
4023 Files: src/feature.h, src/mbyte.c, src/memfile.c, src/memline.c,
4024 src/os_amiga.c, src/os_amiga.h, src/pty.c
4027 Problem: When a function is used recursively the profiling information is
4028 invalid. (Mikolaj Machowski)
4029 Solution: Put the start time on the stack instead of in the function.
4033 Problem: In a C file with ":set foldmethod=syntax", typing {<CR> on the
4034 last line results in the cursor being in a closed fold. (Gautam
4036 Solution: Open fold after inserting a new line.
4040 Problem: When there is an I/O error in the swap file the cause of the error
4042 Solution: Use PERROR() instead of EMSG() where possible.
4043 Files: src/memfile.c
4046 Problem: ":@a" echoes the command, Vi doesn't do that.
4047 Solution: Set the silent flag in the typeahead buffer to avoid echoing the
4049 Files: src/ex_docmd.c, src/normal.c, src/ops.c, src/proto/ops.pro
4052 Problem: Win32: Tab pages line popup menu isn't using the right encoding.
4054 Solution: Convert the text when necessary. Also fixes the Find/Replace
4055 dialog title. (Yegappan Lakshmanan)
4056 Files: src/gui_w48.c
4059 Problem: "vim -o a b" when file "a" triggers the ATTENTION dialog,
4060 selecting "Quit" exits Vim instead of editing "b" only.
4061 When file "b" triggers the ATTENTION dialog selecting "Quit" or
4062 "Abort" results in editing file "a" in that window.
4063 Solution: When selecting "Abort" exit Vim. When selecting "Quit" close the
4064 window. Also avoid hit-enter prompt when selecting Abort.
4065 Files: src/buffer.c, src/main.c
4068 Problem: Can't retrieve the position of a sign after it was set.
4069 Solution: Add the netbeans interface getAnno command. (Xavier de Gaye)
4070 Files: runtime/doc/netbeans.txt, src/netbeans.c
4073 Problem: ":redir @+" doesn't work.
4074 Solution: Accept "@+" just like "@*". (Yegappan Lakshmanan)
4075 Files: src/ex_docmd.c
4078 Problem: Using CTRL-L at the search prompt adds a "/" and other characters
4079 without escaping, causing the pattern not to match.
4080 Solution: Escape special characters with a backslash.
4081 Files: src/ex_getln.c
4084 Problem: Crash in cscope code when connection could not be opened.
4086 Solution: Check for the file descriptor to be NULL.
4087 Files: src/if_cscope.c
4090 Problem: ":function" redefining a dict function doesn't work properly.
4092 Solution: Allow a function name to be a number when it's a function
4097 Problem: Using uninitialized memory and memory leak. (Dominique Pelle)
4098 Solution: Use alloc_clear() instead of alloc() for w_lines. Free
4099 b_ml.ml_stack after recovery.
4100 Files: src/memline.c, src/window.c
4103 Problem: With a Visual block selection, with the cursor in the left upper
4104 corner, pressing "I" doesn't remove the highlighting. (Guopeng
4106 Solution: When checking if redrawing is needed also check if Visual
4107 selection is still active.
4110 Patch 7.0.170 (extra)
4111 Problem: Win32: Using "gvim --remote-tab foo" when gvim is minimized while
4112 it previously was maximized, un-maximizing doesn't work properly.
4113 And the labels are not displayed properly when 'encoding' is
4115 Solution: When minimized check for SW_SHOWMINIMIZED. When updating the tab
4116 pages line use TCM_SETITEMW instead of TCM_INSERTITEMW. (Liu
4118 Files: src/gui_w48.c
4120 Patch 7.0.171 (extra)
4121 Problem: VMS: A file name with multiple paths is written in the wrong file.
4122 Solution: Get the actually used file name. (Zoltan Arpadffy)
4123 Also add info to the :version command about compilation.
4124 Files: src/Make_vms.mms, src/buffer.c, src/os_unix.c, src/version.c
4127 Problem: Crash when recovering and quitting at the "press-enter" prompt.
4128 Solution: Check for "msg_list" to be NULL. (Liu Yubao)
4129 Files: src/ex_eval.c
4132 Problem: ":call f().TT()" doesn't work. (Richard Emberson)
4133 Solution: When a function returns a Dictionary or another composite continue
4134 evaluating what follows.
4138 Problem: ":mksession" doesn't restore window layout correctly in tab pages
4139 other than the current one. (Zhibin He)
4140 Solution: Use the correct topframe for producing the window layout commands.
4141 Files: src/ex_docmd.c
4144 Problem: The result of tr() is missing the terminating NUL. (Ingo Karkat)
4145 Solution: Add the NUL.
4149 Problem: ":emenu" isn't executed directly, causing the encryption key
4150 prompt to fail. (Life Jazzer)
4151 Solution: Fix wrong #ifdef.
4155 Problem: When the press-enter prompt gets a character from a non-remappable
4156 mapping, it's put back in the typeahead buffer as remappable,
4157 which may cause an endless loop.
4158 Solution: Restore the non-remappable flag and the silent flag when putting a
4159 char back in the typeahead buffer.
4160 Files: src/getchar.c, src/message.c, src/normal.c
4163 Problem: When 'enc' is "utf-8" and 'ignorecase' is set the result of ":echo
4164 ("\xe4" == "\xe4")" varies.
4165 Solution: In mb_strnicmp() avoid looking past NUL bytes.
4169 Problem: Using ":recover" or "vim -r" without a swapfile crashes Vim.
4170 Solution: Check for "buf" to be unequal NULL. (Yukihiro Nakadaira)
4171 Files: src/memline.c
4173 Patch 7.0.180 (extra, after 7.0.171)
4174 Problem: VMS: build failed. Problem with swapfiles.
4175 Solution: Add "compiled_arch". Always expand path and pass it to
4176 buf_modname(). (Zoltan Arpadffy)
4177 Files: src/globals.h, src/memline.c, src/os_unix.c, runtime/menu.vim
4180 Problem: When reloading a file that starts with an empty line, the reloaded
4181 buffer has an extra empty line at the end. (Motty Lentzitzky)
4182 Solution: Delete all lines, don't use bufempty().
4186 Problem: When using a mix of undo and "g-" it may no longer be possible to
4187 go to every point in the undo tree. (Andy Wokula)
4188 Solution: Correctly update pointers in the undo tree.
4192 Problem: Crash in ":let" when redirecting to a variable that's being
4193 displayed. (Thomas Link)
4194 Solution: When redirecting to a variable only do the assignment when
4195 stopping redirection to avoid that setting the variable causes a
4196 freed string to be accessed.
4200 Problem: When the cscope program is called "mlcscope" the Cscope interface
4202 Solution: Accept "\S*cscope:" instead of "cscope:". (Frodak D. Baksik)
4203 Files: src/if_cscope.c
4206 Problem: Multi-byte characters in a message are displayed with attributes
4207 from what comes before it.
4208 Solution: Don't use the attributes for a multi-byte character. Do use
4209 attributes for special characters. (Yukihiro Nakadaira)
4210 Files: src/message.c
4213 Problem: Get an ml_get error when 'encoding' is "utf-8" and searching for
4214 "/\_s*/e" in an empty buffer. (Andrew Maykov)
4215 Solution: Don't try getting the line just below the last line.
4219 Problem: Can't source a remote script properly.
4220 Solution: Add the SourceCmd event. (Charles Campbell)
4221 Files: runtime/doc/autocmd.txt, src/ex_cmds2.c, src/fileio.c, src/vim.h
4223 Patch 7.0.188 (after 7.0.186)
4224 Problem: Warning for wrong pointer type.
4225 Solution: Add a type cast.
4229 Problem: Translated message about finding matches is truncated. (Yukihiro
4231 Solution: Enlarge the buffer. Also use vim_snprintf().
4235 Problem: "syntax spell default" results in an error message.
4236 Solution: Change 4 to 7 for STRNICMP(). (Raul Nunez de Arenas Coronado)
4240 Problem: The items used by getqflist() and setqflist() don't match.
4241 Solution: Support the "bufnum" item for setqflist(). (Yegappan Lakshmanan)
4242 Files: runtime/doc/eval.txt, src/quickfix.c
4245 Problem: When 'swapfile' is switched off in an empty file it is possible
4246 that not all blocks are loaded into memory, causing ml_get errors
4248 Solution: Rename "dont_release" to "mf_dont_release" and also use it to
4249 avoid using the cached line and locked block.
4250 Files: src/globals.h, src/memfile.c, src/memline.c
4253 Problem: Using --remote or --remote-tab with an argument that matches
4254 'wildignore' causes a crash.
4255 Solution: Check the argument count before using ARGLIST[0].
4256 Files: src/ex_cmds.c
4259 Problem: Once an ml_get error is given redrawing part of the screen may
4260 cause it again, resulting in an endless loop.
4261 Solution: Don't give the error message for a recursive call.
4262 Files: src/memline.c
4265 Problem: When a buffer is modified and 'autowriteall' is set, ":quit"
4266 results in an endless loop when there is a conversion error while
4267 writing. (Nikolai Weibull)
4268 Solution: Make autowrite() return FAIL if the buffer is still changed after
4270 /* put the cursor on the last char, for 'tw' formatting */
4271 Files: src/ex_cmds2.c
4274 Problem: When using ":vert ball" the computation of the mouse pointer
4275 position may be off by one column. (Stefan Karlsson)
4276 Solution: Recompute the frame width when moving the vertical separator from
4277 one window to another.
4280 Patch 7.0.197 (extra)
4281 Problem: Win32: Compiling with EXITFREE doesn't work.
4282 Solution: Adjust a few #ifdefs. (Alexei Alexandrof)
4283 Files: src/misc2.c, src/os_mswin.c
4285 Patch 7.0.198 (extra)
4286 Problem: Win32: Compiler warnings. No need to generate gvim.exe.mnf.
4287 Solution: Add type casts. Use "*" for processorArchitecture. (George Reilly)
4288 Files: src/Make_mvc.mak, src/eval.c, src/gvim.exe.mnf, src/misc2.c
4291 Problem: When using multi-byte characters the combination of completion and
4292 formatting may result in a wrong cursor position.
4293 Solution: Don't decrement the cursor column, use dec_cursor(). (Yukihiro
4294 Nakadaira) Also check for the column to be zero.
4298 Problem: Memory leaks when out of memory.
4299 Solution: Free the memory.
4300 Files: src/edit.c, src/diff.c
4303 Problem: Message for ":diffput" about buffer not being in diff mode may be
4305 Solution: Check for buffer in diff mode but not modifiable.
4309 Problem: Problems on Tandem systems while compiling and at runtime.
4310 Solution: Recognize root uid is 65535. Check select() return value for it
4311 not being supported. Avoid wrong function prototypes. Mention
4312 use of -lfloss. (Matthew Woehlke)
4313 Files: src/Makefile, src/ex_cmds.c, src/fileio.c, src/main.c,
4314 src/osdef1.h.in, src/osdef2.h.in, src/os_unix.c, src/pty.c,
4318 Problem: 0x80 characters in a register are not handled correctly for the
4320 Solution: Escape CSI and 0x80 characters. (Yukihiro Nakadaira)
4324 Problem: Cscope: Parsing matches for listing isn't done properly.
4325 Solution: Check for line number being found. (Yu Zhao)
4326 Files: src/if_cscope.c
4328 Patch 7.0.205 (after 7.0.203)
4329 Problem: Can't compile.
4330 Solution: Always include the vim_strsave_escape_csi function.
4331 Files: src/getchar.c
4333 Patch 7.0.206 (after 7.0.058)
4334 Problem: Some characters of the "gb18030" encoding are not handled
4336 Solution: Do not use "cp936" as an alias for "gb18030" encoding. Instead
4337 initialize 'encoding' to "cp936".
4338 Files: src/mbyte.c, src/option.c
4341 Problem: After patch 2.0.203 CSI and K_SPECIAL characters are escaped when
4342 recorded and then again when the register is executed.
4343 Solution: Remove escaping before putting the recorded characters in a
4344 register. (Yukihiro Nakadaira)
4345 Files: src/getchar.c, src/ops.c, src/proto/getchar.pro
4347 Patch 7.0.208 (after 7.0.171 and 7.0.180)
4348 Problem: VMS: changes to path handling cause more trouble than they solve.
4349 Solution: Revert changes.
4350 Files: src/buffer.c, src/memline.c, src/os_unix.c
4353 Problem: When replacing a line through Python the cursor may end up beyond
4354 the end of the line.
4355 Solution: Check the cursor column after replacing the line.
4356 Files: src/if_python.c
4359 Problem: ":cbuffer" and ":lbuffer" always fail when the buffer is modified.
4361 Solution: Support adding a !. (Yegappan Lakshmanan)
4362 Files: runtime/doc/quickfix.txt, src/ex_cmds.h
4365 Problem: With ":set cindent noai bs=0" using CTRL-U in Insert mode will
4366 delete auto-indent. After ":set ai" it doesn't.
4367 Solution: Also check 'cindent' being set. (Ryan Lortie)
4371 Problem: The GUI can't be terminated with SIGTERM. (Mark Logan)
4372 Solution: Use the signal protection in the GUI as in the console, allow
4373 signals when waiting for 100 msec or longer.
4377 Problem: When 'spellfile' has two regions that use the same sound folding
4378 using "z=" will cause memory to be freed twice. (Mark Woodward)
4379 Solution: Clear the hashtable properly so that the items are only freed once.
4383 Problem: When using <f-args> in a user command it's not possible to have an
4384 argument end in '\ '.
4385 Solution: Change the handling of backslashes. (Yakov Lerner)
4386 Files: runtime/doc/map.txt, src/ex_docmd.c
4388 Patch 7.0.215 (extra)
4389 Problem: Mac: Scrollbar size isn't set. Context menu has disabled useless
4390 Help entry. Call to MoreMasterPointers() is ignored.
4391 Solution: Call SetControlViewSize() in gui_mch_set_scrollbar_thumb(). Use
4392 kCMHelpItemRemoveHelp for ContextualMenuSelect(). Remove call to
4393 MoreMasterPointers(). (Nicolas Weber)
4394 Files: src/gui_mac.c
4397 Problem: ":tab wincmd ]" does not open a tab page. (Tony Mechelynck)
4398 Solution: Copy the cmdmod.tab value to postponed_split_tab and use it.
4399 Files: src/globals.h, src/ex_docmd.c, src/if_cscope.c, src/window.c
4402 Problem: This hangs when pressing "n": ":%s/\n/,\r/gc". (Ori Avtalion)
4403 Solution: Set "skip_match" to advance to the next line.
4404 Files: src/ex_cmds.c
4407 Problem: "%B" in 'statusline' always shows zero in Insert mode. (DervishD)
4408 Solution: Remove the exception for Insert mode, check the column for being
4413 Problem: When using the 'editexisting.vim' script and a file is being
4414 edited in another tab page the window is split. The "+123"
4415 argument is not used.
4416 Solution: Make the tab page with the file the current tab page. Set
4417 v:swapcommand when starting up to the first "+123" or "-c" command
4419 Files: runtime/macros/editexisting.vim, src/main.c
4422 Problem: Crash when using winnr('#') in a new tab page. (Andy Wokula)
4423 Solution: Check for not finding the window.
4427 Problem: finddir() uses 'path' by default, where "." means relative to the
4428 current file. But it works relative to the current directory.
4430 Solution: Add the current buffer name to find_file_in_path_option() for the
4432 Files: runtime/doc/eval.txt, src/eval.c
4435 Problem: Perl indenting using 'cindent' works almost right.
4436 Solution: Recognize '#' to start a comment. (Alex Manoussakis) Added '#'
4437 flag in 'cinoptions'.
4438 Files: runtime/doc/indent.txt, src/misc1.c
4441 Problem: Unprintable characters in completion text mess up the popup menu.
4443 Solution: Use strtrans() to make the text printable.
4444 Files: src/charset.c, src/popupmnu.c
4447 Problem: When expanding "##" spaces are escaped twice. (Pavol Juhas)
4448 Solution: Don't escape the spaces that separate arguments.
4449 Files: src/eval.c, src/ex_docmd.c, src/proto/ex_docmd.pro
4452 Problem: When using setline() in an InsertEnter autocommand and doing "A"
4453 the cursor ends up on the last byte in the line. (Yukihiro
4455 Solution: Only adjust the column when using setline() for the cursor line.
4456 Move it back to the head byte if necessary.
4457 Files: src/eval.c, src/misc2.c
4460 Problem: Display flickering when updating signs through the netbeans
4461 interface. (Xavier de Gaye)
4462 Solution: Remove the redraw_later(CLEAR) call.
4463 Files: src/netbeans.c
4466 Problem: Crash when closing a window in the GUI. (Charles Campbell)
4467 Solution: Don't call out_flush() from win_free().
4471 Problem: Cygwin: problem with symlink to DOS style path.
4472 Solution: Invoke cygwin_conv_to_posix_path(). (Luca Masini)
4473 Files: src/os_unix.c
4476 Problem: When 'pastetoggle' starts with Esc then pressing Esc in Insert
4477 mode will not time out. (Jeffery Small)
4478 Solution: Use KL_PART_KEY instead of KL_PART_MAP, so that 'ttimeout' applies
4479 to the 'pastetoggle' key.
4480 Files: src/getchar.c
4483 Problem: After using ":lcd" a script doesn't know how to restore the
4485 Solution: Add the haslocaldir() function. (Bob Hiestand)
4486 Files: runtime/doc/usr_41.txt, runtime/doc/eval.txt, src/eval.c
4489 Problem: When recovering from a swap file the page size is likely to be
4490 different from the minimum. The block used for the first page
4491 then has a buffer of the wrong size, causing a crash when it's
4492 reused later. (Zephaniah Hull)
4493 Solution: Reallocate the buffer when the page size changes. Also check that
4494 the page size is at least the minimum value.
4495 Files: src/memline.c
4497 Patch 7.0.232 (extra)
4498 Problem: Mac: doesn't support GUI tab page labels.
4499 Solution: Add GUI tab page labels. (Nicolas Weber)
4500 Files: src/feature.h, src/gui.c, src/gui.h, src/gui_mac.c,
4501 src/proto/gui_mac.pro
4503 Patch 7.0.233 (extra)
4504 Problem: Mac: code formatted badly.
4505 Solution: Fix code formatting
4506 Files: src/gui_mac.c
4509 Problem: It's possible to use feedkeys() from a modeline. That is a
4510 security issue, can be used for a trojan horse.
4511 Solution: Disallow using feedkeys() in the sandbox.
4515 Problem: It is possible to use writefile() in the sandbox.
4516 Solution: Add a few more checks for the sandbox.
4520 Problem: Linux 2.4 uses sysinfo() with a mem_unit field, which is not
4521 backwards compatible.
4522 Solution: Add an autoconf check for sysinfo.mem_unit. Let mch_total_mem()
4523 return Kbyte to avoid overflow.
4524 Files: src/auto/configure, src/configure.in, src/config.h.in,
4525 src/option.c, src/os_unix.c
4528 Problem: For root it is recommended to not use 'modeline', but in
4529 not-compatible mode the default is on.
4530 Solution: Let 'modeline' default to off for root.
4531 Files: runtime/doc/options.txt, src/option.c
4534 Problem: Crash when ":match" pattern runs into 'maxmempattern'. (Yakov
4536 Solution: Don't free the regexp program of match_hl.
4540 Problem: When using local directories and tab pages ":mksession" uses a
4541 short file name when it shouldn't. Window-local options from a
4542 modeline may be applied to the wrong window. (Teemu Likonen)
4543 Solution: Add the did_lcd flag, use the full path when it's set. Don't use
4544 window-local options from the modeline when using the current
4545 window for another buffer in ":doautoall".
4546 Files: src/fileio.c, src/ex_docmd.c
4549 Problem: Crash when splitting a window in the GUI. (opposite of 7.0.227)
4550 Solution: Don't call out_flush() from win_alloc(). Also avoid this for
4551 win_delete(). Also block autocommands while the window structure
4556 Problem: ":windo throw 'foo'" loops forever. (Andy Wokula)
4557 Solution: Detect that win_goto() doesn't work.
4558 Files: src/ex_cmds2.c
4560 Patch 7.0.242 (extra)
4561 Problem: Win32: Using "-register" in a Vim that does not support OLE causes
4563 Solution: Don't use EMSG() but mch_errmsg(). Check p_go for being NULL.
4564 (partly by Michael Wookey)
4565 Files: src/gui_w32.c
4567 Patch 7.0.243 (extra)
4568 Problem: Win32: When GvimExt is built with MSVC 2005 or later, the "Edit
4569 with vim" context menu doesn't appear in the Windows Explorer.
4570 Solution: Embed the linker manifest file into the resources of GvimExt.dll.
4572 Files: src/GvimExt/Makefile
4575 Fixes after Vim 7.1a BETA:
4577 The extra archive had CVS directories included below "farsi" and
4578 "runtime/icons". CVS was missing the farsi icon files.
4580 Fix compiling with Gnome 2.18, undefine bind_textdomain_codeset. (Daniel
4583 Mac: "make install" didn't copy rgb.txt.
4585 When editing a compressed file while there are folds caused "ml_get" errors
4586 and some lines could be missing. When decompressing failed option values were
4591 Problem: Crash when downloading a spell file. (Szabolcs Horvat)
4592 Solution: Avoid that did_set_spelllang() is used recursively when a new
4593 window is opened for the download.
4594 Also avoid wiping out the wrong buffer.
4595 Files: runtime/autoload/spellfile.vim, src/buffer.c, src/ex_cmds.c,
4598 Patch 7.1a.002 (extra)
4599 Problem: Compilation error with MingW.
4600 Solution: Check for LPTOOLTIPTEXT to be defined.
4601 Files: src/gui_w32.c
4604 Fixes after Vim 7.1b BETA:
4606 Made the Mzscheme interface build both with old and new versions of Mzscheme,
4607 using an #ifdef. (Sergey Khorev)
4608 Mzscheme interface didn't link, missing function. Changed order of libraries
4609 in the configure script.
4611 Ruby interface didn't compile on Mac. Changed #ifdef. (Kevin Ballard)
4613 Patch 7.1b.001 (extra)
4614 Problem: Random text in a source file. No idea how it got there.
4615 Solution: Delete the text.
4616 Files: src/gui_w32.c
4619 Problem: When 'maxmem' is large there can be an overflow in computations.
4621 Solution: Use the same mechanism as in mch_total_mem(): first reduce the
4622 multiplier as much as possible.
4623 Files: src/memfile.c
4625 ==============================================================================
4626 VERSION 7.2 *version-7.2*
4628 This section is about improvements made between version 7.1 and 7.2.
4630 This is mostly a bug-fix release. The main new feature is floating point
4634 Changed *changed-7.2*
4637 Changed the command line buffer name from "command-line" to "[Command Line]".
4639 Removed optional ! for ":caddexpr", ":cgetexpr", ":cgetfile", ":laddexpr",
4640 ":lgetexpr" and ":lgetfile". They are not needed. (Yegappan Lakshmanan)
4642 An offset for syntax matches worked on bytes instead of characters. That is
4643 inconsistent and can easily be done wrong. Use character offsets now.
4644 (Yukihiro Nakadaira)
4646 The FileChangedShellPost event was also given when a file didn't change.
4649 When the current line is long (doesn't fit) the popup menu can't be seen.
4650 Display it below the screen line instead of below the text line.
4651 (Francois Ingelrest)
4653 Switched to autoconf version 2.62.
4655 Moved including fcntl.h to vim.h and removed it from all .c files.
4657 Introduce macro STRMOVE(d, s), like STRCPY() for overlapping strings.
4658 Use it instead of mch_memmove(p, p + x, STRLEN(p + x) + 1).
4660 Removed the bulgarian.vim keymap file, two more standard ones replace it.
4668 Cdrdao config (Nikolai Weibull)
4669 Coco/R (Ashish Shukla)
4670 CUDA (Timothy B. Terriberry)
4671 denyhosts config (Nikolai Weibull)
4672 Dtrace script (Nicolas Weber)
4673 Git output, commit, config, rebase, send-email (Tim Pope)
4674 HASTE and HastePreProc (M. Tranchero)
4675 Host conf (Nikolai Weibull)
4676 Linden script (Timo Frenay)
4677 Symbian meta-makefile, MMP (Ron Aaron)
4678 MS messages (Kevin Locke)
4680 ProMeLa (Maurizio Tranchero)
4681 Reva Foth (Ron Aaron)
4682 VOS CM macro (Andrew McGill)
4686 Made UTF-8 versions of all the tutor files.
4687 Greek renamed from ".gr" to ".el" (Greek vs Greece).
4688 Esperanto (Dominique Pelle)
4689 Croatian (Paul B. Mahol)
4691 New filetype plugins:
4692 Cdrdao config (Nikolai Weibull)
4693 Debian control files (Debian Vim maintainers)
4694 Denyhosts (Nikolai Weibull)
4695 Dos .ini file (Nikolai Weibull)
4696 Dtrace script (Nicolas Weber)
4697 Git, Git config, Git commit, Git rebase, Git send-email (Tim Pope)
4698 Host conf (Nikolai Weibull)
4699 MS messages (Kevin Locke)
4701 Reva Forth (Ron Aaron)
4704 Dtrace script (Nicolas Weber)
4706 Git config (Tim Pope)
4707 Tiny Fugue (Christian J. Robinson)
4709 New compiler plugins:
4713 Croatian (Paul B. Mahol)
4714 Russian Dvorak (Serhiy Boiko)
4715 Ukrainian Dvorak (Serhiy Boiko)
4717 Other new runtime files:
4718 Esperanto menus and message translations. (Dominique Pelle)
4719 Finnish translation of menus and messages. (Flammie Pirinen)
4721 Added floating point support. |Float|
4723 Added argument to mode() to return a bit more detail about the current mode.
4726 Added support for BSD console mouse: |sysmouse|. (Paul Mahol)
4728 Added the "newtab" value for the 'switchbuf' option. (partly by Yegappan
4731 Improved error messages for the netbeans interface. (Philippe Fremy)
4733 Added support for using xterm mouse codes for screen. (Micah Cowan)
4735 Added support for cross compiling:
4736 Adjusted configure.in and added INSTALLcross.txt. (Marc Haisenko) Fixed
4737 mistakes in configure.in after that.
4738 Don't use /usr/local/include and /usr/local/lib in configure. (Philip
4740 For cross compiling the Cygwin version on Unix, change VIM.TLB to vim.tlb in
4741 src/vim.rc. (Tsuneo Nakagawa)
4743 Added v:searchforward variable: What direction we're searching in. (Yakov
4751 Problem: Still can't build with Gnome libraries.
4752 Solution: Fix typo in bind_textdomain_codeset. (Mike Kelly)
4753 Files: src/gui_gtk.c, src/gui_gtk_x11.c
4756 Problem: Oracle Pro*C/C++ files are not detected.
4757 Solution: Add the missing star. (Micah J. Cowan)
4758 Files: runtime/filetype.vim
4760 Patch 7.1.003 (extra)
4761 Problem: The "Tear off this menu" message appears in the message history
4762 when using a menu. (Yongwei Wu)
4763 Solution: Disable message history when displaying the menu tip.
4764 Files: src/gui_w32.c
4767 Problem: Crash when doing ":next directory". (Raphael Finkel)
4768 Solution: Do not use "buf", it may be invalid after autocommands.
4769 Files: src/ex_cmds.c
4772 Problem: "cit" used on <foo></foo> deletes <foo>. Should not delete
4773 anything and start insertion, like "ci'" does on "". (Michal
4775 Solution: Handle an empty object specifically. Made it work consistent for
4776 various text objects.
4780 Problem: Resetting 'modified' in a StdinReadPost autocommand doesn't work.
4781 Solution: Set 'modified' before the autocommands instead of after it.
4784 Patch 7.1.007 (extra)
4785 Problem: Mac: Context menu doesn't work on Intel Macs.
4786 Scrollbars are not dimmed when Vim is not the active application.
4787 Solution: Remove the test whether context menus are supported. They are
4788 always there in OS/X. Handle the dimming. (Nicolas Weber)
4789 Files: src/gui_mac.c, src/gui.h
4792 Problem: getfsize() returns a negative number for very big files.
4793 Solution: Check for overflow and return -2.
4794 Files: runtime/doc/eval.txt, src/eval.c
4797 Problem: In diff mode, displaying the difference between a tab and spaces
4798 is not highlighted correctly.
4799 Solution: Only change highlighting at the end of displaying a tab.
4803 Problem: The Gnome session file doesn't restore tab pages.
4804 Solution: Add SSOP_TABPAGES to the session flags. (Matias D'Ambrosio)
4805 Files: src/gui_gtk_x11.c
4808 Problem: Possible buffer overflow when $VIMRUNTIME is very long. (Victor
4810 Solution: Use vim_snprintf().
4814 Problem: ":let &shiftwidth = 'asdf'" doesn't produce an error message.
4815 Solution: Check for a string argument. (Chris Lubinski)
4819 Problem: ":syn include" only loads the first file, while it is documented
4820 as doing the equivalent of ":runtime!".
4821 Solution: Change the argument to source_runtime(). (James Vega)
4825 Problem: Crash when doing C indenting. (Chris Monson)
4826 Solution: Obtain the current line again after invoking cin_islabel().
4830 Problem: MzScheme interface: current-library-collection-paths produces no
4831 list. Interface doesn't build on a Mac.
4832 Solution: Use a list instead of a pair. (Bernhard Fisseni) Use "-framework"
4833 argument for MZSCHEME_LIBS in configure.
4834 Files: src/configure.in, src/if_mzsch.c, src/auto/configure
4836 Patch 7.1.016 (after patch 7.1.012)
4837 Problem: Error message about setting 'diff' to a string.
4838 Solution: Don't pass an empty string to set_option_value() when setting
4840 Files: src/quickfix.c, src/popupmnu.c
4843 Problem: ":confirm w" does give a prompt when 'readonly' is set, but not
4844 when the file permissions are read-only. (Michael Schaap)
4845 Solution: Provide a dialog in both situations. (Chris Lubinski)
4846 Files: src/ex_cmds.c, src/fileio.c, src/proto/fileio.pro
4849 Problem: When 'virtualedit' is set a "p" of a block just past the end of
4850 the line inserts before the cursor. (Engelke)
4851 Solution: Check for the cursor being just after the line (Chris Lubinski)
4855 Problem: ":py" asks for an argument, ":py asd" then gives the error that
4856 ":py" isn't implemented. Should already happen for ":py".
4857 Solution: Compare with ex_script_ni. (Chris Lubinski)
4858 Files: src/ex_docmd.c
4861 Problem: Reading from uninitialized memory when using a dialog. (Dominique
4863 Solution: In msg_show_console_dialog() append a NUL after every appended
4865 Files: src/message.c
4867 Patch 7.1.021 (after 7.1.015)
4868 Problem: Mzscheme interface doesn't compile on Win32.
4869 Solution: Fix the problem that 7.1.015 fixed in a better way. (Sergey Khorev)
4870 Files: src/if_mzsch.c
4873 Problem: When setting 'keymap' twice the b:keymap_name variable isn't set.
4875 Solution: Don't unlet b:keymap_name for ":loadkeymap". (Martin Toft)
4876 Files: src/digraph.c
4879 Problem: "dw" in a line with one character deletes the line. Vi and nvi
4880 don't do this. (Kjell Arne Rekaa)
4881 Solution: Check for one-character words especially.
4885 Problem: Using a pointer that has become invalid. (Chris Monson)
4886 Solution: Obtain the line pointer again after we looked at another line.
4890 Problem: search() and searchpos() don't use match under cursor at start of
4891 line when using 'bc' flags. (Viktor Kojouharov)
4892 Solution: Don't go to the previous line when the 'c' flag is present.
4893 Also fix that "j" doesn't move the cursor to the right column.
4894 Files: src/eval.c, src/search.c
4897 Problem: "[p" doesn't work in Visual mode. (David Brown)
4898 Solution: Use checkclearop() instead of checkclearopq().
4902 Problem: On Sun systems opening /dev/fd/N doesn't work, and they are used
4903 by process substitutions.
4904 Solution: Allow opening specific character special files for Sun systems.
4906 Files: src/fileio.c, src/os_unix.h
4909 Problem: Can't use last search pattern for ":sort". (Brian McKee)
4910 Solution: When the pattern is emtpy use the last search pattern. (Martin
4912 Files: runtime/doc/change.txt, src/ex_cmds.c
4914 Patch 7.1.029 (after 7.1.019)
4915 Problem: Can't compile when all interfaces are used. (Taylor Venable)
4916 Solution: Only check for ex_script_ni when it's defined.
4917 Files: src/ex_docmd.c
4920 Problem: The "vimtutor" shell script checks for "vim6" but not for "vim7".
4921 (Christian Robinson)
4922 Solution: Check for more versions, but prefer using "vim".
4926 Problem: virtcol([123, '$']) doesn't work. (Michael Schaap)
4927 Solution: When '$' is used for the column number get the last column.
4928 Files: runtime/doc/eval.txt, src/eval.c
4931 Problem: Potential crash when editing a command line. (Chris Monson)
4932 Solution: Check the position to avoid access before the start of an array.
4933 Files: src/ex_getln.c
4936 Problem: A buffer is marked modified when it was first deleted and then
4937 added again using a ":next" command. (John Mullin)
4938 Solution: When checking if a buffer is modified use the BF_NEVERLOADED flag.
4942 Problem: Win64: A few compiler warnings. Problems with optimizer.
4943 Solution: Use int instead of size_t. Disable the optimizer in one function.
4945 Files: src/eval.c, src/spell.c
4948 Problem: After ":s/./&/#" all listed lines have a line number. (Yakov
4950 Solution: Reset the line number flag when not using the "&" flag.
4951 Files: src/ex_cmds.c
4954 Problem: Completing ":echohl" argument should include "None". (Ori
4955 Avtalion) ":match" should have "none" too.
4956 Solution: Add flags to use expand_highlight(). Also fix that when disabling
4957 FEAT_CMDL_COMPL compilation fails. (Chris Lubinski)
4958 Files: src/eval.c, src/ex_docmd.c, src/ex_getln.c, src/proto/syntax.pro
4962 Problem: strcpy() used for overlapping strings. (Chris Monson)
4963 Solution: Use mch_memmove() instead.
4967 Problem: When 'expandtab' is set then a Tab copied for 'copyindent' is
4968 expanded to spaces, even when 'preserveindent' is set. (Alexei
4970 Solution: Remove the check for 'expandtab'. Also fix that ">>" doesn't obey
4971 'preserveindent'. (Chris Lubinski)
4975 Problem: A tag in a help file that starts with "help-tags" and contains a
4976 percent sign may make Vim crash. (Ulf Harnhammar)
4977 Solution: Use puts() instead of fprintf().
4978 Files: src/ex_cmds.c
4981 Problem: ":match" only supports three matches.
4982 Solution: Add functions clearmatches(), getmatches(), matchadd(),
4983 matchdelete() and setmatches(). Changed the data structures for
4984 this. A small bug in syntax.c is fixed, so newly created
4985 highlight groups can have their name resolved correctly from their
4987 Files: runtime/doc/eval.txt, runtime/doc/pattern.txt,
4988 runtime/doc/usr_41.txt, src/eval.c, src/ex_docmd.c,
4989 src/proto/window.pro, src/screen.c, src/structs.h, src/syntax.c,
4990 src/testdir/Makefile, src/testdir/test63.in,
4991 src/testdir/test63.ok, src/window.c
4993 Patch 7.1.041 (extra, after 7.1.040)
4994 Problem: Some changes for patch 7.1.040 are in extra files.
4995 Solution: Update the extra files.
4996 Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
4997 src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
4999 Patch 7.1.042 (after 7.1.040)
5000 Problem: Internal error when using matchadd(). (David Larson)
5001 Solution: Check the third argument to be present before using the fourth
5002 argument. (Martin Toft)
5006 Problem: In Ex mode using CTRL-D twice may cause a crash. Cursor isn't
5007 positioned properly after CTRL-D.
5008 Solution: Set prev_char properly. Position the cursor correctly. (Antony
5010 Files: src/ex_getln.c
5013 Problem: In Insert mode 0 CTRL-T deletes all indent, it should add indent.
5015 Solution: Check for CTRL-D typed.
5019 Problem: Unnecessary screen redrawing. (Jjgod Jiang)
5020 Solution: Reset "must_redraw" after clearing the screen.
5024 Problem: ":s" command removes combining characters. (Ron Aaron)
5025 Solution: Copy composing characters individually. (Chris Lubinski)
5029 Problem: vim_regcomp() called with invalid argument. (Xiaozhou Liu)
5030 Solution: Change TRUE to RE_MAGIC + RE_STRING.
5031 Files: src/ex_eval.c
5034 Problem: The matchparen plugin doesn't update the match when scrolling with
5035 the mouse wheel. (Ilya Bobir)
5036 Solution: Set the match highlighting for text that can be scrolled into the
5037 viewable area without moving the cursor. (Chris Lubinski)
5038 Files: runtime/plugin/matchparen.vim
5041 Problem: Cannot compile GTK2 version with Hangul input feature.
5042 Solution: Don't define FEAT_XFONTSET when using GTK2.
5043 Files: src/feature.h
5046 Problem: Possible crash when using C++ indenting. (Chris Monson)
5047 Solution: Keep the line pointer to the line to compare with. Avoid going
5048 past the end of line.
5052 Problem: Accessing uninitialized memory when finding spell suggestions.
5053 Solution: Don't try swapping characters at the end of a word.
5057 Problem: When creating a new match not all fields are initialized, which
5058 may lead to unpredictable results.
5059 Solution: Initialise rmm_ic and rmm_maxcol.
5063 Problem: Accessing uninitialized memory when giving a message.
5064 Solution: Check going the length before checking for a NUL byte.
5065 Files: src/message.c
5068 Problem: Accessing uninitialized memory when displaying the fold column.
5069 Solution: Add a NUL to the extra array. (Dominique Pelle). Also do this in
5070 a couple of other situations.
5074 Problem: Using strcpy() with arguments that overlap.
5075 Solution: Use mch_memmove() instead.
5076 Files: src/buffer.c, src/charset.c, src/eval.c, src/ex_getln.c,
5077 src/misc1.c, src/regexp.c, src/termlib.c
5080 Problem: More prompt does not behave correctly after scrolling back.
5082 Solution: Avoid lines_left becomes negative. (Chris Lubinski) Don't check
5083 mp_last when deciding to show the more prompt. (Martin Toft)
5084 Files: src/message.c
5087 Problem: Problem with CursorHoldI when using "r" in Visual mode (Max
5089 Solution: Ignore CursorHold(I) when getting a second character for a Normal
5090 mode command. Also abort the "r" command in Visual when a special
5095 Problem: When 'rightleft' is set the completion menu is positioned wrong.
5096 (Baha-Eddine MOKADEM)
5097 Solution: Fix the completion menu. (Martin Toft)
5098 Files: src/popupmnu.c, src/proto/search.pro, src/search.c
5101 Problem: When in Ex mode and doing "g/^/vi" and then pressing CTRL-C Vim
5102 hangs and beeps. (Antony Scriven)
5103 Solution: Clear "got_int" in the main loop to avoid the hang. When typing
5104 CTRL-C twice in a row abort the ":g" command. This is Vi
5109 Problem: Splitting quickfix window messes up window layout. (Marius
5111 Solution: Compute the window size in a smarter way. (Martin Toft)
5115 Problem: Win32: When 'encoding' is "latin1" 'ignorecase' doesn't work for
5116 characters with umlaut. (Joachim Hofmann)
5117 Solution: Do not use islower()/isupper()/tolower()/toupper() but our own
5118 functions. (Chris Lubinski)
5119 Files: src/mbyte.c, src/regexp.c, src/vim.h
5121 Patch 7.1.062 (after 7.1.038)
5122 Problem: Indents of C comments can be wrong. (John Mullin)
5123 Solution: Adjust ind_len. (Chris Lubinski)
5126 Patch 7.1.063 (after 7.1.040)
5127 Problem: Warning for uninitialized variable.
5128 Solution: Initialise it to NULL.
5129 Files: src/ex_docmd.c
5132 Problem: On Interix some files appear not to exist.
5133 Solution: Remove the top bit from st_mode. (Ligesh)
5134 Files: src/os_unix.c
5136 Patch 7.1.065 (extra)
5137 Problem: Win32: Compilation problem for newer version of w32api.
5138 Solution: Only define __IID_DEFINED__ when needed. (Chris Sutcliffe)
5139 Files: src/Make_ming.mak, src/iid_ole.c
5142 Problem: When 'bomb' is set or reset the file should be considered
5143 modified. (Tony Mechelynck)
5144 Solution: Handle like 'endofline'. (Martin Toft)
5145 Files: src/buffer.c, src/fileio.c, src/option.c, src/structs.h
5148 Problem: 'thesaurus' doesn't work when 'infercase' is set. (Mohsin)
5149 Solution: Don't copy the characters being completed but check the case and
5150 apply it to the suggested word. Also fix that the first word in
5151 the thesaurus line is not used. (Martin Toft)
5155 Problem: When 'equalalways' is set and splitting a window, it's possible
5156 that another small window gets bigger.
5157 Solution: Only equalize window sizes when after a split the windows are
5158 smaller than another window. (Martin Toft)
5159 Files: runtime/doc/options.txt, runtime/doc/windows.txt, src/window.c
5162 Problem: GTK GUI: When using confirm() without a default button there still
5163 is a default choice.
5164 Solution: Ignore Enter and Space when there is no default button. (Chris
5166 Files: src/gui_gtk.c
5168 Patch 7.1.070 (extra)
5169 Problem: Win32 GUI: When using confirm() without a default button there
5170 still is a default choice.
5171 Solution: Set focus on something else than a button. (Chris Lubinski)
5172 Files: src/gui_w32.c
5174 Patch 7.1.071 (after 7.1.040)
5175 Problem: Regexp patterns are not tested.
5176 Solution: Add a basic test, to be expanded later.
5177 Also add (commented-out) support for valgrind.
5178 Files: src/testdir/Makefile, src/testdir/test64.in, src/testdir/test64.ok
5180 Patch 7.1.072 (extra, after 7.1.041 and 7.1.071)
5181 Problem: Some changes for patch 7.1.071 are in extra files.
5182 Solution: Update the extra files. Also fix a few warnings from the DOS test
5184 Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
5185 src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
5187 Patch 7.1.073 (after 7.1.062)
5188 Problem: Wrong cursor position and crash when 'preserveindent' is set.
5190 Solution: Handle the situation that we start without indent. (Chris
5195 Problem: Crash when calling string() on a recursively nested List.
5196 Solution: Check result value for being NULL. (Yukihiro Nakadaira)
5200 Problem: ":let v:statusmsg" reads memory already freed.
5201 Solution: Don't set v:statusmsg when listing it.
5205 Problem: Another strcpy() with overlapping arguments.
5206 Solution: Use mch_memmove(). (Dominique Pelle) And another one.
5207 Files: src/ex_docmd.c, src/normal.c
5210 Problem: Using "can_spell" without initializing it. (Dominique Pelle)
5211 Solution: Set a default for get_syntax_attr().
5215 Problem: Dropping a file name on gvim that contains a CSI byte doesn't work
5216 when editing the command line.
5217 Solution: Escape the CSI byte when inserting in the input buffer. (Yukihiro
5219 Files: src/gui.c, src/ui.c
5222 Problem: When the locale is "C" and 'encoding' is "latin1" then the "@"
5223 character in 'isfname', 'isprint', etc. doesn't pick up accented
5225 Solution: Instead of isalpha() use MB_ISLOWER() and MB_ISUPPER().
5226 Files: src/charset.c, src/macros.h
5228 Patch 7.1.080 (extra)
5229 Problem: Compiler warnings for using "const char *" for "char *".
5230 Solution: Add type casts. (Chris Sutcliffe)
5231 Files: src/GvimExt/gvimext.cpp
5234 Problem: Command line completion for a shell command: "cat </tmp/file<Tab>"
5236 Solution: Start the file name at any character that can't be in a file name.
5238 Files: src/ex_docmd.c
5241 Problem: After a ":split" the matchparen highlighting isn't there.
5242 Solution: Install a WinEnter autocommand. Also fixes that after
5243 ":NoMatchParen" only the current window is updated. (Martin Toft)
5244 Files: runtime/doc/pi_paren.txt, runtime/plugin/matchparen.vim
5246 Patch 7.1.083 (after 7.1.081)
5247 Problem: Command line completion doesn't work with wildcards.
5248 Solution: Add vim_isfilec_or_wc() and use it. (Martin Toft)
5249 Files: src/charset.c, src/proto/charset.pro, src/ex_docmd.c
5252 Problem: Using the "-nb" argument twice causes netbeans not to get
5254 Solution: Change "&" to "&&". (Xavier de Gaye)
5255 Files: src/ex_cmds.c
5258 Problem: ":e fold.c" then ":sp fold.c" results in folds of original window
5259 to disappear. (Akita Noek)
5260 Solution: Invoke foldUpdateAll() for all windows of the changed buffer.
5262 Files: src/ex_cmds.c
5265 Problem: Crash when using specific Python syntax highlighting. (Quirk)
5266 Solution: Check for a negative index, coming from a keyword match at the
5267 start of a line from a saved state.
5271 Problem: Reading past ":cscope find" command. Writing past end of a buffer.
5272 Solution: Check length of the argument before using the pattern. Use
5273 vim_strncpy(). (Dominique Pelle)
5276 Patch 7.1.088 (extra)
5277 Problem: The coordinates used by ":winpos" differ from what getwinposx()
5278 and getwinposy() return.
5279 Solution: Use MoveWindowStructure() instead of MoveWindow(). (Michael Henry)
5280 Files: src/gui_mac.c
5283 Problem: ":let loaded_getscriptPlugin" doesn't clear to eol, result is
5285 Solution: Clear to the end of the screen after displaying the first variable
5290 Problem: Compiler warning on Mac OS X 10.5.
5291 Solution: Don't redeclare sigaltstack(). (Hisashi T Fujinaka)
5292 Files: src/os_unix.c
5294 Patch 7.1.091 (extra)
5295 Problem: Win32: Can't embed Vim inside another application.
5296 Solution: Add the --windowid argument. (Nageshwar)
5297 Files: runtime/doc/gui_w32.txt, runtime/doc/starting.txt,
5298 runtime/doc/vi_diff.txt, src/globals.h, src/gui_w32.c, src/main.c
5300 Patch 7.1.092 (extra, after 7.1.088)
5301 Problem: Wrong arguments for MoveWindowStructure().
5302 Solution: Remove "TRUE". (Michael Henry)
5303 Files: src/gui_mac.c
5306 Problem: Reading past end of a screen line when determining cell width.
5308 Solution: Add an argument to mb_off2cells() for the maximum offset.
5309 Files: src/globals.h, src/gui.c, src/mbyte.c, src/proto/mbyte.pro,
5313 Problem: When checking if syntax highlighting is present, looking in the
5314 current buffer instead of the specified one.
5315 Solution: Use "buf" instead of "curbuf".
5319 Problem: The FocusLost and FocusGained autocommands are triggered
5320 asynchronously in the GUI. This may cause arbitrary problems.
5321 Solution: Put the focus event in the input buffer and handle it when ready
5323 Files: src/eval.c, src/getchar.c, src/gui.c, src/gui_gtk_x11.c,
5327 Problem: Reading past end of a string when resizing Vim. (Dominique Pelle)
5328 Solution: Check the string pointer before getting the char it points to.
5329 Files: src/message.c
5332 Problem: ":setlocal stl=%!1+1" does not work.
5333 Solution: Adjust check for pointer. (Politz)
5337 Problem: ":call s:var()" doesn't work if "s:var" is a Funcref. (Andy Wokula)
5338 Solution: Before converting "s:" into a script ID, check if it is a Funcref.
5342 Problem: When the 'keymap' and 'paste' options have a non-default value,
5343 ":mkexrc" and ":mksession" do not correctly set the options.
5344 Solution: Set the options with side effects before other options.
5348 Problem: Win32: Executing cscope doesn't always work properly.
5349 Solution: Use another way to invoke cscope. (Mike Williams)
5350 Files: src/if_cscope.c, src/if_cscope.h, src/main.c,
5351 src/proto/if_cscope.pro
5354 Problem: Ruby: The Buffer.line= method does not work.
5355 Solution: Add the "self" argument to set_current_line(). (Jonathan Hankins)
5356 Files: src/if_ruby.c
5359 Problem: Perl interface doesn't compile with new version of Perl.
5360 Solution: Add two variables to the dynamic library loading. (Suresh
5362 Files: src/if_perl.xs
5365 Problem: Using "dw" with the cursor past the end of the last line (using
5366 CTRL-\ CTRL-O from Insert mode) deletes a character. (Tim Chase)
5367 Solution: Don't move the cursor back when the movement failed.
5370 Patch 7.1.104 (after 7.1.095)
5371 Problem: When 'lazyredraw' is set a focus event causes redraw to be
5372 postponed until a key is pressed.
5373 Solution: Instead of not returning from vgetc() when a focus event is
5374 encountered return K_IGNORE. Add plain_vgetc() for when the
5375 caller doesn't want to get K_IGNORE.
5376 Files: src/digraph.c, src/edit.c, src/ex_cmds.c, src/ex_getln.c,
5377 src/getchar.c, src/normal.c, src/proto/getchar.pro, src/window.c
5380 Problem: Internal error when using "0 ? {'a': 1} : {}". (A.Politz)
5381 Solution: When parsing a dictionary value without using the value, don't try
5382 obtaining the key name.
5386 Problem: ":messages" doesn't quit listing on ":".
5387 Solution: Break the loop when "got_int" is set.
5388 Files: src/message.c
5391 Problem: When doing a block selection and using "s" to change the text,
5392 while triggering auto-indenting, causes the wrong text to be
5393 repeated in other lines. (Adri Verhoef)
5394 Solution: Compute the change of indent and compensate for that.
5397 Patch 7.1.108 (after 7.1.100)
5398 Problem: Win32: Compilation problems in Cscope code. (Jeff Lanzarotta)
5399 Solution: Use (long) instead of (intptr_t) when it's not defined.
5400 Files: src/if_cscope.c
5403 Problem: GTK: when there are many tab pages, clicking on the arrow left of
5404 the labels moves to the next tab page on the right. (Simeon Bird)
5405 Solution: Check the X coordinate of the click and pass -1 as value for the
5407 Files: src/gui_gtk_x11.c, src/term.c
5409 Patch 7.1.110 (after 7.1.102)
5410 Problem: Win32: Still compilation problems with Perl.
5411 Solution: Change the #ifdefs. (Suresh Govindachar)
5412 Files: src/if_perl.xs
5415 Problem: When using ":vimgrep" with the "j" flag folds from another buffer
5416 may be displayed. (A.Politz)
5417 Solution: When not jumping to another buffer update the folds.
5418 Files: src/quickfix.c
5421 Problem: Using input() with a wrong argument may crash Vim. (A.Politz)
5422 Solution: Init the input() return value to NULL.
5426 Problem: Using map() to go over an empty list causes memory to be freed
5428 Solution: Don't clear the typeval in restore_vimvar().
5432 Problem: Memory leak in getmatches().
5433 Solution: Don't increment the refcount twice.
5436 Patch 7.1.115 (after 7.1.105)
5437 Problem: Compiler warning for uninitialized variable. (Tony Mechelynck)
5438 Solution: Init variable to NULL.
5442 Problem: Cannot display Unicode characters above 0x10000.
5443 Solution: Remove the replacement with a question mark when UNICODE16 is not
5444 defined. (partly by Nicolas Weber)
5448 Problem: Can't check wether Vim was compiled with Gnome. (Tony Mechelynck)
5449 Solution: Add gui_gnome to the has() list.
5452 Patch 7.1.118 (after 7.1.107)
5453 Problem: Compiler warning for Visual C compiler.
5454 Solution: Add typecast. (Mike Williams)
5458 Problem: Crash when 'cmdheight' set to very large value. (A.Politz)
5459 Solution: Limit 'cmdheight' to 'lines' minus one. Store right value of
5460 'cmdheight' when running out of room.
5461 Files: src/option.c, src/window.c
5464 Problem: Can't properly check memory leaks while running tests.
5465 Solution: Add an argument to garbagecollect(). Delete functions and
5466 variables in the test scripts.
5467 Files: runtime/doc/eval.txt src/eval.c, src/globals.h, src/main.c,
5468 src/testdir/Makefile, src/testdir/test14.in,
5469 src/testdir/test26.in, src/testdir/test34.in,
5470 src/testdir/test45.in, src/testdir/test47.in,
5471 src/testdir/test49.in, src/testdir/test55.in,
5472 src/testdir/test56.in, src/testdir/test58.in,
5473 src/testdir/test59.in, src/testdir/test60.in,
5474 src/testdir/test60.vim, src/testdir/test62.in,
5475 src/testdir/test63.in, src/testdir/test64.in,
5478 Problem: Using ":cd %:h" when editing a file in the current directory
5479 results in an error message for using an empty string.
5480 Solution: When "%:h" results in an empty string use ".".
5484 Problem: Mac: building Vim.app fails. Using wrong architecture.
5485 Solution: Use line continuation for the gui_bundle dependency. Detect the
5486 system architecture with "uname -a".
5490 Problem: Win32: ":edit foo ~ foo" expands "~".
5491 Solution: Change the call to expand_env().
5492 Files: src/ex_docmd.c, src/misc1.c, src/proto/misc1.pro, src/option.c
5494 Patch 7.1.124 (extra)
5495 Problem: Mac: When dropping a file on Vim.app that is already in the buffer
5496 list (from .viminfo) results in editing an empty, unnamed buffer.
5497 (Axel Kielhorn) Also: warning for unused variable.
5498 Solution: Move to the buffer of the first argument. Delete unused variable.
5499 Files: src/gui_mac.c
5502 Problem: The TermResponse autocommand event is not always triggered. (Aron
5504 Solution: When unblocking autocommands check if v:termresponse changed and
5505 trigger the event then.
5506 Files: src/buffer.c, src/diff.c, src/ex_getln.c, src/fileio.c,
5507 src/globals.h, src/misc2.c, src/proto/fileio.pro, src/window.c
5509 Patch 7.1.126 (extra)
5510 Problem: ":vimgrep */*" fails when a BufRead autocommand changes directory.
5512 Solution: Change back to the original directory after loading a file.
5513 Also: use shorten_fname1() to avoid duplicating code.
5514 Files: src/buffer.c, src/ex_docmd.c, src/fileio.c, src/gui_gtk.c,
5515 src/gui_w48.c, src/proto/ex_docmd.pro, src/proto/fileio.pro,
5519 Problem: Memory leak when doing cmdline completion. (Dominique Pelle)
5520 Solution: Free "orig" argument of ExpandOne() when it's not used.
5521 Files: src/ex_getln.c
5523 Patch 7.1.128 (extra)
5524 Problem: Build problems with new version of Cygwin.
5525 Solution: Remove -D__IID_DEFINED__, like with MingW. (Guopeng Wen)
5526 Files: src/Make_cyg.mak
5528 Patch 7.1.129 (extra)
5529 Problem: Win32: Can't get the user name when it is longer than 15
5531 Solution: Use UNLEN instead of MAX_COMPUTERNAME_LENGTH. (Alexei Alexandrov)
5532 Files: src/os_win32.c
5535 Problem: Crash with specific order of undo and redo. (A.Politz)
5536 Solution: Clear and adjust pointers properly. Add u_check() for debugging.
5537 Files: src/undo.c, src/structs.h
5540 Problem: ":mksession" always adds ":setlocal autoread". (Christian J.
5542 Solution: Skip boolean global/local option using global value.
5546 Problem: getpos("'>") may return a negative column number for a Linewise
5547 selection. (A.Politz)
5548 Solution: Don't add one to MAXCOL.
5551 Patch 7.1.133 (after 7.1.126)
5552 Problem: shorten_fname1() linked when it's not needed.
5553 Solution: Add #ifdef.
5556 Patch 7.1.134 (extra)
5557 Problem: Win32: Can't build with VC8
5558 Solution: Detect the MSVC version instead of using NMAKE_VER.
5560 Files: src/Make_mvc.mak
5563 Problem: Win32: When editing a file c:\tmp\foo and c:\tmp\\foo we have two
5564 buffers for the same file. (Suresh Govindachar)
5565 Solution: Invoke FullName_save() when a path contains "//" or "\\".
5569 Problem: Memory leak when using Ruby syntax highlighting. (Dominique Pelle)
5570 Solution: Free the contained-in list.
5574 Problem: Build failure when using EXITFREE. (Dominique Pelle)
5575 Solution: Add an #ifdef around using clip_exclude_prog.
5579 Problem: The Perl Msg() function doesn't stop when "q" is typed at the more
5580 prompt. (Hari Krishna Dara)
5581 Solution: Check got_int.
5582 Files: src/if_perl.xs
5585 Problem: When using marker folding and ending Insert mode with CTRL-C the
5586 current fold is truncated. (Fred Kater)
5587 Solution: Ignore got_int while updating folds.
5591 Problem: v:count is set only after typing a non-digit, that makes it
5592 difficult to make a nice mapping.
5593 Solution: Set v:count while still typing the count.
5597 Problem: GTK: -geom argument doesn't support a negative offset.
5598 Solution: Compute position from the right/lower corner.
5599 Files: src/gui_gtk_x11.c
5602 Problem: ":redir @A>" doesn't work.
5603 Solution: Ignore the extra ">" also when appending. (James Vega)
5604 Files: src/ex_docmd.c
5607 Problem: Uninitialized memory read when diffing three files. (Dominique
5609 Solution: Remove "+ !notset" so that we don't use fields that were not
5614 Problem: After ":diffup" cursor can be in the wrong position.
5615 Solution: Force recomputing the cursor position.
5619 Problem: Insert mode completion: When using the popup menu, after
5620 completing a word and typing a non-word character Vim is still
5621 completing the same word, following CTRL-N doesn't work.
5622 Insert mode Completion: When using CTRL-X O and there is only
5623 "struct." before the cursor, typing one char to reduce the
5624 matches, then BS completion stops.
5625 Solution: When typing a character that is not part of the item being
5626 completed, stop complete mode. For whole line completion also
5627 accept a space. For file name completion stop at a path
5629 For omni completion stay in completion mode even if completing
5633 Patch 7.1.146 (extra)
5634 Problem: VMS: Files with a very rare record organization (VFC) cannot be
5635 properly written by Vim.
5636 On older VAX systems mms runs into a syntax error.
5637 Solution: Check for this special situation. Do not wrap a comment, make it
5638 one long line. (Zoltan Arpadffy)
5639 Files: src/fileio.c, src/Make_vms.mms
5641 Patch 7.1.147 (after 7.1.127)
5642 Problem: Freeing memory already freed when completing user name. (Meino
5644 Solution: Use a flag to remember if "orig" needs to be freed.
5645 Files: src/ex_getln.c
5648 Problem: Some types are not found by configure.
5649 Solution: Test for the sys/types.h header file. (Sean Boudreau)
5650 Files: src/configure.in, src/auto/configure
5653 Problem: GTK GUI: When the completion popup menu is used scrolling another
5654 window by the scrollbar is OK, but using the scroll wheel it
5655 behaves line <Enter>.
5656 Solution: Ignore K_MOUSEDOWN and K_MOUSEUP. Fix redrawing the popup menu.
5657 Files: src/edit.c, src/gui.c
5660 Problem: When 'clipboard' has "unnamed" using "p" in Visual mode doesn't
5661 work correctly. (Jianrong Yu)
5662 Solution: When 'clipboard' has "unnamed" also obtain the selection when
5663 getting the default register.
5667 Problem: Using whole line completion with 'ignorecase' and 'infercase' set
5668 and the line is empty get an lalloc(0) error.
5669 Solution: Don't try changing case for an empty match. (Matthew Wozniski)
5673 Problem: Display problem when 'hls' and 'cursorcolumn' are set and
5674 searching for "$". (John Mullin) Also when scrolling
5675 horizontally when 'wrap' is off.
5676 Solution: Keep track of the column where highlighting was set. Check the
5677 column offset when skipping characters.
5681 Problem: Compiler warnings on SGI. Undefined XpmAllocColor (Charles
5683 Solution: Add type casts. Init st_dev and st_ino separately. Don't use
5684 type casts for vim_snprintf() when HAVE_STDARG_H is defined.
5685 Define XpmAllocColor when needed.
5686 Files: src/eval.c, src/ex_cmds.c, src/fileio.c, src/misc2.c,
5690 Problem: Compiler warning for signed/unsigned compare.
5691 Solution: Add type cast.
5695 Problem: Crash when 'undolevels' is 0 and repeating "udd". (James Vega)
5696 Solution: When there is only one branch use u_freeheader() to delete it.
5700 Problem: Overlapping arguments for strcpy() when expanding command line
5702 Solution: Use mch_memmove() instead of STRCPY(). Also fix a few typos.
5704 Files: src/ex_docmd.c
5707 Problem: In Ex mode, :" gives an error at end-of-file. (Michael Hordijk)
5708 Solution: Only give an error for an empty line, not for a comment.
5709 Files: src/ex_docmd.c
5711 Patch 7.1.158 (extra)
5712 Problem: Win32 console: When 'encoding' is "utf-8" and typing Alt-y the
5713 result is wrong. Win32 GUI: Alt-y results in "u" when 'encoding'
5714 is "cp1250" (Lukas Cerman)
5715 Solution: For utf-8 don't set the 7th bit in a byte, convert to the correct
5716 byte sequence. For cp1250, when conversion to 'encoding' results
5717 in the 7th bit not set, set the 7th bit after conversion.
5718 Files: src/os_win32.c, src/gui_w48.c
5721 Problem: strcpy() has overlapping arguments.
5722 Solution: Use mch_memmove() instead. (Dominique Pelle)
5723 Files: src/ex_cmds.c
5726 Problem: When a focus autocommand is defined, getting or losing focus
5727 causes the hit-enter prompt to be redrawn. (Bjorn Winckler)
5728 Solution: Overwrite the last line.
5729 Files: src/message.c
5732 Problem: Compilation errors with tiny features and EXITFREE.
5733 Solution: Add #ifdefs. (Dominique Pelle)
5734 Files: src/edit.c, src/misc2.c
5737 Problem: Crash when using a modifier before "while" or "for". (A.Politz)
5738 Solution: Skip modifiers when checking for a loop command.
5739 Files: src/proto/ex_docmd.pro, src/ex_docmd.c, src/ex_eval.c
5742 Problem: Warning for the unknown option 'bufsecret'.
5743 Solution: Remove the lines .vim that use this option. (Andy Wokula)
5744 Files: runtime/menu.vim
5747 Problem: Reading past end of regexp pattern. (Dominique Pelle)
5748 Solution: Use utf_ptr2len().
5752 Problem: Crash related to getting X window ID. (Dominique Pelle)
5753 Solution: Don't trust the window ID that we got in the past, check it every
5755 Files: src/os_unix.c
5758 Problem: Memory leak for using "gp" in Visual mode.
5759 Solution: Free memory in put_register(). (Dominique Pelle)
5763 Problem: Xxd crashes when using "xxd -b -c 110". (Debian bug 452789)
5764 Solution: Allocate more memory. Fix check for maximum number of columns.
5765 Files: src/xxd/xxd.c
5767 Patch 7.1.168 (extra)
5768 Problem: Win32 GUI: Since patch 7.1.095, when the Vim window does not have
5769 focus, clicking in it doesn't position the cursor. (Juergen
5771 Solution: Don't reset s_button_pending just after receiving focus.
5772 Files: src/gui_w48.c
5775 Problem: Using uninitialized variable when system() fails. (Dominique
5777 Solution: Let system() return an empty string when it fails.
5781 Problem: Valgrind warning for overlapping arguments for strcpy().
5782 Solution: Use mch_memmove() instead. (Dominique Pelle)
5783 Files: src/getchar.c
5786 Problem: Reading one byte before allocated memory.
5787 Solution: Check index not to become negative. (Dominique Pelle)
5788 Files: src/ex_getln.c
5791 Problem: When 'buftype' is "acwrite" Vim still checks if the file or
5792 directory exists before overwriting.
5793 Solution: Don't check for overwriting when the buffer name is not a file
5795 Files: src/ex_cmds.c
5798 Problem: Accessing freed memory. (Dominique Pelle)
5799 Solution: Don't call reg_getline() to check if a line is the first in the
5804 Problem: Writing NUL past end of a buffer.
5805 Solution: Copy one byte less when using strncat(). (Dominique Pelle)
5806 Files: src/ex_cmds.c, src/ex_docmd.c,
5809 Problem: <BS> doesn't work with some combination of 'sts', 'linebreak' and
5810 'backspace'. (Francois Ingelrest)
5811 Solution: When adding white space results in not moving back delete one
5816 Problem: Building with Aap fails when the "compiledby" argument contains
5817 '<' or '>' characters. (Alex Yeh)
5818 Solution: Change how quoting is done in the Aap recipe.
5822 Problem: Freeing memory twice when in debug mode while reading a script.
5823 Solution: Ignore script input while in debug mode.
5824 Files: src/ex_cmds2.c, src/getchar.c, src/globals.h
5827 Problem: "%" doesn't work on "/* comment *//* comment */".
5828 Solution: Don't handle the "//" in "*//*" as a C++ comment. (Markus
5833 Problem: Need to check for TCL 8.5.
5834 Solution: Adjust configure script. (Alexey Froloff)
5835 Files: src/configure.in, src/auto/configure
5838 Problem: Regexp patterns not tested sufficiently.
5839 Solution: Add more checks to the regexp test.
5840 Files: src/testdir/test64.in, src/testdir/test64.ok
5843 Problem: Accessing uninitialized memory in Farsi mode. (Dominique Pelle)
5844 Solution: Only invoke lrF_sub() when there is something to do.
5845 Files: src/ex_cmds.c
5848 Problem: When using tab pages and an argument list the session file may
5849 contain wrong "next" commands. (Alexander Bluem)
5850 Solution: Use "argu" commands and only when needed.
5851 Files: src/ex_docmd.c
5854 Problem: "Internal error" for ":echo matchstr('a', 'a\%[\&]')" (Mitanu
5856 Solution: Inside "\%[]" detect \&, \| and \) as an error.
5860 Problem: Crash when deleting backwards over a line break in Insert mode.
5861 Solution: Don't advance the cursor when it's already on the NUL after a
5862 line. (Matthew Wozniski)
5866 Problem: Using "gR" with a multi-byte encoding and typing a CR pushes
5867 characters onto the replace stack incorrectly, resulting in BS
5868 putting back the wrong characters. (Paul B. Mahol)
5869 Solution: Push multi-byte characters onto the replace stack in reverse byte
5870 order. Add replace_push_mb().
5871 Files: src/edit.c, src/misc1.c, src/proto/edit.pro
5874 Problem: "expand('<afile>')" returns a bogus value after changing
5875 directory. (Dave Fishburn)
5876 Solution: Copy "autocmd_fname" to allocated memory and expand to full
5877 filename. Shorten the path when expanding <afile>.
5878 Files: src/ex_docmd.c, src/fileio.c
5881 Problem: Win32 GUI: Custom completion using system() no longer works
5882 after patch 7.1.104. (Erik Falor)
5883 Solution: Loop when safe_vgetc() returns K_IGNORE.
5884 Files: src/ex_getln.c
5887 Problem: When 'showmode' is off the message for changing a readonly file is
5888 given in the second column instead of the first. (Payl B. Mahol)
5889 Solution: Put the W10 message in the first column.
5892 Patch 7.1.189 (after 7.1.104)
5893 Problem: Patch 7.1.104 was incomplete.
5894 Solution: Also call plain_vgetc() in ask_yesno().
5898 Problem: Cursor after end-of-line: "iA sentence.<Esc>)"
5899 Solution: Move cursor back and make motion inclusive.
5903 Problem: Win32 GUI: after patch 7.1.168 there is still a problem when
5904 clicking in a scrollbar. (Juergen Jottkaerr)
5905 Solution: Don't check the input buffer when dragging the scrollbar.
5909 Problem: With Visual block selection, "s" and typing something, CTRL-C
5910 doesn't stop Vim from repeating the replacement in other lines,
5911 like happens for "I".
5912 Solution: Check for "got_int" to be set.
5916 Problem: Some Vim 5.x digraphs are missing in Vim 7, even though the
5917 character pairs are not used. (Philippe de Muyter)
5918 Solution: Add those Vim 5.x digraphs that don't conflict with others.
5919 Files: src/digraph.c
5922 Problem: ":echo glob('~/{}')" results in /home/user//.
5923 Solution: Don't add a slash if there already is one.
5924 Files: src/os_unix.c
5927 Problem: '0 mark doesn't work for "~/foo ~ foo".
5928 Solution: Don't expand the whole file name, only "~/".
5931 Patch 7.1.196 (extra)
5932 Problem: Win32 GUI: "\n" in a tooltip doesn't cause a line break. (Erik
5934 Solution: Use the TTM_SETMAXTIPWIDTH message.
5935 Files: src/gui_w32.c
5938 Problem: Mac: "make install" doesn't work when prefix defined.
5939 Solution: Pass different arguments to "make installruntime". (Jjgod Jiang)
5943 Problem: Hang when using ":s/\n//gn". (Burak Gorkemli)
5944 Solution: Set "skip_match".
5945 Files: src/ex_cmds.c
5948 Problem: Can't do command line completion for a specific file name
5950 Solution: When the pattern ends in "$" don't add a star for completion and
5951 remove the "$" before matching with file names.
5952 Files: runtime/doc/cmdline.txt, src/ex_getln.c
5954 Patch 7.1.200 (after 7.1.177 and 7.1.182)
5955 Problem: Compiler warnings for uninitialized variables.
5956 Solution: Init variables.
5957 Files: src/ex_cmds2.c, src/ex_docmd.c
5960 Problem: When reading stdin 'fenc' and 'ff are not set.
5961 Solution: Set the options after reading stdin. (Ben Schmidt)
5965 Problem: Incomplete utf-8 byte sequence is not checked for validity.
5966 Solution: Check the bytes that are present for being valid. (Ben Schmidt)
5970 Problem: When 'virtualedit' is "onemore" then "99|" works but ":normal 99|"
5971 doesn't. (Andy Wokula)
5972 Solution: Check for "onemore" flag in check_cursor_col().
5975 Patch 7.1.204 (extra)
5976 Problem: Win32: Using the example at 'balloonexpr' the balloon disappears
5977 after four seconds and then comes back again. Also moves the
5978 mouse pointer a little bit. (Yongwei Wu)
5979 Solution: Set the autopop time to 30 seconds (the max value). (Sergey
5980 Khorev) Move the mouse two pixels forward and one back to end up
5981 in the same position (really!).
5982 Files: src/gui_w32.c
5985 Problem: Can't get the operator in an ":omap".
5986 Solution: Add the "v:operator" variable. (Ben Schmidt)
5987 Files: runtime/doc/eval.txt, src/eval.c, src/normal.c, src/vim.h
5990 Problem: Compiler warnings when using MODIFIED_BY.
5991 Solution: Add type casts. (Ben Schmidt)
5992 Files: src/version.c
5995 Problem: Netbeans: "remove" cannot delete one line.
5996 Solution: Remove partial lines and whole lines properly. Avoid a memory
5997 leak. (Xavier de Gaye)
5998 Files: src/netbeans.c
6001 Problem: On Alpha get an unaligned access error.
6002 Solution: Store the dictitem pointer before using it. (Matthew Luckie)
6006 Problem: GTK: When using the netrw plugin and doing ":gui" Vim hangs.
6007 Solution: Stop getting a selection after three seconds. This is a hack.
6008 Files: src/gui_gtk_x11.c
6011 Problem: Listing mapping for 0xdb fails when 'encoding' is utf-8. (Tony
6013 Solution: Recognize K_SPECIAL KS_EXTRA KE_CSI as a CSI byte.
6017 Problem: The matchparen plugin may take an unexpected amount of time, so
6018 that it looks like Vim hangs.
6019 Solution: Add a timeout to searchpair(), searchpairpos(), search() and
6020 searchpos(). Use half a second timeout in the plugin.
6021 Files: runtime/doc/eval.txt, runtime/plugin/matchparen.vim, src/edit.c,
6022 src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/normal.c,
6023 src/proto/eval.pro, src/proto/ex_cmds2.pro, src/proto/search.pro,
6027 Problem: Accessing a byte before a line.
6028 Solution: Check that the column is 1 or more. (Dominique Pelle)
6032 Problem: A ":tabedit" command that results in the "swap file exists" dialog
6033 and selecting "abort" doesn't close the new tab. (Al Budden)
6034 Solution: Pass "old_curwin" to do_exedit().
6035 Files: src/ex_docmd.c
6038 Problem: ":1s/g\n\zs1//" deletes characters from the first line. (A Politz)
6039 Solution: Start replacing in the line where the match starts.
6040 Files: src/ex_cmds.c
6043 Problem: It is difficult to figure out what syntax items are nested at a
6045 Solution: Add the synstack() function.
6046 Files: runtime/doc/eval.txt, src/eval.c, src/proto/syntax.pro,
6050 Problem: Variants of --remote-tab are not mentioned for "vim --help".
6051 Solution: Display optional -wait and -silent.
6055 Problem: The "help-tags" tag may be missing from runtime/doc/tags when it
6056 was generated during "make install".
6057 Solution: Add the "++t" argument to ":helptags" to force adding the tag.
6058 Files: runtime/doc/Makefile, runtime/doc/various.txt, src/ex_cmds.c,
6062 Problem: A syntax region without a "keepend", containing a region with
6063 "extend" could be truncated at the end of the containing region.
6064 Solution: Do not call syn_update_ends() when there are no keepend items.
6067 Patch 7.1.219 (after 7.1.215)
6068 Problem: synstack() returns situation after the current character, can't
6069 see the state for a one-character region.
6070 Solution: Don't update ending states in the requested column.
6071 Files: runtime/doc/eval.txt, src/eval.c, src/hardcopy.c,
6072 src/proto/syntax.pro, src/screen.c, src/spell.c, src/syntax.c
6075 Problem: When a ")" or word movement command moves the cursor back from the
6076 end of the line it may end up on the trail byte of a multi-byte
6077 character. It's also moved back when it isn't needed.
6078 Solution: Add the adjust_cursor() function.
6082 Problem: When inserting a "(", triggering the matchparen plugin, the
6083 following highlighting may be messed up.
6084 Solution: Before triggering the CursorMovedI autocommands update the display
6085 to update the stored syntax stacks for the change.
6088 Patch 7.1.222 (after 7.1.217)
6089 Problem: Wildcards in argument of ":helptags" are not expanded. (Marcel
6091 Solution: Expand wildcards in the directory name.
6092 Files: src/ex_cmds.c
6095 Problem: glob() doesn't work properly when 'shell' is "sh" or "bash" and
6096 the expanded name contains spaces, '~', single quotes and other
6097 special characters. (Adri Verhoef, Charles Campbell)
6098 Solution: For Posix shells define a vimglob() function to list the matches
6099 instead of using "echo" directly.
6100 Files: src/os_unix.c
6103 Problem: When using "vim -F -o file1 file2" only one window is
6104 right-to-left. Same for "-H". (Ben Schmidt)
6105 Solution: use set_option_value() to set 'rightleft'.
6109 Problem: Using uninitialized value when XGetWMNormalHints() fails.
6110 Solution: Check the return value. (Dominique Pelle)
6111 Files: src/os_unix.c
6114 Problem: Command line completion doesn't work when a file name contains a
6116 Solution: Accept all characters in a file name, except ones that end a
6117 command or white space.
6118 Files: src/ex_docmd.c
6121 Problem: Hang in syntax HL when moving over a ")". (Dominique Pelle)
6122 Solution: Avoid storing a syntax state in the wrong position in the list of
6127 Problem: When 'foldmethod' is "indent" and a fold is created with ">>" it
6128 can't be closed with "zc". (Daniel Shahaf)
6129 Solution: Reset the "small" flag of a fold when adding a line to it.
6133 Problem: A fold is closed when it shouldn't when 'foldmethod' is "indent"
6134 and backspacing a non-white character so that the indent increases.
6135 Solution: Keep the fold open after backspacing a character.
6139 Problem: Memory leak when executing SourceCmd autocommands.
6140 Solution: Free the memory. (Dominique Pelle)
6141 Files: src/ex_cmds2.c
6144 Problem: When shifting lines the change is acted upon multiple times.
6145 Solution: Don't have shift_line() call changed_bytes.
6146 Files: src/edit.c, src/ops.c, src/proto/edit.pro, src/proto/ops.pro
6148 Patch 7.1.232 (after 7.1.207 and 7.1.211)
6149 Problem: Compiler warnings with MSVC.
6150 Solution: Add type casts. (Mike Williams)
6151 Files: src/ex_cmds2.c, src/netbeans.c
6154 Problem: Crash when doing Insert mode completion for a user defined
6155 command. (Yegappan Lakshmanan)
6156 Solution: Don't use the non-existing command line.
6157 Files: src/ex_getln.c
6160 Problem: When diff'ing three files the third one isn't displayed correctly.
6162 Solution: Compute the size of diff blocks correctly when merging blocks.
6163 Compute filler lines correctly when scrolling.
6167 Problem: Pattern matching is slow when using a lot of simple patterns.
6168 Solution: Avoid allocating memory by not freeing it when it's not so much.
6173 Problem: When using 'incsearch' and 'hlsearch' a complicated pattern may
6174 make Vim hang until CTRL-C is pressed.
6175 Solution: Add the 'redrawtime' option.
6176 Files: runtime/doc/options.txt, src/ex_cmds.c, src/ex_docmd.c,
6177 src/ex_getln.c, src/gui.c, src/misc1.c, src/normal.c,
6178 src/option.c, src/quickfix.c, src/regexp.c, src/proto/regexp.pro,
6179 src/proto/search.pro, src/search.c, src/screen.c,
6180 src/option.h, src/spell.c, src/structs.h, src/syntax.c, src/tag.c,
6184 Problem: Compiler warning on an Alpha processor in Motif code.
6185 Solution: Change a typecast. (Adri Verhoef)
6186 Files: src/gui_motif.c
6189 Problem: Using the 'c' flag with searchpair() may cause it to fail. Using
6190 the 'r' flag doesn't work when 'wrapscan' is set. (A.Politz)
6191 Solution: Only use the 'c' flag for the first search, not for repeating.
6192 When using 'r' imply 'W'. (Antony Scriven)
6195 Patch 7.1.239 (after 7.1.233)
6196 Problem: Compiler warning for sprintf() argument.
6197 Solution: Add a typecast. (Nico Weber)
6198 Files: src/ex_getln.c
6201 Problem: When "gUe" turns a German sharp s into SS the operation stops
6202 before the end of the word. Latin2 has the same sharp s but it's
6203 not changed to SS there.
6204 Solution: Make sure all the characters are operated upon. Detect the sharp
6205 s in latin2. Also fixes that changing case of a multi-byte
6206 character that changes the byte count doesn't always work.
6210 Problem: Focus change events not always ignored. (Erik Falor)
6211 Solution: Ignore K_IGNORE in Insert mode in a few more places.
6214 Patch 7.1.242 (after 7.1.005)
6215 Problem: "cib" doesn't work properly on "(x)". (Tim Pope)
6216 Solution: Use ltoreq() instead of lt(). Also fix "ciT" on "<a>x</a>".
6219 Patch 7.1.243 (after 7.1.240)
6220 Problem: "U" doesn't work on all text in Visual mode. (Adri Verhoef)
6221 Solution: Loop over all the lines to be changed. Add tests for this.
6222 Files: src/ops.c, src/testdir/test39.in, src/testdir/test39.ok
6225 Problem: GUI may have part of the command line cut off.
6226 Solution: Don't round the number of lines up, always round down.
6227 (Tony Houghton, Scott Dillard)
6231 Problem: Pressing CTRL-\ three times causes Vim to quit. (Ranganath Rao).
6232 Also for f CTRL-\ CTRL-\.
6233 Solution: When going to cooked mode in mch_delay() set a flag to ignore
6235 Files: src/os_unix.c
6238 Problem: Configure hangs when the man pager is something strange. (lorien)
6239 Solution: Set MANPAGER and PAGER to "cat". (Micah Cowan)
6240 Files: src/auto/configure, src/configure.in
6243 Problem: When using Netbeans backspacing in Insert mode skips a character
6244 now and then. (Ankit Jain)
6245 Solution: Avoid calling netbeans_removed(), it frees the line pointer.
6246 (partly by Dominique Pelle).
6250 Problem: Can't set the '" mark. Can't know if setpos() was successful.
6251 Solution: Allow setting the '" mark with setpos(). Have setpos() return a
6252 value indicating success/failure.
6253 Files: runtime/doc/eval.txt, src/eval.c, src/mark.c
6256 Problem: After "U" the cursor can be past end of line. (Adri Verhoef)
6257 Solution: Adjust the cursor position in u_undoline().
6261 Problem: ":setglobal fenc=anything" gives an error message in a buffer
6262 where 'modifiable' is off. (Ben Schmidt)
6263 Solution: Don't give an error if 'modifiable' doesn't matter.
6267 Problem: Using freed memory when spell checking enabled.
6268 Solution: Obtain the current line again after calling spell_move_to().
6272 Patch 7.1.252 (after 7.1.243)
6273 Problem: Test 39 fails when the environment has a utf-8 locale. (Dominique
6275 Solution: Force 'encoding' to be latin1.
6276 Files: src/testdir/test39.in
6279 Problem: ":sort" doesn't work in a one line file. (Patrick Texier)
6280 Solution: Don't sort if there is only one line. (Dominique Pelle)
6281 Files: src/ex_cmds.c
6284 Problem: Tests 49 and 55 fail when the locale is French.
6285 Solution: Using C messages for test 49. Filter the error message in test 55
6286 such that it works when the number is halfway the message.
6287 Files: src/testdir/test49.in, src/testdir/test55.in
6290 Problem: Vim doesn't support utf-32. (Yongwei Wu)
6291 Solution: Add aliases for utf-32, it's the same as ucs-4.
6295 Problem: findfile() also returns directories.
6296 Solution: Cleanup the code for finding files and directories in a list of
6297 directories. Remove the ugly global ff_search_ctx.
6298 Files: src/eval.c, src/misc2.c, src/vim.h, src/tag.c
6301 Problem: Configure can't always find the Tcl header files.
6302 Solution: Also look in /usr/local/include/tcl$tclver and
6303 /usr/include/tcl$tclver (James Vega)
6304 Files: src/auto/configure, src/configure.in
6307 Problem: Crash when doing "d/\n/e" and 'virtualedit' is "all". (Andy Wokula)
6308 Solution: Avoid that the column becomes negative. Also fixes other problems
6309 with the end of a pattern match is in column zero. (A.Politz)
6313 Problem: Cursor is in the wrong position when 'rightleft' is set,
6314 'encoding' is "utf-8" and on an illegal byte. (Dominique Pelle)
6315 Solution: Only put the cursor in the first column when actually on a
6316 double-wide character. (Yukihiro Nakadaira)
6320 Problem: Cursor positioning problem after ^@ wrapping halfway when
6321 'encoding' is utf-8.
6322 Solution: Only count a position for printable characters. (partly by
6324 Files: src/charset.c
6327 Problem: When a 2 byte BOM is detected Vim uses UCS-2, which doesn't work
6328 for UTF-16 text. (Tony Mechelynck)
6329 Solution: Default to UTF-16.
6330 Files: src/fileio.c, src/testdir/test42.ok
6333 Problem: Can't get the process ID of Vim.
6334 Solution: Implement getpid().
6335 Files: src/eval.c, runtime/doc/eval.txt
6338 Problem: The filetype can consist of two dot separated names. This works
6339 for syntax and ftplugin, but not for indent. (Brett Stahlman)
6340 Solution: Use split() and loop over each dot separated name.
6341 Files: runtime/indent.vim
6344 Problem: Crash when indenting lines. (Dominique Pelle)
6345 Solution: Set the cursor column when changing the cursor line.
6346 Files: src/ops.c, src/misc1.c
6349 Problem: When 'isfname' contains a space, cmdline completion can hang.
6351 Solution: Reset the "len" variable.
6352 Files: src/ex_docmd.c
6355 Problem: When the version string returned by the terminal contains
6356 unexpected characters, it is used as typed input. (James Vega)
6357 Solution: Assume the escape sequence ends in a letter.
6361 Problem: When changing folds cursor may be positioned in the wrong place.
6362 Solution: Call changed_window_setting_win() instead of
6363 changed_window_setting().
6367 Problem: Always shows "+" at end of screen line with: ":set
6368 listchars=eol:$,extends:+ nowrap list cursorline" (Gary Johnson)
6369 Solution: Check for lcs_eol_one instead of lcs_eol.
6373 Problem: The matchparen plugin has an arbitrary limit for the number of
6374 lines to look for a match.
6375 Solution: Rely on the searchpair() timeout.
6376 Files: runtime/plugin/matchparen.vim
6379 Problem: ":?foo?" matches in current line since patch 7.1.025. (A.Politz)
6380 Solution: Remove the SEARCH_START flag.
6381 Files: src/ex_docmd.c, src/search.c
6384 Problem: In a Vim build without autocommands, checking a file that was
6385 changed externally causes the current buffer to be changed
6386 unexpectedly. (Karsten Hopp)
6387 Solution: Store "curbuf" instead of "buf".
6391 Problem: The special buffer name [Location List] is not used for a buffer
6392 displayed in another tab page.
6393 Solution: Use FOR_ALL_TAB_WINDOWS instead of FOR_ALL_WINDOWS. (Hiroaki
6398 Problem: When profiling on Linux Vim exits early. (Liu Yubao)
6399 Solution: When profiling don't exit on SIGPROF.
6400 Files: src/Makefile, src/os_unix.c
6402 Patch 7.1.274 (after 7.1.272)
6403 Problem: Compiler warning for optimized build.
6404 Solution: Init win to NULL.
6407 Patch 7.1.275 (extra)
6408 Problem: Mac: ATSUI and 'antialias' don't work properly together.
6409 Solution: Fix this and the input method. (Jjgod Jiang)
6410 Files: src/vim.h, src/gui_mac.c
6413 Problem: "gw" uses 'formatexpr', even though the docs say it doesn't.
6414 Solution: Don't use 'formatexpr' for "gw".
6415 Files: src/vim.h, src/edit.c, src/ops.c, src/proto/ops.pro
6418 Problem: Default for 'paragraphs' misses some items (Colin Watson)
6419 Solution: Add TP, HP, Pp, Lp and It to 'paragraphs'. (James Vega)
6420 Files: runtime/doc/options.txt, src/option.c
6422 Patch 7.1.278 (extra, after 7.1.275)
6423 Problem: Build failure when USE_CARBONKEYHANDLER is not defined.
6424 Solution: Remove #ifdef.
6425 Files: src/gui_mac.c
6428 Problem: When using cscope temporary files are left behind.
6429 Solution: Send the quit command to cscope and give it two seconds to exit
6430 nicely before killing it. (partly by Dominique Pelle)
6431 Files: src/if_cscope.c
6433 Patch 7.1.280 (after 7.1.275)
6434 Problem: Mac: build problems when not using multibyte feature. (Nicholas
6436 Solution: Don't define USE_IM_CONTROL when not using multibyte.
6439 Patch 7.1.281 (after 7.1.279)
6440 Problem: sa.sa_mask is not initialized. Cscope may not exit.
6441 Solution: Use sigemptyset(). Use SIGKILL instead of SIGTERM. (Dominique
6443 Files: src/if_cscope.c
6445 Patch 7.1.282 (extra)
6446 Problem: Win64: Edit with Vim context menu isn't installed correctly.
6447 Compiler warnings and a few other things.
6448 Solution: Add [ and ] to entry of class name. Use UINT_PTR instead of UINT.
6449 And a fixes for the other things. (George V. Reilly)
6450 Files: src/GvimExt/Makefile, src/dosinst.c, src/if_ole.cpp, src/if_ole.h,
6451 src/if_ole.idl, src/INSTALLpc.txt, src/Make_mvc.mak,
6455 Problem: Non-extra part for 7.1.282.
6456 Solution: Various changes.
6457 Files: src/ex_docmd.c, src/globals.h, src/if_cscope.c, src/main.c,
6458 src/mark.c, src/netbeans.c, src/popupmnu.c, src/vim.h,
6462 Problem: Compiler warnings for functions without prototype.
6463 Solution: Add the function prototypes. (Patrick Texier)
6464 Files: src/eval.c, src/quickfix.c
6466 Patch 7.1.285 (extra)
6467 Problem: Mac: dialog hotkeys don't work.
6468 Solution: Add hotkey support. (Dan Sandler)
6469 Files: src/gui_mac.c
6471 Patch 7.1.286 (after 7.1.103)
6472 Problem: "w" at the end of the buffer moves the cursor past the end of the
6473 line. (Markus Heidelberg)
6474 Solution: Move the cursor back from the NUL when it was moved forward.
6478 Problem: Crash when reversing a list after using it. (Andy Wokula)
6479 Solution: Update the pointer to the last used element. (Dominique Pelle)
6482 Patch 7.1.288 (after 7.1.281)
6483 Problem: Cscope still leaves behind temp files when using gvim.
6484 Solution: When getting the ECHILD error loop for a while until cscope exits.
6489 Problem: When EXITFREE is defined and 'acd' is set freed memory is used.
6491 Solution: Reset p_acd before freeing all buffers.
6495 Problem: Reading bytes that were not written when spell checking and a line
6496 has a very large indent.
6497 Solution: Don't copy the start of the next line when it only contains
6498 spaces. (Dominique Pelle)
6501 Patch 7.1.291 (after 7.1.288)
6502 Problem: Compiler warning.
6503 Solution: Change 50 to 50L.
6504 Files: src/if_cscope.c
6507 Problem: When using a pattern with "\@<=" the submatches can be wrong.
6509 Solution: Save the submatches when attempting a look-behind match.
6513 Problem: Spell checking considers super- and subscript characters as word
6515 Solution: Recognize the Unicode super and subscript characters.
6519 Problem: Leaking memory when executing a shell command.
6520 Solution: Free memory when not able to save for undo. (Dominique Pelle)
6521 Files: src/ex_cmds.c
6524 Problem: Vimtutor only works with vim, not gvim.
6525 Solution: Add the -g flag to vimtutor. (Dominique Pelle) Add gvimtutor.
6526 Files: src/Makefile, src/gvimtutor, src/vimtutor, runtime/doc/vimtutor.1
6529 Problem: SELinux is not supported.
6530 Solution: Detect the selinux library and use mch_copy_sec(). (James Vega)
6531 Files: src/auto/configure, src/config.h.in, src/configure.in,
6532 src/fileio.c, src/memfile.c, src/os_unix.c, src/proto/os_unix.pro
6535 Problem: When using the search/replace dialog the parenmatch highlighting
6536 can be wrong. (Tim Duncan)
6537 Solution: In the GUI redraw function invoke the CursorMoved autocmd.
6540 Patch 7.1.298 (after 7.1.295)
6541 Problem: src/gvimtutor is not distributed.
6542 Solution: Add it to the list of distributed files.
6546 Problem: Filetype detection doesn't work properly for file names ending in
6547 a part that is ignored and contain a space or other special
6549 Solution: Escape the special characters using the new fnameescape function.
6550 Files: runtime/doc/eval.txt, runtime/filetype.vim, src/eval.c,
6551 src/ex_getln.c, src/proto/ex_getln.pro, src/vim.h
6554 Problem: Value of asmsyntax argument isn't checked for valid characters.
6555 Solution: Only accepts letters and digits.
6556 Files: runtime/filetype.vim
6559 Problem: When the "File/Save" menu is used in Insert mode, a tab page label
6560 is not updated to remove the "+".
6561 Solution: Call draw_tabline() from showruler(). (Bjorn Winckler)
6564 Patch 7.1.302 (after 7.1.299)
6565 Problem: Compilation error on MS-Windows.
6566 Solution: Don't use xp_shell when it's not defined.
6567 Files: src/ex_getln.c
6569 Patch 7.1.303 (after 7.1.302)
6570 Problem: Compilation error on MS-Windows, again.
6571 Solution: Declare p.
6572 Files: src/ex_getln.c
6575 Problem: Shortpath_for_invalid_fname() does not work correctly and is
6576 unnecessary complex.
6577 Solution: Clean up shortpath_for_invalid_fname(). (mostly by Yegappan
6582 Problem: Editing a compressed file with special characters in the name
6583 doesn't work properly.
6584 Solution: Escape special characters.
6585 Files: runtime/autoload/gzip.vim
6588 Problem: Some Unicode characters are handled like word characters while
6590 Solution: Adjust the table for Unicode classification.
6594 Problem: Many warnings when compiling with Python 2.5.
6595 Solution: Use ssize_t instead of int for some types. (James Vega)
6596 Files: src/if_python.c
6599 Problem: When in readonly mode ":options" produces an error.
6600 Solution: Reset 'readonly'. (Gary Johnson)
6601 Files: runtime/optwin.vim
6604 Problem: Installing and testing with a shadow directory doesn't work.
6606 Solution: Add "po" to the list of directories to link. Also link the Vim
6607 scripts in testdir. And a few more small fixes.
6611 Problem: Incomplete utf-8 byte sequence at end of the file is not detected.
6612 Accessing memory that wasn't written.
6613 Solution: Check the last bytes in the buffer for being a valid utf-8
6614 character. (mostly by Ben Schmidt)
6615 Also fix that the reported line number of the error was wrong.
6619 Problem: Compiler warning for missing sentinel in X code.
6620 Solution: Change 0 to NULL. (Markus Heidelberg)
6624 Problem: The .po files have mistakes in error numbers.
6625 Solution: Search for these mistakes in the check script. (Dominique Pelle)
6626 Files: src/po/check.vim
6629 Problem: When the netbeans interface setModified call is used the status
6630 lines and window title are not updated.
6631 Solution: Redraw the status lines and title. (Philippe Fremy)
6632 Files: src/netbeans.c
6635 Problem: The value of 'pastetoggle' is written to the session file without
6636 any escaping. (Randall Hansen)
6637 Solution: Use put_escstr(). (Ben Schmidt)
6641 Problem: Crash with specific search pattern using look-behind match.
6643 Solution: Also save the value of "need_clear_subexpr".
6647 Problem: When 'cscopetag' is set ":tag" gives an error message instead of
6648 going to the next tag in the tag stack.
6649 Solution: Don't call do_cstag() when there is no argument. (Mark Goldman)
6650 Files: src/ex_docmd.c
6653 Problem: Compiler warnings in Motif calls.
6654 Solution: Change zero to NULL. (Dominique Pelle)
6655 Files: src/gui_motif.c
6658 Problem: Memory leak when closing xsmp connection. Crash on exit when
6660 Solution: Don't close the X display to work around a Lesstif bug. Free
6661 clientid. Also fix a leak for Motif and Athena. (Dominique Pelle)
6662 Files: src/gui_x11.c, src/os_unix.c
6665 Problem: When a register has an illegal utf-8 sequence, pasting it on the
6666 command line causes an illegal memory access.
6667 Solution: Use mb_cptr2char_adv(). (Dominique Pelle)
6668 Files: src/ex_getln.c
6670 Patch 7.1.320 (extra)
6671 Problem: Win64: Warnings while compiling Python interface.
6672 Solution: Use PyInt in more places. Also update version message for the
6673 console. (George Reilly)
6674 Files: src/if_python.c, src/version.c
6676 Patch 7.1.321 (extra)
6677 Problem: Win32 / Win64: Install file is outdated.
6678 Solution: Update the text for recent compiler. (George Reilly)
6679 Files: src/INSTALLpc.txt
6682 Problem: Can't get start of Visual area in an <expr> mapping.
6683 Solution: Add the 'v' argument to getpos().
6684 Files: runtime/doc/eval.txt, src/eval.c
6687 Problem: Test 19 fails with some termcaps. (Dominique Pelle)
6688 Solution: Set the t_kb and t_kD termcap values.
6689 Files: src/testdir/test19.in, src/testdir/test38.in
6692 Problem: File name path length on Unix is limited to 1024.
6693 Solution: Use PATH_MAX when it's more than 1000.
6694 Files: src/os_unix.h
6697 Problem: When editing a command line that's longer than available space in
6698 the window, the characters at the end are in reverse order.
6699 Solution: Increment the insert position even when the command line doesn't
6701 Files: src/ex_getln.c
6704 Problem: ":s!from!to!" works, but ":smagic!from!to!" doesn't. It sees the
6705 "!" as a flag to to the command. Same for ":snomagic". (Johan
6707 Solution: When checking for a forced command also ignore ":smagic" and
6708 ":snomagic". (Ian Kelling)
6709 Files: src/ex_docmd.c
6712 Problem: The GUI tutor is installed when there is no GUI version.
6713 Solution: Only install gvimtutor when building a GUI version.
6717 Problem: Crash when using Cygwin and non-posix path name in tags file.
6718 Solution: Use separate buffer for posix path. (Ben Schmidt)
6719 Files: src/os_unix.c
6722 Problem: When the popup menu is removed a column of cells, the right halve
6723 of double-wide characters, may not be redrawn.
6724 Solution: Check if the right halve of a character needs to be redrawn.
6725 (Yukihiro Nakadaira)
6729 Problem: Reading uninitialized memory when using Del in replace mode.
6730 Solution: Use utfc_ptr2len_len() instead of mb_ptr2len(). (Dominique Pelle)
6734 Warning for missing sentinel in gui_xmldlg.c. (Dominique Pelle)
6736 A search offset from the end of a match didn't work properly for multi-byte
6737 characters. (Yukihiro Nakadaira)
6739 When displaying the value of 'key' don't show "*****" when the value is empty.
6742 Internal error when compiled with EXITFREE and using the nerd_tree plugin.
6743 Set last_msg_hist to NULL when history becomes empty. Call
6744 free_all_functions() after garbage collection. (Dominique Pelle)
6746 GTK with XIM: <S-Space> does not work. (Yukihiro Nakadaira)
6748 Some shells do not support "echo -n", which breaks glob(). Use "echo" instead
6749 of "echo -n $1; echo". (Gary Johnson)
6751 "echo 22,44" printed "22" on top of the command, the error messages caused
6752 the rest not to be cleared. Added the need_clr_eos flag.
6754 Netbeans events are handled while updating the screen, causing a crash.
6755 Change the moment when events are handled. Rename nb_parse_messages() to
6756 netbeans_parse_messages(). (Xavier de Gaye)
6758 Test 11 was broken after patch 7.1.186 on Win32 console. (Daniel Shahaf)
6759 Use shellescape() on the file name.
6761 IM was turned off in im_preedit_end_cb() for no good reason. (Takuhiro
6764 A corrupted spell file could cause Vim to use lots of memory. Better
6765 detection for running into the end of the file. (idea from James Vega)
6767 Mac: Included a patch to make it build with GTK. Moved language init to
6768 mac_lang_init() function. (Ben Schmidt)
6770 Problem with 'wildmenu' after ":lcd", up/down arrows don't work. (Erik Falor)
6772 Fix configure.in to avoid "implicitly declared" warnings when running
6775 Fixed a memory leak when redefining a keymap. (Dominique Pelle)
6777 Setting 'pastetoggle' to "jj" didn't work.
6779 'ic' and 'smartcase' don't work properly when using \%V in a search pattern.
6783 vim:tw=78:ts=8:ft=help:norl: