blob: 4a6059c3c5452e22cab9e492b922513fca5c7ed6 [file] [log] [blame]
Bram Moolenaar1423b9d2006-05-07 15:16:06 +00001*version7.txt* For Vim version 7.0. Last change: 2006 May 07
Bram Moolenaar071d4272004-06-13 20:20:40 +00002
3
4 VIM REFERENCE MANUAL by Bram Moolenaar
5
6
7Welcome to Vim 7! A large number of features has been added. This file
8mentions all the new items, changes to existing features and bug fixes
Bram Moolenaar8ea91232006-04-28 22:41:43 +00009since Vim 6.x. Use this command to see the version you are using: >
Bram Moolenaarb2956cd2005-01-27 14:42:53 +000010 :version
Bram Moolenaar071d4272004-06-13 20:20:40 +000011
12See |vi_diff.txt| for an overview of differences between Vi and Vim 7.0.
13See |version4.txt| for differences between Vim 3.x and Vim 4.x.
14See |version5.txt| for differences between Vim 4.x and Vim 5.x.
15See |version6.txt| for differences between Vim 5.x and Vim 6.x.
16
17INCOMPATIBLE CHANGES |incompatible-7|
18
19NEW FEATURES |new-7|
20
Bram Moolenaarbac234e2005-01-17 22:21:07 +000021Vim script enhancements |new-vim-script|
Bram Moolenaar60c78922005-03-20 22:40:14 +000022Spell checking |new-spell|
Bram Moolenaarf75a9632005-09-13 21:20:47 +000023Omni completion |new-omni-completion|
Bram Moolenaarfb670262005-06-05 22:06:27 +000024MzScheme interface |new-MzScheme|
25Printing multi-byte text |new-print-multi-byte|
Bram Moolenaar17be7e62006-03-12 22:13:45 +000026Tab pages |new-tab-pages|
Bram Moolenaar34e9e2f2006-03-14 23:07:19 +000027Undo branches |new-undo-branches|
Bram Moolenaar362e1a32006-03-06 23:29:24 +000028Extended Unicode support |new-more-unicode|
Bram Moolenaar17be7e62006-03-12 22:13:45 +000029More highlighting |new-more-highlighting|
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000030Translated manual pages |new-manpage-trans|
Bram Moolenaar8fc061c2004-12-29 21:03:02 +000031Internal grep |new-vimgrep|
Bram Moolenaar87e25fd2005-07-27 21:13:01 +000032Scroll back in messages |new-scroll-back|
Bram Moolenaarea0cd362006-03-16 21:46:52 +000033Cursor past end of the line |new-onemore|
Bram Moolenaar4399ef42005-02-12 14:29:27 +000034POSIX compatibility |new-posix|
Bram Moolenaare2ac10d2005-03-07 23:26:06 +000035Debugger support |new-debug-support|
Bram Moolenaar0be6e642005-08-04 21:32:22 +000036Remote file explorer |new-netrw-explore|
Bram Moolenaar900b4d72005-12-12 22:05:50 +000037Define an operator |new-define-operator|
Bram Moolenaarade00832006-03-10 21:46:58 +000038Mapping to an expression |new-map-expression|
Bram Moolenaarb3656ed2006-03-20 21:59:49 +000039Visual and Select mode mappings |new-map-select|
Bram Moolenaar17c7c012006-01-26 22:25:15 +000040Location list |new-location-list|
Bram Moolenaar071d4272004-06-13 20:20:40 +000041Various new items |new-items-7|
42
43IMPROVEMENTS |improvements-7|
44
45COMPILE TIME CHANGES |compile-changes-7|
46
47BUG FIXES |bug-fixes-7|
48
49==============================================================================
50INCOMPATIBLE CHANGES *incompatible-7*
51
52These changes are incompatible with previous releases. Check this list if you
Bram Moolenaarb2956cd2005-01-27 14:42:53 +000053run into a problem when upgrading from Vim 6.x to 7.0.
54
55A ":write file" command no longer resets the 'modified' flag of the buffer,
56unless the '+' flag is in 'cpoptions' |cpo-+|. This was illogical, since the
57buffer is still modified compared to the original file. And when undoing
58all changes the file would actually be marked modified. It does mean that
59":quit" fails now.
Bram Moolenaar071d4272004-06-13 20:20:40 +000060
Bram Moolenaarf4b8e572004-06-24 15:53:16 +000061":helpgrep" now uses a help window to display a match.
62
Bram Moolenaar1cd871b2004-12-19 22:46:22 +000063In an argument list double quotes could be used to include spaces in a file
64name. This caused a difference between ":edit" and ":next" for escaping
65double quotes and it is incompatible with some versions of Vi.
66 Command Vim 6.x file name Vim 7.x file name ~
Bram Moolenaarc9b4b052006-04-30 18:54:39 +000067 :edit foo\"888 foo"888 foo"888
68 :next foo\"888 foo888 foo"888
69 :next a\"b c\"d ab cd a"b and c"d
Bram Moolenaar1cd871b2004-12-19 22:46:22 +000070
Bram Moolenaar8c711452005-01-14 21:53:12 +000071In a |literal-string| a single quote can be doubled to get one.
72":echo 'a''b'" would result in "a b", but now that two quotes stand for one it
73results in "a'b".
74
Bram Moolenaar04a09c12005-08-01 22:02:32 +000075When overwriting a file with ":w! fname" there was no warning for when "fname"
76was being edited by another Vim. Vim now gives an error message |E768|.
77
Bram Moolenaar241a8aa2005-12-06 20:04:44 +000078The support for Mac OS 9 has been removed.
79
Bram Moolenaard2cec5b2006-03-28 21:08:56 +000080Files ending in .tex now have 'filetype' set to "context", "plaintex", or
81"tex". |ft-tex-plugin|
82
Bram Moolenaarf4b8e572004-06-24 15:53:16 +000083
84Minor incompatibilities:
85
Bram Moolenaar8ea91232006-04-28 22:41:43 +000086For filetype detection: For many types, use */.dir/filename instead of
87~/.dir/filename, so that it also works for other user's files.
Bram Moolenaarf4b8e572004-06-24 15:53:16 +000088
Bram Moolenaar910f66f2006-04-05 20:41:53 +000089For quite a few filetypes the indent settings have been moved from the
90filetype plugin to the indent plugin. If you used: >
91 :filetype plugin on
92Then some indent settings may be missing. You need to use: >
93 :filetype plugin indent on
94
Bram Moolenaarf4b8e572004-06-24 15:53:16 +000095":0verbose" now sets 'verbose' to zero instead of one.
96
97Removed the old and incomplete "VimBuddy" code.
98
99Buffers without a name report "No Name" instead of "No File". It was
100confusing for buffers with a name and 'buftype' set to "nofile".
Bram Moolenaar071d4272004-06-13 20:20:40 +0000101
Bram Moolenaar7b0294c2004-10-11 10:16:09 +0000102When ":file xxx" is used in a buffer without a name, the alternate file name
Bram Moolenaar54a709e2006-05-04 21:57:11 +0000103isn't set. This avoids creating buffers without a name, they are not useful.
Bram Moolenaar7b0294c2004-10-11 10:16:09 +0000104
105The "2html.vim" script now converts closed folds to HTML. This means the HTML
Bram Moolenaar54a709e2006-05-04 21:57:11 +0000106looks like it's displayed, with the same folds open and closed. Use "zR", or
Bram Moolenaarf4630b62005-05-20 21:31:17 +0000107"let html_ignore_folding=1", if no folds should appear in the HTML. (partly by
108Carl Osterwisch)
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000109Diff mode is now also converted to HTML as it is displayed.
Bram Moolenaar7b0294c2004-10-11 10:16:09 +0000110
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000111Win32: The effect of the <F10> key depended on 'winaltkeys'. Now it depends
112on whether <F10> has been mapped or not. This allows mapping <F10> without
113changing 'winaltkeys'.
114
Bram Moolenaar8c711452005-01-14 21:53:12 +0000115When 'octal' is in 'nrformats' and using CTRL-A on "08" it became "018", which
116is illogical. Now it becomes "9". The leading zero(s) is(are) removed to
117avoid the number becoming octal after incrementing "009" to "010".
Bram Moolenaar1cd871b2004-12-19 22:46:22 +0000118
119When 'encoding' is set to a Unicode encoding, the value for 'fileencodings'
120now includes "default" before "latin1". This means that for files with 8-bit
121encodings the default is to use the encoding specified by the environment, if
122possible. Previously latin1 would always be used, which is wrong in a
123non-latin1 environment, such as Russian.
124
Bram Moolenaard438e912005-01-31 19:21:46 +0000125Previously Vim would exit when there are two windows, both of them displaying
126a help file, and using ":quit". Now only the window is closed.
127
Bram Moolenaar4399ef42005-02-12 14:29:27 +0000128"-w {scriptout}" only works when {scriptout} doesn't start with a digit.
129Otherwise it's used to set the 'window' option.
130
Bram Moolenaar8bf59b92005-03-06 23:40:56 +0000131Previously <Home> and <xHome> could be mapped separately. This had the
132disadvantage that all mappings (with modifiers) had to be duplicated, since
133you can't be sure what the keyboard generates. Now all <xHome> are internally
134translated to <Home>, both for the keys and for mappings. Also for <xEnd>,
135<xF1>, etc.
136
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +0000137":put" now leaves the cursor on the last inserted line.
138
Bram Moolenaar7fae6362005-06-30 22:06:41 +0000139When a .gvimrc file exists then 'compatible' is off, just like when a ".vimrc"
140file exists.
141
Bram Moolenaara2036d22005-08-23 21:04:20 +0000142When making a string upper-case with "vlllU" or similar then the German sharp
143s is replaced with "SS". This does not happen with "~" to avoid backwards
144compatibility problems and because "SS" can't be changed back to a sharp s.
145
Bram Moolenaardd2436f2005-09-05 22:14:46 +0000146"gd" previously found the very first occurrence of a variable in a function,
147that could be the function argument without type. Now it finds the position
148where the type is given.
149
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000150The line continuation in functions was not taken into account, line numbers in
151errors were logical lines, not lines in the sourced file. That made it
152difficult to locate errors. Now the line number in the sourced file is
153reported, relative to the function start. This also means that line numbers
154for ":breakadd func" are different.
155
Bram Moolenaarb3656ed2006-03-20 21:59:49 +0000156When defining a user command with |:command| the special items could be
157abbreviated. This caused unexpected behavior, such as <li> being recognized
158as <line1>. The items can no longer be abbreviated.
159
Bram Moolenaar910f66f2006-04-05 20:41:53 +0000160When executing a FileChangedRO autocommand it is no longer allowed to switch
161to another buffer or edit another file. This is to prevent crashes (the event
162is triggered deep down in the code where changing buffers is not anticipated).
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000163It is still possible to reload the buffer.
164
165At the |more-prompt| and the |hit-enter-prompt|, when the 'more' option is
166set, the 'k', 'u', 'g' and 'b' keys are now used to scroll back to previous
167messages. Thus they are no longer used as typeahead.
Bram Moolenaar910f66f2006-04-05 20:41:53 +0000168
Bram Moolenaar071d4272004-06-13 20:20:40 +0000169==============================================================================
170NEW FEATURES *new-7*
171
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000172Vim script enhancements *new-vim-script*
173-----------------------
Bram Moolenaar071d4272004-06-13 20:20:40 +0000174
175In Vim scripts the following types have been added:
176
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000177 |List| ordered list of items
178 |Dictionary| associative array of items
179 |Funcref| reference to a function
Bram Moolenaar071d4272004-06-13 20:20:40 +0000180
181Many functions and commands have been added to support the new types.
182
Bram Moolenaar31c67ef2005-01-11 21:34:41 +0000183The |string()| function can be used to get a string representation of a
184variable. Works for Numbers, Strings and composites of them. Then |eval()|
185can be used to turn the string back into the variable value.
186
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000187The |:let| command can now use "+=", "-=" and ".=": >
188 :let var += expr " works like :let var = var + expr
189 :let var -= expr " works like :let var = var - expr
190 :let var .= string " works like :let var = var . string
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000191
Bram Moolenaar038eb0e2005-02-27 22:43:26 +0000192With the |:profile| command you can find out where your function or script
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000193is wasting time.
Bram Moolenaar038eb0e2005-02-27 22:43:26 +0000194
Bram Moolenaarb71eaae2006-01-20 23:10:18 +0000195In the Python interface vim.eval() also handles Dictionaries and Lists.
196|python-eval| (G. Sumner Hayes)
197
Bram Moolenaare580b0c2006-03-21 21:33:03 +0000198The |getscript| plugin was added as a convenient way to update scripts from
199www.vim.org automatically. (Charles Campbell)
200
201The |vimball| plugin was added as a convenient way to distribute a set of
202files for a plugin (plugin file, autoload script, documentation). (Charles
203Campbell)
204
Bram Moolenaar843ee412004-06-30 16:16:41 +0000205
Bram Moolenaar60c78922005-03-20 22:40:14 +0000206Spell checking *new-spell*
207--------------
208
209Spell checking has been integrated in Vim. There were a few implementations
210with scripts, but they were slow and/or required an external program.
211
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000212The 'spell' option is used to switch spell checking on or off
213The 'spelllang' option is used to specify the accepted language(s)
214The 'spellfile' option specifies where new words are added
Bram Moolenaar7fae6362005-06-30 22:06:41 +0000215The 'spellsuggest' option specifies the methods used for making suggestions
Bram Moolenaar9ba0eb82005-06-13 22:28:56 +0000216
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000217The |[s| and |]s| commands can be used to move to the next or previous error
218The |zg| and |zw| commands can be used to add good and wrong words
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000219The |z=| command can be used to list suggestions and correct the word
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000220The |:mkspell| command is used to generate a Vim spell file from word lists
Bram Moolenaar60c78922005-03-20 22:40:14 +0000221
222The "undercurl" highlighting attribute was added to nicely point out spelling
223mistakes in the GUI (based on patch from Marcin Dalecki).
224The "guisp" color can be used to give it a color different from foreground and
225background.
226The number of possible different highlight attributes was raised from about
227220 to over 30000. This allows for the attributes of spelling to be combined
Bram Moolenaar75c50c42005-06-04 22:06:24 +0000228with syntax highlighting attributes. This is also used for syntax
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000229highlighting and marking the Visual area.
Bram Moolenaar60c78922005-03-20 22:40:14 +0000230
231Much more info here: |spell|.
232
233
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000234Omni completion *new-omni-completion*
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000235---------------
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000236
237This could also be called "intellisense", but that is a trademark. It is a
238smart kind of completion. The text in front of the cursor is inspected to
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000239figure out what could be following. This may suggest struct and class
240members, system functions, etc.
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000241
242Use CTRL-X CTRL-O in Insert mode to start the completion. |i_CTRL-X_CTRL-O|
243
244The 'omnifunc' option is set by filetype plugins to define the function that
245figures out the completion.
246
Bram Moolenaar07d4d732005-10-03 22:04:08 +0000247Currently supported languages:
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000248 C |ft-c-omni|
249 (X)HTML with CSS |ft-html-omni|
250 JavaScript |ft-javascript-omni|
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000251 PHP |ft-php-omni|
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +0000252 Python
Bram Moolenaarfc1421e2006-04-20 22:17:20 +0000253 Ruby |ft-ruby-omni|
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000254 SQL |ft-sql-omni|
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000255 XML |ft-xml-omni|
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +0000256 any language wih syntax highligting |ft-syntax-omni|
Bram Moolenaar07d4d732005-10-03 22:04:08 +0000257
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000258You can add your own omni completion scripts.
259
Bram Moolenaar07d4d732005-10-03 22:04:08 +0000260When the 'completeopt' option contains "menu" then matches for Insert mode
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000261completion are displayed in a (rather primitive) popup menu.
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000262
263
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000264MzScheme interface *new-MzScheme*
265------------------
266
267The MzScheme interpreter is supported. |MzScheme|
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000268
269The |:mzscheme| command can be used to execute MzScheme commands
270The |:mzfile| command can be used to execute an MzScheme script file
271
272This depends on Vim being compiled with the |+mzscheme| feature.
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000273
Bram Moolenaar31c67ef2005-01-11 21:34:41 +0000274
Bram Moolenaar8299df92004-07-10 09:47:34 +0000275Printing multi-byte text *new-print-multi-byte*
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000276------------------------
Bram Moolenaar8299df92004-07-10 09:47:34 +0000277
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000278The |:hardcopy| command now supports printing multi-byte characters when using
279PostScript.
280
Bram Moolenaar8299df92004-07-10 09:47:34 +0000281The 'printmbcharset' and 'printmbfont' options are used for this.
282Also see |postscript-cjk-printing|. (Mike Williams)
283
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000284
Bram Moolenaar17be7e62006-03-12 22:13:45 +0000285Tab pages *new-tab-pages*
286---------
287
288A tab page is page with one or more windows with a label (aka tab) at the top.
289By clicking on the label you can quickly switch between the tab pages. And
290with the keyboard, using the |gt| (Goto Tab) command. This is a convenient
291way to work with many windows.
292
293To start Vim with each file argument in a separate tab page use the |-p|
294argument. The maximum number of pages can be set with 'tabpagemax'.
295
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000296The line with tab labels is either made with plain text and highlighting or
Bram Moolenaar17be7e62006-03-12 22:13:45 +0000297with a GUI mechanism. The GUI labels look better but are only available on a
Bram Moolenaar57657d82006-04-21 22:12:41 +0000298few systems. The line can be customized with 'tabline', 'guitablabel' and
299'guitabtooltip'. Whether it is displayed is set with 'showtabline'. Whether
300to use the GUI labels is set with the "e" flag in 'guioptions'.
Bram Moolenaar17be7e62006-03-12 22:13:45 +0000301
302The |:tab| command modifier can be used to have most commands that open a new
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000303window open a new tab page instead.
Bram Moolenaar17be7e62006-03-12 22:13:45 +0000304
Bram Moolenaar0ce29932006-03-13 22:18:45 +0000305The |--remote-tab| argument can be used to edit a file in a new tab page in an
306already running Vim server.
307
Bram Moolenaar910f66f2006-04-05 20:41:53 +0000308Variables starting with "t:" are local to a tab page.
309
Bram Moolenaar17be7e62006-03-12 22:13:45 +0000310More info here: |tabpage|
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000311Most of the GUI stuff was implemented by Yegappan Lakshmanan.
Bram Moolenaar17be7e62006-03-12 22:13:45 +0000312
313
Bram Moolenaar34e9e2f2006-03-14 23:07:19 +0000314Undo branches *new-undo-branches*
315-------------
316
317Previously there was only one line of undo-redo. If, after undoing a number
318of changes, a new change was made all the undone changes were lost. This
Bram Moolenaarea0cd362006-03-16 21:46:52 +0000319could lead to accidentally losing work.
Bram Moolenaar34e9e2f2006-03-14 23:07:19 +0000320
321Vim now makes an undo branch in this situation. Thus you can go back to the
322text after any change, even if they were undone. So long as you do not run
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000323into 'undolevels', when undo information is freed up to limit the memory used.
Bram Moolenaar34e9e2f2006-03-14 23:07:19 +0000324
325To be able to navigate the undo branches each change is numbered sequentially.
326The commands |g-| and |:earlier| go back in time, to older changes. The
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000327commands |g+| and |:later| go forward in time, to newer changes.
Bram Moolenaar34e9e2f2006-03-14 23:07:19 +0000328
329The changes are also timestamped. Use ":earlier 10m" to go to the text as it
330was about ten minutes earlier.
331
Bram Moolenaarea0cd362006-03-16 21:46:52 +0000332The |:undolist| command can be used to get an idea of which undo branches
333exist. The |:undo| command now takes an argument to directly jump to a
Bram Moolenaarca003e12006-03-17 23:19:38 +0000334specific position in this list. The |changenr()| function can be used to
335obtain the change number.
Bram Moolenaarea0cd362006-03-16 21:46:52 +0000336
Bram Moolenaar34e9e2f2006-03-14 23:07:19 +0000337There is no graphical display of the tree with changes, navigation can be
338quite confusing.
339
340
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000341Extended Unicode support *new-more-unicode*
342------------------------
343
344Previously only two combining characters were displayed. The limit is now
345raised to 6. This can be set with the 'maxcombine' option. The default is
346still 2.
347
348|ga| now shows all combining characters, not just the first two.
349
350Previously only 16 bit Unicode characters were supported for displaying. Now
351the full 32 bit character set can be used. Unless manually disabled at
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000352compile time to save a bit of memory.
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000353
354For pattern matching it is now possible to search for individual composing
355characters. |patterns-composing|
356
Bram Moolenaarca003e12006-03-17 23:19:38 +0000357The |8g8| command searches for an illegal UTF-8 byte sequence.
358
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000359
Bram Moolenaar17be7e62006-03-12 22:13:45 +0000360More highlighting *new-more-highlighting*
361-----------------
362
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000363Highlighting matching parens:
Bram Moolenaar5e3cb7e2006-02-27 23:58:35 +0000364
365When moving the cursor through the text and it is on a paren, then the
366matching paren can be highlighted. This uses the new |CursorMoved|
367autocommand event.
368
Bram Moolenaarc1e37902006-04-18 21:55:01 +0000369This means some commands are executed every time you move the cursor. If this
370slows you down too much switch it off with: >
371 :NoMatchParen
372
Bram Moolenaar261bfea2006-03-01 22:12:31 +0000373See |matchparen| for more information.
374
375The plugin uses the |:match| command. It now supports three match patterns.
376The plugin uses the third one. The first one is for the user and the second
377one can be used by another plugin.
Bram Moolenaar5e3cb7e2006-02-27 23:58:35 +0000378
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000379Highlighting the cursor line and column:
Bram Moolenaar17be7e62006-03-12 22:13:45 +0000380
381The 'cursorline' and 'cursorcolumn' options have been added. These highlight
382the screen line and screen column of the cursor. This makes the cursor
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000383position easier to spot. 'cursorcolumn' is also useful to align text. This
384may make screen updating quite slow. The CursorColumn and CursorLine
385highlight groups allow changing the colors used. |hl-CursorColumn|
386|hl-CursorLine|
387
388The number of possible different highlight attributes was raised from about
389220 to over 30000. This allows for the attributes of spelling to be combined
390with syntax highlighting attributes. This is also used for syntax
391highlighting, marking the Visual area, CursorColumn, etc.
Bram Moolenaar17be7e62006-03-12 22:13:45 +0000392
Bram Moolenaar5e3cb7e2006-02-27 23:58:35 +0000393
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000394Translated manual pages *new-manpage-trans*
395-----------------------
396
397The manual page of Vim and associated programs is now also available in
Bram Moolenaar4ad237d2005-03-11 22:49:40 +0000398several other languages.
399
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +0000400French - translated by David Blanchet
Bram Moolenaar4ad237d2005-03-11 22:49:40 +0000401Italian - translated by Antonio Colombo
402Russian - translated by Vassily Ragosin
Bram Moolenaar899dddf2006-03-26 21:06:50 +0000403Polish - translated by Mikolaj Machowski
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000404
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +0000405The Unix Makefile installs the Italian manual pages in .../man/it/man1/,
406.../man/it.ISO8859-1/man1/ and .../man/it.UTF-8/man1/. There appears to be no
407standard for what encoding goes in the "it" directory, the 8-bit encoded file
408is used there as a best guess.
409Other languages are installed in similar places.
Bram Moolenaar67fe1a12005-05-22 22:12:58 +0000410The translated pages are not automatically installed when Vim was configured
411with "--disable-nls", but "make install-languages install-tool-languages" will
412do it anyway.
Bram Moolenaarb5bf5b82004-12-24 14:35:23 +0000413
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000414
Bram Moolenaar8fc061c2004-12-29 21:03:02 +0000415Internal grep *new-vimgrep*
416-------------
417
418The ":vimgrep" command can be used to search for a pattern in a list of files.
419This is like the ":grep" command, but no external program is used. Besides
420better portability, handling of different file encodings and using multi-line
421patterns, this also allows grepping in compressed and remote files.
422|:vimgrep|.
423
Bram Moolenaar05159a02005-02-26 23:04:13 +0000424If you want to use the search results in a script you can use the
Bram Moolenaar2641f772005-03-25 21:58:17 +0000425|getqflist()| function.
Bram Moolenaar05159a02005-02-26 23:04:13 +0000426
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000427To grep files in various directories the "**" pattern can be used. It expands
428into an arbitrary depth of directories. "**" can be used in all places where
429file names are expanded, thus also with |:next| and |:args|.
Bram Moolenaar231334e2005-07-25 20:46:57 +0000430
Bram Moolenaar8fc061c2004-12-29 21:03:02 +0000431
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000432Scroll back in messages *new-scroll-back*
433-----------------------
434
435When displaying messages, at the |more-prompt| and the |hit-enter-prompt|, The
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000436'k', 'u', 'g' and 'b' keys can be used to scroll back to previous messages.
437This is especially useful for commands such as ":syntax", ":autocommand" and
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000438":highlight". This is implemented in a generic way thus it works for all
439commands and highlighting is kept. Only works when the 'more' option is set.
440Previously it only partly worked for ":clist".
441
Bram Moolenaar661b1822005-07-28 22:36:45 +0000442The |g<| command can be used to see the last page of messages after you have
443hit <Enter> at the |hit-enter-prompt|. Then you can scroll further back.
444
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000445
Bram Moolenaarea0cd362006-03-16 21:46:52 +0000446Cursor past end of the line *new-onemore*
447---------------------------
448
449When the 'virtualedit' option contains "onemore" the cursor can move just past
450the end of the line. As if it's on top of the line break.
451
452This makes some commands more consistent. Previously the cursor was always
453past the end of the line if the line was empty. But it is far from Vi
454compatible. It may also break some plugins or Vim scripts. Use with care!
455
456The patch was provided by Mattias Flodin.
457
458
Bram Moolenaar4399ef42005-02-12 14:29:27 +0000459POSIX compatibility *new-posix*
460-------------------
461
462The POSIX test suite was used to verify POSIX compatibility. A number of
463problems have been fixed to make Vim more POSIX compatible. Some of them
464conflict with traditional Vi or expected behavior. The $VIM_POSIX environment
465variable can be set to get POSIX compatibility. See |posix|.
466
467Items that were fixed for both Vi and POSIX compatibilty:
468- repeating "R" with a count only overwrites text once; added the 'X' flag to
469 'cpoptions' |cpo-X|
470- a vertical movement command that moves to a non-existing line fails; added
471 the '-' flag to 'cpoptions' |cpo--|
472- when preserving a file and doing ":q!" the file can be recovered; added the
473 '&' flag to 'cpoptions' |cpo-&|
474- The 'window' option is partly implemented. It specifies how much CTRL-F and
475 CTRL-B scroll when there is one window. The "-w {number}" argument is now
476 accepted. "-w {scriptout}" only works when {scriptout} doesn't start with a
477 digit.
478- Allow "-c{command}" argument, no space between "-c" and {command}.
479- When writing a file with ":w!" don't reset 'readonly' when 'Z' is present in
480 'cpoptions'.
Bram Moolenaar5313dcb2005-02-22 08:56:13 +0000481- Allow 'l' and '#' flags for ":list", ":print" and ":number".
482- Added the '.' flag to 'cpoptions': ":cd" fails when the buffer is modified.
483- In Ex mode with an empty buffer ":read file" doesn't keep an empty line
484 above or below the new lines.
485- Remove a backslash before a NL for the ":global" command.
486- When ":append", ":insert" or ":change" is used with ":global", get the
487 inserted lines from the command. Can use backslash-NL to separate lines.
488- Can use ":global /pat/ visual" to execute Normal mode commands at each
489 matched line. Use "Q" to continue and go to the next line.
490- The |:open| command has been partially implemented. It stops Ex mode, but
491 redraws the whole screen, not just one line as open mode is supposed to do.
492- Support using a pipe to read the output from and write input to an external
493 command. Added the 'shelltemp' option and has("filterpipe").
494- In ex silent mode the ":set" command output is displayed.
495- The ":@@" and ":**" give an error message when no register was used before.
496- The search pattern "[]-`]" matches ']', '^', '_' and '`'.
497- Autoindent for ":insert" is using the line below the insert.
498- Autoindent for ":change" is using the first changed line.
499- Editing Ex command lines is not done in cooked mode, because CTRL-D and
500 CTRL-T cannot be handled then.
Bram Moolenaar45eeb132005-06-06 21:59:07 +0000501- In Ex mode, "1,3" prints three lines. "%" prints all lines.
502- In Ex mode "undo" would undo all changes since Ex mode was started.
Bram Moolenaar5313dcb2005-02-22 08:56:13 +0000503- Implemented the 'prompt' option.
Bram Moolenaar4399ef42005-02-12 14:29:27 +0000504
505
Bram Moolenaare2ac10d2005-03-07 23:26:06 +0000506Debugger support *new-debug-support*
507----------------
508
509The 'balloonexpr' option has been added. This is a generic way to implement
510balloon functionality. You can use it to show info for the word under the
511mouse pointer.
512
513
Bram Moolenaar0be6e642005-08-04 21:32:22 +0000514Remote file explorer *new-netrw-explore*
515--------------------
516
517The netrw plugin now also supports viewing a directory, when "scp://" is used.
518Deleting and renaming files is possible.
519
520To avoid duplicating a lot of code, the previous file explorer plugin has been
521integrated in the netrw plugin. This means browsing local and remote files
522works the same way.
523
524":browse edit" and ":browse split" use the netrw plugin when it's available
525and a GUI dialog is not possible.
526
527The netrw plugin is maintained by Charles Campbell.
528
529
Bram Moolenaar900b4d72005-12-12 22:05:50 +0000530Define an operator *new-define-operator*
531------------------
532
533Previously it was not possible to define your own operator; a command that is
534followed by a {motion}. Vim 7 introduces the 'operatorfunc' option and the
535|g@| operator. This makes it possible to define a mapping that works like an
536operator. The actual work is then done by a function, which is invoked
537through the |g@| operator.
538
539See |:map-operator| for the explanation and an example.
540
Bram Moolenaar9f2c6e12006-02-04 22:45:44 +0000541
Bram Moolenaarade00832006-03-10 21:46:58 +0000542Mapping to an expression *new-map-expression*
543------------------------
544
545The {rhs} argument of a mapping can be an expression. That means the
546resulting characters can depend on the context. Example: >
547 :inoremap <expr> . InsertDot()
548Here the dot will be mapped to whatever InsertDot() returns.
549
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000550This also works for abbreviations. See |:map-<expr>| for the details.
Bram Moolenaarade00832006-03-10 21:46:58 +0000551
552
Bram Moolenaarb3656ed2006-03-20 21:59:49 +0000553Visual and Select mode mappings *new-map-select*
554-------------------------------
555
556Previously Visual mode mappings applied both to Visual and Select mode. With
557a trick to have the mappings work in Select mode like they would in Visual
558mode.
559
560Commands have been added to define mappings for Visual and Select mode
561separately: |:xmap| and |:smap|. With the associated "noremap" and "unmap"
562commands.
563
564The same is done for menus: |:xmenu|, |:smenu|, etc.
565
566
Bram Moolenaar17c7c012006-01-26 22:25:15 +0000567Location list *new-location-list*
568-------------
569
570The support for a per-window quickfix list (location list) is added. The
571location list can be displayed in a location window (similar to the quickfix
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000572window). You can open more than one location list window. A set of commands
Bram Moolenaar17c7c012006-01-26 22:25:15 +0000573similar to the quickfix commands are added to browse the location list.
Bram Moolenaar9f2c6e12006-02-04 22:45:44 +0000574(Yegappan Lakshmanan)
575
Bram Moolenaar900b4d72005-12-12 22:05:50 +0000576
Bram Moolenaar071d4272004-06-13 20:20:40 +0000577Various new items *new-items-7*
578-----------------
579
580Normal mode commands: ~
581
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000582a", a' and a` New text objects to select quoted strings. |a'|
Bram Moolenaarac6e65f2005-08-29 22:25:38 +0000583i", i' and i` (Taro Muraoka)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000584
Bram Moolenaar05159a02005-02-26 23:04:13 +0000585CTRL-W <Enter> In the quickfix window: opens a new window to show the
586 location of the error under the cursor.
587
Bram Moolenaarff6f0612005-07-19 22:21:12 +0000588|at| and |it| text objects select a block of text between HTML or XML tags.
589
Bram Moolenaarbca84a12005-12-14 22:08:35 +0000590<A-LeftMouse> ('mousemodel' "popup" or "popup-setpos")
591<A-RightMouse> ('mousemodel' "extend")
592 Make a blockwise selection. |<A-LeftMouse>|
Bram Moolenaarff6f0612005-07-19 22:21:12 +0000593
Bram Moolenaard1f56e62006-02-22 21:25:37 +0000594gF Start editing the filename under the cursor and jump
595 to the line number following the file name.
596 (Yegappan Lakshmanan)
597
598CTRL-W F Start editing the filename under the cursor in a new
599 window and jump to the line number following the file
600 name. (Yegappan Lakshmanan)
601
Bram Moolenaar488c6512005-08-11 20:09:58 +0000602Insert mode commands: ~
603
604CTRL-\ CTRL-O Execute a Normal mode command. Like CTRL-O but
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000605 without moving the cursor. |i_CTRL-\_CTRL-O|
Bram Moolenaar488c6512005-08-11 20:09:58 +0000606
Bram Moolenaar071d4272004-06-13 20:20:40 +0000607Options: ~
608
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000609'balloonexpr' expression for text to show in evaluation balloon
610'completefunc' The name of the function used for user-specified
611 Insert mode completion. CTRL-X CTRL-U can be used in
612 Insert mode to do any kind of completion. (Taro
613 Muraoka)
614'completeopt' Enable popup menu and other settings for Insert mode
615 completion.
616'cursorcolumn' highlight column of the cursor
617'cursorline' highlight line of the cursor
Bram Moolenaar1d2ba7f2006-02-14 22:29:30 +0000618'formatexpr' expression for formatting text with |gq| and when text
619 goes over 'textwidth' in Insert mode.
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000620'formatlistpat' pattern to recognize a numbered list for formatting.
621 (idea by Hugo Haas)
622'fsync' Whether fsync() is called after writing a file.
623 (Ciaran McCreesh)
624'guitablabel' expression for text to display in GUI tab page label
625'guitabtooltip' expression for text to display in GUI tab page tooltip
626'macatsui' Mac: use ATSUI text display functions
627'maxcombine' maximum number of combining characters displayed
628'maxmempattern' maximum amount of memory to use for pattern matching
629'mkspellmem' parameters for |:mkspell| memory use
630'mzquantum' Time in msec to schedule MzScheme threads.
631'numberwidth' Minimal width of the space used for the 'number'
632 option. (Emmanuel Renieris)
633'omnifunc' The name of the function used for omni completion.
634'operatorfunc' function to be called for |g@| operator
635'printmbcharset' CJK character set to be used for :hardcopy
636'printmbfont' font names to be used for CJK output of :hardcopy
637'pumheight' maximum number of items to show in the popup menu
638'quoteescape' Characters used to escape quotes inside a string.
639 Used for the a", a' and a` text objects. |a'|
640'shelltemp' whether to use a temp file or pipes for shell commands
641'showtabline' whether to show the tab pages line
Bram Moolenaar60c78922005-03-20 22:40:14 +0000642'spell' switch spell checking on/off
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000643'spellcapcheck' pattern to locate the end of a sentence
644'spellfile' file where good and wrong words are added
Bram Moolenaar60c78922005-03-20 22:40:14 +0000645'spelllang' languages to check spelling for
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000646'spellsuggest' methods for spell suggestions
Bram Moolenaar3b56eb32005-07-11 22:40:32 +0000647'synmaxcol' maximum column to look for syntax items; avoids very
648 slow redrawing when there are very long lines
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000649'tabline' expression for text to display in the tab pages line
650'tabpagemax' maximum number of tab pages to open for |-p|
Bram Moolenaar54ee7752005-05-31 22:22:17 +0000651'verbosefile' Log messages in a file.
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000652'wildoptions' "tagfile" value enables listing the file name of
653 matching tags for CTRL-D command line completion.
654 (based on an idea from Yegappan Lakshmanan)
Bram Moolenaar97b2ad32006-03-18 21:40:56 +0000655'winfixwidth' window with fixed width, similar to 'winfixheight'
Bram Moolenaar86b68352004-12-27 21:59:20 +0000656
Bram Moolenaar071d4272004-06-13 20:20:40 +0000657
658Ex commands: ~
659
Bram Moolenaar843ee412004-06-30 16:16:41 +0000660Win32: The ":winpos" command now also works in the console. (Vipin Aravind)
661
Bram Moolenaar8299df92004-07-10 09:47:34 +0000662|:startreplace| Start Replace mode. (Charles Campbell)
Bram Moolenaarbca84a12005-12-14 22:08:35 +0000663|:startgreplace| Start Virtual Replace mode.
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000664
Bram Moolenaar8299df92004-07-10 09:47:34 +0000665|:0file| Removes the name of the buffer. (Charles Campbell)
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000666
Bram Moolenaar2df6dcc2004-07-12 15:53:54 +0000667|:diffoff| Switch off diff mode in the current window or in all
668 windows.
669
Bram Moolenaarc0197e22004-09-13 20:26:32 +0000670|:delmarks| Delete marks.
671
Bram Moolenaarb5bf5b82004-12-24 14:35:23 +0000672|:exusage| Help for Ex commands (Nvi command).
Bram Moolenaarb5bf5b82004-12-24 14:35:23 +0000673|:viusage| Help for Vi commands (Nvi command).
674
Bram Moolenaar67fe1a12005-05-22 22:12:58 +0000675|:sort| Sort lines in the buffer without depending on an
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000676 external command. (partly by Bryce Wagner)
Bram Moolenaar67fe1a12005-05-22 22:12:58 +0000677
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000678|:vimgrep| Internal grep command, search for a pattern in files.
679|:vimgrepadd| Like |:vimgrep| but don't make a new list.
680
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000681|:caddfile| Add error messages to an existing quickfix list
682 (Yegappan Lakshmanan).
Bram Moolenaardb552d602006-03-23 22:59:57 +0000683|:cbuffer| Read error lines from a buffer. (partly by Yegappan
684 Lakshmanan)
685|:cgetbuffer| Create a quickfix list from a buffer but don't jump to
686 the first error.
Bram Moolenaar9f2c6e12006-02-04 22:45:44 +0000687|:caddbuffer| Add errors from the current buffer to the quickfix
688 list.
Bram Moolenaardb552d602006-03-23 22:59:57 +0000689|:cexpr| Read error messages from a Vim expression (Yegappan
690 Lakshmanan).
691|:caddexpr| Add error messages from a Vim expression to an
692 existing quickfix list. (Yegappan Lakshmanan).
693|:cgetexpr| Create a quickfix list from a Vim expression, but
694 don't jump to the first error. (Yegappan Lakshmanan).
Bram Moolenaar4770d092006-01-12 23:22:24 +0000695
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000696|:lfile| Like |:cfile| but use the location list.
697|:lgetfile| Like |:cgetfile| but use the location list.
698|:laddfile| Like |:caddfile| but use the location list.
699|:lbuffer| Like |:cbuffer| but use the location list.
Bram Moolenaar76b92b22006-03-24 22:46:53 +0000700|:lgetbuffer| Like |:cgetbuffer| but use the location list.
Bram Moolenaar9f2c6e12006-02-04 22:45:44 +0000701|:laddbuffer| Like |:caddbuffer| but use the location list.
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000702|:lexpr| Like |:cexpr| but use the location list.
Bram Moolenaar76b92b22006-03-24 22:46:53 +0000703|:lgetexpr| Like |:cgetexpr| but use the location list.
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000704|:laddexpr| Like |:caddexpr| but use the location list.
705|:ll| Like |:cc| but use the location list.
706|:llist| Like |:clist| but use the location list.
707|:lnext| Like |:cnext| but use the location list.
Bram Moolenaarf52c7252006-02-10 23:23:57 +0000708|:lprevious| Like |:cprevious| but use the location list.
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000709|:lNext| Like |:cNext| but use the location list.
710|:lfirst| Like |:cfirst| but use the location list.
711|:lrewind| Like |:crewind| but use the location list.
712|:llast| Like |:clast| but use the location list.
713|:lnfile| Like |:cnfile| but use the location list.
714|:lpfile| Like |:cpfile| but use the location list.
715|:lNfile| Like |:cNfile| but use the location list.
716|:lolder| Like |:colder| but use the location list.
717|:lnewer| Like |:cnewer| but use the location list.
718|:lwindow| Like |:cwindow| but use the location list.
719|:lopen| Like |:copen| but use the location list.
720|:lclose| Like |:cclose| but use the location list.
Bram Moolenaarf52c7252006-02-10 23:23:57 +0000721|:lmake| Like |:make| but use the location list.
722|:lgrep| Like |:grep| but use the location list.
723|:lgrepadd| Like |:grepadd| but use the location list.
724|:lvimgrep| Like |:vimgrep| but use the location list.
725|:lvimgrepadd| Like |:vimgrepadd| but use the location list.
726|:lhelpgrep| Like |:helpgrep| but use the location list.
727|:lcscope| Like |:cscope| but use the location list.
728|:ltag| Jump to a tag and add matching tags to a location list.
Bram Moolenaar1ef15e32006-02-01 21:56:25 +0000729
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000730|:undojoin| Join a change with the previous undo block.
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000731|:undolist| List the leafs of the undo tree.
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000732
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000733|:earlier| Go back in time for changes in the text.
734|:later| Go forward in time for changes in the text.
735
736|:for| Loop over a |List|.
737|:endfor|
738
739|:lockvar| Lock a variable, prevents it from being changed.
740|:unlockvar| Unlock a locked variable.
741
742|:mkspell| Create a Vim spell file.
743|:spellgood| Add a word to the list of good words.
744|:spellwrong| Add a word to the list of bad words
745|:spelldump| Dump list of good words.
746|:spellinfo| Show information about the spell files used.
747|:spellrepall| Repeat a spelling correction for the whole buffer.
748|:spellundo| Remove a word from list of good and bad words.
749
750|:mzscheme| Execute MzScheme commands.
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000751|:mzfile| Execute an MzScheme script file.
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000752
753|:nbkey| Pass a key to NetBeans for processing.
754
755|:profile| Commands for Vim script profiling.
756|:profdel| Stop profiling for specified items.
757
758|:smap| Select mode mapping.
759|:smapclear|
760|:snoremap|
761|:sunmap|
762
763|:xmap| Visual mode mapping, not used for Select mode.
764|:xmapclear|
765|:xnoremap|
766|:xunmap|
767
768|:smenu| Select mode menu.
769|:snoremenu|
770|:sunmenu|
771
772|:xmenu| Visual mode menu, not used for Select mode.
773|:xnoremenu|
774|:xunmenu|
775
776|:tabclose| Close the current tab page.
777|:tabdo| Perform a command in every tab page.
778|:tabedit| Edit a file in a new tab page.
779|:tabnew| Open a new tab page.
780|:tabfind| Search for a file and open it in a new tab page.
781|:tabnext| Go to the next tab page.
782|:tabprevious| Go to the previous tab page.
783|:tabNext| Go to the previous tab page.
784|:tabfirst| Go to the first tab page.
785|:tabrewind| Go to the first tab page.
786|:tablast| Go to the last tab page.
787|:tabmove| Move the current tab page elsewhere.
788|:tabonly| Close all other tab pages.
789|:tabs| List the tab pages and the windows they contain.
Bram Moolenaarbca84a12005-12-14 22:08:35 +0000790
Bram Moolenaar63a121b2005-12-11 21:36:39 +0000791Ex command modifiers: ~
792
793|:keepalt| Do not change the alternate file.
794
795|:noautocmd| Do not trigger autocommand events.
796
797|:sandbox| Execute a command in the sandbox.
798
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000799|:tab| When opening a new window create a new tab page.
800
Bram Moolenaar67fe1a12005-05-22 22:12:58 +0000801
Bram Moolenaarb2c2efa2005-12-13 20:09:08 +0000802Ex command arguments: ~
803
804|++bad| Specify what happens with characters that can't be
805 converted and illegal bytes. (code example by Yasuhiro
806 Matsumoto)
807 Also, when a conversion error occurs or illegal bytes
808 are found include the line number in the error
809 message.
810
811
Bram Moolenaara5792f52005-11-23 21:25:05 +0000812New and extended functions: ~
Bram Moolenaar071d4272004-06-13 20:20:40 +0000813
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000814|add()| append an item to a List
815|append()| append List of lines to the buffer
Bram Moolenaare2f98b92006-03-29 21:18:24 +0000816|argv()| without an argument return the whole argument list
Bram Moolenaar87b774d2005-07-20 22:04:36 +0000817|browsedir()| dialog to select a directory
Bram Moolenaarbd404142006-03-25 22:05:04 +0000818|bufnr()| takes an extra argument: create buffer
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000819|byteidx()| index of a character (Ilya Sher)
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000820|call()| call a function with List as arguments
Bram Moolenaarbd404142006-03-25 22:05:04 +0000821|changenr()| number of current change
822|complete()| set matches for Insert mode completion
Bram Moolenaar572cb562005-08-05 21:35:02 +0000823|complete_add()| add match for 'completefunc'
824|complete_check()| check for key pressed, for 'completefunc'
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000825|copy()| make a shallow copy of a List or Dictionary
826|count()| count nr of times a value is in a List or Dictionary
Bram Moolenaar8fd89f02006-03-02 22:51:05 +0000827|cursor()| also accepts an offset for 'virtualedit', and
828 the first argument can be a list: [lnum, col, off]
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000829|deepcopy()| make a full copy of a List or Dictionary
Bram Moolenaarbd404142006-03-25 22:05:04 +0000830|diff_filler()| returns number of filler lines above line {lnum}.
831|diff_hlID()| returns the highlight ID for diff mode
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000832|empty()| check if List or Dictionary is empty
Bram Moolenaarbd404142006-03-25 22:05:04 +0000833|eval()| evaluate {string} and return the result
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000834|extend()| append one List to another or add items from one
835 Dictionary to another
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000836|feedkeys()| put characters in the typeahead buffer
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000837|filter()| remove selected items from a List or Dictionary
Bram Moolenaar87b774d2005-07-20 22:04:36 +0000838|finddir()| find a directory in 'path'
839|findfile()| find a file in 'path' (Johannes Zellner)
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000840|foldtextresult()| the text displayed for a closed fold at line "lnum"
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000841|function()| make a Funcref out of a function name
Bram Moolenaarbd404142006-03-25 22:05:04 +0000842|garbagecollect()| cleanup unused |Lists| and |Dictionaries| with circular
843 references
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000844|get()| get an item from a List or Dictionary
Bram Moolenaar342337a2005-07-21 21:11:17 +0000845|getbufline()| get a list of lines from a specified buffer
Bram Moolenaar87b774d2005-07-20 22:04:36 +0000846 (Yegappan Lakshmanan)
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000847|getcmdtype()| return the current command-line type
848 (Yegappan Lakshmanan)
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000849|getfontname()| get actual font name being used
Bram Moolenaar87b774d2005-07-20 22:04:36 +0000850|getfperm()| get file permission string (Nikolai Weibull)
851|getftype()| get type of file (Nikolai Weibull)
852|getline()| with second argument: get List with buffer lines
Bram Moolenaarbd404142006-03-25 22:05:04 +0000853|getloclist()| list of location list items (Yegappan Lakshmanan)
Bram Moolenaar8fd89f02006-03-02 22:51:05 +0000854|getpos()| return a list with the position of cursor, mark, etc.
Bram Moolenaarbd404142006-03-25 22:05:04 +0000855|getqflist()| list of quickfix errors (Yegappan Lakshmanan)
856|getreg()| get contents of a register
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000857|gettabwinvar()| get variable from window in specified tab page.
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000858|has_key()| check whether a key appears in a Dictionary
Bram Moolenaarbd404142006-03-25 22:05:04 +0000859|hasmapto()| check for a mapping to a string
Bram Moolenaardcca87b2005-09-10 19:24:59 +0000860|inputlist()| select an entry from a list
Bram Moolenaarbd404142006-03-25 22:05:04 +0000861|index()| index of item in List
862|inputlist()| prompt the user to make a selection from a list
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000863|insert()| insert an item somewhere in a List
Bram Moolenaarbd404142006-03-25 22:05:04 +0000864|islocked()| check if a variable is locked
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000865|items()| get List of Dictionary key-value pairs
866|join()| join List items into a String
867|keys()| get List of Dictionary keys
868|len()| number of items in a List or Dictionary
869|map()| change each List or Dictionary item
Bram Moolenaarbd404142006-03-25 22:05:04 +0000870|maparg()| extra argument: use abbreviation
871|mapcheck()| extra argument: use abbreviation
872|match()| extra argument: count
Bram Moolenaar910f66f2006-04-05 20:41:53 +0000873|matcharg()| return arguments of |:match| command
Bram Moolenaarbd404142006-03-25 22:05:04 +0000874|matchend()| extra argument: count
Bram Moolenaar2a8d1f82005-02-05 21:43:56 +0000875|matchlist()| list with match and submatches of a pattern in a string
Bram Moolenaarbd404142006-03-25 22:05:04 +0000876|matchstr()| extra argument: count
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000877|max()| maximum value in a List or Dictionary
878|min()| minimum value in a List or Dictionary
Bram Moolenaar5313dcb2005-02-22 08:56:13 +0000879|mkdir()| create a directory
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000880|pathshorten()| reduce directory names to a single character
Bram Moolenaar4be06f92005-07-29 22:36:03 +0000881|printf()| format text
Bram Moolenaarbd404142006-03-25 22:05:04 +0000882|pumvisible()| check whether the popup menu is displayed
883|range()| generate a List with numbers
Bram Moolenaar2a8d1f82005-02-05 21:43:56 +0000884|readfile()| read a file into a list of lines
Bram Moolenaare580b0c2006-03-21 21:33:03 +0000885|reltime()| get time value, possibly relative
886|reltimestr()| turn a time value into a string
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000887|remove()| remove one or more items from a List or Dictionary
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000888|repeat()| repeat "expr" "count" times (Christophe Poucet)
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000889|reverse()| reverse the order of a List
Bram Moolenaarbd404142006-03-25 22:05:04 +0000890|search()| extra argument:
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000891|searchdecl()| search for declaration of variable
Bram Moolenaarbd404142006-03-25 22:05:04 +0000892|searchpair()| extra argument: line to stop searching
Bram Moolenaar1d2ba7f2006-02-14 22:29:30 +0000893|searchpairpos()| return a List with the position of the match
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000894|searchpos()| return a List with the position of the match
Bram Moolenaar17c7c012006-01-26 22:25:15 +0000895|setloclist()| modify a location list (Yegappan Lakshmanan)
Bram Moolenaarbd404142006-03-25 22:05:04 +0000896|setpos()| set cursor or mark to a position
Bram Moolenaar17c7c012006-01-26 22:25:15 +0000897|setqflist()| modify a quickfix list (Yegappan Lakshmanan)
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000898|settabwinvar()| set variable in window of specified tab page
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000899|sort()| sort a List
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000900|soundfold()| get the sound-a-like equivalent of a word
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000901|spellbadword()| get a badly spelled word
902|spellsuggest()| get suggestions for correct spelling
Bram Moolenaarbd404142006-03-25 22:05:04 +0000903|split()| split a String into a List
Bram Moolenaar97b2ad32006-03-18 21:40:56 +0000904|str2nr()| convert a string to a number, base 8, 10 or 16
Bram Moolenaarbd404142006-03-25 22:05:04 +0000905|stridx()| extra argument: start position
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000906|strridx()| extra argument: start position
Bram Moolenaar87b774d2005-07-20 22:04:36 +0000907|string()| string representation of a List or Dictionary
Bram Moolenaarbd404142006-03-25 22:05:04 +0000908|system()| extra argument: filters {input} through a shell command
909|tabpagebuflist()| List of buffers in a tab page
910|tabpagenr()| number of current or last tab page
911|tabpagewinnr()| window number in a tab page
912|tagfiles()| List with tags file names
Bram Moolenaar87b774d2005-07-20 22:04:36 +0000913|taglist()| get list of matching tags (Yegappan Lakshmanan)
914|tr()| translate characters (Ron Aaron)
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000915|values()| get List of Dictionary values
Bram Moolenaarbd404142006-03-25 22:05:04 +0000916|winnr()| takes an argument: what window to use
Bram Moolenaar768b8c42006-03-04 21:58:33 +0000917|winrestview()| restore the view of the current window
918|winsaveview()| save the view of the current window
Bram Moolenaar2a8d1f82005-02-05 21:43:56 +0000919|writefile()| write a list of lines into a file
Bram Moolenaar8299df92004-07-10 09:47:34 +0000920
Bram Moolenaarbee0c5b2005-02-07 22:03:36 +0000921User defined functions can now be loaded automatically from the "autoload"
922directory in 'runtimepath'. See |autoload-functions|.
923
Bram Moolenaar071d4272004-06-13 20:20:40 +0000924
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000925New Vim variables: ~
926
927|v:insertmode| used for |InsertEnter| and |InsertChange| autocommands
928|v:val| item value in a |map()| or |filter()| function
929|v:key| item key in a |map()| or |filter()| function
930|v:profiling| non-zero after a ":profile start" command
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000931|v:fcs_reason| the reason why |FileChangedShell| was triggered
932|v:fcs_choice| what should happen after |FileChangedShell|
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000933|v:beval_bufnr| buffer number for 'balloonexpr'
934|v:beval_winnr| window number for 'balloonexpr'
935|v:beval_lnum| line number for 'balloonexpr'
936|v:beval_col| column number for 'balloonexpr'
937|v:beval_text| text under the mouse pointer for 'balloonexpr'
938|v:scrollstart| what caused the screen to be scrolled up
939|v:swapname| name of the swap file for the |SwapExists| event
940|v:swapchoice| what do do for an existing swap file
941|v:swapcommand| command to be executed after handling |SwapExists|
942|v:char| argument for evaluating 'formatexpr'
943
944
Bram Moolenaar071d4272004-06-13 20:20:40 +0000945New autocommand events: ~
946
Bram Moolenaar8299df92004-07-10 09:47:34 +0000947|ColorScheme| after loading a color scheme
Bram Moolenaar1f35bf92006-03-07 22:38:47 +0000948
Bram Moolenaar3d0a6032006-02-09 23:54:54 +0000949|CursorHoldI| the user doesn't press a key for a while in Insert mode
950|CursorMoved| the cursor was moved in Normal mode
951|CursorMovedI| the cursor was moved in Insert mode
952
Bram Moolenaarbd404142006-03-25 22:05:04 +0000953|FileChangedShellPost| after handling a file changed outside of Vim
954
955|InsertEnter| starting Insert or Replace mode
956|InsertChange| going from Insert to Replace mode or back
957|InsertLeave| leaving Insert or Replace mode
958
959|MenuPopup| just before showing popup menu
960
961|QuickFixCmdPre| before :make, :grep et al. (Ciaran McCreesh)
962|QuickFixCmdPost| after :make, :grep et al. (Ciaran McCreesh)
963
964|SessionLoadPost| after loading a session file. (Yegappan Lakshmanan)
965
966|ShellCmdPost| after executing a shell command
967|ShellFilterPost| after filtering with a shell command
968
969|SourcePre| before sourcing a Vim script
970
971|SpellFileMissing| when a spell file can't be found
972
973|SwapExists| found existing swap file when editing a file
974
975|TabEnter| just after entering a tab page
976|TabLeave| just before leaving a tab page
977
978|VimResized| after the Vim window size changed (Yakov Lerner)
979
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000980
Bram Moolenaar96351572006-05-05 21:16:59 +0000981New highlight groups: ~
982
983Pmenu Popup menu: normal item |hl-Pmenu|
984PmenuSel Popup menu: selected item |hl-PmenuSel|
985PmenuThumb Popup menu: scrollbar |hl-PmenuThumb|
986PmenuSbar Popup menu: Thumb of the scrollbar |hl-PmenuSbar|
987
988TabLine tab pages line, inactive label |hl-TabLine|
989TabLineSel tab pages line, selected label |hl-TabLineSel|
990TabLineFill tab pages line, filler |hl-TabLineFill|
991
992SpellBad badly spelled word |hl-SpellBad|
993SpellCap word with wrong caps |hl-SpellCap|
994SpellRare rare word |hl-SpellRare|
995SpellLocal word only exists in other region |hl-SpellLocal|
996
997CursorColumn 'cursorcolumn' |hl-CursorColumn|
998CursorLine 'cursorline' |hl-CursorLine|
999
1000MatchParen matching parens |pi_paren.txt| |hl-MatchParen|
1001
1002
Bram Moolenaarc0197e22004-09-13 20:26:32 +00001003New items in search patterns: ~
1004|/\%d| \%d123 search for character with decimal number
1005|/\]| [\d123] idem, in a colletion
1006|/\%o| \%o103 search for character with octal number
1007|/\]| [\o1o3] idem, in a colletion
1008|/\%x| \%x1a search for character with 2 pos. hex number
1009|/\]| [\x1a] idem, in a colletion
1010|/\%u| \%u12ab search for character with 4 pos. hex number
1011|/\]| [\u12ab] idem, in a colletion
1012|/\%U| \%U1234abcd search for character with 8 pos. hex number
1013|/\]| [\U1234abcd] idem, in a colletion
1014 (The above partly by Ciaran McCreesh)
Bram Moolenaar33aec762006-01-22 23:30:12 +00001015
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00001016|/[[=| [[=a=]] an equivalence class (only for latin1 characters)
1017|/[[.| [[.a.]] a collation element (only works with single char)
Bram Moolenaar5313dcb2005-02-22 08:56:13 +00001018
Bram Moolenaar33aec762006-01-22 23:30:12 +00001019|/\%'m| \%'m match at mark m
1020|/\%<'m| \%<'m match before mark m
1021|/\%>'m| \%>'m match after mark m
1022|/\%V| \%V match in Visual area
1023
Bram Moolenaar5313dcb2005-02-22 08:56:13 +00001024Nesting |/multi| items no longer is an error when an empty match is possible.
1025
1026It is now possible to use \{0}, it matches the preceding atom zero times. Not
1027useful, just for compatibility.
Bram Moolenaarc0197e22004-09-13 20:26:32 +00001028
1029
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001030New Syntax/Indent/FTplugin files: ~
1031
Bram Moolenaarb982ca52005-03-28 21:02:15 +00001032Moved all the indent settings from the filetype plugin to the indent file.
1033Implemented b:undo_indent to undo indent settings when setting 'filetype' to a
1034different value.
1035
Bram Moolenaarbd404142006-03-25 22:05:04 +00001036a2ps syntax and ftplugin file. (Nikolai Weibull)
1037ABAB/4 syntax file. (Marius van Wyk)
1038alsaconf ftplugin file. (Nikolai Weibull)
1039AppendMatchGroup ftplugin file. (Dave Silvia)
1040arch ftplugin file. (Nikolai Weibull)
1041asterisk and asteriskvm syntax file. (Tilghman Lesher)
1042BDF ftplugin file. (Nikolai Weibull)
1043BibTeX indent file. (Dorai Sitaram)
Bram Moolenaar437df8f2006-04-27 21:47:44 +00001044BibTeX Bibliography Style syntax file. (Tim Pope)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001045BTM ftplugin file. (Bram Moolenaar)
1046calendar ftplugin file. (Nikolai Weibull)
1047Changelog indent file. (Nikolai Weibull)
Bram Moolenaar57657d82006-04-21 22:12:41 +00001048ChordPro syntax file. (Niels Bo Andersen)
Bram Moolenaarc1e37902006-04-18 21:55:01 +00001049Cmake indent and syntax file. (Andy Cedilnik)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001050conf ftplugin file. (Nikolai Weibull)
1051context syntax and ftplugin file. (Nikolai Weibull)
1052CRM114 ftplugin file. (Nikolai Weibull)
1053cvs RC ftplugin file. (Nikolai Weibull)
1054D indent file. (Jason Mills)
Bram Moolenaard2cec5b2006-03-28 21:08:56 +00001055Debian Sources.list syntax file. (Matthijs Mohlmann)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001056dictconf and dictdconf syntax, indent and ftplugin files. (Nikolai Weibull)
1057diff ftplugin file. (Bram Moolenaar)
1058dircolors ftplugin file. (Nikolai Weibull)
1059django and htmldjango syntax file. (Dave Hodder)
Bram Moolenaar8cacf352006-04-15 20:27:24 +00001060doxygen syntax file. (Michael Geddes)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001061elinks ftplugin file. (Nikolai Weibull)
1062eterm ftplugin file. (Nikolai Weibull)
1063eviews syntax file. (Vaidotas Zemlys)
1064fetchmail RC ftplugin file. (Nikolai Weibull)
Bram Moolenaar437df8f2006-04-27 21:47:44 +00001065FlexWiki syntax and ftplugin file. (George Reilly)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001066Generic indent file. (Dave Silvia)
1067gpg ftplugin file. (Nikolai Weibull)
1068gretl syntax file. (Vaidotas Zemlys)
1069groovy syntax file. (Alessio Pace)
1070group syntax and ftplugin file. (Nikolai Weibull)
1071grub ftplugin file. (Nikolai Weibull)
1072Haskell ftplugin file. (Nikolai Weibull)
1073help ftplugin file. (Nikolai Weibull)
1074indent ftplugin file. (Nikolai Weibull)
1075Javascript ftplugin file. (Bram Moolenaar)
Bram Moolenaar4c3f5362006-04-11 21:38:50 +00001076Kconfig ftplugin and syntax file. (Nikolai Weibull)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001077ld syntax, indent and ftplugin file. (Nikolai Weibull)
1078lftp ftplugin file. (Nikolai Weibull)
1079libao config ftplugin file. (Nikolai Weibull)
1080limits syntax and ftplugin file. (Nikolai Weibull)
1081Lisp indent file. (Sergey Khorev)
1082loginaccess and logindefs syntax and ftplugin file. (Nikolai Weibull)
1083m4 ftplugin file. (Nikolai Weibull)
Bram Moolenaar899dddf2006-03-26 21:06:50 +00001084mailaliases syntax file. (Nikolai Weibull)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001085mailcap ftplugin file. (Nikolai Weibull)
1086manconf syntax and ftplugin file. (Nikolai Weibull)
1087matlab ftplugin file. (Jake Wasserman)
Bram Moolenaar779b74b2006-04-10 14:55:34 +00001088Maxima syntax file. (Robert Dodier)
Bram Moolenaar2a3f7ee2006-02-23 21:34:44 +00001089MGL syntax file. (Gero Kuhlmann)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001090modconf ftplugin file. (Nikolai Weibull)
1091mplayer config ftplugin file. (Nikolai Weibull)
Bram Moolenaar437df8f2006-04-27 21:47:44 +00001092Mrxvtrc syntax and ftplugin file. (Gautam Iyer)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001093MuPAD source syntax, indent and ftplugin. (Dave Silvia)
1094mutt RC ftplugin file. (Nikolai Weibull)
1095nanorc syntax and ftplugin file. (Nikolai Weibull)
1096netrc ftplugin file. (Nikolai Weibull)
1097pamconf syntax and ftplugin file. (Nikolai Weibull)
1098Pascal indent file. (Neil Carter)
1099passwd syntax and ftplugin file. (Nikolai Weibull)
1100PHP compiler plugin. (Doug Kearns)
1101pinfo ftplugin file. (Nikolai Weibull)
Bram Moolenaard2cec5b2006-03-28 21:08:56 +00001102plaintex syntax and ftplugin files. (Nikolai Weibull, Benji Fisher)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001103procmail ftplugin file. (Nikolai Weibull)
1104prolog ftplugin file. (Nikolai Weibull)
1105protocols syntax and ftplugin file. (Nikolai Weibull)
1106quake ftplugin file. (Nikolai Weibull)
1107racc syntax and ftplugin file. (Nikolai Weibull)
Bram Moolenaar261bfea2006-03-01 22:12:31 +00001108rd syntax file. (Johannes Ranke)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001109readline ftplugin file. (Nikolai Weibull)
1110rhelp syntax file. (Johannes Ranke)
Bram Moolenaarc1e37902006-04-18 21:55:01 +00001111rnoweb syntax file. (Johannes Ranke)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001112Relax NG compact ftplugin file. (Nikolai Weibull)
1113Scheme indent file. (Sergey Khorev)
1114screen ftplugin file. (Nikolai Weibull)
1115sensors syntax and ftplugin file. (Nikolai Weibull)
1116services syntax and ftplugin file. (Nikolai Weibull)
1117setserial syntax and ftplugin file. (Nikolai Weibull)
1118sieve syntax and ftplugin file. (Nikolai Weibull)
Bram Moolenaar61660ea2006-04-07 21:40:07 +00001119SiSU syntax file (Ralph Amissah)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001120Sive syntax file. (Nikolai Weibull)
1121slp config, reg and spi syntax and ftplugin files. (Nikolai Weibull)
1122SML indent file. (Saikat Guha)
1123SQL anywhere syntax and indent file. (David Fishburn)
1124SQL indent file.
1125SQL-Informix syntax file. (Dean L Hill)
1126SQL: Handling of various variants. (David Fishburn)
1127sshconfig ftplugin file. (Nikolai Weibull)
Bram Moolenaar8cacf352006-04-15 20:27:24 +00001128Stata and SMCL syntax files. (Jeff Pitblado)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001129sudoers ftplugin file. (Nikolai Weibull)
1130sysctl syntax and ftplugin file. (Nikolai Weibull)
1131terminfo ftplugin file. (Nikolai Weibull)
1132trustees syntax file. (Nima Talebi)
Bram Moolenaarc1e37902006-04-18 21:55:01 +00001133Vera syntax file. (David Eggum)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001134udev config, permissions and rules syntax and ftplugin files. (Nikolai Weibull)
1135updatedb syntax and ftplugin file. (Nikolai Weibull)
1136VHDL indent file (Gerald Lai)
1137WSML syntax file. (Thomas Haselwanter)
1138Xdefaults ftplugin file. (Nikolai Weibull)
1139XFree86 config ftplugin file. (Nikolai Weibull)
1140xinetd syntax, indent and ftplugin file. (Nikolai Weibull)
1141xmodmap ftplugin file. (Nikolai Weibull)
1142Xquery syntax file. (Jean-Marc Vanel)
1143xsd (XML schema) indent file.
1144YAML ftplugin file. (Nikolai Weibull)
1145Zsh ftplugin file. (Nikolai Weibull)
1146
Bram Moolenaar261bfea2006-03-01 22:12:31 +00001147
Bram Moolenaar47136d72004-10-12 20:02:24 +00001148New Keymaps: ~
1149
1150Sinhala (Sri Lanka) (Harshula Jayasuriya)
Bram Moolenaar238a5642006-02-21 22:12:05 +00001151Tamil in TSCII encoding (Yegappan Lakshmanan)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001152Greek in cp737 (Panagiotis Louridas)
1153Polish-slash (HS6_06)
1154Ukrainian-jcuken (Anatoli Sakhnik)
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00001155Kana (Edward L. Fo)
Bram Moolenaar238a5642006-02-21 22:12:05 +00001156
Bram Moolenaar47136d72004-10-12 20:02:24 +00001157
Bram Moolenaar15d0a8c2004-09-06 17:44:46 +00001158New message translations: ~
1159
1160The Ukranian messages are now also available in cp1251.
Bram Moolenaar05159a02005-02-26 23:04:13 +00001161Vietnamese message translations and menu. (Phan Vinh Thinh)
1162
Bram Moolenaar071d4272004-06-13 20:20:40 +00001163
Bram Moolenaarf4b8e572004-06-24 15:53:16 +00001164Others: ~
1165
Bram Moolenaar910f66f2006-04-05 20:41:53 +00001166The |:read| command has the |++edit| argument. This means it will use the
1167detected 'fileformat', 'fileencoding' and other options for the buffer. This
1168also fixes the problem that editing a compressed file didn't set these
1169options.
1170
Bram Moolenaar1f35bf92006-03-07 22:38:47 +00001171The Netbeans interface was updated for Sun Studio 10. The protocol number
1172goes from 2.2 to 2.3. (Gordon Prieur)
1173
Bram Moolenaar1056d982006-03-09 22:37:52 +00001174Mac: When starting up Vim will load the $VIMRUNTIME/macmap.vim script to
Bram Moolenaar34e9e2f2006-03-14 23:07:19 +00001175define default command-key mappings. (mostly by Benji Fisher)
Bram Moolenaar1056d982006-03-09 22:37:52 +00001176
Bram Moolenaarf4b8e572004-06-24 15:53:16 +00001177Mac: Add the selection type to the clipboard, so that Block, line and
1178character selections can be used between two Vims. (Eckehard Berns)
1179Also fixes the problem that setting 'clipboard' to "unnamed" breaks using
1180"yyp".
Bram Moolenaar071d4272004-06-13 20:20:40 +00001181
Bram Moolenaara5792f52005-11-23 21:25:05 +00001182Mac: GUI font selector. (Peter Cucka)
Bram Moolenaar592e0a22004-07-03 16:05:59 +00001183
Bram Moolenaar5313dcb2005-02-22 08:56:13 +00001184Mac: support for multi-byte characters. (Da Woon Jung)
Bram Moolenaarf9393ef2006-04-24 19:47:27 +00001185This doesn't always work properly. If you see text drawing problems try
1186switching the 'macatsui' option off.
Bram Moolenaar5313dcb2005-02-22 08:56:13 +00001187
Bram Moolenaar900b4d72005-12-12 22:05:50 +00001188Mac: Support the xterm mouse in the non-GUI version.
Bram Moolenaar567e4de2004-12-31 21:01:02 +00001189
Bram Moolenaar46c9c732004-12-12 11:37:09 +00001190Mac: better integration with Xcode. Post a fake mouse-up event after the odoc
1191event and the drag receive handler to work around a stall after Vim loads a
1192file. Fixed an off-by-one line number error. (Da Woon Jung)
1193
Bram Moolenaard2cec5b2006-03-28 21:08:56 +00001194Mac: When started from Finder change directory to the file being edited or the
1195user home directory.
1196
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001197Added the t_SI and t_EI escape sequences for starting and ending Insert mode.
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00001198To be used to set the cursor shape to a bar or a block. No default values,
1199they are not supported by termcap/terminfo.
1200
Bram Moolenaar900b4d72005-12-12 22:05:50 +00001201GUI font selector for Motif. (Marcin Dalecki)
1202
1203Nicer toolbar buttons for Motif. (Marcin Dalecki)
1204
1205Mnemonics for the Motif find/replace dialog. (Marcin Dalecki)
1206
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00001207Included a few improvements for Motif from Marcin Dalecki. Draw label
1208contents ourselves to make them handle fonts in a way configurable by Vim and
1209a bit less dependent on the X11 font management.
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001210
Bram Moolenaarb5bf5b82004-12-24 14:35:23 +00001211Autocommands can be defined local to a buffer. This means they will also work
1212when the buffer does not have a name or no specific name. See
1213|autocmd-buflocal|. (Yakov Lerner)
1214
Bram Moolenaar19a09a12005-03-04 23:39:37 +00001215For xterm most combinations of modifiers with function keys are recognized.
1216|xterm-modifier-keys|
1217
Bram Moolenaarae5bce12005-08-15 21:41:48 +00001218When 'verbose' is set the output of ":highlight" will show where a highlight
1219item was last set.
Bram Moolenaare344bea2005-09-01 20:46:49 +00001220When 'verbose' is set the output of the ":map", ":abbreviate", ":command",
1221":function" and ":autocmd" commands will show where it was last defined.
1222(Yegappan Lakshmanan)
Bram Moolenaarae5bce12005-08-15 21:41:48 +00001223
Bram Moolenaardd2436f2005-09-05 22:14:46 +00001224":function /pattern" lists functions matching the pattern.
1225
Bram Moolenaarf75a9632005-09-13 21:20:47 +00001226"1gd" can be used like "gd" but ignores matches in a {} block that ends before
1227the cursor position. Likewise for "1gD" and "gD".
1228
Bram Moolenaar4463f292005-09-25 22:20:24 +00001229'scrolljump' can be set to a negative number to scroll a percentage of the
1230window height.
1231
Bram Moolenaar07d4d732005-10-03 22:04:08 +00001232The |v:scrollstart| variable has been added to help finding the location in
1233your script that causes the hit-enter prompt.
1234
Bram Moolenaar63a121b2005-12-11 21:36:39 +00001235To make it possible to handle the situation that a file is being edited that
1236is already being edited by another Vim instance, the |SwapExists| event has
1237been added. The |v:swapname|, |v:swapchoice| and |v:swapcommand| variables
1238can be used, for example to use the |client-server| functionality to bring the
1239other Vim to the foreground.
Bram Moolenaar146522e2005-12-16 21:55:46 +00001240When starting Vim with a "-t tag" argument, there is an existing swapfile and
1241the user selects "quit" or "abort" then exit Vim.
Bram Moolenaar63a121b2005-12-11 21:36:39 +00001242
Bram Moolenaareddf53b2006-02-27 00:11:10 +00001243Undo now also restores the '< and '> marks. "gv" selects the same area as
1244before the change and undo.
1245
Bram Moolenaarea0cd362006-03-16 21:46:52 +00001246When editing a search pattern for a "/" or "?" command and 'incsearch' is set
1247CTRL-L can be used to add a character from the current match. CTRL-R CTRL-W
1248will add a word, but exclude the part of the word that was already typed.
1249
Bram Moolenaar97b2ad32006-03-18 21:40:56 +00001250Ruby interface: add line number methods. (Ryan Paul)
1251
Bram Moolenaar910f66f2006-04-05 20:41:53 +00001252The $MYVIMRC environment variable is set to the first found vimrc file.
1253The $MYGVIMRC environment variable is set to the first found gvimrc file.
1254
Bram Moolenaar071d4272004-06-13 20:20:40 +00001255==============================================================================
1256IMPROVEMENTS *improvements-7*
1257
Bram Moolenaarf4b8e572004-06-24 15:53:16 +00001258":helpgrep" accepts a language specifier after the pattern: "pat@it".
1259
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00001260Moved the help for printing to a separate help file. It's quite a lot now.
Bram Moolenaar8299df92004-07-10 09:47:34 +00001261
Bram Moolenaar1f35bf92006-03-07 22:38:47 +00001262When doing completion for ":!cmd", ":r !cmd" or ":w !cmd" executable files are
Bram Moolenaar551dbcc2006-04-25 22:13:59 +00001263found in $PATH instead of looking for ordinary files in the current directory.
Bram Moolenaar1f35bf92006-03-07 22:38:47 +00001264
Bram Moolenaara5792f52005-11-23 21:25:05 +00001265When ":silent" is used and a backwards range is given for an Ex command the
1266range is swapped automatically instead of asking if that is OK.
1267
Bram Moolenaar8bf59b92005-03-06 23:40:56 +00001268The pattern matching code was changed from a recursive function to an
1269iterative mechanism. This avoids out-of-stack errors. State is stored in
1270allocated memory, running out of memory can always be detected. Allows
1271matching more complex things, but Vim may seem to hang while doing that.
1272
Bram Moolenaarb71eaae2006-01-20 23:10:18 +00001273Previously some options were always evaluated in the |sandbox|. Now that only
1274happens when the option was set from a modeline or in secure mode. Applies to
1275'balloonexpr', 'foldexpr', 'foldtext' and 'includeexpr'. (Sumner Hayes)
1276
1277Some commands and expressions could have nasty side effects, such as using
1278CTRL-R = while editing a search pattern and the expression invokes a function
1279that jumps to another window. The |textlock| has been added to prevent this
1280from happening.
1281
Bram Moolenaarf4b8e572004-06-24 15:53:16 +00001282":breakadd here" and ":breakdel here" can be used to set or delete a
1283breakpoint at the cursor.
1284
Bram Moolenaar997fb4b2006-02-17 21:53:23 +00001285It is now possible to define a function with: >
1286 :exe "func Test()\n ...\n endfunc"
1287
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00001288The tutor was updated to make it simpler to use and text was added to explain
1289a few more important commands. Used ideas from Gabriel Zachmann.
Bram Moolenaar071d4272004-06-13 20:20:40 +00001290
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001291Unix: When libcall() fails obtain an error message with dlerror() and display
1292it. (Johannes Zellner)
1293
Bram Moolenaarcc016f52005-12-10 20:23:46 +00001294Mac and Cygwin: When editing an existing file make the file name the same case
1295of the edited file. Thus when typing ":e os_UNIX.c" the file name becomes
1296"os_unix.c".
1297
Bram Moolenaar592e0a22004-07-03 16:05:59 +00001298Added "nbsp" in 'listchars'. (David Blanchet)
1299
Bram Moolenaar21cf8232004-07-16 20:18:37 +00001300Added the "acwrite" value for the 'buftype' option. This is for a buffer that
Bram Moolenaara5792f52005-11-23 21:25:05 +00001301does not have a name that refers to a file and is written with BufWriteCmd
Bram Moolenaar21cf8232004-07-16 20:18:37 +00001302autocommands.
1303
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001304For lisp indenting and matching parenthesis: (Sergey Khorev)
1305- square brackets are recognized properly
1306- #\(, #\), #\[ and #\] are recognized as character literals
1307- Lisp line comments (delimited by semicolon) are recognized
1308
Bram Moolenaar89cb5e02004-07-19 20:55:54 +00001309Added the "count" argument to match(), matchend() and matchstr(). (Ilya Sher)
1310
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00001311winnr() takes an optional "$" or "#" argument. (Nikolai Weibull, Yegappan
Bram Moolenaar5eb86f92004-07-26 12:53:41 +00001312Lakshmanan)
1313
Bram Moolenaar768b8c42006-03-04 21:58:33 +00001314Added 's' flag to search(): set ' mark if cursor moved. (Yegappan Lakshmanan)
Bram Moolenaar5eb86f92004-07-26 12:53:41 +00001315Added 'n' flag to search(): don't move the cursor. (Nikolai Weibull)
Bram Moolenaar768b8c42006-03-04 21:58:33 +00001316Added 'c' flag to search(): accept match at the cursor.
1317Added 'e' flag to search(): move to end of the match. (Benji Fisher)
1318Added 'p' flag to search(): return number of sub-pattern. (Benji Fisher)
1319These also apply to searchpos(), searchpair() and searchpairpos().
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00001320
Bram Moolenaar768b8c42006-03-04 21:58:33 +00001321The search() and searchpair() functions have an extra argument to specify
1322where to stop searching. Speeds up searches that should not continue too far.
Bram Moolenaar5eb86f92004-07-26 12:53:41 +00001323
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001324When uncompressing fails in the gzip plugin, give an error message but don't
1325delete the raw text. Helps if the file has a .gz extension but is not
1326actually compressed. (Andrew Pimlott)
1327
1328When C, C++ or IDL syntax is used, may additionally load doxygen syntax.
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001329(Michael Geddes)
1330
Bram Moolenaar97b2ad32006-03-18 21:40:56 +00001331Support setting 'filetype' and 'syntax' to "aaa.bbb" for "aaa" plus "bbb"
1332filetype or syntax.
1333
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001334The ":registers" command now displays multi-byte characters properly.
1335
1336VMS: In the usage message mention that a slash can be used to make a flag
1337upper case. Add color support to the builtin vt320 terminal codes.
1338(Zoltan Arpadffy)
1339
Bram Moolenaar15d0a8c2004-09-06 17:44:46 +00001340For the '%' item in 'viminfo', allow a number to set a maximum for the number
1341of buffers.
1342
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00001343For recognizing the file type: When a file looks like a shell script, check
1344for an "exec" command that starts the tcl interpreter. (suggested by Alexios
1345Zavras)
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00001346
1347Support conversion between utf-8 and latin9 (iso-8859-15) internally, so that
1348digraphs still work when iconv is not available.
1349
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001350When a session file is loaded while editing an unnamed, empty buffer that
1351buffer is wiped out. Avoids that there is an unused buffer in the buffer
1352list.
1353
1354Win32: When libintl.dll supports bind_textdomain_codeset(), use it.
1355(NAKADAIRA Yukihiro)
1356
Bram Moolenaare224ffa2006-03-01 00:01:28 +00001357Win32: Vim was not aware of hard links on NTFS file systems. These are
1358detected now for when 'backupcopy' is "auto". Also fixed a bogus "file has
1359been changed since reading it" error for links.
1360
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001361When foldtext() finds no text after removing the comment leader, use the
1362second line of the fold. Helps for C-style /* */ comments where the first
1363line is just "/*".
1364
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00001365When editing the same file from two systems (e.g., Unix and MS-Windows) there
1366mostly was no warning for an existing swap file, because the name of the
1367edited file differs (e.g., y:\dir\file vs /home/me/dir/file). Added a flag to
1368the swap file to indicate it is in the same directory as the edited file. The
1369used path then doesn't matter and the check for editing the same file is much
1370more reliable.
1371
Bram Moolenaar900b4d72005-12-12 22:05:50 +00001372Unix: When editing a file through a symlink the swap file would use the name
1373of the symlink. Now use the name of the actual file, so that editing the same
1374file twice is detected. (suggestions by Stefano Zacchiroli and James Vega)
1375
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00001376Client-server communication now supports 'encoding'. When setting 'encoding'
1377in a Vim server to "utf-8", and using "vim --remote fname" in a console,
1378"fname" is converted from the console encoding to utf-8. Also allows Vims
1379with different 'encoding' settings to exchange messages.
1380
Bram Moolenaar86b68352004-12-27 21:59:20 +00001381Internal: Changed ga_room into ga_maxlen, so that it doesn't need to be
1382incremented/decremented each time.
1383
Bram Moolenaar49cd9572005-01-03 21:06:01 +00001384When a register is empty it is not stored in the viminfo file.
1385
Bram Moolenaar8c711452005-01-14 21:53:12 +00001386Removed the tcltags script, it's obsolete.
1387
Bram Moolenaar67fe1a12005-05-22 22:12:58 +00001388":redir @*>>" and ":redir @+>>" append to the clipboard. Better check for
Bram Moolenaar5313dcb2005-02-22 08:56:13 +00001389invalid characters after the register name. |:redir|
1390
1391":redir => variable" and ":redir =>> variable" write or append to a variable.
1392(Yegappan Lakshmanan) |:redir|
Bram Moolenaardcaf10e2005-01-21 11:55:25 +00001393
Bram Moolenaar231334e2005-07-25 20:46:57 +00001394":redir @{a-z}>>" appends to register a to z. (Yegappan Lakshmanan)
Bram Moolenaar67fe1a12005-05-22 22:12:58 +00001395
Bram Moolenaar54ee7752005-05-31 22:22:17 +00001396The 'verbosefile' option can be used to log messages in a file. Verbose
1397messages are not displayed then. The "-V{filename}" argument can be used to
1398log startup messages.
1399
Bram Moolenaardcaf10e2005-01-21 11:55:25 +00001400":let g:" lists global variables.
1401":let b:" lists buffer-local variables.
1402":let w:" lists window-local variables.
1403":let v:" lists Vim variables.
1404
Bram Moolenaard438e912005-01-31 19:21:46 +00001405The stridx() and strridx() functions take a third argument, where to start
1406searching. (Yegappan Lakshmanan)
Bram Moolenaarb71ec9f2005-01-25 22:22:02 +00001407
Bram Moolenaar67fe1a12005-05-22 22:12:58 +00001408The getreg() function takes an extra argument to be able to get the expression
1409for the '=' register instead of the result of evaluating it.
1410
1411The setline() function can take a List argument to set multiple lines. When
1412the line number is just below the last line the line is appended.
1413
Bram Moolenaarbee0c5b2005-02-07 22:03:36 +00001414g CTRL-G also shows the number of characters if it differs from the number of
1415bytes.
1416
Bram Moolenaar5313dcb2005-02-22 08:56:13 +00001417Completion for ":debug" and entering an expression for the '=' register. Skip
1418":" between range and command name. (Peter winters)
1419
1420CTRL-Q in Insert mode now works like CTRL-V by default. Previously it was
1421ignored.
1422
1423When "beep" is included in 'debug' a function or script that causes a beep
1424will result in a message with the source of the error.
1425
Bram Moolenaar05159a02005-02-26 23:04:13 +00001426When completing buffer names, match with "\(^\|[\/]\)" instead of "^", so that
1427":buf stor<Tab>" finds both "include/storage.h" and "storage/main.c".
1428
1429To count items (pattern matches) without changing the buffer the 'n' flag has
1430been added to |:substitute|. See |count-items|.
1431
Bram Moolenaarea0cd362006-03-16 21:46:52 +00001432In a |:substitute| command the \u, \U, \l and \L items now also work for
1433multi-byte characters.
1434
Bram Moolenaar038eb0e2005-02-27 22:43:26 +00001435The "screen.linux" $TERM name is recognized to set the default for
Bram Moolenaar482aaeb2005-09-29 18:26:07 +00001436'background' to "dark". (Ciaran McCreesh) Also for "cygwin" and "putty".
Bram Moolenaar19a09a12005-03-04 23:39:37 +00001437
1438The |FileChangedShell| autocommand event can now use the |v:fcs_reason|
1439variable that specifies what triggered the event. |v:fcs_choice| can be used
1440to reload the buffer or ask the user what to do.
Bram Moolenaar038eb0e2005-02-27 22:43:26 +00001441
Bram Moolenaar8bf59b92005-03-06 23:40:56 +00001442Not all modifiers were recognized for xterm function keys. Added the
1443possibility in term codes to end in ";*X" or "O*X", where X is any character
1444and the * stands for the modifier code.
1445Added the <xUp>, <xDown>, <xLeft> and <xRight> keys, to be able to recognize
1446the two forms that xterm can send their codes in and still handle all possible
1447modifiers.
1448
Bram Moolenaarc0761132005-03-18 20:30:32 +00001449getwinvar() now also works to obtain a buffer-local option from the specified
1450window.
1451
Bram Moolenaarb982ca52005-03-28 21:02:15 +00001452Added the "%s" item to 'errorformat'. (Yegappan Lakshmanan)
Bram Moolenaarb3656ed2006-03-20 21:59:49 +00001453Added the "%>" item to 'errorformat'.
1454
1455For 'errorformat' it was not possible to have a file name that contains the
1456character that follows after "%f". For example, in "%f:%l:%m" the file name
1457could not contain ":". Now include the first ":" where the rest of the
1458pattern matches. In the example a ":" not followed by a line number is
1459included in the file name. (suggested by Emanuele Giaquinta)
Bram Moolenaarb982ca52005-03-28 21:02:15 +00001460
Bram Moolenaar34cdc3e2005-05-18 22:24:46 +00001461GTK GUI: use the GTK file dialog when it's available. Mix from patches by
1462Grahame Bowland and Evan Webb.
1463
Bram Moolenaar9ba0eb82005-06-13 22:28:56 +00001464Added ":scriptnames" to bugreport.vim, so that we can see what plugins were
1465used.
1466
Bram Moolenaar520470a2005-06-16 21:59:56 +00001467Win32: If the user changes the setting for the number of lines a scroll wheel
1468click scrolls it is now used immediately. Previously Vim would need to be
1469restarted.
1470
Bram Moolenaarb2ec3072005-06-17 22:02:20 +00001471When using @= in an expression the value is expression @= contains. ":let @=
1472= value" can be used to set the register contents.
1473
Bram Moolenaar51bab742005-07-08 22:31:03 +00001474A ! can be added to ":popup" to have the popup menu appear at the mouse
1475pointer position instead of the text cursor.
1476
Bram Moolenaard8e9bb22005-07-09 21:14:46 +00001477The table with encodings has been expanded with many MS-Windows codepages,
1478such as cp1250 and cp737, so that these can also be used on Unix without
1479prepending "8bit-".
Bram Moolenaarae5bce12005-08-15 21:41:48 +00001480When an encoding name starts with "microsoft-cp" ignore the "microsoft-" part.
Bram Moolenaard8e9bb22005-07-09 21:14:46 +00001481
1482Added the "customlist" completion argument to a user-defined command. The
1483user-defined completion function should return the completion candidates as a
Bram Moolenaar231334e2005-07-25 20:46:57 +00001484Vim List and the returned results are not filtered by Vim. (Yegappan
1485Lakshmanan)
Bram Moolenaard8e9bb22005-07-09 21:14:46 +00001486
Bram Moolenaar342337a2005-07-21 21:11:17 +00001487Win32: Balloons can have multiple lines if common controls supports it.
1488(Sergey Khorev)
1489
Bram Moolenaar90cfdbe2005-08-12 19:59:19 +00001490For command-line completion the matches for various types of arguments are now
1491sorted: user commands, variables, syntax names, etc.
1492
Bram Moolenaara2036d22005-08-23 21:04:20 +00001493When no locale is set, thus using the "C" locale, Vim will work with latin1
Bram Moolenaara5792f52005-11-23 21:25:05 +00001494characters, using its own isupper()/toupper()/etc. functions.
Bram Moolenaara2036d22005-08-23 21:04:20 +00001495
Bram Moolenaarac6e65f2005-08-29 22:25:38 +00001496When using an rxvt terminal emulator guess the value of 'background' using the
1497COLORFGBG environment variable. (Ciaran McCreesh)
1498
1499Also support t_SI and t_EI on Unix with normal features. (Ciaran McCreesh)
1500
Bram Moolenaardcca87b2005-09-10 19:24:59 +00001501When 'foldcolumn' is one then put as much info in it as possible. This allows
1502closing a fold with the mouse by clicking on the '-'.
1503
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +00001504input() takes an optional completion argument to specify the type of
1505completion supported for the input. (Yegappan Lakshmanan)
1506
Bram Moolenaar4463f292005-09-25 22:20:24 +00001507"dp" works with more than two buffers in diff mode if there is only one where
1508'modifiable' is set.
1509
Bram Moolenaar27dc1952006-03-15 23:06:44 +00001510The 'diffopt' option has three new values: "horizontal", "vertical" and
1511"foldcolumn".
1512
Bram Moolenaar69e0ff92005-09-30 21:23:56 +00001513When the 'include' option contains \zs the file name found is what is being
1514matched from \zs to the end or \ze. Useful to pass more to 'includeexpr'.
1515
Bram Moolenaar07d4d732005-10-03 22:04:08 +00001516Loading plugins on startup now supports subdirectories in the plugin
1517directory. |load-plugins|
1518
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +00001519In the foldcolumn always show the '+' for a closed fold, so that it can be
1520opened easily. It may overwrite another character, esp. if 'foldcolumn' is 1.
1521
1522It is now possible to get the W10 message again by setting 'readonly'. Useful
1523in the FileChangedRO autocommand when checking out the file fails.
1524
Bram Moolenaar784c6142005-10-11 20:34:58 +00001525Unix: When open() returns EFBIG give an appropriate message.
1526
Bram Moolenaar241a8aa2005-12-06 20:04:44 +00001527":mksession" sets the SessionLoad variable to notify plugins. A modeline is
1528added to the session file to set 'filetype' to "vim".
1529
Bram Moolenaard5bc83f2005-12-07 21:07:59 +00001530In the ATTENTION prompt put the "Delete it" choice before "Quit" to make it
1531more logical. (Robert Webb)
1532
Bram Moolenaar63a121b2005-12-11 21:36:39 +00001533When appending to a file while the buffer has no name the name of the appended
1534file would be used for the current buffer. But the buffer contents is
1535actually different from the file content. Don't set the file name, unless the
1536'P' flag is present in 'cpoptions'.
1537
Bram Moolenaar900b4d72005-12-12 22:05:50 +00001538When starting to edit a new file and the directory for the file doesn't exist
1539then Vim will report "[New DIRECTORY]" instead of "[New File] to give the user
1540a hint that something might be wrong.
1541
Bram Moolenaarbca84a12005-12-14 22:08:35 +00001542Win32: Preserve the hidden attribute of the viminfo file.
1543
Bram Moolenaar146522e2005-12-16 21:55:46 +00001544In Insert mode CTRL-A didn't keep the last inserted text when using CTRL-O and
1545then a cursor key. Now keep the previously inserted text if nothing is
1546inserted after the CTRL-O. Allows using CTRL-O commands to move the cursor
1547without losing the last inserted text.
Bram Moolenaarbca84a12005-12-14 22:08:35 +00001548
Bram Moolenaarf4cd3e82005-12-22 22:47:02 +00001549The exists() function now supports checking for autocmd group definition
Bram Moolenaarcc984262005-12-23 22:19:46 +00001550and for supported autocommand events. (Yegappan Lakshmanan)
Bram Moolenaara9b1e742005-12-19 22:14:58 +00001551
Bram Moolenaar4770d092006-01-12 23:22:24 +00001552Allow using ":global" in the sandbox, it doesn't do anything harmful by
1553itself.
1554
Bram Moolenaarb71eaae2006-01-20 23:10:18 +00001555":saveas asdf.c" will set 'filetype' to c when it's empty. Also for ":w
1556asdf.c" when it sets the filename for the buffer.
1557
Bram Moolenaar1d2ba7f2006-02-14 22:29:30 +00001558Insert mode completion for whole lines now also searches unloaded buffers.
Bram Moolenaarb71eaae2006-01-20 23:10:18 +00001559
Bram Moolenaarf740b292006-02-16 22:11:02 +00001560The colortest.vim script can now be invoked directly with ":source" or
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00001561":runtime syntax/colortest.vim".
Bram Moolenaarf740b292006-02-16 22:11:02 +00001562
Bram Moolenaard1f56e62006-02-22 21:25:37 +00001563The 'statusline' option can be local to the window, so that each window can
1564have a different value. (partly by Yegappan Lakshmanan)
1565
Bram Moolenaar238a5642006-02-21 22:12:05 +00001566The 'statusline' option and other options that support the same format can now
1567use these new features:
1568- When it starts with "%!" the value is first evaluated as an expression
1569 before parsing the value.
1570- "%#HLname#" can be used to start highlighting with HLname.
1571
Bram Moolenaard1f56e62006-02-22 21:25:37 +00001572When 'statusline' is set to something that causes an error message then it is
1573made empty to avoid an endless redraw loop. Also for other options, such at
Bram Moolenaarea0cd362006-03-16 21:46:52 +00001574'tabline' and 'titlestring'. ":verbose set statusline" will mention that it
1575was set in an error handler.
Bram Moolenaard1f56e62006-02-22 21:25:37 +00001576
Bram Moolenaar32466aa2006-02-24 23:53:04 +00001577When there are several matching tags, the ":tag <name>" and CTRL-] commands
1578jump to the [count] matching tag. (Yegappan Lakshmanan)
1579
Bram Moolenaar97b2ad32006-03-18 21:40:56 +00001580Win32: In the batch files generated by the install program, use $VIMRUNTIME or
1581$VIM if it's set. Example provided by Mathias Michaelis.
1582Also create a vimtutor.bat batch file.
Bram Moolenaar32466aa2006-02-24 23:53:04 +00001583
Bram Moolenaarb3656ed2006-03-20 21:59:49 +00001584The 'balloonexpr' option is now |global-local|.
1585
Bram Moolenaare580b0c2006-03-21 21:33:03 +00001586The system() function now runs in cooked mode, thus can be interrupted by
1587CTRL-C.
1588
Bram Moolenaar071d4272004-06-13 20:20:40 +00001589==============================================================================
1590COMPILE TIME CHANGES *compile-changes-7*
1591
Bram Moolenaar2079a602005-01-04 21:43:22 +00001592Dropped the support for the BeOS and Amiga GUI. They were not maintained and
1593probably didn't work. If you want to work on this: get the Vim 6.x version
1594and merge it back in.
1595
Bram Moolenaar5313dcb2005-02-22 08:56:13 +00001596When running the tests and one of them fails to produce "test.out" the
1597following tests are still executed. This helps when running out of memory.
1598
Bram Moolenaarf461c8e2005-06-25 23:04:51 +00001599When compiling with EXITFREE defined and the ccmalloc library it is possible
1600to detect memory leaks. Some memory will always reported as leaked, such as
1601allocated by X11 library functions and the memory allocated in alloc_cmdbuff()
1602to store the ":quit" command.
1603
Bram Moolenaar231334e2005-07-25 20:46:57 +00001604Moved the code for printing to src/hardcopy.c.
1605
1606Moved some code from main() to separate functions to make it easier to see
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00001607what is being done. Using a structure to avoid a lot of arguments to the
Bram Moolenaar231334e2005-07-25 20:46:57 +00001608functions.
1609
1610Moved unix_expandpath() to misc1.c, so that it can also be used by os_mac.c
1611without copying the code.
1612
Bram Moolenaar362e1a32006-03-06 23:29:24 +00001613--- Mac ---
1614
1615"make" now creates the Vim.app directory and "make install" copies it to its
1616final destination. (Raf)
1617
Bram Moolenaar27dc1952006-03-15 23:06:44 +00001618Put the runtime directory not directly in Vim.app but in
1619Vim.app/Contents/Resources/vim, so that it's according to Mac specs.
1620
Bram Moolenaar362e1a32006-03-06 23:29:24 +00001621Made it possible to compile with Motif, Athena or GTK without tricks and still
1622being able to use the MacRoman conversion. Added the os_mac_conv.c file.
1623
1624When running "make install" the runtime files are installed as for Unix.
Bram Moolenaare344bea2005-09-01 20:46:49 +00001625Avoids that too many files are copied. When running "make" a link to the
1626runtime files is created to avoid a recursive copy that takes much time.
1627
Bram Moolenaar362e1a32006-03-06 23:29:24 +00001628Configure will attempt to build Vim for both Intel and PowerPC. The
Bram Moolenaareddf53b2006-02-27 00:11:10 +00001629--with-mac-arch configure argument can change it.
1630
Bram Moolenaar362e1a32006-03-06 23:29:24 +00001631--- Win32 ---
1632
1633The Make_mvc.mak file was adjusted to work with the latest MS compilers,
1634including the free version of Visual Studio 2005. (George Reilly)
1635
1636INSTALLpc.txt was updated for the recent changes. (George Reilly)
1637
1638The distributed executable is now produced with the free Visual C++ Toolkit
16392003 and other free SDK chunks. msvcsetup.bat was added to support this.
1640
1641Also generate the .pdb file that can be used to generate a useful crash report
1642on MS-Windows. (George Reilly)
1643
Bram Moolenaar071d4272004-06-13 20:20:40 +00001644==============================================================================
1645BUG FIXES *bug-fixes-7*
1646
Bram Moolenaarf4b8e572004-06-24 15:53:16 +00001647When using PostScript printing on MS-DOS the default 'printexpr' used "lpr"
1648instead of "copy". When 'printdevice' was empty the copy command did not
1649work. Use "LPT1" then.
1650
1651The GTK font dialog uses a font size zero when the font name doesn't include a
1652size. Use a default size of 10.
1653
1654This example in the documentation didn't work:
1655 :e `=foo . ".c" `
1656Skip over the expression in `=expr` when looking for comments, |, % and #.
1657
1658When ":helpgrep" doesn't find anything there is no error message.
1659
1660"L" and "H" did not take closed folds into account.
1661
1662Win32: The "-P title" argument stopped at the first title that matched, even
1663when it doesn't support MDI.
1664
1665Mac GUI: CTRL-^ and CTRL-@ did not work.
1666
1667"2daw" on "word." at the end of a line didn't include the preceding white
1668space.
1669
1670Win32: Using FindExecutable() doesn't work to find a program. Use
1671SearchPath() instead. For executable() use $PATHEXT when the program searched
1672for doesn't have an extension.
1673
1674When 'virtualedit' is set, moving the cursor up after appending a character
1675may move it to a different column. Was caused by auto-formatting moving the
1676cursor and not putting it back where it was.
1677
1678When indent was added automatically and then moving the cursor, the indent was
1679not deleted (like when pressing ESC). The "I" flag in 'cpoptions' can be used
1680to make it work the old way.
1681
Bram Moolenaarf4b8e572004-06-24 15:53:16 +00001682When opening a command-line window, 'textwidth' gets set to 78 by the Vim
1683filetype plugin. Reset 'textwidth' to 0 to avoid lines are broken.
1684
1685After using cursor(line, col) moving up/down doesn't keep the same column.
1686
1687Win32: Borland C before 5.5 requires using ".u." for LowPart and HighPart
1688fields. (Walter Briscoe)
Bram Moolenaar071d4272004-06-13 20:20:40 +00001689
Bram Moolenaar843ee412004-06-30 16:16:41 +00001690On Sinix SYS_NMLN isn't always defined. Define it ourselves. (Cristiano De
1691Michele)
1692
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001693Printing with PostScript may keep the printer waiting for more. Append a
1694CTRL-D to the printer output. (Mike Williams)
1695
Bram Moolenaar2df6dcc2004-07-12 15:53:54 +00001696When converting a string with a hex or octal number the leading '-' was
1697ignored. ":echo '-05' + 0" resulted in 5 instead of -5.
1698
1699Using "@:" to repeat a command line didn't work when it contains control
Bram Moolenaar90cfdbe2005-08-12 19:59:19 +00001700characters. Also remove "'<,'>" when in Visual mode to avoid that it appears
1701twice.
Bram Moolenaar2df6dcc2004-07-12 15:53:54 +00001702
Bram Moolenaar21cf8232004-07-16 20:18:37 +00001703When using file completion for a user command, it would not expand environment
1704variables like for a regular command with a file argument.
1705
1706'cindent': When the argument of a #define looks like a C++ class the next line
1707is indented too much.
1708
1709When 'comments' includes multi-byte characters inserting the middle part and
1710alignment may go wrong. 'cindent' also suffers from this for right-aligned
1711items.
1712
Bram Moolenaar05159a02005-02-26 23:04:13 +00001713Win32: when 'encoding' is set to "utf-8" getenv() still returns strings in the
1714active codepage. Convert to utf-8. Also for $HOME.
1715
Bram Moolenaarab79bcb2004-07-18 21:34:53 +00001716The default for 'helplang' was "zh" for both "zh_cn" and "zh_tw". Now use
1717"cn" or "tw" as intended.
1718
Bram Moolenaar5eb86f92004-07-26 12:53:41 +00001719When 'bin' is set and 'eol' is not set then line2byte() added the line break
1720after the last line while it's not there.
1721
1722Using foldlevel() in a WinEnter autocommand may not work. Noticed when
1723resizing the GUI shell upon startup.
1724
1725Python: Using buffer.append(f.readlines()) didn't work. Allow appending a
1726string with a trailing newline. The newline is ignored.
1727
Bram Moolenaar269ec652004-07-29 08:43:53 +00001728When using the ":saveas f2" command for buffer "f1", the Buffers menu would
1729contain "f2" twice, one of them leading to "f1". Also trigger the BufFilePre
1730and BufFilePost events for the alternate buffer that gets the old name.
1731
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001732strridx() did not work well when the needle is empty. (Ciaran McCreesh)
1733
1734GTK: Avoid a potential hang in gui_mch_wait_for_chars() when input arrives
1735just before it is invoked
1736
1737VMS: Occasionally CR characters were inserted in the file. Expansion of
1738environment variables was not correct. (Zoltan Arpadffy)
1739
1740UTF-8: When 'delcombine' is set "dw" only deleted the last combining character
1741from the first character of the word.
1742
1743When using ":sball" in an autocommand only the filetype in one buffer was
1744detected. Reset did_filetype in enter_buffer().
1745
1746When using ":argdo" and the window already was at the first argument index,
1747but not actually editing it, the current buffer would be used instead.
1748
Bram Moolenaar15d0a8c2004-09-06 17:44:46 +00001749When ":next dir/*" includes many matches, adding the names to the argument
1750list may take an awful lot of time and can't be interrupted. Allow
1751interrupting this.
1752
1753When editing a file that was already loaded in a buffer, modelines were not
1754used. Now window-local options in the modeline are set. Buffer-local options
1755and global options remain unmodified.
1756
1757Win32: When 'encoding' is set to "utf-8" in the vimrc file, files from the
1758command line with non-ASCII characters are not used correctly. Recode the
1759file names when 'encoding' is set, using the Unicode command line.
1760
Bram Moolenaarc0197e22004-09-13 20:26:32 +00001761Win32 console: When the default for 'encoding' ends up to be "latin1", the
1762default value of 'isprint' was wrong.
1763
1764When an error message is given while waiting for a character (e.g., when an
1765xterm reports the number of colors), the hit-enter prompt overwrote the last
1766line. Don't reset msg_didout in normal_cmd() for K_IGNORE.
1767
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00001768Mac GUI: Shift-Tab didn't work.
1769
1770When defining tooltip text, don't translate terminal codes, since it's not
1771going to be used like a command.
1772
1773GTK 2: Check the tooltip text for valid utf-8 characters to avoid getting a
1774GTK error. Invalid characters may appear when 'encoding' is changed.
1775
1776GTK 2: Add a safety check for invalid utf-8 sequences, they can crash pango.
1777
1778Win32: When 'encoding' is changed while starting up, use the Unicode command
1779line to convert the file arguments to 'encoding'. Both for the GUI and the
1780console version.
1781
1782Win32 GUI: latin9 text (iso-8859-15) was not displayed correctly, because
1783there is no codepage for latin9. Do our own conversion from latin9 to UCS2.
1784
Bram Moolenaar7b0294c2004-10-11 10:16:09 +00001785When two versions of GTK+ 2 are installed it was possible to use the header
1786files from one and the library from the other. Use GTK_LIBDIR to put the
1787directory for the library early in the link flags.
1788
1789With the GUI find/replace dialog a replace only worked if the pattern was
1790literal text. Now it works for any pattern.
1791
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001792When 'equalalways' is set and 'eadirection' is "hor", ":quit" would still
1793cause equalizing window heights in the vertical direction.
1794
1795When ":emenu" is used in a startup script the command was put in the typeahead
1796buffer, causing a prompt for the crypt key to be messed up.
1797
1798Mac OS/X: The default for 'isprint' included characters 128-160, causes
1799problems for Terminal.app.
1800
1801When a syntax item with "containedin" is used, it may match in the start or
1802end of a region with a matchgroup, while this doesn't happen for a "contains"
1803argument.
1804
1805When a transparent syntax items matches in another item where the highlighting
1806has already stopped (because of a he= argument), the highlighting would come
1807back.
1808
1809When cscope is used to set the quickfix error list, it didn't get set if there
1810was only one match. (Sergey Khorev)
1811
1812When 'confirm' is set and using ":bdel" in a modified buffer, then selecting
1813"cancel", would still give an error message.
1814
1815The PopUp menu items that started Visual mode didn't work when not in Normal
1816mode. Switching between selecting a word and a line was not possible.
1817
1818Win32: The keypad decimal point always resulted in a '.', while on some
1819keyboards it's a ','. Use MapVirtualKey(VK_DECIMAL, 2).
1820
1821Removed unused function DisplayCompStringOpaque() from gui_w32.c
1822
1823In Visual mode there is not always an indication whether the line break is
1824selected or not. Highlight the character after the line when the line break
1825is included, e.g., after "v$o".
1826
1827GTK: The <F10> key can't be mapped, it selects the menu. Disable that with a
1828GTK setting and do select the menu when <F10> isn't mapped. (David Necas)
1829
1830After "Y" '[ and '] were not at start/end of the yanked text.
1831
1832When a telnet connection is dropped Vim preserves files and exits. While
Bram Moolenaar8ea91232006-04-28 22:41:43 +00001833doing that a SIGHUP may arrive and disturb us, thus ignore it. (Scott
Bram Moolenaar46c9c732004-12-12 11:37:09 +00001834Anderson) Also postpone SIGHUP, SIGQUIT and SIGTERM until it's safe to
1835handle. Added handle_signal().
1836
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00001837When completing a file name on the command line backslashes are required for
1838white space. Was only done for a space, not for a Tab.
1839
1840When configure could not find a terminal library, compiling continued for a
1841long time before reporting the problem. Added a configure check for tgetent()
1842being found in a library.
1843
1844When the cursor is on the first char of the last line a ":g/pat/s///" command
1845may cause the cursor to be displayed below the text.
1846
1847Win32: Editing a file with non-ASCII characters doesn't work when 'encoding'
1848is "utf-8". use _wfullpath() instead of _fullpath(). (Yu-sung Moon)
1849
1850When recovering the 'fileformat' and 'fileencoding' were taken from the
1851original file instead of from the swapfile. When the file didn't exist, was
1852empty or the option was changed (e.g., with ":e ++fenc=cp123 file") it could
1853be wrong. Now store 'fileformat' and 'fileencoding' in the swapfile and use
1854the values when recovering.
1855
1856":bufdo g/something/p" overwrites each last printed text line with the file
1857message for the next buffer. Temporarily clear 'shortmess' to avoid that.
1858
Bram Moolenaarb5bf5b82004-12-24 14:35:23 +00001859Win32: Cannot edit a file starting with # with --remote. Do escape % and #
1860when building the ":drop" command.
1861
Bram Moolenaar8ea91232006-04-28 22:41:43 +00001862A comment or | just after a expression-backtick argument was not recognized.
Bram Moolenaar86b68352004-12-27 21:59:20 +00001863E.g. in :e `="foo"`"comment.
1864
Bram Moolenaar567e4de2004-12-31 21:01:02 +00001865"(" does not stop at an empty sentence (single dot and white space) while ")"
1866does. Also breaks "das" on that dot.
1867
1868When doing "yy" with the cursor on a TAB the ruler could be wrong and "k"
1869moved the cursor to another column.
1870
1871When 'commentstring' is '"%s' and there is a double quote in the line a double
1872quote before the fold marker isn't removed in the text displayed for a closed
1873fold.
1874
1875In Visual mode, when 'bin' and 'eol' set, g CTRL-G counted the last line
1876break, resulting in "selected 202 of 201 bytes".
1877
Bram Moolenaar2079a602005-01-04 21:43:22 +00001878Motif: fonts were not used for dialog components. (Marcin Dalecki)
Bram Moolenaar567e4de2004-12-31 21:01:02 +00001879
Bram Moolenaar49cd9572005-01-03 21:06:01 +00001880Motif: After using a toolbar button the keyboard focus would be on the toolbar
Bram Moolenaar2079a602005-01-04 21:43:22 +00001881(Lesstif problem). (Marcin Dalecki)
Bram Moolenaar49cd9572005-01-03 21:06:01 +00001882
Bram Moolenaar1c2fda22005-01-02 11:43:19 +00001883When using "y<C-V>`x" where mark x is in the first column, the last line was
1884not included.
1885
1886Not all test scripts work properly on MS-Windows when checked out from CVS.
1887Use a Vim command to fix all fileformats to dos before executing the tests.
1888
1889When using ":new" and the file fits in the window, lines could still be above
1890the window. Now remove empty lines instead of keeping the relative position.
1891
Bram Moolenaar3d60ec22005-01-05 22:19:46 +00001892Cmdline completion didn't work after ":let var1 var<Tab>".
1893
Bram Moolenaarb7d6e722005-01-09 21:22:45 +00001894When using ":startinsert" or ":startreplace" when already in Insert mode
1895(possible when using CTRL-R =), pressing Esc would directly restart Insert
1896mode. (Peter Winters)
1897
Bram Moolenaar31c67ef2005-01-11 21:34:41 +00001898"2daw" didn't work at end of file if the last word is a single character.
1899
Bram Moolenaar8c711452005-01-14 21:53:12 +00001900Completion for ":next a'<Tab>" put a backslash before single quote, but it was
1901not removed when editing a file. Now halve backslashes in save_patterns().
Bram Moolenaar798c5a72005-01-16 22:06:30 +00001902Also fix expanding a file name with the shell that contains "\'".
Bram Moolenaar8c711452005-01-14 21:53:12 +00001903
Bram Moolenaarb71ec9f2005-01-25 22:22:02 +00001904When doing "1,6d|put" only "fewer lines" was reported. Now a following "more
1905lines" overwrites the message.
1906
1907Configure could not handle "-Dfoo=long\ long" in the TCL config output.
1908
Bram Moolenaarb2956cd2005-01-27 14:42:53 +00001909When searching backwards, using a pattern that matches a newline and uses \zs
1910after that, didn't find a match. Could also get a hang or end up in the right
1911column in the wrong line.
1912
Bram Moolenaard438e912005-01-31 19:21:46 +00001913When $LANG is "sl" for slovenian, the slovak menu was used, since "slovak"
1914starts with "sl".
1915
1916When 'paste' is set in the GUI the Paste toolbar button doesn't work. Clear
1917'paste' when starting the GUI.
1918
Bram Moolenaarf5836682005-02-02 23:09:45 +00001919A message about a wrong viminfo line included the trailing NL.
1920
Bram Moolenaar2a8d1f82005-02-05 21:43:56 +00001921When 'paste' is set in the GUI the toolbar button doesn't work in Insert mode.
1922Use ":exe" in menu.vim to avoid duplicating the commands, instead of using a
1923mapping.
1924
1925Treat "mlterm" as an xterm-like terminal. (Seiichi Sato)
1926
1927":z.4" and ":z=4" didn't work Vi compatible.
1928
Bram Moolenaarbee0c5b2005-02-07 22:03:36 +00001929When sourcing a file, editing it and sourcing it again, it could appear twice
1930in ":scriptnames" and get a new <SID>, because the inode has changed.
1931
1932When $SHELL is set but empty the 'shell' option would be empty. Don't use an
1933empty $SHELL value.
1934
1935A command "w! file" in .vimrc or $EXINIT didn't work. Now it writes an empty
1936file.
1937
1938When a CTRL-F command at the end of the file failed, the cursor was still
1939moved to the start of the line. Now it remains where it is.
1940
1941When using ":s" or "&" to repeat the last substitute and "$" was used to put
1942the cursor in the last column, put the cursor in the last column again. This
1943is Vi compatible.
1944
Bram Moolenaar4399ef42005-02-12 14:29:27 +00001945Vim is not fully POSIX compliant but sticks with traditional Vi behavior.
1946Added a few flags in 'cpoptions' to behave the POSIX way when wanted. The
1947$VIM_POSIX environment variable is checked to set the default.
1948
1949Appending to a register didn't insert a line break like Vi. Added the '>'
1950flag to 'cpoptions' for this.
1951
1952Using "I" in a line with only blanks appended to the line. This is not Vi
1953compatible. Added the 'H' flag in 'coptions' for this.
1954
1955When joining multiple lines the cursor would be at the last joint, but Vi
1956leaves it at the position where "J" would put it. Added the 'q' flag in
1957'cpoptions' for this.
1958
1959Autoindent didn't work for ":insert" and ":append".
1960
1961Using ":append" in an empty buffer kept the dummy line. Now it's deleted to
1962be Vi compatible.
1963
1964When reading commands from a file and stdout goes to a terminal, would still
1965request the xterm version. Vim can't read it, thus the output went to the
1966shell and caused trouble there.
1967
Bram Moolenaar5313dcb2005-02-22 08:56:13 +00001968When redirecting to a register with an invalid name the redirection would
1969still be done (after an error message). Now reset "redir_reg". (Yegappan
1970Lakshmanan)
1971
1972It was not possible to use a NL after a backslash in Ex mode. This is
1973sometimes used to feed multiple lines to a shell command.
1974
Bram Moolenaar05159a02005-02-26 23:04:13 +00001975When 'cmdheight' is set to 2 in .vimrc and the GUI uses the number of lines
1976from the terminal we actually get 3 lines for the cmdline in gvim.
1977
1978When setting $HOME allocated memory would leak.
1979
Bram Moolenaar19a09a12005-03-04 23:39:37 +00001980Win32: bold characters may sometimes write in another character cell. Use
1981unicodepdy[] as for UTF-8. (Taro Muraoka)
1982
1983":w fname" didn't work for files with 'buftype' set to "nofile".
1984
Bram Moolenaare2ac10d2005-03-07 23:26:06 +00001985The method used to locate user commands for completion differed from when they
1986are executed. Abiguous command names were not completed properly.
1987
Bram Moolenaar9062a9d2005-03-08 22:46:26 +00001988Incremental search may cause a crash when there is a custom statusline that
1989indirectly invokes ":normal".
1990
1991Diff mode failed when $DIFF_OPTIONS was set in the environment. Unset it
1992before invoking "diff".
1993
Bram Moolenaar4ad237d2005-03-11 22:49:40 +00001994Completion didn't work after ":argdo", ":windo" and ":bufdo". Also for ":set
1995&l:opt" and ":set &g:opt". (Peter Winters)
1996
1997When setting 'ttymouse' to "dec" in an xterm that supports the DEC mouse
1998locator it doesn't work. Now switch off the mouse before selecting another
1999mouse model.
2000
Bram Moolenaarfb269802005-03-15 22:46:30 +00002001When the CursorHold event is triggered and the commands peek for typed
2002characters the typeahead buffer may be messed up, e.g., when a mouse-up event
2003is received. Avoid invoking the autocommands from the function waiting for a
2004character, let it put K_CURSORHOLD in the input buffer.
2005
2006Removed the "COUNT" flag from ":argadd", to avoid ":argadd 1*" to be used like
Bram Moolenaarc0761132005-03-18 20:30:32 +00002007":1argadd *". Same for ":argdelete" and ":argedit".
Bram Moolenaarfb269802005-03-15 22:46:30 +00002008
2009Avoid that $LANG is used for the menus when LC_MESSAGES is "en_US".
2010
Bram Moolenaarc0761132005-03-18 20:30:32 +00002011Added backslashes before dashes in the vim.1 manual page to make the appear as
2012real dashes. (Pierr Habouzit)
2013
2014Where "gq" left the cursor depended on the value of 'formatprg'. Now "gq"
2015always leaves the cursor at the last line of the formatted text.
2016
2017When editing a compressed file, such as "changelog.Debian.gz" file, filetype
2018detection may try to check the contents of the file while it's still
2019compressed. Skip setting 'filetype' for compressed files until they have been
2020decompressed. Required for patterns that end in a "*".
2021
2022Starting with an argument "+cmd" or "-S script" causes the cursor the be moved
2023to the first line. That breaks a BufReadPost autocommand that uses g`".
2024Don't move the cursor if it's somewhere past the first line.
2025
2026"gg=G" while 'modifiable' is off was uninterruptable.
2027
Bram Moolenaar60c78922005-03-20 22:40:14 +00002028When 'encoding' is "sjis" inserting CTRL-V u d800 a few times causes a crash.
2029Don't insert a DBCS character with a NUL second byte.
2030
Bram Moolenaar2641f772005-03-25 21:58:17 +00002031In Insert mode CTRL-O <Home> didn't move the cursor. Made "ins_at_eol" global
2032and reset it in nv_home().
2033
Bram Moolenaarb982ca52005-03-28 21:02:15 +00002034Wildcard expansion failed: ":w /tmp/$$.`echo test`". Don't put quotes around
2035spaces inside backticks.
2036
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00002037After this sequence of commands: Y V p gv: the wrong line is selected. Now
2038let "gv" select the text that was put, since the original text is deleted.
2039This should be the most useful thing to do.
2040
2041":sleep 100u" sleeps for 100 seconds, not 100 usec as one might expect. Give
2042an error message when the argument isn't recognized.
2043
2044In gui_mch_draw_string() in gui_w32.c "unibuflen" wasn't static, resulting in
2045reallocating the buffer every time. (Alexei Alexandrov)
2046
Bram Moolenaar0e21a3f2005-04-17 20:28:32 +00002047When using a Python "atexit" function it was not invoked when Vim exits. Now
2048call Py_Finalize() for that. (Ugo Di Girolamo)
Bram Moolenaar9ba0eb82005-06-13 22:28:56 +00002049This breaks the thread stuff though, fixed by Ugo.
Bram Moolenaar0e21a3f2005-04-17 20:28:32 +00002050
Bram Moolenaardba8a912005-04-24 22:08:39 +00002051GTK GUI: using a .vimrc with "set cmdheight=2 lines=43" and ":split" right
2052after startup, the window layout is messed up. (Michael Schaap) Added
2053win_new_shellsize() call in gui_init() to fix the topframe size.
2054
2055Trick to get ...MOUSE_NM not used when there are vertical splits. Now pass
2056column -1 for the left most window and add MOUSE_COLOFF for others. Limits
2057mouse column to 10000.
2058
2059searchpair() may hang when the end pattern has "\zs" at the end. Check that
2060we find the same position again and advance one character.
2061
2062When in diff mode and making a change that causes the "changed" highlighting
2063to disappear or reappear, it was still highlighted in another window.
2064
Bram Moolenaar34cdc3e2005-05-18 22:24:46 +00002065When a ":next" command fails because the user selects "Abort" at the ATTENTION
2066prompt the argument index was advanced anyway.
2067
2068When "~" is in 'iskeyword' the "gd" doesn't work, it's used for the previous
2069substitute pattern. Put "\V" in the pattern to avoid that.
2070
Bram Moolenaar555b2802005-05-19 21:08:39 +00002071Use of sprintf() sometimes didn't check properly for buffer overflow. Also
2072when using smsg(). Included code for snprintf() to avoid having to do size
2073checks where invoking them
2074
Bram Moolenaarf4630b62005-05-20 21:31:17 +00002075":help \=<Tab>" didn't find "sub-replace-\=". Wild menu for help tags didn't
2076show backslashes. ":he :s\=" didn't work.
2077
2078When reading an errorfile "~/" in a file name was not expanded.
2079
2080GTK GUI: When adding a scrollbar (e.g. when using ":vsplit") in a script or
2081removing it the window size may change. GTK sends us resize events when we
2082change the window size ourselves, but they may come at an unexpected moment.
2083Peek for a character to get any window resize events and fix 'columns' and
2084'lines' to undo this.
2085
Bram Moolenaarb3656ed2006-03-20 21:59:49 +00002086When using the GTK plug mechanism, resizing and focus was not working
2087properly. (Neil Bird)
2088
Bram Moolenaar67fe1a12005-05-22 22:12:58 +00002089After deleting files from the argument list a session file generated with
2090":mksession" may contain invalid ":next" commands.
2091
2092When 'shortmess' is empty and 'keymap' set to accents, in Insert mode CTRL-N
2093may cause the hit-enter prompt. Typing 'a then didn't result in the accented
2094character. Put the character typed at the prompt back in the typeahead buffer
2095so that mapping is done in the right mode.
2096
Bram Moolenaarb2ec3072005-06-17 22:02:20 +00002097setbufvar() and setwinvar() did not give error messages.
2098
2099It was possible to set a variable with an illegal name, e.g. with setbufvar().
Bram Moolenaard857f0e2005-06-21 22:37:39 +00002100It was possible to define a function with illegal name, e.t. ":func F{-1}()"
2101
2102CTRL-W F and "gf" didn't use the same method to get the file name.
Bram Moolenaarb2ec3072005-06-17 22:02:20 +00002103
Bram Moolenaar42eeac32005-06-29 22:40:58 +00002104When reporting a conversion error the line number of the last error could be
2105given. Now report the first encountered error.
2106
2107When using ":e ++enc=name file" and iconv() was used for conversion an error
Bram Moolenaar63a121b2005-12-11 21:36:39 +00002108caused a fall-back to no conversion. Now replace a character with '?' and
Bram Moolenaar42eeac32005-06-29 22:40:58 +00002109continue.
2110
Bram Moolenaar51bab742005-07-08 22:31:03 +00002111When opening a new buffer the local value of 'bomb' was not initialized from
2112the global value.
2113
Bram Moolenaare759a7a2005-07-12 22:50:18 +00002114Win32: When using the "Edit with Vim" entry the file name was limited to about
2115200 characters.
2116
Bram Moolenaar342337a2005-07-21 21:11:17 +00002117When using command line completion for ":e *foo" and the file "+foo" exists
2118the resulting command ":e +foo" doesn't work. Now insert a backslash: ":e
2119\+foo".
2120
Bram Moolenaar87e25fd2005-07-27 21:13:01 +00002121When the translation of "-- More --" was not 10 characters long the following
2122message would be in the wrong position.
2123
2124At the more-prompt the last character in the last line wasn't drawn.
2125
2126When deleting non-existing text while 'virtualedit' is set the '[ and '] marks
2127were not set.
2128
Bram Moolenaar0be6e642005-08-04 21:32:22 +00002129Win32: Could not use "**/" in 'path', it had to be "**\".
2130
Bram Moolenaarae5bce12005-08-15 21:41:48 +00002131The search pattern "\n" did not match at the end of the last line.
2132
2133Searching for a pattern backwards, starting on the NUL at the end of the line
2134and 'encoding' is "utf-8" would match the pattern just before it incorrectly.
2135Affected searchpair('/\*', '', '\*/').
2136
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00002137For the Find/Replace dialog it was possible that not finding the text resulted
2138in an error message while redrawing, which cleared the syntax highlighting
2139while it was being used, resulting in a crash. Now don't clear syntax
2140highlighting, disable it with b_syn_error.
2141
Bram Moolenaar6e7c7f32005-08-24 22:16:11 +00002142Win32: Combining UTF-8 characters were drawn on the previous character.
2143Could be noticed with a Thai font.
2144
Bram Moolenaarcafda4f2005-09-06 19:25:11 +00002145Output of ":function" could leave some of the typed text behind. (Yegappan
2146Lakshmanan)
2147
Bram Moolenaarcaa0fcf2005-09-07 21:21:14 +00002148When the command line history has only a few lines the command line window
2149would be opened with these lines above the first window line.
2150
2151When using a command line window for search strings ":qa" would result in
2152searching for "qa" instead of quitting all windows.
2153
Bram Moolenaardcca87b2005-09-10 19:24:59 +00002154GUI: When scrolling with the scrollbar and there is a line that doesn't fit
2155redrawing may fail. Make sure w_skipcol is valid before redrawing.
2156
Bram Moolenaar482aaeb2005-09-29 18:26:07 +00002157Limit the values of 'columns' and 'lines' to avoid an overflow in Rows *
2158Columns. Fixed bad effects when running out of memory (command line would be
2159reversed, ":qa!" resulted in ":!aq").
2160
Bram Moolenaara5792f52005-11-23 21:25:05 +00002161Motif: "gvim -iconic" opened the window anyway. (David Harrison)
2162
2163There is a tiny chance that a symlink gets created between checking for an
2164existing file and creating a file. Use the O_NOFOLLOW for open() if it's
2165available.
2166
2167In an empty line "ix<CTRL-O>0" moved the cursor to after the line instead of
2168sticking to the first column.
2169
Bram Moolenaar943d2b52005-12-02 00:50:49 +00002170When using ":wq" and a BufWriteCmd autocmd uses inputsecret() the text was
2171echoed anyway. Set terminal to raw mode in getcmdline().
2172
Bram Moolenaard5bc83f2005-12-07 21:07:59 +00002173Unix: ":w a;b~c" caused an error in expanding wildcards.
2174
Bram Moolenaar63a121b2005-12-11 21:36:39 +00002175When appending to a file with ":w >>fname" in a buffer without a name, causing
2176the buffer to use "fname", the modified flag was reset.
2177
2178When appending to to current file the "not edited" flag would be reset.
2179":w" would overwrite the file accidentally.
2180
Bram Moolenaar900b4d72005-12-12 22:05:50 +00002181Unix: When filtering text with an external command Vim would still read input,
2182causing text typed for the command (e.g., a password) to be eaten and echoed.
2183Don't read input when the terminal is in cooked mode.
2184
Bram Moolenaar146522e2005-12-16 21:55:46 +00002185The Cygwin version of xxd used CR/LF line separators. (Corinna Vinschen)
2186
2187Unix: When filtering text through a shell command some resulting text may be
2188dropped. Now after detecting that the child has exited try reading some more
2189of its output.
2190
Bram Moolenaar3b181812005-12-17 22:10:02 +00002191When inside input(), using "CTRL-R =" and the expression throws an exception
2192the command line was not abandoned but it wasn't used either. Now abandon
2193typing the command line.
2194
Bram Moolenaare3226be2005-12-18 22:10:00 +00002195'delcombine' was also used in Visual and Select mode and for commands like
2196"cl". That was illogical and has been disabled.
2197
2198When recording while a CursorHold autocommand was defined special keys would
2199appear in the register. Now the CursorHold event is not triggered while
2200recording.
2201
Bram Moolenaarf4cd3e82005-12-22 22:47:02 +00002202Unix: the src/configure script used ${srcdir-.}, not all shells understand
2203that. Use ${srcdir:-.} instead.
2204
Bram Moolenaarcc984262005-12-23 22:19:46 +00002205When editing file "a" which is a symlink to file "b" that doesn't exist,
2206writing file "a" to create "b" and then ":split b" resulted in two buffers on
2207the same file with two different swapfile names. Now set the inode in the
2208buffer when creating a new file.
2209
Bram Moolenaarebefac62005-12-28 22:39:57 +00002210When 'esckeys' is not set don't send the xterm code to request the version
2211string, because it may cause trouble in Insert mode.
2212
2213When evaluating an expression for CTRL-R = on the command line it was possible
Bram Moolenaar8ada17c2006-01-19 22:16:24 +00002214to call a function that opens a new window, resulting in errors for
Bram Moolenaarb71eaae2006-01-20 23:10:18 +00002215incremental search, and many other nasty things were possible. Now use the
2216|textlock| to disallow changing the buffer or jumping to another window
Bram Moolenaar4770d092006-01-12 23:22:24 +00002217to protect from unexpected behavior. Same for CTRL-\ e.
Bram Moolenaarebefac62005-12-28 22:39:57 +00002218
2219"d(" deleted the character under the cursor, while the documentation specified
2220an exclusive motion. Vi also doesn't delete the character under the cursor.
2221
2222Shift-Insert in Insert mode could put the cursor before the last character
2223when it just fits in the window. In coladvance() don't stop at the window
2224edge when filling with spaces and when in Insert mode. In mswin.vim avoid
2225getting a beep from the "l" command.
2226
Bram Moolenaar4770d092006-01-12 23:22:24 +00002227Win32 GUI: When Alt-F4 is used to close the window and Cancel is selected in
2228the dialog then Vim would insert <M-F4> in the text. Now it's ignored.
2229
2230When ":silent! {cmd}" caused the swap file dialog, which isn't displayed,
2231there would still be a hit-enter prompt.
2232
Bram Moolenaara40ceaf2006-01-13 22:35:40 +00002233Requesting the termresponse (|t_RV|) early may cause problems with "-c"
2234arguments that invoke an external command or even "-c quit". Postpone it
2235until after executing "-c" arguments.
2236
2237When typing in Insert mode so that a new line is started, using CTRL-G u to
2238break undo and start a new change, then joining the lines with <BS> caused
2239undo info to be missing. Now reset the insertion start point.
2240
2241Syntax HL: When a region start match has a matchgroup and an offset that
2242happens to be after the end of the line then it continued in the next line and
2243stopped at the region end match, making the region continue after that.
2244Now check for the column being past the end of the line in syn_add_end_off().
2245
Bram Moolenaarc32840f2006-01-14 21:23:38 +00002246When changing a file, setting 'swapfile' off and then on again, making another
2247change and killing Vim, then some blocks may be missing from the swapfile.
2248When 'swapfile' is switched back on mark all blocks in the swapfile as dirty.
2249Added mf_set_dirty().
2250
2251Expanding wildcards in a command like ":e aap;<>!" didn't work. Put
2252backslashes before characters that are special to the shell. (Adri Verhoef)
2253
Bram Moolenaar8ada17c2006-01-19 22:16:24 +00002254A CursorHold autocommand would cause a message to be cleared. Don't show the
2255special key for the event for 'showcmd'.
2256
2257When expanding a file name for a shell command, as in "!cmd foo<Tab>" or ":r
2258!cmd foo<Tab>" also escape characters that are special for the shell:
2259"!;&()<>".
2260
Bram Moolenaarb71eaae2006-01-20 23:10:18 +00002261When the name of the buffer was set by a ":r fname" command |cpo-f| no
2262autocommands were triggered to notify about the change in the buffer list.
2263
2264In the quickfix buffer 'bufhidden' was set to "delete", which caused closing
2265the quickfix window to leave an unlisted "No Name" buffer behind every time.
2266
Bram Moolenaar0ac93792006-01-21 22:16:51 +00002267Win32: when using two screens of different size, setting 'lines' to a large
2268value didn't fill the whole screen. (SungHyun Nam)
2269
Bram Moolenaar33aec762006-01-22 23:30:12 +00002270Win32 installer: The generated _vimrc contained an absolute path to diff.exe.
2271After upgrading it becomes invalid. Now use $VIMRUNTIME instead.
2272
Bram Moolenaard12f5c12006-01-25 22:10:52 +00002273The command line was cleared to often when 'showmode' was set and ":silent
2274normal vy" was used. Don't clear the command line unless the mode was
2275actually displayed. Added the "mode_displayed" variable.
2276
Bram Moolenaar280f1262006-01-30 00:14:18 +00002277The "load session" toolbar item could not handle a space or other special
2278characters in v:this_session.
2279
2280":set sta ts=8 sw=4 sts=2" deleted 4 spaces halfway a line instead of 2.
2281
Bram Moolenaar1ef15e32006-02-01 21:56:25 +00002282In a multi-byte file the foldmarker could be recognized in the trail byte.
2283(Taro Muraoka)
2284
Bram Moolenaar0e5bd962006-02-04 00:59:56 +00002285Pasting with CTRL-V and menu didn't work properly when some commands are
2286mapped. Use ":normal!" instead of ":normal". (Tony Apuzzo)
2287
2288Crashed when expanding a file name argument in backticks.
2289
Bram Moolenaarf52c7252006-02-10 23:23:57 +00002290In some situations the menu and scrollbar didn't work, when the value contains
2291a CSI byte. (Yukihiro Nakadaira)
2292
Bram Moolenaar1d2ba7f2006-02-14 22:29:30 +00002293GTK GUI: When drawing the balloon focus changes and we might get a key release
2294event that removed the balloon again. Ignore the key release event.
2295
2296'titleold' was included in ":mkexrc" and ":mksession" files.
2297
Bram Moolenaarf740b292006-02-16 22:11:02 +00002298":set background&" didn't use the same logic as was used when starting up.
2299
Bram Moolenaar997fb4b2006-02-17 21:53:23 +00002300When "umask" is set such that nothing is writable then the viminfo file would
2301be written without write permission. (Julian Bridle)
2302
Bram Moolenaar7e8fd632006-02-18 22:14:51 +00002303Motif: In diff mode dragging one scrollbar didn't update the scrollbar of the
2304other diff'ed window.
2305
Bram Moolenaar238a5642006-02-21 22:12:05 +00002306When editing in an xterm with a different number of colors than expected the
2307screen would be cleared and redrawn, causing the message about the edited file
2308to be cleared. Now set "keep_msg" to redraw the last message.
2309
Bram Moolenaard1f56e62006-02-22 21:25:37 +00002310For a color terminal: When the Normal HL uses bold, possibly to make the color
2311lighter, and another HL group specifies a color it might become light as well.
2312Now reset bold if a HL group doesn't specify bold itself.
2313
Bram Moolenaar32466aa2006-02-24 23:53:04 +00002314When using 256 color xterm the color 255 would show up as color 0. Use a
2315short instead of a char to store the color number.
2316
2317ml_get errors when searching for "\n\zs" in an empty file.
2318
Bram Moolenaara5621492006-02-25 21:55:24 +00002319When selecting a block and using "$" to select until the end of every line and
2320not highlighting the character under the cursor the first character of the
2321block could be unhighlighted.
2322
2323When counting words for the Visual block area and using "$" to select until
2324the end of every line only up to the length of the last line was counted.
2325
Bram Moolenaareddf53b2006-02-27 00:11:10 +00002326"dip" in trailing empty lines left one empty line behind.
2327
Bram Moolenaar5e3cb7e2006-02-27 23:58:35 +00002328The script ID was only remembered globally for each option. When a buffer- or
2329window-local option was set the same "last set" location was changed for all
2330buffers and windows. Now remember the script ID for each local option
2331separately.
2332
2333GUI: The "Replace All" button didn't handle backslashes in the replacement in
2334the same way as "Replace". Escape backslashes so that they are taken
2335literally.
2336
Bram Moolenaare224ffa2006-03-01 00:01:28 +00002337When using Select mode from Insert mode and typing a key, causing lines to be
2338deleted and a message displayed, delayed the effect of inserting the key.
2339Now overwrite the message without delay.
Bram Moolenaar5e3cb7e2006-02-27 23:58:35 +00002340
Bram Moolenaar362e1a32006-03-06 23:29:24 +00002341When 'whichwrap' includes "l" then "dl" and "yl" on a single letter line
2342worked differently. Now recognize all operators when using "l" at the end of
2343a line.
2344
2345GTK GUI: when the font selector returned a font name with a comma in it then
2346it would be handled like two font names. Now put a backslash before the
2347comma.
2348
2349MS-DOS, Win32: When 'encoding' defaults to "latin1" then the value for
2350'iskeyword' was still for CPxxx. And when 'nocompatible' was set 'isprint'
2351would also be the wrong value.
2352
Bram Moolenaar1f35bf92006-03-07 22:38:47 +00002353When a command was defined not to take arguments and no '|' no warning message
2354would be given for using a '|'. Also with ":loadkeymap".
2355
Bram Moolenaara3227e22006-03-08 21:32:40 +00002356Motif: When using a fontset and 'encoding' is "utf-8" and sizeof(wchar_t) !=
2357sizeof(XChar2b) then display was wrong. (Yukihiro Nakadaira)
2358
Bram Moolenaareb94e552006-03-11 21:35:11 +00002359":all" always set the current window to the first window, even when it
2360contains a buffer that is not in the argument list (can't be closed because it
2361is modified). Now go to the window that has the first item of the argument
2362list.
2363
Bram Moolenaar17be7e62006-03-12 22:13:45 +00002364GUI: To avoid left-over pixels from bold text all characters after a character
2365with special attributes were redrawn. Now only do this for characters that
2366actually are bold. Speeds up displaying considerably.
2367
2368When only highlighting changes and the text is scrolled at the same time
2369everything is redraw instead of using a scroll and updating the changed text.
2370E.g., when using ":match" to highlight a paren that the cursor landed on.
2371Added SOME_VALID: Redraw the whole window but also try to scroll to minimize
2372redrawing.
2373
Bram Moolenaarca003e12006-03-17 23:19:38 +00002374Win32: When using Korean IME making it active didn't work properly. (Moon,
2375Yu-sung, 2005 March 21)
2376
Bram Moolenaar97b2ad32006-03-18 21:40:56 +00002377Ruby interface: when inserting/deleting lines display wasn't updated. (Ryan
2378Paul)
Bram Moolenaarca003e12006-03-17 23:19:38 +00002379
Bram Moolenaar910f66f2006-04-05 20:41:53 +00002380--- fixes since Vim 7.0b ---
Bram Moolenaarbd404142006-03-25 22:05:04 +00002381
2382Getting the GCC version in configure didn't work with Solaris sed. First
2383strip any "darwin." and then get the version number.
2384
2385The "autoload" directory was missing from the self-installing executable for
2386MS-Windows.
2387
2388The MS-Windows install program would find "vimtutor.bat" in the install
2389directory. After changing to "c:" also change to "\" to avoid looking in the
2390install directory.
2391
2392To make the 16 bit DOS version compile exclude not used highlight
2393initializations and build a tiny instead of small version.
2394
Bram Moolenaar899dddf2006-03-26 21:06:50 +00002395finddir() and findfile() accept a negative cound and return a List then.
2396
2397The Python indent file contained a few debugging statements, removed.
2398
2399Expanding {} for a function name, resulting in a name starting with "s:" was
2400not handled correctly.
2401
2402Spelling: renamed COMPOUNDMAX to COMPOUNDWORDMAX. Added several items to be
2403able to handle the new Hungarian dictionary.
2404
2405Mac: Default to building for the current platform only, that is much faster
2406than building a universal binary. Also, using Perl/Python/etc. only works for
2407the current platform.
2408
Bram Moolenaar3991dab2006-03-27 17:01:56 +00002409The time on undo messages disappeared for someone. Using %T for strftime()
2410apparently doesn't work everywhere. Use %H:%M:%S instead.
2411
2412Typing BS at the "z=" prompt removed the prompt.
Bram Moolenaar899dddf2006-03-26 21:06:50 +00002413
Bram Moolenaar779b74b2006-04-10 14:55:34 +00002414--- fixes and changes since Vim 7.0c ---
Bram Moolenaar04a9d452006-03-27 21:03:26 +00002415
2416When jumping to another tab page the Vim window size was always set, even when
2417nothing in the layout changed.
2418
2419Win32 GUI tab pages line wasn't always enabled. Do a proper check for the
2420compiler version.
2421
2422Win32: When switching between tab pages the Vim window was moved when part of
2423it was outside of the screen. Now only do that in the direction of a size
2424change.
2425
2426Win32: added menu to GUI tab pages line. (Yegappan Lakshmanan)
2427
Bram Moolenaard2cec5b2006-03-28 21:08:56 +00002428Mac: Added document icons. (Benji Fisher)
2429
2430Insert mode completion: Using Enter to accept the current match causes
2431confusion. Use CTRL-Y instead. Also, use CTRL-E to go back to the typed
2432text.
2433
2434GUI: When there are left and righ scrollbars, ":tabedit" kept them instead of
2435using the one that isn't needed.
Bram Moolenaar04a9d452006-03-27 21:03:26 +00002436
Bram Moolenaare2f98b92006-03-29 21:18:24 +00002437Using "gP" to replace al the text could leave the cursor below the last line,
2438causing ml_get errors.
2439
2440When 'cursorline' is set don't use the highlighting when Visual mode is
2441active, otherwise it's difficult to see the selected area.
2442
2443The matchparen plugin restricts the search to 100 lines, to avoid a long delay
2444when there are closed folds.
2445
2446Sometimes using CTRL-X s to list spelling suggestions used text from another
2447line.
2448
2449Win32: Set the default for 'isprint' back to the wrong default "@,~-255",
2450because many people use Windows-1252 while 'encoding' is "latin1".
2451
Bram Moolenaar910f66f2006-04-05 20:41:53 +00002452GTK: Added a workaround for gvim crashing when used over an untrusted ssh
2453link, caused by GTK doing something nasty. (Ed Catmur)
2454
2455Win32: The font used for the tab page labels is too big. Use the system menu
2456font. (George Reilly)
2457
2458Win32: Adjusting the window position and size to keep it on the screen didn't
2459work properly when the taskbar is on the left or top of the screen.
2460
2461The installman.sh and installml.sh scripts use ${10}, that didn't work with
2462old shells. And use "test -f" instead of "test -e".
2463
2464Win32: When 'encoding' was set in the vimrc then a directory argument for diff
2465mode didn't work.
2466
2467GUI: at the inputlist() prompt the cursorshape was adjusted as if the windows
2468were still at their old position.
2469
2470The parenmatch plugin didn't remember the highlighting per window.
2471
2472Using ":bd" for a buffer that's the current window in another tab page caused
2473a crash.
2474
2475For a new tab page the 'scroll' option wasn't set to a good default.
2476
2477Using an end offset for a search "/pat/e" didn't work properly for multi-byte
2478text. (Yukihiro Nakadaira)
2479
2480":s/\n/,/" doubled the text when used on the last line.
2481
2482When "search" is in 'foldopen' "[s" and "]s" now open folds.
2483
2484When using a numbered function "dict" can be omitted, but "self" didn't work
2485then. Always add FC_DICT to the function flags when it's part of a
2486dictionary.
2487
2488When "--remote-tab" executes locally it left an empty tab page.
2489
2490"gvim -u NONE", ":set cursorcolumn", "C" in the second line didn't update
2491text. Do update further lines even though the "$" is displayed.
2492
2493VMS: Support GTK better, also enable +clientserver. (Zoltan Arpadffy)
2494
2495When highlighting of statusline or tabline is changed there was no redraw to
2496show the effect.
2497
2498Mac: Added "CFBundleIdentifier" to infplist.xml.
2499
2500Added tabpage-local variables t:var.
2501
2502Win32: Added double-click in tab pages line creates new tab. (Yegappan
2503Lakshmanan)
2504
2505Motif: Added GUI tab pages line. (Yegappan Lakshmanan)
2506
2507Fixed crash when 'lines' was set to 1000 in a modeline.
2508
2509When init_spellfile() finds a writable directory in 'runtimepath' but it
2510doesn't contain a "spell" directory, create one.
2511
2512Win32: executable() also finds "xxd" in the directory where Vim was started,
2513but "!xxd" doesn't work. Append the Vim starting directory to $PATH.
2514
2515The tab page labels are shortened, directory names are reduced to a single
2516letter by default. Added the pathshorten() function to allow a user to do the
2517same.
2518
2519":saveas" now resets 'readonly' if the file was successfully written.
2520
2521Set $MYVIMRC file to the first found .vimrc file.
2522Set $MYGVIMRC file to the first found .gvimrc file.
2523Added menu item "Startup Settings" that edits the $MYVIMRC file
2524
2525Added matcharg().
2526
2527Error message E745 appeared twice. Renamed one to E786.
2528
2529Fixed crash when using "au BufRead * Sexplore" and doing ":help". Was wiping
2530out a buffer that's still in a window.
2531
2532":hardcopy" resulted in an error message when 'encoding' is "utf-8" and
2533'printencoding' is empty. Now it assumes latin1. (Mike Williams)
2534
2535The check for the toolbar feature for Motif, depending on certain included
2536files, wasn't detailed enough, causing building to fail in gui_xmebw.c.
2537
2538Using CTRL-E in Insert mode completion after CTRL-P inserted the first match
2539instead of the original text.
2540
2541When displaying a UTF-8 character with a zero lower byte Vim might think the
2542previous character is double-wide.
2543
2544The "nbsp" item of 'listchars' didn't work when 'encoding' was utf-8.
2545
2546Motif: when Xm/xpm.h is missing gui_xmebw.c would not compile.
2547HAVE_XM_UNHIGHLIGHTT_H was missing a T.
2548
2549Mac: Moved the .icns files into src/os_mac_rsrc, so that they can all be
2550copied at once. Adjusted the Info.plist file for three icons.
2551
2552When Visual mode is active while switching to another tabpage could get ml_get
2553errors.
2554
2555When 'list' is set, 'nowrap' the $ in the first column caused 'cursorcolumn'
2556to move to the right.
2557
2558When a line wraps, 'cursorcolumn' was never displayed past the end of the
2559line.
2560
Bram Moolenaar7b89edc2006-04-06 20:21:51 +00002561'autochdir' was only available when compiled with NetBeans and GUI. Now it's
2562a separate feature, also available in the "big" version.
2563
2564Added CTRL-W gf: open file under cursor in new tab page.
2565
2566When using the menu in the tab pages line, "New Tab" opens the new tab before
2567where the click was. Beyond the labels the new tab appears at the end instead
2568of after the current tab page.
2569
Bram Moolenaar61660ea2006-04-07 21:40:07 +00002570Inside a mapping with an expression getchar() could not be used.
2571
2572When vgetc is used recursively vgetc_busy protects it from being used
2573recursively. But after a ":normal" command the protection was reset.
2574
2575":s/a/b/n" didn't work when 'modifiable' was off.
2576
2577When $VIMRUNTIME includes a multi-byte character then rgb.txt could not be
2578found. (Yukihiro Nakadaira)
2579
2580":mkspell" didn't work correctly for non-ASCII affix flags when conversion is
2581needed on the spell file.
2582
2583glob('/dir/\$ABC/*') didn't work.
2584
Bram Moolenaarc6fe9192006-04-09 21:54:49 +00002585When using several tab pages and changing 'cmdheight' the display could become
2586messed up. Now store the value of 'cmdheight' separately for each tab page.
2587
Bram Moolenaar779b74b2006-04-10 14:55:34 +00002588The user of the Enter key while the popup menu is visible was still confusing.
2589Now use Enter to select the match after using a cursor key.
2590
2591Added "usetab" to 'switchbuf'.
2592
Bram Moolenaar4c3f5362006-04-11 21:38:50 +00002593
2594--- fixes and changes since Vim 7.0d ---
2595
2596Added CTRL-W T: move a window to a new tab page.
2597
2598Using CTRL-X s in Insert mode to complete spelling suggestions and using BS
2599deleted characters before the bad word.
2600
2601A few small fixes for the VMS makefile. (Zoltan Arpadffy)
2602
2603With a window of 91 lines 45 cols, ":vsp" scrolled the window. Copy w_wrow
2604when splitting a window and skip setting the height when it's already at the
2605right value.
2606
2607Using <silent> in a mapping with a shell command and the GUI caused redraw
2608to use wrong attributes.
2609
2610Win32: Using MSVC 4.1 for install.exe resulted in the start menu items to be
2611created in the administrator directory instead of "All Users". Define the
2612CSIDL_ items if they are missing.
2613
Bram Moolenaar18144c82006-04-12 21:52:12 +00002614Motif: The GUI tabline did not use the space above the right scrollbar. Work
2615around a bug in the Motif library. (Yegappan Lakshmanan)
2616
2617The extra files for XML Omni completion are now also installed.
2618|xml-omni-datafile|
2619
2620GTK GUI: when 'm' is missing from 'guioptions' during startup and pressing
2621<F10> GTK produced error messages. Now do create the menu but disable it just
2622after the first gui_mch_update().
2623
2624":mkspell" doesn't work well with the Hungarian dictionary from the Hunspell
2625project. Back to the Myspell dictionary.
2626
2627In help files hide the | used around tags.
2628
2629Renamed pycomplete to pythoncomplete.
2630
2631Added "tabpages" to 'sessionoptions'.
2632
2633When 'guitablabel' is set the effect wasn't visible right away.
2634
2635Fixed a few 'cindent' errors.
2636
Bram Moolenaar7fc904b2006-04-13 20:37:35 +00002637When completing menu names, e.g., after ":emenu", don't sort the entries but
2638keep them in the original order.
2639
2640Fixed a crash when editing a directory in diff mode. Don't trigger
2641autocommands when executing the diff command.
2642
2643Getting a keystroke could get stuck if 'encoding' is a multi-byte encoding and
2644typing a special key.
2645
2646When 'foldignore' is set the folds were not updated right away.
Bram Moolenaar4c3f5362006-04-11 21:38:50 +00002647
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +00002648When a list is indexed with [a : b] and b was greater than the length an error
Bram Moolenaarb21e5842006-04-16 18:30:08 +00002649message was given. Now silently truncate the result.
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +00002650
2651When using BS during Insert mode completion go back to the original text, so
2652that CTRL-N selects the first matching entry.
2653
Bram Moolenaarb21e5842006-04-16 18:30:08 +00002654Added the 'M' flag to 'cinoptions'.
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +00002655
2656Win32: Make the "gvim --help" window appear in the middle of the screen
2657instead of at an arbitrary position. (Randall W. Morris)
2658
Bram Moolenaar8cacf352006-04-15 20:27:24 +00002659Added gettabwinvar() and settabwinvar().
2660
2661Command line completion: pressing <Tab> after ":e /usr/*" expands the whole
2662tree, because it becomes ":e /usr/**". Don't add a star if there already is
2663one.
2664
Bram Moolenaarb21e5842006-04-16 18:30:08 +00002665Added grey10 to grey90 to all GUIs, so that they can all be used for
2666initializing highlighting. Use grey40 for CursorColumn and CursorLine when
2667'background' is "dark".
2668
2669When reading a file and using iconv for conversion, an incomplete byte
2670sequence at the end caused problems. (Yukihiro Nakadaira)
2671
2672
2673--- fixes and changes since Vim 7.0e ---
2674
2675Default color for MatchParen when 'background' is "dark" is now DarkCyan.
2676
2677":syn off" had to be used twice in a file that sets 'syntax' in a modeline.
2678(Michael Geddes)
2679
2680When using ":vsp" or ":sp" the available space wasn't used equally between
2681windows. (Servatius Brandt)
2682
Bram Moolenaara93fa7e2006-04-17 22:14:47 +00002683Expanding <cWORD> on a trailing blank resulted in the first word in the line
2684if 'encoding' is a multi-byte encoding.
2685
2686Spell checking: spellbadword() didn't see a missing capital in the first word
2687of a line. Popup menu now only suggest the capitalized word when appropriate.
2688
Bram Moolenaarf9393ef2006-04-24 19:47:27 +00002689When using whole line completion CTRL-L moves through the matches but it
Bram Moolenaarc1e37902006-04-18 21:55:01 +00002690didn't work when at the original text.
2691
2692When completion finds the longest match, don't go to the first match but stick
2693at the original text, so that CTRL-N selects the first one.
2694
2695Recognize "zsh-beta" like "zsh" for setting the 'shellpipe' default. (James
2696Vega)
2697
2698When using ":map <expr>" and the expression results in something with a
2699special byte (NUL or CSI) then it didn't work properly. Now escape special
2700bytes.
2701
2702The default Visual highlighting for a color xterm with 8 colors was a magenta
2703background, which made magenta text disappear. Now use reverse in this
2704specific situation.
2705
2706After completing the longest match "." didn't insert the same text. Repeating
2707also didn't work correctly for multi-byte text.
2708
2709When using Insert mode completion and BS the whole word that was completed
2710would result in all possible matches. Now stop completion. Also fixes that
2711for spell completion the previous word was deleted.
2712
2713GTK: When 'encoding' is "latin1" and using non-ASCII characters in a file name
2714the tab page label was wrong and an error message would be given.
2715
2716The taglist() function could hang on a tags line with a non-ASCII character.
2717
Bram Moolenaar8424a622006-04-19 21:23:36 +00002718Win32: When 'encoding' differs from the system encoding tab page labels with
2719non-ASCII characters looked wrong. (Yegappan Lakshmanan)
2720
Bram Moolenaarfc1421e2006-04-20 22:17:20 +00002721Motif: building failed when Xm/Notebook.h doesn't exist. Added a configure
2722check, disable GUI tabline when it's missing.
2723
2724Mac: When compiled without multi-byte feature the clipboard didn't work.
2725
2726It was possible to switch to another tab page when the cmdline window is open.
2727
2728Completion could hang when 'lines' is 6 and a preview window was opened.
2729
Bram Moolenaar57657d82006-04-21 22:12:41 +00002730Added CTRL-W gF: open file under cursor in new tab page and jump to the line
2731number following the file name.
Bram Moolenaareb3593b2006-04-22 22:33:57 +00002732Added 'guitabtooltip'. Implemented for Win32 (Yegappan Lakshmanan).
Bram Moolenaar57657d82006-04-21 22:12:41 +00002733
2734Added "throw" to 'debug' option: thow an exception for error messages even
2735whey they would otherwise be ignored.
2736
2737When 'keymap' is set and a line contains an invalid entry could get a "No
2738mapping found" warning instead of a proper error message.
2739
2740Motif: default to using XpmAttributes instead of XpmAttributes_21.
2741
Bram Moolenaareb3593b2006-04-22 22:33:57 +00002742A few more changes for 64 bit MS-Windows. (George Reilly)
2743
2744Got ml_get errors when doing "o" and selecting in other window where there are
2745less line shorter than the cursor position in the other window. ins_mouse()
2746was using position in wrong window.
2747
2748Win32 GUI: Crash when giving a lot of messages during startup. Allocate twice
2749as much memory for the dialog template.
2750
2751Fixed a few leaks and wrong pointer use reported by coverity.
2752
2753When showing menus the mode character was sometimes wrong.
Bram Moolenaarfc1421e2006-04-20 22:17:20 +00002754
Bram Moolenaarf9393ef2006-04-24 19:47:27 +00002755Added feedkeys(). (Yakov Lerner)
2756
2757Made matchlist() always return all submatches.
2758
2759Moved triggering QuickFixCmdPost to before jumping to the first location.
2760
2761Mac: Added the 'macatsui' option as a temporary work around for text drawing
2762problems.
2763
2764Line completion on "/**" gave error messages when scanning an unloaded buffer.
Bram Moolenaar4a85b412006-04-23 22:40:29 +00002765
Bram Moolenaar551dbcc2006-04-25 22:13:59 +00002766--- fixes and changes since Vim 7.0f ---
2767
2768Win32: The height of the tab page labels is now adjusted to the font height.
2769(Yegappan Lakshmanan)
2770
2771Win32: selecting the tab label was off by one. (Yegappan Lakshmanan)
Bram Moolenaar4a85b412006-04-23 22:40:29 +00002772
Bram Moolenaar437df8f2006-04-27 21:47:44 +00002773Added tooltips for Motif and GTK tab page labels. (Yegappan Lakshmanan)
Bram Moolenaarf193fff2006-04-27 00:02:13 +00002774
2775When 'encoding' is "utf-8" then ":help spell" would report an illegal byte and
2776the file was not converted from latin1 to utf-8. Now retry with latin1 if
2777reading the file as utf-8 results in illegal bytes.
2778
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00002779Escape the argument of feedkeys() before putting it in the typeahead buffer.
Bram Moolenaarf193fff2006-04-27 00:02:13 +00002780(Yukihiro Nakadaira)
2781
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00002782Added the v:char variable for evaluating 'formatexpr'. (Yukihiro Nakadaira)
Bram Moolenaarf193fff2006-04-27 00:02:13 +00002783
2784With 8 colors Search highlighting combined with Statement highlighted text
2785made the text disappear.
2786
2787VMS: avoid warnings for redefining MAX and MIN. (Zoltan Arpadffy)
2788
2789When 'virtualedit' includes "onemore", stopping Visual selection would still
2790move the cursor left.
2791
2792Prevent that using CTRL-R = in Insert mode can start Visual mode.
2793
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00002794Fixed a crash that occured when in Insert mode with completion active and a
Bram Moolenaarf193fff2006-04-27 00:02:13 +00002795mapping caused edit() to be called recursively.
2796
2797When using CTRL-O in Insert mode just after the last character while
2798'virtualedit' is "all", then typing CR moved the last character to the next
2799line. Call coladvance() before starting the new line.
2800
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00002801When using |:shell| ignore clicks on the tab page labels. Also when using the
2802command line window.
Bram Moolenaarf193fff2006-04-27 00:02:13 +00002803
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00002804When 'eventignore' is "all" then adding more to ignoring some events, e.g.,
2805for ":vimgrep", would actually trigger more events.
Bram Moolenaarf193fff2006-04-27 00:02:13 +00002806
2807Win32: When a running Vim uses server name GVIM1 then "gvim --remote fname"
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00002808didn't find it. When looking for a server name that doesn't end in a digit
2809and it is not found then use another server with that name and a number (just
2810like on Unix).
Bram Moolenaarf193fff2006-04-27 00:02:13 +00002811
2812When using "double" in 'spellsuggest' when the language doesn't support sound
2813folding resulted in too many suggestions.
2814
2815Win32: Dropping a shortcut on the Vim icon did't edit the referred file like
2816editing it in another way would. Use fname_expand() in buf_set_name() instead
2817of simply make the file name a full path.
2818
Bram Moolenaar437df8f2006-04-27 21:47:44 +00002819Using feedkeys() could cause Vim to hang.
2820
2821When closing another tab page from the tabline menu in Insert mode the tabline
2822was not updated right away.
2823
2824The syntax menu didn't work in compatible mode.
2825
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00002826After using ":tag id" twice with the same "id", ":ts" and then ":pop" a ":ts"
Bram Moolenaar437df8f2006-04-27 21:47:44 +00002827reported no matching tag. Clear the cached tag name.
2828
2829In Insert mode the matchparen plugin highlighted the wrong paren when there is
2830a string just next to a paren.
2831
Bram Moolenaar8ea91232006-04-28 22:41:43 +00002832GTK: After opening a new tab page the text was sometimes not drawn correctly.
2833Flush output and catch up with events when updating the tab page labels.
2834
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00002835In the GUI, using CTRL-W q to close the last window of a tab page could cause
2836a crash.
Bram Moolenaar8ea91232006-04-28 22:41:43 +00002837
2838GTK: The tab pages line menu was not converted from 'encoding' to utf-8.
2839
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00002840Typing a multi-byte character or a special key at the hit-enter prompt did not
2841work.
2842
2843When 'virtualedit' contains "onemore" CTRL-O in Insert mode still moved the
2844cursor left when it was after the end of the line, even though it's allowed to
2845be there.
2846
Bram Moolenaarc9b4b052006-04-30 18:54:39 +00002847Added test for using tab pages.
2848
2849towupper() and towlower() were not used, because of checking for
2850__STDC__ISO_10646__ instead of __STDC_ISO_10646__. (sertacyildiz)
2851
2852For ":map <expr>" forbid changing the text, jumping to another buffer and
2853using ":normal" to avoid nasty side effects.
2854
Bram Moolenaard68071d2006-05-02 22:08:30 +00002855--- fixes and changes since Vim 7.0g ---
2856
2857Compilation error on HP-UX, use of "dlerr" must be inside a #ifdef.
2858(Gary Johnson)
2859
2860Report +reltime feature in ":version" output.
2861
2862The tar and zip plugins detect failure to get the contents of the archive and
2863edit the file as-is.
2864
2865When the result of 'guitablabel' is empty fall back to the default label.
2866
2867Fixed crash when using ":insert" in a while loop and missing "endwhile".
2868
2869"gt" and other commands could move to another window when |textlock| active
2870and when the command line window was open.
2871
2872Spell checking a file with syntax highlighting and a bad word at the end of
2873the line is ignored could make "]s" hang.
2874
2875Mac: inputdialog() didn't work when compiled with big features.
2876
2877Interrupting ":vimgrep" while it is busy loading a file left a modified and
2878hidden buffer behind. Use enter_cleanup() and leave_cleanup() around
2879wipe_buffer().
2880
2881When making 'keymap' empty the b:keymap_name variable wasn't deleted.
2882
2883Using CTRL-N that searches a long time, pressing space to interrupt the
2884searching and accept the first match, the popup menu was still displayed
2885briefly.
2886
2887When setting the Vim window height with -geometry the 'window' option could be
2888at a value that makes CTRL-F behave differently.
2889
Bram Moolenaar8b2d9c42006-05-03 21:28:47 +00002890When opening a quickfix window in two tabs they used different buffers,
2891causing redrawing problems later. Now use the same buffer for all quickfix
2892windows. (Yegappan Lakshmanan)
2893
2894When 'mousefocus' is set moving the mouse to the text tab pages line would
2895move focus to the first window. Also, the mouse pointer would jump to the
2896active window.
2897
2898In a session file, when an empty buffer is wiped out, do this silently.
2899
2900When one window has the cursor on the last line and another window is resized
2901to make that window smaller, the cursor line could go below the displayed
2902lines. In win_new_height() subtract one from the available space.
2903Also avoid that using "~" lines makes the window scroll down.
2904
2905Mac: When sourcing the "macmap.vim" script and then finding a .vimrc file the
2906'cpo' option isn't set properly, because it was already set and restored.
2907Added the <special> argument to ":map", so that 'cpo' doesn't need to be
2908changed to be able to use <> notation. Also do this for ":menu" for
2909consistency.
2910
2911When using "/encoding=abc" in a spell word list, only "bc" was used.
2912
Bram Moolenaar54a709e2006-05-04 21:57:11 +00002913When 'encoding' and 'printencoding' were both "utf-8" then ":hardcopy" didn't
2914work. (Mike Williams)
2915
2916Mac: When building with "--disable-gui" the install directory would still be
2917"/Applications" and Vim.app would be installed. Now install in /usr/local as
2918usual for a console application.
2919
2920GUI: when doing completion and there is one match and still searching for
2921another, the cursor was displayed at the end of the line instead of after the
2922match. Now show the cursor after the match while still searching for matches.
2923
2924GUI: The mouse shape changed on the statusline even when 'mouse' was empty and
2925they can't be dragged..
2926
2927GTK2: Selecting a button in the confirm() dialog with Tab or cursor keys and
2928hitting Enter didn't select that button. Removed GTK 1 specific code. (Neil
2929Bird)
2930
2931When evaluating 'balloonexpr' takes a long time it could be called
2932recursively, which could cause a crash.
2933
2934exists() could not be used to detect whether ":2match" is supported. Added a
2935check for it specifically.
2936
Bram Moolenaar96351572006-05-05 21:16:59 +00002937GTK1: Tab page labels didn't work. (Yegappan Lakshmanan)
2938
2939Insert mode completion: When finding matches use 'ignorecase', but when adding
2940matches to the list don't use it, so that all words with different case are
2941added, "word", "Word" and "WORD".
2942
2943When 'cursorline' and 'hlsearch' are set and the search pattern is "x\n"
2944the rest of the line was highlighted as a match.
2945
2946Cursor moved while evaluating 'balloonexpr' that invokes ":isearch" and
2947redirects the output. Don't move the cursor to the command line if msg_silent
2948is set.
2949
2950exists() ignored text after a function name and option name, which could
2951result in false positives.
2952
2953exists() ignored characters after the recognized word, which can be wrong when
2954using a name with non-keyword characters. Specifically, these calls no longer
2955allow characters after the name: exists('*funcname') exists('*funcname(...')
2956exists('&option') exists(':cmd') exists('g:name') exists('g:name[n]')
2957exists('g:name.n')
2958
Bram Moolenaar2f567ab2006-05-06 21:47:30 +00002959Trigger the TabEnter autocommand only after entering the current window of the
2960tab page, otherwise the commands are executed with an invalid current window.
2961
2962Win32: When using two monitors and Vim is on the second monitor, changing the
2963width of the Vim window could make it jump to the first monitor.
2964
2965When scrolling back at the more prompt and the quitting a line of text would
2966be left behind when 'cmdheight' is 2 or more.
2967
Bram Moolenaar1423b9d2006-05-07 15:16:06 +00002968Fixed a few things for Insert mode completion, especially when typing BS,
2969CTRL-N or a printable character while still searching for matches.
2970
Bram Moolenaarf193fff2006-04-27 00:02:13 +00002971
Bram Moolenaar071d4272004-06-13 20:20:40 +00002972 vim:tw=78:ts=8:ft=help:norl: