blob: 589e59aff21d234751a9968084f8f5de1a15b8a3 [file] [log] [blame]
Bram Moolenaarb2a460d2007-05-12 15:16:37 +00001*version7.txt* For Vim version 7.1. Last change: 2007 May 12
Bram Moolenaar071d4272004-06-13 20:20:40 +00002
3
4 VIM REFERENCE MANUAL by Bram Moolenaar
5
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00006 *vim7*
Bram Moolenaar071d4272004-06-13 20:20:40 +00007Welcome 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
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000049VERSION 7.1 |version-7.1|
50Changed |changed-7.1|
51Added |added-7.1|
52Fixed |fixed-7.1|
53
Bram Moolenaar071d4272004-06-13 20:20:40 +000054==============================================================================
55INCOMPATIBLE CHANGES *incompatible-7*
56
57These changes are incompatible with previous releases. Check this list if you
Bram Moolenaarb2956cd2005-01-27 14:42:53 +000058run into a problem when upgrading from Vim 6.x to 7.0.
59
60A ":write file" command no longer resets the 'modified' flag of the buffer,
61unless the '+' flag is in 'cpoptions' |cpo-+|. This was illogical, since the
62buffer is still modified compared to the original file. And when undoing
63all changes the file would actually be marked modified. It does mean that
64":quit" fails now.
Bram Moolenaar071d4272004-06-13 20:20:40 +000065
Bram Moolenaarf4b8e572004-06-24 15:53:16 +000066":helpgrep" now uses a help window to display a match.
67
Bram Moolenaar1cd871b2004-12-19 22:46:22 +000068In an argument list double quotes could be used to include spaces in a file
69name. This caused a difference between ":edit" and ":next" for escaping
70double quotes and it is incompatible with some versions of Vi.
71 Command Vim 6.x file name Vim 7.x file name ~
Bram Moolenaarc9b4b052006-04-30 18:54:39 +000072 :edit foo\"888 foo"888 foo"888
73 :next foo\"888 foo888 foo"888
74 :next a\"b c\"d ab cd a"b and c"d
Bram Moolenaar1cd871b2004-12-19 22:46:22 +000075
Bram Moolenaar8c711452005-01-14 21:53:12 +000076In a |literal-string| a single quote can be doubled to get one.
77":echo 'a''b'" would result in "a b", but now that two quotes stand for one it
78results in "a'b".
79
Bram Moolenaar04a09c12005-08-01 22:02:32 +000080When overwriting a file with ":w! fname" there was no warning for when "fname"
81was being edited by another Vim. Vim now gives an error message |E768|.
82
Bram Moolenaar241a8aa2005-12-06 20:04:44 +000083The support for Mac OS 9 has been removed.
84
Bram Moolenaard2cec5b2006-03-28 21:08:56 +000085Files ending in .tex now have 'filetype' set to "context", "plaintex", or
86"tex". |ft-tex-plugin|
87
Bram Moolenaarf4b8e572004-06-24 15:53:16 +000088
89Minor incompatibilities:
90
Bram Moolenaar8ea91232006-04-28 22:41:43 +000091For filetype detection: For many types, use */.dir/filename instead of
92~/.dir/filename, so that it also works for other user's files.
Bram Moolenaarf4b8e572004-06-24 15:53:16 +000093
Bram Moolenaar910f66f2006-04-05 20:41:53 +000094For quite a few filetypes the indent settings have been moved from the
95filetype plugin to the indent plugin. If you used: >
96 :filetype plugin on
97Then some indent settings may be missing. You need to use: >
98 :filetype plugin indent on
99
Bram Moolenaarf4b8e572004-06-24 15:53:16 +0000100":0verbose" now sets 'verbose' to zero instead of one.
101
102Removed the old and incomplete "VimBuddy" code.
103
104Buffers without a name report "No Name" instead of "No File". It was
105confusing for buffers with a name and 'buftype' set to "nofile".
Bram Moolenaar071d4272004-06-13 20:20:40 +0000106
Bram Moolenaar7b0294c2004-10-11 10:16:09 +0000107When ":file xxx" is used in a buffer without a name, the alternate file name
Bram Moolenaar54a709e2006-05-04 21:57:11 +0000108isn't set. This avoids creating buffers without a name, they are not useful.
Bram Moolenaar7b0294c2004-10-11 10:16:09 +0000109
110The "2html.vim" script now converts closed folds to HTML. This means the HTML
Bram Moolenaar54a709e2006-05-04 21:57:11 +0000111looks like it's displayed, with the same folds open and closed. Use "zR", or
Bram Moolenaarf4630b62005-05-20 21:31:17 +0000112"let html_ignore_folding=1", if no folds should appear in the HTML. (partly by
113Carl Osterwisch)
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000114Diff mode is now also converted to HTML as it is displayed.
Bram Moolenaar7b0294c2004-10-11 10:16:09 +0000115
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000116Win32: The effect of the <F10> key depended on 'winaltkeys'. Now it depends
117on whether <F10> has been mapped or not. This allows mapping <F10> without
118changing 'winaltkeys'.
119
Bram Moolenaar8c711452005-01-14 21:53:12 +0000120When 'octal' is in 'nrformats' and using CTRL-A on "08" it became "018", which
121is illogical. Now it becomes "9". The leading zero(s) is(are) removed to
122avoid the number becoming octal after incrementing "009" to "010".
Bram Moolenaar1cd871b2004-12-19 22:46:22 +0000123
124When 'encoding' is set to a Unicode encoding, the value for 'fileencodings'
125now includes "default" before "latin1". This means that for files with 8-bit
126encodings the default is to use the encoding specified by the environment, if
127possible. Previously latin1 would always be used, which is wrong in a
128non-latin1 environment, such as Russian.
129
Bram Moolenaard438e912005-01-31 19:21:46 +0000130Previously Vim would exit when there are two windows, both of them displaying
131a help file, and using ":quit". Now only the window is closed.
132
Bram Moolenaar4399ef42005-02-12 14:29:27 +0000133"-w {scriptout}" only works when {scriptout} doesn't start with a digit.
134Otherwise it's used to set the 'window' option.
135
Bram Moolenaar8bf59b92005-03-06 23:40:56 +0000136Previously <Home> and <xHome> could be mapped separately. This had the
137disadvantage that all mappings (with modifiers) had to be duplicated, since
138you can't be sure what the keyboard generates. Now all <xHome> are internally
139translated to <Home>, both for the keys and for mappings. Also for <xEnd>,
140<xF1>, etc.
141
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +0000142":put" now leaves the cursor on the last inserted line.
143
Bram Moolenaar7fae6362005-06-30 22:06:41 +0000144When a .gvimrc file exists then 'compatible' is off, just like when a ".vimrc"
145file exists.
146
Bram Moolenaara2036d22005-08-23 21:04:20 +0000147When making a string upper-case with "vlllU" or similar then the German sharp
148s is replaced with "SS". This does not happen with "~" to avoid backwards
149compatibility problems and because "SS" can't be changed back to a sharp s.
150
Bram Moolenaardd2436f2005-09-05 22:14:46 +0000151"gd" previously found the very first occurrence of a variable in a function,
152that could be the function argument without type. Now it finds the position
153where the type is given.
154
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000155The line continuation in functions was not taken into account, line numbers in
156errors were logical lines, not lines in the sourced file. That made it
157difficult to locate errors. Now the line number in the sourced file is
158reported, relative to the function start. This also means that line numbers
159for ":breakadd func" are different.
160
Bram Moolenaarb3656ed2006-03-20 21:59:49 +0000161When defining a user command with |:command| the special items could be
162abbreviated. This caused unexpected behavior, such as <li> being recognized
163as <line1>. The items can no longer be abbreviated.
164
Bram Moolenaar910f66f2006-04-05 20:41:53 +0000165When executing a FileChangedRO autocommand it is no longer allowed to switch
166to another buffer or edit another file. This is to prevent crashes (the event
167is triggered deep down in the code where changing buffers is not anticipated).
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000168It is still possible to reload the buffer.
169
170At the |more-prompt| and the |hit-enter-prompt|, when the 'more' option is
171set, the 'k', 'u', 'g' and 'b' keys are now used to scroll back to previous
172messages. Thus they are no longer used as typeahead.
Bram Moolenaar910f66f2006-04-05 20:41:53 +0000173
Bram Moolenaar071d4272004-06-13 20:20:40 +0000174==============================================================================
175NEW FEATURES *new-7*
176
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000177Vim script enhancements *new-vim-script*
178-----------------------
Bram Moolenaar071d4272004-06-13 20:20:40 +0000179
180In Vim scripts the following types have been added:
181
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000182 |List| ordered list of items
183 |Dictionary| associative array of items
184 |Funcref| reference to a function
Bram Moolenaar071d4272004-06-13 20:20:40 +0000185
186Many functions and commands have been added to support the new types.
187
Bram Moolenaar31c67ef2005-01-11 21:34:41 +0000188The |string()| function can be used to get a string representation of a
189variable. Works for Numbers, Strings and composites of them. Then |eval()|
190can be used to turn the string back into the variable value.
191
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000192The |:let| command can now use "+=", "-=" and ".=": >
193 :let var += expr " works like :let var = var + expr
194 :let var -= expr " works like :let var = var - expr
195 :let var .= string " works like :let var = var . string
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000196
Bram Moolenaar038eb0e2005-02-27 22:43:26 +0000197With the |:profile| command you can find out where your function or script
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000198is wasting time.
Bram Moolenaar038eb0e2005-02-27 22:43:26 +0000199
Bram Moolenaarb71eaae2006-01-20 23:10:18 +0000200In the Python interface vim.eval() also handles Dictionaries and Lists.
201|python-eval| (G. Sumner Hayes)
202
Bram Moolenaare580b0c2006-03-21 21:33:03 +0000203The |getscript| plugin was added as a convenient way to update scripts from
204www.vim.org automatically. (Charles Campbell)
205
206The |vimball| plugin was added as a convenient way to distribute a set of
207files for a plugin (plugin file, autoload script, documentation). (Charles
208Campbell)
209
Bram Moolenaar843ee412004-06-30 16:16:41 +0000210
Bram Moolenaar60c78922005-03-20 22:40:14 +0000211Spell checking *new-spell*
212--------------
213
214Spell checking has been integrated in Vim. There were a few implementations
215with scripts, but they were slow and/or required an external program.
216
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000217The 'spell' option is used to switch spell checking on or off
218The 'spelllang' option is used to specify the accepted language(s)
219The 'spellfile' option specifies where new words are added
Bram Moolenaar7fae6362005-06-30 22:06:41 +0000220The 'spellsuggest' option specifies the methods used for making suggestions
Bram Moolenaar9ba0eb82005-06-13 22:28:56 +0000221
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000222The |[s| and |]s| commands can be used to move to the next or previous error
223The |zg| and |zw| commands can be used to add good and wrong words
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000224The |z=| command can be used to list suggestions and correct the word
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000225The |:mkspell| command is used to generate a Vim spell file from word lists
Bram Moolenaar60c78922005-03-20 22:40:14 +0000226
227The "undercurl" highlighting attribute was added to nicely point out spelling
228mistakes in the GUI (based on patch from Marcin Dalecki).
229The "guisp" color can be used to give it a color different from foreground and
230background.
231The number of possible different highlight attributes was raised from about
232220 to over 30000. This allows for the attributes of spelling to be combined
Bram Moolenaar75c50c42005-06-04 22:06:24 +0000233with syntax highlighting attributes. This is also used for syntax
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000234highlighting and marking the Visual area.
Bram Moolenaar60c78922005-03-20 22:40:14 +0000235
236Much more info here: |spell|.
237
238
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000239Omni completion *new-omni-completion*
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000240---------------
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000241
242This could also be called "intellisense", but that is a trademark. It is a
243smart kind of completion. The text in front of the cursor is inspected to
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000244figure out what could be following. This may suggest struct and class
245members, system functions, etc.
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000246
247Use CTRL-X CTRL-O in Insert mode to start the completion. |i_CTRL-X_CTRL-O|
248
249The 'omnifunc' option is set by filetype plugins to define the function that
250figures out the completion.
251
Bram Moolenaar07d4d732005-10-03 22:04:08 +0000252Currently supported languages:
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000253 C |ft-c-omni|
254 (X)HTML with CSS |ft-html-omni|
255 JavaScript |ft-javascript-omni|
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000256 PHP |ft-php-omni|
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +0000257 Python
Bram Moolenaarfc1421e2006-04-20 22:17:20 +0000258 Ruby |ft-ruby-omni|
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000259 SQL |ft-sql-omni|
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000260 XML |ft-xml-omni|
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +0000261 any language wih syntax highligting |ft-syntax-omni|
Bram Moolenaar07d4d732005-10-03 22:04:08 +0000262
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000263You can add your own omni completion scripts.
264
Bram Moolenaar07d4d732005-10-03 22:04:08 +0000265When the 'completeopt' option contains "menu" then matches for Insert mode
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000266completion are displayed in a (rather primitive) popup menu.
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000267
268
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000269MzScheme interface *new-MzScheme*
270------------------
271
272The MzScheme interpreter is supported. |MzScheme|
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000273
274The |:mzscheme| command can be used to execute MzScheme commands
275The |:mzfile| command can be used to execute an MzScheme script file
276
277This depends on Vim being compiled with the |+mzscheme| feature.
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000278
Bram Moolenaar31c67ef2005-01-11 21:34:41 +0000279
Bram Moolenaar8299df92004-07-10 09:47:34 +0000280Printing multi-byte text *new-print-multi-byte*
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000281------------------------
Bram Moolenaar8299df92004-07-10 09:47:34 +0000282
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000283The |:hardcopy| command now supports printing multi-byte characters when using
284PostScript.
285
Bram Moolenaar8299df92004-07-10 09:47:34 +0000286The 'printmbcharset' and 'printmbfont' options are used for this.
287Also see |postscript-cjk-printing|. (Mike Williams)
288
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000289
Bram Moolenaar17be7e62006-03-12 22:13:45 +0000290Tab pages *new-tab-pages*
291---------
292
293A tab page is page with one or more windows with a label (aka tab) at the top.
294By clicking on the label you can quickly switch between the tab pages. And
295with the keyboard, using the |gt| (Goto Tab) command. This is a convenient
296way to work with many windows.
297
298To start Vim with each file argument in a separate tab page use the |-p|
299argument. The maximum number of pages can be set with 'tabpagemax'.
300
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000301The line with tab labels is either made with plain text and highlighting or
Bram Moolenaar17be7e62006-03-12 22:13:45 +0000302with a GUI mechanism. The GUI labels look better but are only available on a
Bram Moolenaar57657d82006-04-21 22:12:41 +0000303few systems. The line can be customized with 'tabline', 'guitablabel' and
304'guitabtooltip'. Whether it is displayed is set with 'showtabline'. Whether
305to use the GUI labels is set with the "e" flag in 'guioptions'.
Bram Moolenaar17be7e62006-03-12 22:13:45 +0000306
307The |:tab| command modifier can be used to have most commands that open a new
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000308window open a new tab page instead.
Bram Moolenaar17be7e62006-03-12 22:13:45 +0000309
Bram Moolenaar0ce29932006-03-13 22:18:45 +0000310The |--remote-tab| argument can be used to edit a file in a new tab page in an
311already running Vim server.
312
Bram Moolenaar910f66f2006-04-05 20:41:53 +0000313Variables starting with "t:" are local to a tab page.
314
Bram Moolenaar17be7e62006-03-12 22:13:45 +0000315More info here: |tabpage|
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000316Most of the GUI stuff was implemented by Yegappan Lakshmanan.
Bram Moolenaar17be7e62006-03-12 22:13:45 +0000317
318
Bram Moolenaar34e9e2f2006-03-14 23:07:19 +0000319Undo branches *new-undo-branches*
320-------------
321
322Previously there was only one line of undo-redo. If, after undoing a number
323of changes, a new change was made all the undone changes were lost. This
Bram Moolenaarea0cd362006-03-16 21:46:52 +0000324could lead to accidentally losing work.
Bram Moolenaar34e9e2f2006-03-14 23:07:19 +0000325
326Vim now makes an undo branch in this situation. Thus you can go back to the
327text after any change, even if they were undone. So long as you do not run
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000328into 'undolevels', when undo information is freed up to limit the memory used.
Bram Moolenaar34e9e2f2006-03-14 23:07:19 +0000329
330To be able to navigate the undo branches each change is numbered sequentially.
331The commands |g-| and |:earlier| go back in time, to older changes. The
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000332commands |g+| and |:later| go forward in time, to newer changes.
Bram Moolenaar34e9e2f2006-03-14 23:07:19 +0000333
334The changes are also timestamped. Use ":earlier 10m" to go to the text as it
335was about ten minutes earlier.
336
Bram Moolenaarea0cd362006-03-16 21:46:52 +0000337The |:undolist| command can be used to get an idea of which undo branches
338exist. The |:undo| command now takes an argument to directly jump to a
Bram Moolenaarca003e12006-03-17 23:19:38 +0000339specific position in this list. The |changenr()| function can be used to
340obtain the change number.
Bram Moolenaarea0cd362006-03-16 21:46:52 +0000341
Bram Moolenaar34e9e2f2006-03-14 23:07:19 +0000342There is no graphical display of the tree with changes, navigation can be
343quite confusing.
344
345
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000346Extended Unicode support *new-more-unicode*
347------------------------
348
349Previously only two combining characters were displayed. The limit is now
350raised to 6. This can be set with the 'maxcombine' option. The default is
351still 2.
352
353|ga| now shows all combining characters, not just the first two.
354
355Previously only 16 bit Unicode characters were supported for displaying. Now
356the full 32 bit character set can be used. Unless manually disabled at
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000357compile time to save a bit of memory.
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000358
359For pattern matching it is now possible to search for individual composing
360characters. |patterns-composing|
361
Bram Moolenaarca003e12006-03-17 23:19:38 +0000362The |8g8| command searches for an illegal UTF-8 byte sequence.
363
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000364
Bram Moolenaar17be7e62006-03-12 22:13:45 +0000365More highlighting *new-more-highlighting*
366-----------------
367
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000368Highlighting matching parens:
Bram Moolenaar5e3cb7e2006-02-27 23:58:35 +0000369
370When moving the cursor through the text and it is on a paren, then the
371matching paren can be highlighted. This uses the new |CursorMoved|
372autocommand event.
373
Bram Moolenaarc1e37902006-04-18 21:55:01 +0000374This means some commands are executed every time you move the cursor. If this
375slows you down too much switch it off with: >
376 :NoMatchParen
377
Bram Moolenaar261bfea2006-03-01 22:12:31 +0000378See |matchparen| for more information.
379
380The plugin uses the |:match| command. It now supports three match patterns.
381The plugin uses the third one. The first one is for the user and the second
382one can be used by another plugin.
Bram Moolenaar5e3cb7e2006-02-27 23:58:35 +0000383
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000384Highlighting the cursor line and column:
Bram Moolenaar17be7e62006-03-12 22:13:45 +0000385
386The 'cursorline' and 'cursorcolumn' options have been added. These highlight
387the screen line and screen column of the cursor. This makes the cursor
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000388position easier to spot. 'cursorcolumn' is also useful to align text. This
389may make screen updating quite slow. The CursorColumn and CursorLine
390highlight groups allow changing the colors used. |hl-CursorColumn|
391|hl-CursorLine|
392
393The number of possible different highlight attributes was raised from about
394220 to over 30000. This allows for the attributes of spelling to be combined
395with syntax highlighting attributes. This is also used for syntax
396highlighting, marking the Visual area, CursorColumn, etc.
Bram Moolenaar17be7e62006-03-12 22:13:45 +0000397
Bram Moolenaar5e3cb7e2006-02-27 23:58:35 +0000398
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000399Translated manual pages *new-manpage-trans*
400-----------------------
401
402The manual page of Vim and associated programs is now also available in
Bram Moolenaar4ad237d2005-03-11 22:49:40 +0000403several other languages.
404
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +0000405French - translated by David Blanchet
Bram Moolenaar4ad237d2005-03-11 22:49:40 +0000406Italian - translated by Antonio Colombo
407Russian - translated by Vassily Ragosin
Bram Moolenaar899dddf2006-03-26 21:06:50 +0000408Polish - translated by Mikolaj Machowski
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000409
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +0000410The Unix Makefile installs the Italian manual pages in .../man/it/man1/,
411.../man/it.ISO8859-1/man1/ and .../man/it.UTF-8/man1/. There appears to be no
412standard for what encoding goes in the "it" directory, the 8-bit encoded file
413is used there as a best guess.
414Other languages are installed in similar places.
Bram Moolenaar67fe1a12005-05-22 22:12:58 +0000415The translated pages are not automatically installed when Vim was configured
416with "--disable-nls", but "make install-languages install-tool-languages" will
417do it anyway.
Bram Moolenaarb5bf5b82004-12-24 14:35:23 +0000418
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000419
Bram Moolenaar8fc061c2004-12-29 21:03:02 +0000420Internal grep *new-vimgrep*
421-------------
422
423The ":vimgrep" command can be used to search for a pattern in a list of files.
424This is like the ":grep" command, but no external program is used. Besides
425better portability, handling of different file encodings and using multi-line
426patterns, this also allows grepping in compressed and remote files.
427|:vimgrep|.
428
Bram Moolenaar05159a02005-02-26 23:04:13 +0000429If you want to use the search results in a script you can use the
Bram Moolenaar2641f772005-03-25 21:58:17 +0000430|getqflist()| function.
Bram Moolenaar05159a02005-02-26 23:04:13 +0000431
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000432To grep files in various directories the "**" pattern can be used. It expands
433into an arbitrary depth of directories. "**" can be used in all places where
434file names are expanded, thus also with |:next| and |:args|.
Bram Moolenaar231334e2005-07-25 20:46:57 +0000435
Bram Moolenaar8fc061c2004-12-29 21:03:02 +0000436
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000437Scroll back in messages *new-scroll-back*
438-----------------------
439
440When displaying messages, at the |more-prompt| and the |hit-enter-prompt|, The
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000441'k', 'u', 'g' and 'b' keys can be used to scroll back to previous messages.
442This is especially useful for commands such as ":syntax", ":autocommand" and
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000443":highlight". This is implemented in a generic way thus it works for all
444commands and highlighting is kept. Only works when the 'more' option is set.
445Previously it only partly worked for ":clist".
446
Bram Moolenaar661b1822005-07-28 22:36:45 +0000447The |g<| command can be used to see the last page of messages after you have
448hit <Enter> at the |hit-enter-prompt|. Then you can scroll further back.
449
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000450
Bram Moolenaarea0cd362006-03-16 21:46:52 +0000451Cursor past end of the line *new-onemore*
452---------------------------
453
454When the 'virtualedit' option contains "onemore" the cursor can move just past
455the end of the line. As if it's on top of the line break.
456
457This makes some commands more consistent. Previously the cursor was always
458past the end of the line if the line was empty. But it is far from Vi
459compatible. It may also break some plugins or Vim scripts. Use with care!
460
461The patch was provided by Mattias Flodin.
462
463
Bram Moolenaar4399ef42005-02-12 14:29:27 +0000464POSIX compatibility *new-posix*
465-------------------
466
467The POSIX test suite was used to verify POSIX compatibility. A number of
468problems have been fixed to make Vim more POSIX compatible. Some of them
469conflict with traditional Vi or expected behavior. The $VIM_POSIX environment
470variable can be set to get POSIX compatibility. See |posix|.
471
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000472Items that were fixed for both Vi and POSIX compatibility:
Bram Moolenaar4399ef42005-02-12 14:29:27 +0000473- repeating "R" with a count only overwrites text once; added the 'X' flag to
474 'cpoptions' |cpo-X|
475- a vertical movement command that moves to a non-existing line fails; added
476 the '-' flag to 'cpoptions' |cpo--|
477- when preserving a file and doing ":q!" the file can be recovered; added the
478 '&' flag to 'cpoptions' |cpo-&|
479- The 'window' option is partly implemented. It specifies how much CTRL-F and
480 CTRL-B scroll when there is one window. The "-w {number}" argument is now
481 accepted. "-w {scriptout}" only works when {scriptout} doesn't start with a
482 digit.
483- Allow "-c{command}" argument, no space between "-c" and {command}.
484- When writing a file with ":w!" don't reset 'readonly' when 'Z' is present in
485 'cpoptions'.
Bram Moolenaar5313dcb2005-02-22 08:56:13 +0000486- Allow 'l' and '#' flags for ":list", ":print" and ":number".
487- Added the '.' flag to 'cpoptions': ":cd" fails when the buffer is modified.
488- In Ex mode with an empty buffer ":read file" doesn't keep an empty line
489 above or below the new lines.
490- Remove a backslash before a NL for the ":global" command.
491- When ":append", ":insert" or ":change" is used with ":global", get the
492 inserted lines from the command. Can use backslash-NL to separate lines.
493- Can use ":global /pat/ visual" to execute Normal mode commands at each
494 matched line. Use "Q" to continue and go to the next line.
495- The |:open| command has been partially implemented. It stops Ex mode, but
496 redraws the whole screen, not just one line as open mode is supposed to do.
497- Support using a pipe to read the output from and write input to an external
498 command. Added the 'shelltemp' option and has("filterpipe").
499- In ex silent mode the ":set" command output is displayed.
500- The ":@@" and ":**" give an error message when no register was used before.
501- The search pattern "[]-`]" matches ']', '^', '_' and '`'.
502- Autoindent for ":insert" is using the line below the insert.
503- Autoindent for ":change" is using the first changed line.
504- Editing Ex command lines is not done in cooked mode, because CTRL-D and
505 CTRL-T cannot be handled then.
Bram Moolenaar45eeb132005-06-06 21:59:07 +0000506- In Ex mode, "1,3" prints three lines. "%" prints all lines.
507- In Ex mode "undo" would undo all changes since Ex mode was started.
Bram Moolenaar5313dcb2005-02-22 08:56:13 +0000508- Implemented the 'prompt' option.
Bram Moolenaar4399ef42005-02-12 14:29:27 +0000509
510
Bram Moolenaare2ac10d2005-03-07 23:26:06 +0000511Debugger support *new-debug-support*
512----------------
513
514The 'balloonexpr' option has been added. This is a generic way to implement
515balloon functionality. You can use it to show info for the word under the
516mouse pointer.
517
518
Bram Moolenaar0be6e642005-08-04 21:32:22 +0000519Remote file explorer *new-netrw-explore*
520--------------------
521
522The netrw plugin now also supports viewing a directory, when "scp://" is used.
523Deleting and renaming files is possible.
524
525To avoid duplicating a lot of code, the previous file explorer plugin has been
526integrated in the netrw plugin. This means browsing local and remote files
527works the same way.
528
529":browse edit" and ":browse split" use the netrw plugin when it's available
530and a GUI dialog is not possible.
531
532The netrw plugin is maintained by Charles Campbell.
533
534
Bram Moolenaar900b4d72005-12-12 22:05:50 +0000535Define an operator *new-define-operator*
536------------------
537
538Previously it was not possible to define your own operator; a command that is
539followed by a {motion}. Vim 7 introduces the 'operatorfunc' option and the
540|g@| operator. This makes it possible to define a mapping that works like an
541operator. The actual work is then done by a function, which is invoked
542through the |g@| operator.
543
544See |:map-operator| for the explanation and an example.
545
Bram Moolenaar9f2c6e12006-02-04 22:45:44 +0000546
Bram Moolenaarade00832006-03-10 21:46:58 +0000547Mapping to an expression *new-map-expression*
548------------------------
549
550The {rhs} argument of a mapping can be an expression. That means the
551resulting characters can depend on the context. Example: >
552 :inoremap <expr> . InsertDot()
553Here the dot will be mapped to whatever InsertDot() returns.
554
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000555This also works for abbreviations. See |:map-<expr>| for the details.
Bram Moolenaarade00832006-03-10 21:46:58 +0000556
557
Bram Moolenaarb3656ed2006-03-20 21:59:49 +0000558Visual and Select mode mappings *new-map-select*
559-------------------------------
560
561Previously Visual mode mappings applied both to Visual and Select mode. With
562a trick to have the mappings work in Select mode like they would in Visual
563mode.
564
565Commands have been added to define mappings for Visual and Select mode
566separately: |:xmap| and |:smap|. With the associated "noremap" and "unmap"
567commands.
568
569The same is done for menus: |:xmenu|, |:smenu|, etc.
570
571
Bram Moolenaar17c7c012006-01-26 22:25:15 +0000572Location list *new-location-list*
573-------------
574
575The support for a per-window quickfix list (location list) is added. The
576location list can be displayed in a location window (similar to the quickfix
Bram Moolenaar8ea91232006-04-28 22:41:43 +0000577window). You can open more than one location list window. A set of commands
Bram Moolenaar17c7c012006-01-26 22:25:15 +0000578similar to the quickfix commands are added to browse the location list.
Bram Moolenaar9f2c6e12006-02-04 22:45:44 +0000579(Yegappan Lakshmanan)
580
Bram Moolenaar900b4d72005-12-12 22:05:50 +0000581
Bram Moolenaar071d4272004-06-13 20:20:40 +0000582Various new items *new-items-7*
583-----------------
584
585Normal mode commands: ~
586
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000587a", a' and a` New text objects to select quoted strings. |a'|
Bram Moolenaarac6e65f2005-08-29 22:25:38 +0000588i", i' and i` (Taro Muraoka)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000589
Bram Moolenaar05159a02005-02-26 23:04:13 +0000590CTRL-W <Enter> In the quickfix window: opens a new window to show the
591 location of the error under the cursor.
592
Bram Moolenaarff6f0612005-07-19 22:21:12 +0000593|at| and |it| text objects select a block of text between HTML or XML tags.
594
Bram Moolenaarbca84a12005-12-14 22:08:35 +0000595<A-LeftMouse> ('mousemodel' "popup" or "popup-setpos")
596<A-RightMouse> ('mousemodel' "extend")
597 Make a blockwise selection. |<A-LeftMouse>|
Bram Moolenaarff6f0612005-07-19 22:21:12 +0000598
Bram Moolenaard1f56e62006-02-22 21:25:37 +0000599gF Start editing the filename under the cursor and jump
600 to the line number following the file name.
601 (Yegappan Lakshmanan)
602
603CTRL-W F Start editing the filename under the cursor in a new
604 window and jump to the line number following the file
605 name. (Yegappan Lakshmanan)
606
Bram Moolenaar488c6512005-08-11 20:09:58 +0000607Insert mode commands: ~
608
609CTRL-\ CTRL-O Execute a Normal mode command. Like CTRL-O but
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000610 without moving the cursor. |i_CTRL-\_CTRL-O|
Bram Moolenaar488c6512005-08-11 20:09:58 +0000611
Bram Moolenaar071d4272004-06-13 20:20:40 +0000612Options: ~
613
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000614'balloonexpr' expression for text to show in evaluation balloon
615'completefunc' The name of the function used for user-specified
616 Insert mode completion. CTRL-X CTRL-U can be used in
617 Insert mode to do any kind of completion. (Taro
618 Muraoka)
619'completeopt' Enable popup menu and other settings for Insert mode
620 completion.
621'cursorcolumn' highlight column of the cursor
622'cursorline' highlight line of the cursor
Bram Moolenaar1d2ba7f2006-02-14 22:29:30 +0000623'formatexpr' expression for formatting text with |gq| and when text
624 goes over 'textwidth' in Insert mode.
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000625'formatlistpat' pattern to recognize a numbered list for formatting.
626 (idea by Hugo Haas)
627'fsync' Whether fsync() is called after writing a file.
628 (Ciaran McCreesh)
629'guitablabel' expression for text to display in GUI tab page label
630'guitabtooltip' expression for text to display in GUI tab page tooltip
631'macatsui' Mac: use ATSUI text display functions
632'maxcombine' maximum number of combining characters displayed
633'maxmempattern' maximum amount of memory to use for pattern matching
634'mkspellmem' parameters for |:mkspell| memory use
635'mzquantum' Time in msec to schedule MzScheme threads.
636'numberwidth' Minimal width of the space used for the 'number'
637 option. (Emmanuel Renieris)
638'omnifunc' The name of the function used for omni completion.
639'operatorfunc' function to be called for |g@| operator
640'printmbcharset' CJK character set to be used for :hardcopy
641'printmbfont' font names to be used for CJK output of :hardcopy
642'pumheight' maximum number of items to show in the popup menu
643'quoteescape' Characters used to escape quotes inside a string.
644 Used for the a", a' and a` text objects. |a'|
645'shelltemp' whether to use a temp file or pipes for shell commands
646'showtabline' whether to show the tab pages line
Bram Moolenaar60c78922005-03-20 22:40:14 +0000647'spell' switch spell checking on/off
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000648'spellcapcheck' pattern to locate the end of a sentence
649'spellfile' file where good and wrong words are added
Bram Moolenaar60c78922005-03-20 22:40:14 +0000650'spelllang' languages to check spelling for
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000651'spellsuggest' methods for spell suggestions
Bram Moolenaar3b56eb32005-07-11 22:40:32 +0000652'synmaxcol' maximum column to look for syntax items; avoids very
653 slow redrawing when there are very long lines
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000654'tabline' expression for text to display in the tab pages line
655'tabpagemax' maximum number of tab pages to open for |-p|
Bram Moolenaar54ee7752005-05-31 22:22:17 +0000656'verbosefile' Log messages in a file.
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000657'wildoptions' "tagfile" value enables listing the file name of
658 matching tags for CTRL-D command line completion.
659 (based on an idea from Yegappan Lakshmanan)
Bram Moolenaar97b2ad32006-03-18 21:40:56 +0000660'winfixwidth' window with fixed width, similar to 'winfixheight'
Bram Moolenaar86b68352004-12-27 21:59:20 +0000661
Bram Moolenaar071d4272004-06-13 20:20:40 +0000662
663Ex commands: ~
664
Bram Moolenaar843ee412004-06-30 16:16:41 +0000665Win32: The ":winpos" command now also works in the console. (Vipin Aravind)
666
Bram Moolenaar8299df92004-07-10 09:47:34 +0000667|:startreplace| Start Replace mode. (Charles Campbell)
Bram Moolenaarbca84a12005-12-14 22:08:35 +0000668|:startgreplace| Start Virtual Replace mode.
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000669
Bram Moolenaar8299df92004-07-10 09:47:34 +0000670|:0file| Removes the name of the buffer. (Charles Campbell)
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000671
Bram Moolenaar2df6dcc2004-07-12 15:53:54 +0000672|:diffoff| Switch off diff mode in the current window or in all
673 windows.
674
Bram Moolenaarc0197e22004-09-13 20:26:32 +0000675|:delmarks| Delete marks.
676
Bram Moolenaarb5bf5b82004-12-24 14:35:23 +0000677|:exusage| Help for Ex commands (Nvi command).
Bram Moolenaarb5bf5b82004-12-24 14:35:23 +0000678|:viusage| Help for Vi commands (Nvi command).
679
Bram Moolenaar67fe1a12005-05-22 22:12:58 +0000680|:sort| Sort lines in the buffer without depending on an
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000681 external command. (partly by Bryce Wagner)
Bram Moolenaar67fe1a12005-05-22 22:12:58 +0000682
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000683|:vimgrep| Internal grep command, search for a pattern in files.
684|:vimgrepadd| Like |:vimgrep| but don't make a new list.
685
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000686|:caddfile| Add error messages to an existing quickfix list
687 (Yegappan Lakshmanan).
Bram Moolenaardb552d602006-03-23 22:59:57 +0000688|:cbuffer| Read error lines from a buffer. (partly by Yegappan
689 Lakshmanan)
690|:cgetbuffer| Create a quickfix list from a buffer but don't jump to
691 the first error.
Bram Moolenaar9f2c6e12006-02-04 22:45:44 +0000692|:caddbuffer| Add errors from the current buffer to the quickfix
693 list.
Bram Moolenaardb552d602006-03-23 22:59:57 +0000694|:cexpr| Read error messages from a Vim expression (Yegappan
695 Lakshmanan).
696|:caddexpr| Add error messages from a Vim expression to an
697 existing quickfix list. (Yegappan Lakshmanan).
698|:cgetexpr| Create a quickfix list from a Vim expression, but
699 don't jump to the first error. (Yegappan Lakshmanan).
Bram Moolenaar4770d092006-01-12 23:22:24 +0000700
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000701|:lfile| Like |:cfile| but use the location list.
702|:lgetfile| Like |:cgetfile| but use the location list.
703|:laddfile| Like |:caddfile| but use the location list.
704|:lbuffer| Like |:cbuffer| but use the location list.
Bram Moolenaar76b92b22006-03-24 22:46:53 +0000705|:lgetbuffer| Like |:cgetbuffer| but use the location list.
Bram Moolenaar9f2c6e12006-02-04 22:45:44 +0000706|:laddbuffer| Like |:caddbuffer| but use the location list.
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000707|:lexpr| Like |:cexpr| but use the location list.
Bram Moolenaar76b92b22006-03-24 22:46:53 +0000708|:lgetexpr| Like |:cgetexpr| but use the location list.
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000709|:laddexpr| Like |:caddexpr| but use the location list.
710|:ll| Like |:cc| but use the location list.
711|:llist| Like |:clist| but use the location list.
712|:lnext| Like |:cnext| but use the location list.
Bram Moolenaarf52c7252006-02-10 23:23:57 +0000713|:lprevious| Like |:cprevious| but use the location list.
Bram Moolenaar8b6144b2006-02-08 09:20:24 +0000714|:lNext| Like |:cNext| but use the location list.
715|:lfirst| Like |:cfirst| but use the location list.
716|:lrewind| Like |:crewind| but use the location list.
717|:llast| Like |:clast| but use the location list.
718|:lnfile| Like |:cnfile| but use the location list.
719|:lpfile| Like |:cpfile| but use the location list.
720|:lNfile| Like |:cNfile| but use the location list.
721|:lolder| Like |:colder| but use the location list.
722|:lnewer| Like |:cnewer| but use the location list.
723|:lwindow| Like |:cwindow| but use the location list.
724|:lopen| Like |:copen| but use the location list.
725|:lclose| Like |:cclose| but use the location list.
Bram Moolenaarf52c7252006-02-10 23:23:57 +0000726|:lmake| Like |:make| but use the location list.
727|:lgrep| Like |:grep| but use the location list.
728|:lgrepadd| Like |:grepadd| but use the location list.
729|:lvimgrep| Like |:vimgrep| but use the location list.
730|:lvimgrepadd| Like |:vimgrepadd| but use the location list.
731|:lhelpgrep| Like |:helpgrep| but use the location list.
732|:lcscope| Like |:cscope| but use the location list.
733|:ltag| Jump to a tag and add matching tags to a location list.
Bram Moolenaar1ef15e32006-02-01 21:56:25 +0000734
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000735|:undojoin| Join a change with the previous undo block.
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000736|:undolist| List the leafs of the undo tree.
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000737
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000738|:earlier| Go back in time for changes in the text.
739|:later| Go forward in time for changes in the text.
740
741|:for| Loop over a |List|.
742|:endfor|
743
744|:lockvar| Lock a variable, prevents it from being changed.
745|:unlockvar| Unlock a locked variable.
746
747|:mkspell| Create a Vim spell file.
748|:spellgood| Add a word to the list of good words.
749|:spellwrong| Add a word to the list of bad words
750|:spelldump| Dump list of good words.
751|:spellinfo| Show information about the spell files used.
752|:spellrepall| Repeat a spelling correction for the whole buffer.
753|:spellundo| Remove a word from list of good and bad words.
754
755|:mzscheme| Execute MzScheme commands.
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000756|:mzfile| Execute an MzScheme script file.
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000757
758|:nbkey| Pass a key to NetBeans for processing.
759
760|:profile| Commands for Vim script profiling.
761|:profdel| Stop profiling for specified items.
762
763|:smap| Select mode mapping.
764|:smapclear|
765|:snoremap|
766|:sunmap|
767
768|:xmap| Visual mode mapping, not used for Select mode.
769|:xmapclear|
770|:xnoremap|
771|:xunmap|
772
773|:smenu| Select mode menu.
774|:snoremenu|
775|:sunmenu|
776
777|:xmenu| Visual mode menu, not used for Select mode.
778|:xnoremenu|
779|:xunmenu|
780
781|:tabclose| Close the current tab page.
782|:tabdo| Perform a command in every tab page.
783|:tabedit| Edit a file in a new tab page.
784|:tabnew| Open a new tab page.
785|:tabfind| Search for a file and open it in a new tab page.
786|:tabnext| Go to the next tab page.
787|:tabprevious| Go to the previous tab page.
788|:tabNext| Go to the previous tab page.
789|:tabfirst| Go to the first tab page.
790|:tabrewind| Go to the first tab page.
791|:tablast| Go to the last tab page.
792|:tabmove| Move the current tab page elsewhere.
793|:tabonly| Close all other tab pages.
794|:tabs| List the tab pages and the windows they contain.
Bram Moolenaarbca84a12005-12-14 22:08:35 +0000795
Bram Moolenaar63a121b2005-12-11 21:36:39 +0000796Ex command modifiers: ~
797
798|:keepalt| Do not change the alternate file.
799
800|:noautocmd| Do not trigger autocommand events.
801
802|:sandbox| Execute a command in the sandbox.
803
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000804|:tab| When opening a new window create a new tab page.
805
Bram Moolenaar67fe1a12005-05-22 22:12:58 +0000806
Bram Moolenaarb2c2efa2005-12-13 20:09:08 +0000807Ex command arguments: ~
808
809|++bad| Specify what happens with characters that can't be
810 converted and illegal bytes. (code example by Yasuhiro
811 Matsumoto)
812 Also, when a conversion error occurs or illegal bytes
813 are found include the line number in the error
814 message.
815
816
Bram Moolenaara5792f52005-11-23 21:25:05 +0000817New and extended functions: ~
Bram Moolenaar071d4272004-06-13 20:20:40 +0000818
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000819|add()| append an item to a List
820|append()| append List of lines to the buffer
Bram Moolenaare2f98b92006-03-29 21:18:24 +0000821|argv()| without an argument return the whole argument list
Bram Moolenaar87b774d2005-07-20 22:04:36 +0000822|browsedir()| dialog to select a directory
Bram Moolenaarbd404142006-03-25 22:05:04 +0000823|bufnr()| takes an extra argument: create buffer
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000824|byteidx()| index of a character (Ilya Sher)
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000825|call()| call a function with List as arguments
Bram Moolenaarbd404142006-03-25 22:05:04 +0000826|changenr()| number of current change
827|complete()| set matches for Insert mode completion
Bram Moolenaar572cb562005-08-05 21:35:02 +0000828|complete_add()| add match for 'completefunc'
829|complete_check()| check for key pressed, for 'completefunc'
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000830|copy()| make a shallow copy of a List or Dictionary
831|count()| count nr of times a value is in a List or Dictionary
Bram Moolenaar8fd89f02006-03-02 22:51:05 +0000832|cursor()| also accepts an offset for 'virtualedit', and
833 the first argument can be a list: [lnum, col, off]
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000834|deepcopy()| make a full copy of a List or Dictionary
Bram Moolenaarbd404142006-03-25 22:05:04 +0000835|diff_filler()| returns number of filler lines above line {lnum}.
836|diff_hlID()| returns the highlight ID for diff mode
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000837|empty()| check if List or Dictionary is empty
Bram Moolenaarbd404142006-03-25 22:05:04 +0000838|eval()| evaluate {string} and return the result
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000839|extend()| append one List to another or add items from one
840 Dictionary to another
Bram Moolenaarf9393ef2006-04-24 19:47:27 +0000841|feedkeys()| put characters in the typeahead buffer
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000842|filter()| remove selected items from a List or Dictionary
Bram Moolenaar87b774d2005-07-20 22:04:36 +0000843|finddir()| find a directory in 'path'
844|findfile()| find a file in 'path' (Johannes Zellner)
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000845|foldtextresult()| the text displayed for a closed fold at line "lnum"
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000846|function()| make a Funcref out of a function name
Bram Moolenaarbd404142006-03-25 22:05:04 +0000847|garbagecollect()| cleanup unused |Lists| and |Dictionaries| with circular
848 references
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000849|get()| get an item from a List or Dictionary
Bram Moolenaar342337a2005-07-21 21:11:17 +0000850|getbufline()| get a list of lines from a specified buffer
Bram Moolenaar87b774d2005-07-20 22:04:36 +0000851 (Yegappan Lakshmanan)
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +0000852|getcmdtype()| return the current command-line type
853 (Yegappan Lakshmanan)
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000854|getfontname()| get actual font name being used
Bram Moolenaar87b774d2005-07-20 22:04:36 +0000855|getfperm()| get file permission string (Nikolai Weibull)
856|getftype()| get type of file (Nikolai Weibull)
857|getline()| with second argument: get List with buffer lines
Bram Moolenaarbd404142006-03-25 22:05:04 +0000858|getloclist()| list of location list items (Yegappan Lakshmanan)
Bram Moolenaar8fd89f02006-03-02 22:51:05 +0000859|getpos()| return a list with the position of cursor, mark, etc.
Bram Moolenaarbd404142006-03-25 22:05:04 +0000860|getqflist()| list of quickfix errors (Yegappan Lakshmanan)
861|getreg()| get contents of a register
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000862|gettabwinvar()| get variable from window in specified tab page.
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000863|has_key()| check whether a key appears in a Dictionary
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000864|haslocaldir()| check if current window used |:lcd|
Bram Moolenaarbd404142006-03-25 22:05:04 +0000865|hasmapto()| check for a mapping to a string
Bram Moolenaarbd404142006-03-25 22:05:04 +0000866|index()| index of item in List
867|inputlist()| prompt the user to make a selection from a list
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000868|insert()| insert an item somewhere in a List
Bram Moolenaarbd404142006-03-25 22:05:04 +0000869|islocked()| check if a variable is locked
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000870|items()| get List of Dictionary key-value pairs
871|join()| join List items into a String
872|keys()| get List of Dictionary keys
873|len()| number of items in a List or Dictionary
874|map()| change each List or Dictionary item
Bram Moolenaarbd404142006-03-25 22:05:04 +0000875|maparg()| extra argument: use abbreviation
876|mapcheck()| extra argument: use abbreviation
877|match()| extra argument: count
Bram Moolenaar910f66f2006-04-05 20:41:53 +0000878|matcharg()| return arguments of |:match| command
Bram Moolenaarbd404142006-03-25 22:05:04 +0000879|matchend()| extra argument: count
Bram Moolenaar2a8d1f82005-02-05 21:43:56 +0000880|matchlist()| list with match and submatches of a pattern in a string
Bram Moolenaarbd404142006-03-25 22:05:04 +0000881|matchstr()| extra argument: count
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000882|max()| maximum value in a List or Dictionary
883|min()| minimum value in a List or Dictionary
Bram Moolenaar5313dcb2005-02-22 08:56:13 +0000884|mkdir()| create a directory
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000885|pathshorten()| reduce directory names to a single character
Bram Moolenaar4be06f92005-07-29 22:36:03 +0000886|printf()| format text
Bram Moolenaarbd404142006-03-25 22:05:04 +0000887|pumvisible()| check whether the popup menu is displayed
888|range()| generate a List with numbers
Bram Moolenaar2a8d1f82005-02-05 21:43:56 +0000889|readfile()| read a file into a list of lines
Bram Moolenaare580b0c2006-03-21 21:33:03 +0000890|reltime()| get time value, possibly relative
891|reltimestr()| turn a time value into a string
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000892|remove()| remove one or more items from a List or Dictionary
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000893|repeat()| repeat "expr" "count" times (Christophe Poucet)
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000894|reverse()| reverse the order of a List
Bram Moolenaarbd404142006-03-25 22:05:04 +0000895|search()| extra argument:
Bram Moolenaarf75a9632005-09-13 21:20:47 +0000896|searchdecl()| search for declaration of variable
Bram Moolenaarbd404142006-03-25 22:05:04 +0000897|searchpair()| extra argument: line to stop searching
Bram Moolenaar1d2ba7f2006-02-14 22:29:30 +0000898|searchpairpos()| return a List with the position of the match
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000899|searchpos()| return a List with the position of the match
Bram Moolenaar17c7c012006-01-26 22:25:15 +0000900|setloclist()| modify a location list (Yegappan Lakshmanan)
Bram Moolenaarbd404142006-03-25 22:05:04 +0000901|setpos()| set cursor or mark to a position
Bram Moolenaar17c7c012006-01-26 22:25:15 +0000902|setqflist()| modify a quickfix list (Yegappan Lakshmanan)
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000903|settabwinvar()| set variable in window of specified tab page
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000904|sort()| sort a List
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000905|soundfold()| get the sound-a-like equivalent of a word
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000906|spellbadword()| get a badly spelled word
907|spellsuggest()| get suggestions for correct spelling
Bram Moolenaarbd404142006-03-25 22:05:04 +0000908|split()| split a String into a List
Bram Moolenaar97b2ad32006-03-18 21:40:56 +0000909|str2nr()| convert a string to a number, base 8, 10 or 16
Bram Moolenaarbd404142006-03-25 22:05:04 +0000910|stridx()| extra argument: start position
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000911|strridx()| extra argument: start position
Bram Moolenaar87b774d2005-07-20 22:04:36 +0000912|string()| string representation of a List or Dictionary
Bram Moolenaarbd404142006-03-25 22:05:04 +0000913|system()| extra argument: filters {input} through a shell command
914|tabpagebuflist()| List of buffers in a tab page
915|tabpagenr()| number of current or last tab page
916|tabpagewinnr()| window number in a tab page
917|tagfiles()| List with tags file names
Bram Moolenaar87b774d2005-07-20 22:04:36 +0000918|taglist()| get list of matching tags (Yegappan Lakshmanan)
919|tr()| translate characters (Ron Aaron)
Bram Moolenaarbac234e2005-01-17 22:21:07 +0000920|values()| get List of Dictionary values
Bram Moolenaarbd404142006-03-25 22:05:04 +0000921|winnr()| takes an argument: what window to use
Bram Moolenaar768b8c42006-03-04 21:58:33 +0000922|winrestview()| restore the view of the current window
923|winsaveview()| save the view of the current window
Bram Moolenaar2a8d1f82005-02-05 21:43:56 +0000924|writefile()| write a list of lines into a file
Bram Moolenaar8299df92004-07-10 09:47:34 +0000925
Bram Moolenaarbee0c5b2005-02-07 22:03:36 +0000926User defined functions can now be loaded automatically from the "autoload"
927directory in 'runtimepath'. See |autoload-functions|.
928
Bram Moolenaar071d4272004-06-13 20:20:40 +0000929
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000930New Vim variables: ~
931
932|v:insertmode| used for |InsertEnter| and |InsertChange| autocommands
933|v:val| item value in a |map()| or |filter()| function
934|v:key| item key in a |map()| or |filter()| function
935|v:profiling| non-zero after a ":profile start" command
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000936|v:fcs_reason| the reason why |FileChangedShell| was triggered
937|v:fcs_choice| what should happen after |FileChangedShell|
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000938|v:beval_bufnr| buffer number for 'balloonexpr'
939|v:beval_winnr| window number for 'balloonexpr'
940|v:beval_lnum| line number for 'balloonexpr'
941|v:beval_col| column number for 'balloonexpr'
942|v:beval_text| text under the mouse pointer for 'balloonexpr'
943|v:scrollstart| what caused the screen to be scrolled up
944|v:swapname| name of the swap file for the |SwapExists| event
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000945|v:swapchoice| what to do for an existing swap file
Bram Moolenaarc93b83a2006-04-29 22:02:36 +0000946|v:swapcommand| command to be executed after handling |SwapExists|
947|v:char| argument for evaluating 'formatexpr'
948
949
Bram Moolenaar071d4272004-06-13 20:20:40 +0000950New autocommand events: ~
951
Bram Moolenaar8299df92004-07-10 09:47:34 +0000952|ColorScheme| after loading a color scheme
Bram Moolenaar1f35bf92006-03-07 22:38:47 +0000953
Bram Moolenaar3d0a6032006-02-09 23:54:54 +0000954|CursorHoldI| the user doesn't press a key for a while in Insert mode
955|CursorMoved| the cursor was moved in Normal mode
956|CursorMovedI| the cursor was moved in Insert mode
957
Bram Moolenaarbd404142006-03-25 22:05:04 +0000958|FileChangedShellPost| after handling a file changed outside of Vim
959
960|InsertEnter| starting Insert or Replace mode
961|InsertChange| going from Insert to Replace mode or back
962|InsertLeave| leaving Insert or Replace mode
963
964|MenuPopup| just before showing popup menu
965
966|QuickFixCmdPre| before :make, :grep et al. (Ciaran McCreesh)
967|QuickFixCmdPost| after :make, :grep et al. (Ciaran McCreesh)
968
969|SessionLoadPost| after loading a session file. (Yegappan Lakshmanan)
970
971|ShellCmdPost| after executing a shell command
972|ShellFilterPost| after filtering with a shell command
973
974|SourcePre| before sourcing a Vim script
975
976|SpellFileMissing| when a spell file can't be found
977
978|SwapExists| found existing swap file when editing a file
979
980|TabEnter| just after entering a tab page
981|TabLeave| just before leaving a tab page
982
983|VimResized| after the Vim window size changed (Yakov Lerner)
984
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000985
Bram Moolenaar96351572006-05-05 21:16:59 +0000986New highlight groups: ~
987
988Pmenu Popup menu: normal item |hl-Pmenu|
989PmenuSel Popup menu: selected item |hl-PmenuSel|
990PmenuThumb Popup menu: scrollbar |hl-PmenuThumb|
991PmenuSbar Popup menu: Thumb of the scrollbar |hl-PmenuSbar|
992
993TabLine tab pages line, inactive label |hl-TabLine|
994TabLineSel tab pages line, selected label |hl-TabLineSel|
995TabLineFill tab pages line, filler |hl-TabLineFill|
996
997SpellBad badly spelled word |hl-SpellBad|
998SpellCap word with wrong caps |hl-SpellCap|
999SpellRare rare word |hl-SpellRare|
1000SpellLocal word only exists in other region |hl-SpellLocal|
1001
1002CursorColumn 'cursorcolumn' |hl-CursorColumn|
1003CursorLine 'cursorline' |hl-CursorLine|
1004
1005MatchParen matching parens |pi_paren.txt| |hl-MatchParen|
1006
1007
Bram Moolenaarc0197e22004-09-13 20:26:32 +00001008New items in search patterns: ~
1009|/\%d| \%d123 search for character with decimal number
Bram Moolenaar49325942007-05-10 19:19:59 +00001010|/\]| [\d123] idem, in a collection
Bram Moolenaarc0197e22004-09-13 20:26:32 +00001011|/\%o| \%o103 search for character with octal number
Bram Moolenaar49325942007-05-10 19:19:59 +00001012|/\]| [\o1o3] idem, in a collection
Bram Moolenaarc0197e22004-09-13 20:26:32 +00001013|/\%x| \%x1a search for character with 2 pos. hex number
Bram Moolenaar49325942007-05-10 19:19:59 +00001014|/\]| [\x1a] idem, in a collection
Bram Moolenaarc0197e22004-09-13 20:26:32 +00001015|/\%u| \%u12ab search for character with 4 pos. hex number
Bram Moolenaar49325942007-05-10 19:19:59 +00001016|/\]| [\u12ab] idem, in a collection
Bram Moolenaarc0197e22004-09-13 20:26:32 +00001017|/\%U| \%U1234abcd search for character with 8 pos. hex number
Bram Moolenaar49325942007-05-10 19:19:59 +00001018|/\]| [\U1234abcd] idem, in a collection
Bram Moolenaarc0197e22004-09-13 20:26:32 +00001019 (The above partly by Ciaran McCreesh)
Bram Moolenaar33aec762006-01-22 23:30:12 +00001020
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00001021|/[[=| [[=a=]] an equivalence class (only for latin1 characters)
1022|/[[.| [[.a.]] a collation element (only works with single char)
Bram Moolenaar5313dcb2005-02-22 08:56:13 +00001023
Bram Moolenaar33aec762006-01-22 23:30:12 +00001024|/\%'m| \%'m match at mark m
1025|/\%<'m| \%<'m match before mark m
1026|/\%>'m| \%>'m match after mark m
1027|/\%V| \%V match in Visual area
1028
Bram Moolenaar5313dcb2005-02-22 08:56:13 +00001029Nesting |/multi| items no longer is an error when an empty match is possible.
1030
1031It is now possible to use \{0}, it matches the preceding atom zero times. Not
1032useful, just for compatibility.
Bram Moolenaarc0197e22004-09-13 20:26:32 +00001033
1034
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001035New Syntax/Indent/FTplugin files: ~
1036
Bram Moolenaarb982ca52005-03-28 21:02:15 +00001037Moved all the indent settings from the filetype plugin to the indent file.
1038Implemented b:undo_indent to undo indent settings when setting 'filetype' to a
1039different value.
1040
Bram Moolenaarbd404142006-03-25 22:05:04 +00001041a2ps syntax and ftplugin file. (Nikolai Weibull)
1042ABAB/4 syntax file. (Marius van Wyk)
1043alsaconf ftplugin file. (Nikolai Weibull)
1044AppendMatchGroup ftplugin file. (Dave Silvia)
1045arch ftplugin file. (Nikolai Weibull)
1046asterisk and asteriskvm syntax file. (Tilghman Lesher)
1047BDF ftplugin file. (Nikolai Weibull)
1048BibTeX indent file. (Dorai Sitaram)
Bram Moolenaar437df8f2006-04-27 21:47:44 +00001049BibTeX Bibliography Style syntax file. (Tim Pope)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001050BTM ftplugin file. (Bram Moolenaar)
1051calendar ftplugin file. (Nikolai Weibull)
1052Changelog indent file. (Nikolai Weibull)
Bram Moolenaar57657d82006-04-21 22:12:41 +00001053ChordPro syntax file. (Niels Bo Andersen)
Bram Moolenaarc1e37902006-04-18 21:55:01 +00001054Cmake indent and syntax file. (Andy Cedilnik)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001055conf ftplugin file. (Nikolai Weibull)
1056context syntax and ftplugin file. (Nikolai Weibull)
1057CRM114 ftplugin file. (Nikolai Weibull)
1058cvs RC ftplugin file. (Nikolai Weibull)
1059D indent file. (Jason Mills)
Bram Moolenaard2cec5b2006-03-28 21:08:56 +00001060Debian Sources.list syntax file. (Matthijs Mohlmann)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001061dictconf and dictdconf syntax, indent and ftplugin files. (Nikolai Weibull)
1062diff ftplugin file. (Bram Moolenaar)
1063dircolors ftplugin file. (Nikolai Weibull)
1064django and htmldjango syntax file. (Dave Hodder)
Bram Moolenaar8cacf352006-04-15 20:27:24 +00001065doxygen syntax file. (Michael Geddes)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001066elinks ftplugin file. (Nikolai Weibull)
1067eterm ftplugin file. (Nikolai Weibull)
1068eviews syntax file. (Vaidotas Zemlys)
1069fetchmail RC ftplugin file. (Nikolai Weibull)
Bram Moolenaar437df8f2006-04-27 21:47:44 +00001070FlexWiki syntax and ftplugin file. (George Reilly)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001071Generic indent file. (Dave Silvia)
1072gpg ftplugin file. (Nikolai Weibull)
1073gretl syntax file. (Vaidotas Zemlys)
1074groovy syntax file. (Alessio Pace)
1075group syntax and ftplugin file. (Nikolai Weibull)
1076grub ftplugin file. (Nikolai Weibull)
1077Haskell ftplugin file. (Nikolai Weibull)
1078help ftplugin file. (Nikolai Weibull)
1079indent ftplugin file. (Nikolai Weibull)
1080Javascript ftplugin file. (Bram Moolenaar)
Bram Moolenaar4c3f5362006-04-11 21:38:50 +00001081Kconfig ftplugin and syntax file. (Nikolai Weibull)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001082ld syntax, indent and ftplugin file. (Nikolai Weibull)
1083lftp ftplugin file. (Nikolai Weibull)
1084libao config ftplugin file. (Nikolai Weibull)
1085limits syntax and ftplugin file. (Nikolai Weibull)
1086Lisp indent file. (Sergey Khorev)
1087loginaccess and logindefs syntax and ftplugin file. (Nikolai Weibull)
1088m4 ftplugin file. (Nikolai Weibull)
Bram Moolenaar899dddf2006-03-26 21:06:50 +00001089mailaliases syntax file. (Nikolai Weibull)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001090mailcap ftplugin file. (Nikolai Weibull)
1091manconf syntax and ftplugin file. (Nikolai Weibull)
1092matlab ftplugin file. (Jake Wasserman)
Bram Moolenaar779b74b2006-04-10 14:55:34 +00001093Maxima syntax file. (Robert Dodier)
Bram Moolenaar2a3f7ee2006-02-23 21:34:44 +00001094MGL syntax file. (Gero Kuhlmann)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001095modconf ftplugin file. (Nikolai Weibull)
1096mplayer config ftplugin file. (Nikolai Weibull)
Bram Moolenaar437df8f2006-04-27 21:47:44 +00001097Mrxvtrc syntax and ftplugin file. (Gautam Iyer)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001098MuPAD source syntax, indent and ftplugin. (Dave Silvia)
1099mutt RC ftplugin file. (Nikolai Weibull)
1100nanorc syntax and ftplugin file. (Nikolai Weibull)
1101netrc ftplugin file. (Nikolai Weibull)
1102pamconf syntax and ftplugin file. (Nikolai Weibull)
1103Pascal indent file. (Neil Carter)
1104passwd syntax and ftplugin file. (Nikolai Weibull)
1105PHP compiler plugin. (Doug Kearns)
1106pinfo ftplugin file. (Nikolai Weibull)
Bram Moolenaard2cec5b2006-03-28 21:08:56 +00001107plaintex syntax and ftplugin files. (Nikolai Weibull, Benji Fisher)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001108procmail ftplugin file. (Nikolai Weibull)
1109prolog ftplugin file. (Nikolai Weibull)
1110protocols syntax and ftplugin file. (Nikolai Weibull)
1111quake ftplugin file. (Nikolai Weibull)
1112racc syntax and ftplugin file. (Nikolai Weibull)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001113readline ftplugin file. (Nikolai Weibull)
1114rhelp syntax file. (Johannes Ranke)
Bram Moolenaarc1e37902006-04-18 21:55:01 +00001115rnoweb syntax file. (Johannes Ranke)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001116Relax NG compact ftplugin file. (Nikolai Weibull)
1117Scheme indent file. (Sergey Khorev)
1118screen ftplugin file. (Nikolai Weibull)
1119sensors syntax and ftplugin file. (Nikolai Weibull)
1120services syntax and ftplugin file. (Nikolai Weibull)
1121setserial syntax and ftplugin file. (Nikolai Weibull)
1122sieve syntax and ftplugin file. (Nikolai Weibull)
Bram Moolenaar61660ea2006-04-07 21:40:07 +00001123SiSU syntax file (Ralph Amissah)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001124Sive syntax file. (Nikolai Weibull)
1125slp config, reg and spi syntax and ftplugin files. (Nikolai Weibull)
1126SML indent file. (Saikat Guha)
1127SQL anywhere syntax and indent file. (David Fishburn)
1128SQL indent file.
1129SQL-Informix syntax file. (Dean L Hill)
1130SQL: Handling of various variants. (David Fishburn)
1131sshconfig ftplugin file. (Nikolai Weibull)
Bram Moolenaar8cacf352006-04-15 20:27:24 +00001132Stata and SMCL syntax files. (Jeff Pitblado)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001133sudoers ftplugin file. (Nikolai Weibull)
1134sysctl syntax and ftplugin file. (Nikolai Weibull)
1135terminfo ftplugin file. (Nikolai Weibull)
1136trustees syntax file. (Nima Talebi)
Bram Moolenaarc1e37902006-04-18 21:55:01 +00001137Vera syntax file. (David Eggum)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001138udev config, permissions and rules syntax and ftplugin files. (Nikolai Weibull)
1139updatedb syntax and ftplugin file. (Nikolai Weibull)
1140VHDL indent file (Gerald Lai)
1141WSML syntax file. (Thomas Haselwanter)
1142Xdefaults ftplugin file. (Nikolai Weibull)
1143XFree86 config ftplugin file. (Nikolai Weibull)
1144xinetd syntax, indent and ftplugin file. (Nikolai Weibull)
1145xmodmap ftplugin file. (Nikolai Weibull)
1146Xquery syntax file. (Jean-Marc Vanel)
1147xsd (XML schema) indent file.
1148YAML ftplugin file. (Nikolai Weibull)
1149Zsh ftplugin file. (Nikolai Weibull)
1150
Bram Moolenaar261bfea2006-03-01 22:12:31 +00001151
Bram Moolenaar47136d72004-10-12 20:02:24 +00001152New Keymaps: ~
1153
1154Sinhala (Sri Lanka) (Harshula Jayasuriya)
Bram Moolenaar238a5642006-02-21 22:12:05 +00001155Tamil in TSCII encoding (Yegappan Lakshmanan)
Bram Moolenaarbd404142006-03-25 22:05:04 +00001156Greek in cp737 (Panagiotis Louridas)
1157Polish-slash (HS6_06)
1158Ukrainian-jcuken (Anatoli Sakhnik)
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001159Kana (Edward L. Fox)
Bram Moolenaar238a5642006-02-21 22:12:05 +00001160
Bram Moolenaar47136d72004-10-12 20:02:24 +00001161
Bram Moolenaar15d0a8c2004-09-06 17:44:46 +00001162New message translations: ~
1163
1164The Ukranian messages are now also available in cp1251.
Bram Moolenaar05159a02005-02-26 23:04:13 +00001165Vietnamese message translations and menu. (Phan Vinh Thinh)
1166
Bram Moolenaar071d4272004-06-13 20:20:40 +00001167
Bram Moolenaarf4b8e572004-06-24 15:53:16 +00001168Others: ~
1169
Bram Moolenaar910f66f2006-04-05 20:41:53 +00001170The |:read| command has the |++edit| argument. This means it will use the
1171detected 'fileformat', 'fileencoding' and other options for the buffer. This
1172also fixes the problem that editing a compressed file didn't set these
1173options.
1174
Bram Moolenaar1f35bf92006-03-07 22:38:47 +00001175The Netbeans interface was updated for Sun Studio 10. The protocol number
1176goes from 2.2 to 2.3. (Gordon Prieur)
1177
Bram Moolenaar1056d982006-03-09 22:37:52 +00001178Mac: When starting up Vim will load the $VIMRUNTIME/macmap.vim script to
Bram Moolenaar34e9e2f2006-03-14 23:07:19 +00001179define default command-key mappings. (mostly by Benji Fisher)
Bram Moolenaar1056d982006-03-09 22:37:52 +00001180
Bram Moolenaarf4b8e572004-06-24 15:53:16 +00001181Mac: Add the selection type to the clipboard, so that Block, line and
1182character selections can be used between two Vims. (Eckehard Berns)
1183Also fixes the problem that setting 'clipboard' to "unnamed" breaks using
1184"yyp".
Bram Moolenaar071d4272004-06-13 20:20:40 +00001185
Bram Moolenaara5792f52005-11-23 21:25:05 +00001186Mac: GUI font selector. (Peter Cucka)
Bram Moolenaar592e0a22004-07-03 16:05:59 +00001187
Bram Moolenaar5313dcb2005-02-22 08:56:13 +00001188Mac: support for multi-byte characters. (Da Woon Jung)
Bram Moolenaarf9393ef2006-04-24 19:47:27 +00001189This doesn't always work properly. If you see text drawing problems try
1190switching the 'macatsui' option off.
Bram Moolenaar5313dcb2005-02-22 08:56:13 +00001191
Bram Moolenaar900b4d72005-12-12 22:05:50 +00001192Mac: Support the xterm mouse in the non-GUI version.
Bram Moolenaar567e4de2004-12-31 21:01:02 +00001193
Bram Moolenaar46c9c732004-12-12 11:37:09 +00001194Mac: better integration with Xcode. Post a fake mouse-up event after the odoc
1195event and the drag receive handler to work around a stall after Vim loads a
1196file. Fixed an off-by-one line number error. (Da Woon Jung)
1197
Bram Moolenaard2cec5b2006-03-28 21:08:56 +00001198Mac: When started from Finder change directory to the file being edited or the
1199user home directory.
1200
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001201Added the t_SI and t_EI escape sequences for starting and ending Insert mode.
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00001202To be used to set the cursor shape to a bar or a block. No default values,
1203they are not supported by termcap/terminfo.
1204
Bram Moolenaar900b4d72005-12-12 22:05:50 +00001205GUI font selector for Motif. (Marcin Dalecki)
1206
1207Nicer toolbar buttons for Motif. (Marcin Dalecki)
1208
1209Mnemonics for the Motif find/replace dialog. (Marcin Dalecki)
1210
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00001211Included a few improvements for Motif from Marcin Dalecki. Draw label
1212contents ourselves to make them handle fonts in a way configurable by Vim and
1213a bit less dependent on the X11 font management.
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001214
Bram Moolenaarb5bf5b82004-12-24 14:35:23 +00001215Autocommands can be defined local to a buffer. This means they will also work
1216when the buffer does not have a name or no specific name. See
1217|autocmd-buflocal|. (Yakov Lerner)
1218
Bram Moolenaar19a09a12005-03-04 23:39:37 +00001219For xterm most combinations of modifiers with function keys are recognized.
1220|xterm-modifier-keys|
1221
Bram Moolenaarae5bce12005-08-15 21:41:48 +00001222When 'verbose' is set the output of ":highlight" will show where a highlight
1223item was last set.
Bram Moolenaare344bea2005-09-01 20:46:49 +00001224When 'verbose' is set the output of the ":map", ":abbreviate", ":command",
1225":function" and ":autocmd" commands will show where it was last defined.
1226(Yegappan Lakshmanan)
Bram Moolenaarae5bce12005-08-15 21:41:48 +00001227
Bram Moolenaardd2436f2005-09-05 22:14:46 +00001228":function /pattern" lists functions matching the pattern.
1229
Bram Moolenaarf75a9632005-09-13 21:20:47 +00001230"1gd" can be used like "gd" but ignores matches in a {} block that ends before
1231the cursor position. Likewise for "1gD" and "gD".
1232
Bram Moolenaar4463f292005-09-25 22:20:24 +00001233'scrolljump' can be set to a negative number to scroll a percentage of the
1234window height.
1235
Bram Moolenaar07d4d732005-10-03 22:04:08 +00001236The |v:scrollstart| variable has been added to help finding the location in
1237your script that causes the hit-enter prompt.
1238
Bram Moolenaar63a121b2005-12-11 21:36:39 +00001239To make it possible to handle the situation that a file is being edited that
1240is already being edited by another Vim instance, the |SwapExists| event has
1241been added. The |v:swapname|, |v:swapchoice| and |v:swapcommand| variables
1242can be used, for example to use the |client-server| functionality to bring the
1243other Vim to the foreground.
Bram Moolenaar146522e2005-12-16 21:55:46 +00001244When starting Vim with a "-t tag" argument, there is an existing swapfile and
1245the user selects "quit" or "abort" then exit Vim.
Bram Moolenaar63a121b2005-12-11 21:36:39 +00001246
Bram Moolenaareddf53b2006-02-27 00:11:10 +00001247Undo now also restores the '< and '> marks. "gv" selects the same area as
1248before the change and undo.
1249
Bram Moolenaarea0cd362006-03-16 21:46:52 +00001250When editing a search pattern for a "/" or "?" command and 'incsearch' is set
1251CTRL-L can be used to add a character from the current match. CTRL-R CTRL-W
1252will add a word, but exclude the part of the word that was already typed.
1253
Bram Moolenaar97b2ad32006-03-18 21:40:56 +00001254Ruby interface: add line number methods. (Ryan Paul)
1255
Bram Moolenaar910f66f2006-04-05 20:41:53 +00001256The $MYVIMRC environment variable is set to the first found vimrc file.
1257The $MYGVIMRC environment variable is set to the first found gvimrc file.
1258
Bram Moolenaar071d4272004-06-13 20:20:40 +00001259==============================================================================
1260IMPROVEMENTS *improvements-7*
1261
Bram Moolenaarf4b8e572004-06-24 15:53:16 +00001262":helpgrep" accepts a language specifier after the pattern: "pat@it".
1263
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00001264Moved the help for printing to a separate help file. It's quite a lot now.
Bram Moolenaar8299df92004-07-10 09:47:34 +00001265
Bram Moolenaar1f35bf92006-03-07 22:38:47 +00001266When doing completion for ":!cmd", ":r !cmd" or ":w !cmd" executable files are
Bram Moolenaar551dbcc2006-04-25 22:13:59 +00001267found in $PATH instead of looking for ordinary files in the current directory.
Bram Moolenaar1f35bf92006-03-07 22:38:47 +00001268
Bram Moolenaara5792f52005-11-23 21:25:05 +00001269When ":silent" is used and a backwards range is given for an Ex command the
1270range is swapped automatically instead of asking if that is OK.
1271
Bram Moolenaar8bf59b92005-03-06 23:40:56 +00001272The pattern matching code was changed from a recursive function to an
1273iterative mechanism. This avoids out-of-stack errors. State is stored in
1274allocated memory, running out of memory can always be detected. Allows
1275matching more complex things, but Vim may seem to hang while doing that.
1276
Bram Moolenaarb71eaae2006-01-20 23:10:18 +00001277Previously some options were always evaluated in the |sandbox|. Now that only
1278happens when the option was set from a modeline or in secure mode. Applies to
1279'balloonexpr', 'foldexpr', 'foldtext' and 'includeexpr'. (Sumner Hayes)
1280
1281Some commands and expressions could have nasty side effects, such as using
1282CTRL-R = while editing a search pattern and the expression invokes a function
1283that jumps to another window. The |textlock| has been added to prevent this
1284from happening.
1285
Bram Moolenaarf4b8e572004-06-24 15:53:16 +00001286":breakadd here" and ":breakdel here" can be used to set or delete a
1287breakpoint at the cursor.
1288
Bram Moolenaar997fb4b2006-02-17 21:53:23 +00001289It is now possible to define a function with: >
1290 :exe "func Test()\n ...\n endfunc"
1291
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00001292The tutor was updated to make it simpler to use and text was added to explain
1293a few more important commands. Used ideas from Gabriel Zachmann.
Bram Moolenaar071d4272004-06-13 20:20:40 +00001294
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001295Unix: When libcall() fails obtain an error message with dlerror() and display
1296it. (Johannes Zellner)
1297
Bram Moolenaarcc016f52005-12-10 20:23:46 +00001298Mac and Cygwin: When editing an existing file make the file name the same case
1299of the edited file. Thus when typing ":e os_UNIX.c" the file name becomes
1300"os_unix.c".
1301
Bram Moolenaar592e0a22004-07-03 16:05:59 +00001302Added "nbsp" in 'listchars'. (David Blanchet)
1303
Bram Moolenaar21cf8232004-07-16 20:18:37 +00001304Added the "acwrite" value for the 'buftype' option. This is for a buffer that
Bram Moolenaara5792f52005-11-23 21:25:05 +00001305does not have a name that refers to a file and is written with BufWriteCmd
Bram Moolenaar21cf8232004-07-16 20:18:37 +00001306autocommands.
1307
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001308For lisp indenting and matching parenthesis: (Sergey Khorev)
1309- square brackets are recognized properly
1310- #\(, #\), #\[ and #\] are recognized as character literals
1311- Lisp line comments (delimited by semicolon) are recognized
1312
Bram Moolenaar89cb5e02004-07-19 20:55:54 +00001313Added the "count" argument to match(), matchend() and matchstr(). (Ilya Sher)
1314
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00001315winnr() takes an optional "$" or "#" argument. (Nikolai Weibull, Yegappan
Bram Moolenaar5eb86f92004-07-26 12:53:41 +00001316Lakshmanan)
1317
Bram Moolenaar768b8c42006-03-04 21:58:33 +00001318Added 's' flag to search(): set ' mark if cursor moved. (Yegappan Lakshmanan)
Bram Moolenaar5eb86f92004-07-26 12:53:41 +00001319Added 'n' flag to search(): don't move the cursor. (Nikolai Weibull)
Bram Moolenaar768b8c42006-03-04 21:58:33 +00001320Added 'c' flag to search(): accept match at the cursor.
1321Added 'e' flag to search(): move to end of the match. (Benji Fisher)
1322Added 'p' flag to search(): return number of sub-pattern. (Benji Fisher)
1323These also apply to searchpos(), searchpair() and searchpairpos().
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00001324
Bram Moolenaar768b8c42006-03-04 21:58:33 +00001325The search() and searchpair() functions have an extra argument to specify
1326where to stop searching. Speeds up searches that should not continue too far.
Bram Moolenaar5eb86f92004-07-26 12:53:41 +00001327
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001328When uncompressing fails in the gzip plugin, give an error message but don't
1329delete the raw text. Helps if the file has a .gz extension but is not
1330actually compressed. (Andrew Pimlott)
1331
1332When C, C++ or IDL syntax is used, may additionally load doxygen syntax.
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001333(Michael Geddes)
1334
Bram Moolenaar97b2ad32006-03-18 21:40:56 +00001335Support setting 'filetype' and 'syntax' to "aaa.bbb" for "aaa" plus "bbb"
1336filetype or syntax.
1337
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001338The ":registers" command now displays multi-byte characters properly.
1339
1340VMS: In the usage message mention that a slash can be used to make a flag
1341upper case. Add color support to the builtin vt320 terminal codes.
1342(Zoltan Arpadffy)
1343
Bram Moolenaar15d0a8c2004-09-06 17:44:46 +00001344For the '%' item in 'viminfo', allow a number to set a maximum for the number
1345of buffers.
1346
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00001347For recognizing the file type: When a file looks like a shell script, check
1348for an "exec" command that starts the tcl interpreter. (suggested by Alexios
1349Zavras)
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00001350
1351Support conversion between utf-8 and latin9 (iso-8859-15) internally, so that
1352digraphs still work when iconv is not available.
1353
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001354When a session file is loaded while editing an unnamed, empty buffer that
1355buffer is wiped out. Avoids that there is an unused buffer in the buffer
1356list.
1357
1358Win32: When libintl.dll supports bind_textdomain_codeset(), use it.
1359(NAKADAIRA Yukihiro)
1360
Bram Moolenaare224ffa2006-03-01 00:01:28 +00001361Win32: Vim was not aware of hard links on NTFS file systems. These are
1362detected now for when 'backupcopy' is "auto". Also fixed a bogus "file has
1363been changed since reading it" error for links.
1364
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001365When foldtext() finds no text after removing the comment leader, use the
1366second line of the fold. Helps for C-style /* */ comments where the first
1367line is just "/*".
1368
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00001369When editing the same file from two systems (e.g., Unix and MS-Windows) there
1370mostly was no warning for an existing swap file, because the name of the
1371edited file differs (e.g., y:\dir\file vs /home/me/dir/file). Added a flag to
1372the swap file to indicate it is in the same directory as the edited file. The
1373used path then doesn't matter and the check for editing the same file is much
1374more reliable.
1375
Bram Moolenaar900b4d72005-12-12 22:05:50 +00001376Unix: When editing a file through a symlink the swap file would use the name
1377of the symlink. Now use the name of the actual file, so that editing the same
1378file twice is detected. (suggestions by Stefano Zacchiroli and James Vega)
1379
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00001380Client-server communication now supports 'encoding'. When setting 'encoding'
1381in a Vim server to "utf-8", and using "vim --remote fname" in a console,
1382"fname" is converted from the console encoding to utf-8. Also allows Vims
1383with different 'encoding' settings to exchange messages.
1384
Bram Moolenaar86b68352004-12-27 21:59:20 +00001385Internal: Changed ga_room into ga_maxlen, so that it doesn't need to be
1386incremented/decremented each time.
1387
Bram Moolenaar49cd9572005-01-03 21:06:01 +00001388When a register is empty it is not stored in the viminfo file.
1389
Bram Moolenaar8c711452005-01-14 21:53:12 +00001390Removed the tcltags script, it's obsolete.
1391
Bram Moolenaar67fe1a12005-05-22 22:12:58 +00001392":redir @*>>" and ":redir @+>>" append to the clipboard. Better check for
Bram Moolenaar5313dcb2005-02-22 08:56:13 +00001393invalid characters after the register name. |:redir|
1394
1395":redir => variable" and ":redir =>> variable" write or append to a variable.
1396(Yegappan Lakshmanan) |:redir|
Bram Moolenaardcaf10e2005-01-21 11:55:25 +00001397
Bram Moolenaar231334e2005-07-25 20:46:57 +00001398":redir @{a-z}>>" appends to register a to z. (Yegappan Lakshmanan)
Bram Moolenaar67fe1a12005-05-22 22:12:58 +00001399
Bram Moolenaar54ee7752005-05-31 22:22:17 +00001400The 'verbosefile' option can be used to log messages in a file. Verbose
1401messages are not displayed then. The "-V{filename}" argument can be used to
1402log startup messages.
1403
Bram Moolenaardcaf10e2005-01-21 11:55:25 +00001404":let g:" lists global variables.
1405":let b:" lists buffer-local variables.
1406":let w:" lists window-local variables.
1407":let v:" lists Vim variables.
1408
Bram Moolenaard438e912005-01-31 19:21:46 +00001409The stridx() and strridx() functions take a third argument, where to start
1410searching. (Yegappan Lakshmanan)
Bram Moolenaarb71ec9f2005-01-25 22:22:02 +00001411
Bram Moolenaar67fe1a12005-05-22 22:12:58 +00001412The getreg() function takes an extra argument to be able to get the expression
1413for the '=' register instead of the result of evaluating it.
1414
1415The setline() function can take a List argument to set multiple lines. When
1416the line number is just below the last line the line is appended.
1417
Bram Moolenaarbee0c5b2005-02-07 22:03:36 +00001418g CTRL-G also shows the number of characters if it differs from the number of
1419bytes.
1420
Bram Moolenaar5313dcb2005-02-22 08:56:13 +00001421Completion for ":debug" and entering an expression for the '=' register. Skip
1422":" between range and command name. (Peter winters)
1423
1424CTRL-Q in Insert mode now works like CTRL-V by default. Previously it was
1425ignored.
1426
1427When "beep" is included in 'debug' a function or script that causes a beep
1428will result in a message with the source of the error.
1429
Bram Moolenaar05159a02005-02-26 23:04:13 +00001430When completing buffer names, match with "\(^\|[\/]\)" instead of "^", so that
1431":buf stor<Tab>" finds both "include/storage.h" and "storage/main.c".
1432
1433To count items (pattern matches) without changing the buffer the 'n' flag has
1434been added to |:substitute|. See |count-items|.
1435
Bram Moolenaarea0cd362006-03-16 21:46:52 +00001436In a |:substitute| command the \u, \U, \l and \L items now also work for
1437multi-byte characters.
1438
Bram Moolenaar038eb0e2005-02-27 22:43:26 +00001439The "screen.linux" $TERM name is recognized to set the default for
Bram Moolenaar482aaeb2005-09-29 18:26:07 +00001440'background' to "dark". (Ciaran McCreesh) Also for "cygwin" and "putty".
Bram Moolenaar19a09a12005-03-04 23:39:37 +00001441
1442The |FileChangedShell| autocommand event can now use the |v:fcs_reason|
1443variable that specifies what triggered the event. |v:fcs_choice| can be used
1444to reload the buffer or ask the user what to do.
Bram Moolenaar038eb0e2005-02-27 22:43:26 +00001445
Bram Moolenaar8bf59b92005-03-06 23:40:56 +00001446Not all modifiers were recognized for xterm function keys. Added the
1447possibility in term codes to end in ";*X" or "O*X", where X is any character
1448and the * stands for the modifier code.
1449Added the <xUp>, <xDown>, <xLeft> and <xRight> keys, to be able to recognize
1450the two forms that xterm can send their codes in and still handle all possible
1451modifiers.
1452
Bram Moolenaarc0761132005-03-18 20:30:32 +00001453getwinvar() now also works to obtain a buffer-local option from the specified
1454window.
1455
Bram Moolenaarb982ca52005-03-28 21:02:15 +00001456Added the "%s" item to 'errorformat'. (Yegappan Lakshmanan)
Bram Moolenaarb3656ed2006-03-20 21:59:49 +00001457Added the "%>" item to 'errorformat'.
1458
1459For 'errorformat' it was not possible to have a file name that contains the
1460character that follows after "%f". For example, in "%f:%l:%m" the file name
1461could not contain ":". Now include the first ":" where the rest of the
1462pattern matches. In the example a ":" not followed by a line number is
1463included in the file name. (suggested by Emanuele Giaquinta)
Bram Moolenaarb982ca52005-03-28 21:02:15 +00001464
Bram Moolenaar34cdc3e2005-05-18 22:24:46 +00001465GTK GUI: use the GTK file dialog when it's available. Mix from patches by
1466Grahame Bowland and Evan Webb.
1467
Bram Moolenaar9ba0eb82005-06-13 22:28:56 +00001468Added ":scriptnames" to bugreport.vim, so that we can see what plugins were
1469used.
1470
Bram Moolenaar520470a2005-06-16 21:59:56 +00001471Win32: If the user changes the setting for the number of lines a scroll wheel
1472click scrolls it is now used immediately. Previously Vim would need to be
1473restarted.
1474
Bram Moolenaarb2ec3072005-06-17 22:02:20 +00001475When using @= in an expression the value is expression @= contains. ":let @=
1476= value" can be used to set the register contents.
1477
Bram Moolenaar51bab742005-07-08 22:31:03 +00001478A ! can be added to ":popup" to have the popup menu appear at the mouse
1479pointer position instead of the text cursor.
1480
Bram Moolenaard8e9bb22005-07-09 21:14:46 +00001481The table with encodings has been expanded with many MS-Windows codepages,
1482such as cp1250 and cp737, so that these can also be used on Unix without
1483prepending "8bit-".
Bram Moolenaarae5bce12005-08-15 21:41:48 +00001484When an encoding name starts with "microsoft-cp" ignore the "microsoft-" part.
Bram Moolenaard8e9bb22005-07-09 21:14:46 +00001485
1486Added the "customlist" completion argument to a user-defined command. The
1487user-defined completion function should return the completion candidates as a
Bram Moolenaar231334e2005-07-25 20:46:57 +00001488Vim List and the returned results are not filtered by Vim. (Yegappan
1489Lakshmanan)
Bram Moolenaard8e9bb22005-07-09 21:14:46 +00001490
Bram Moolenaar342337a2005-07-21 21:11:17 +00001491Win32: Balloons can have multiple lines if common controls supports it.
1492(Sergey Khorev)
1493
Bram Moolenaar90cfdbe2005-08-12 19:59:19 +00001494For command-line completion the matches for various types of arguments are now
1495sorted: user commands, variables, syntax names, etc.
1496
Bram Moolenaara2036d22005-08-23 21:04:20 +00001497When no locale is set, thus using the "C" locale, Vim will work with latin1
Bram Moolenaara5792f52005-11-23 21:25:05 +00001498characters, using its own isupper()/toupper()/etc. functions.
Bram Moolenaara2036d22005-08-23 21:04:20 +00001499
Bram Moolenaarac6e65f2005-08-29 22:25:38 +00001500When using an rxvt terminal emulator guess the value of 'background' using the
1501COLORFGBG environment variable. (Ciaran McCreesh)
1502
1503Also support t_SI and t_EI on Unix with normal features. (Ciaran McCreesh)
1504
Bram Moolenaardcca87b2005-09-10 19:24:59 +00001505When 'foldcolumn' is one then put as much info in it as possible. This allows
1506closing a fold with the mouse by clicking on the '-'.
1507
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +00001508input() takes an optional completion argument to specify the type of
1509completion supported for the input. (Yegappan Lakshmanan)
1510
Bram Moolenaar4463f292005-09-25 22:20:24 +00001511"dp" works with more than two buffers in diff mode if there is only one where
1512'modifiable' is set.
1513
Bram Moolenaar27dc1952006-03-15 23:06:44 +00001514The 'diffopt' option has three new values: "horizontal", "vertical" and
1515"foldcolumn".
1516
Bram Moolenaar69e0ff92005-09-30 21:23:56 +00001517When the 'include' option contains \zs the file name found is what is being
1518matched from \zs to the end or \ze. Useful to pass more to 'includeexpr'.
1519
Bram Moolenaar07d4d732005-10-03 22:04:08 +00001520Loading plugins on startup now supports subdirectories in the plugin
1521directory. |load-plugins|
1522
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +00001523In the foldcolumn always show the '+' for a closed fold, so that it can be
1524opened easily. It may overwrite another character, esp. if 'foldcolumn' is 1.
1525
1526It is now possible to get the W10 message again by setting 'readonly'. Useful
1527in the FileChangedRO autocommand when checking out the file fails.
1528
Bram Moolenaar784c6142005-10-11 20:34:58 +00001529Unix: When open() returns EFBIG give an appropriate message.
1530
Bram Moolenaar241a8aa2005-12-06 20:04:44 +00001531":mksession" sets the SessionLoad variable to notify plugins. A modeline is
1532added to the session file to set 'filetype' to "vim".
1533
Bram Moolenaard5bc83f2005-12-07 21:07:59 +00001534In the ATTENTION prompt put the "Delete it" choice before "Quit" to make it
1535more logical. (Robert Webb)
1536
Bram Moolenaar63a121b2005-12-11 21:36:39 +00001537When appending to a file while the buffer has no name the name of the appended
1538file would be used for the current buffer. But the buffer contents is
1539actually different from the file content. Don't set the file name, unless the
1540'P' flag is present in 'cpoptions'.
1541
Bram Moolenaar900b4d72005-12-12 22:05:50 +00001542When starting to edit a new file and the directory for the file doesn't exist
1543then Vim will report "[New DIRECTORY]" instead of "[New File] to give the user
1544a hint that something might be wrong.
1545
Bram Moolenaarbca84a12005-12-14 22:08:35 +00001546Win32: Preserve the hidden attribute of the viminfo file.
1547
Bram Moolenaar146522e2005-12-16 21:55:46 +00001548In Insert mode CTRL-A didn't keep the last inserted text when using CTRL-O and
1549then a cursor key. Now keep the previously inserted text if nothing is
1550inserted after the CTRL-O. Allows using CTRL-O commands to move the cursor
1551without losing the last inserted text.
Bram Moolenaarbca84a12005-12-14 22:08:35 +00001552
Bram Moolenaarf4cd3e82005-12-22 22:47:02 +00001553The exists() function now supports checking for autocmd group definition
Bram Moolenaarcc984262005-12-23 22:19:46 +00001554and for supported autocommand events. (Yegappan Lakshmanan)
Bram Moolenaara9b1e742005-12-19 22:14:58 +00001555
Bram Moolenaar4770d092006-01-12 23:22:24 +00001556Allow using ":global" in the sandbox, it doesn't do anything harmful by
1557itself.
1558
Bram Moolenaarb71eaae2006-01-20 23:10:18 +00001559":saveas asdf.c" will set 'filetype' to c when it's empty. Also for ":w
1560asdf.c" when it sets the filename for the buffer.
1561
Bram Moolenaar1d2ba7f2006-02-14 22:29:30 +00001562Insert mode completion for whole lines now also searches unloaded buffers.
Bram Moolenaarb71eaae2006-01-20 23:10:18 +00001563
Bram Moolenaarf740b292006-02-16 22:11:02 +00001564The colortest.vim script can now be invoked directly with ":source" or
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00001565":runtime syntax/colortest.vim".
Bram Moolenaarf740b292006-02-16 22:11:02 +00001566
Bram Moolenaard1f56e62006-02-22 21:25:37 +00001567The 'statusline' option can be local to the window, so that each window can
1568have a different value. (partly by Yegappan Lakshmanan)
1569
Bram Moolenaar238a5642006-02-21 22:12:05 +00001570The 'statusline' option and other options that support the same format can now
1571use these new features:
1572- When it starts with "%!" the value is first evaluated as an expression
1573 before parsing the value.
1574- "%#HLname#" can be used to start highlighting with HLname.
1575
Bram Moolenaard1f56e62006-02-22 21:25:37 +00001576When 'statusline' is set to something that causes an error message then it is
1577made empty to avoid an endless redraw loop. Also for other options, such at
Bram Moolenaarea0cd362006-03-16 21:46:52 +00001578'tabline' and 'titlestring'. ":verbose set statusline" will mention that it
1579was set in an error handler.
Bram Moolenaard1f56e62006-02-22 21:25:37 +00001580
Bram Moolenaar32466aa2006-02-24 23:53:04 +00001581When there are several matching tags, the ":tag <name>" and CTRL-] commands
1582jump to the [count] matching tag. (Yegappan Lakshmanan)
1583
Bram Moolenaar97b2ad32006-03-18 21:40:56 +00001584Win32: In the batch files generated by the install program, use $VIMRUNTIME or
1585$VIM if it's set. Example provided by Mathias Michaelis.
1586Also create a vimtutor.bat batch file.
Bram Moolenaar32466aa2006-02-24 23:53:04 +00001587
Bram Moolenaarb3656ed2006-03-20 21:59:49 +00001588The 'balloonexpr' option is now |global-local|.
1589
Bram Moolenaare580b0c2006-03-21 21:33:03 +00001590The system() function now runs in cooked mode, thus can be interrupted by
1591CTRL-C.
1592
Bram Moolenaar071d4272004-06-13 20:20:40 +00001593==============================================================================
1594COMPILE TIME CHANGES *compile-changes-7*
1595
Bram Moolenaar2079a602005-01-04 21:43:22 +00001596Dropped the support for the BeOS and Amiga GUI. They were not maintained and
1597probably didn't work. If you want to work on this: get the Vim 6.x version
1598and merge it back in.
1599
Bram Moolenaar5313dcb2005-02-22 08:56:13 +00001600When running the tests and one of them fails to produce "test.out" the
1601following tests are still executed. This helps when running out of memory.
1602
Bram Moolenaarf461c8e2005-06-25 23:04:51 +00001603When compiling with EXITFREE defined and the ccmalloc library it is possible
1604to detect memory leaks. Some memory will always reported as leaked, such as
1605allocated by X11 library functions and the memory allocated in alloc_cmdbuff()
1606to store the ":quit" command.
1607
Bram Moolenaar231334e2005-07-25 20:46:57 +00001608Moved the code for printing to src/hardcopy.c.
1609
1610Moved some code from main() to separate functions to make it easier to see
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00001611what is being done. Using a structure to avoid a lot of arguments to the
Bram Moolenaar231334e2005-07-25 20:46:57 +00001612functions.
1613
1614Moved unix_expandpath() to misc1.c, so that it can also be used by os_mac.c
1615without copying the code.
1616
Bram Moolenaar362e1a32006-03-06 23:29:24 +00001617--- Mac ---
1618
1619"make" now creates the Vim.app directory and "make install" copies it to its
1620final destination. (Raf)
1621
Bram Moolenaar27dc1952006-03-15 23:06:44 +00001622Put the runtime directory not directly in Vim.app but in
1623Vim.app/Contents/Resources/vim, so that it's according to Mac specs.
1624
Bram Moolenaar362e1a32006-03-06 23:29:24 +00001625Made it possible to compile with Motif, Athena or GTK without tricks and still
1626being able to use the MacRoman conversion. Added the os_mac_conv.c file.
1627
1628When running "make install" the runtime files are installed as for Unix.
Bram Moolenaare344bea2005-09-01 20:46:49 +00001629Avoids that too many files are copied. When running "make" a link to the
1630runtime files is created to avoid a recursive copy that takes much time.
1631
Bram Moolenaar362e1a32006-03-06 23:29:24 +00001632Configure will attempt to build Vim for both Intel and PowerPC. The
Bram Moolenaareddf53b2006-02-27 00:11:10 +00001633--with-mac-arch configure argument can change it.
1634
Bram Moolenaar362e1a32006-03-06 23:29:24 +00001635--- Win32 ---
1636
1637The Make_mvc.mak file was adjusted to work with the latest MS compilers,
1638including the free version of Visual Studio 2005. (George Reilly)
1639
1640INSTALLpc.txt was updated for the recent changes. (George Reilly)
1641
1642The distributed executable is now produced with the free Visual C++ Toolkit
16432003 and other free SDK chunks. msvcsetup.bat was added to support this.
1644
1645Also generate the .pdb file that can be used to generate a useful crash report
1646on MS-Windows. (George Reilly)
1647
Bram Moolenaar071d4272004-06-13 20:20:40 +00001648==============================================================================
1649BUG FIXES *bug-fixes-7*
1650
Bram Moolenaarf4b8e572004-06-24 15:53:16 +00001651When using PostScript printing on MS-DOS the default 'printexpr' used "lpr"
1652instead of "copy". When 'printdevice' was empty the copy command did not
1653work. Use "LPT1" then.
1654
1655The GTK font dialog uses a font size zero when the font name doesn't include a
1656size. Use a default size of 10.
1657
1658This example in the documentation didn't work:
1659 :e `=foo . ".c" `
1660Skip over the expression in `=expr` when looking for comments, |, % and #.
1661
1662When ":helpgrep" doesn't find anything there is no error message.
1663
1664"L" and "H" did not take closed folds into account.
1665
1666Win32: The "-P title" argument stopped at the first title that matched, even
1667when it doesn't support MDI.
1668
1669Mac GUI: CTRL-^ and CTRL-@ did not work.
1670
1671"2daw" on "word." at the end of a line didn't include the preceding white
1672space.
1673
1674Win32: Using FindExecutable() doesn't work to find a program. Use
1675SearchPath() instead. For executable() use $PATHEXT when the program searched
1676for doesn't have an extension.
1677
1678When 'virtualedit' is set, moving the cursor up after appending a character
1679may move it to a different column. Was caused by auto-formatting moving the
1680cursor and not putting it back where it was.
1681
1682When indent was added automatically and then moving the cursor, the indent was
1683not deleted (like when pressing ESC). The "I" flag in 'cpoptions' can be used
1684to make it work the old way.
1685
Bram Moolenaarf4b8e572004-06-24 15:53:16 +00001686When opening a command-line window, 'textwidth' gets set to 78 by the Vim
1687filetype plugin. Reset 'textwidth' to 0 to avoid lines are broken.
1688
1689After using cursor(line, col) moving up/down doesn't keep the same column.
1690
1691Win32: Borland C before 5.5 requires using ".u." for LowPart and HighPart
1692fields. (Walter Briscoe)
Bram Moolenaar071d4272004-06-13 20:20:40 +00001693
Bram Moolenaar843ee412004-06-30 16:16:41 +00001694On Sinix SYS_NMLN isn't always defined. Define it ourselves. (Cristiano De
1695Michele)
1696
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001697Printing with PostScript may keep the printer waiting for more. Append a
1698CTRL-D to the printer output. (Mike Williams)
1699
Bram Moolenaar2df6dcc2004-07-12 15:53:54 +00001700When converting a string with a hex or octal number the leading '-' was
1701ignored. ":echo '-05' + 0" resulted in 5 instead of -5.
1702
1703Using "@:" to repeat a command line didn't work when it contains control
Bram Moolenaar90cfdbe2005-08-12 19:59:19 +00001704characters. Also remove "'<,'>" when in Visual mode to avoid that it appears
1705twice.
Bram Moolenaar2df6dcc2004-07-12 15:53:54 +00001706
Bram Moolenaar21cf8232004-07-16 20:18:37 +00001707When using file completion for a user command, it would not expand environment
1708variables like for a regular command with a file argument.
1709
1710'cindent': When the argument of a #define looks like a C++ class the next line
1711is indented too much.
1712
1713When 'comments' includes multi-byte characters inserting the middle part and
1714alignment may go wrong. 'cindent' also suffers from this for right-aligned
1715items.
1716
Bram Moolenaar05159a02005-02-26 23:04:13 +00001717Win32: when 'encoding' is set to "utf-8" getenv() still returns strings in the
1718active codepage. Convert to utf-8. Also for $HOME.
1719
Bram Moolenaarab79bcb2004-07-18 21:34:53 +00001720The default for 'helplang' was "zh" for both "zh_cn" and "zh_tw". Now use
1721"cn" or "tw" as intended.
1722
Bram Moolenaar5eb86f92004-07-26 12:53:41 +00001723When 'bin' is set and 'eol' is not set then line2byte() added the line break
1724after the last line while it's not there.
1725
1726Using foldlevel() in a WinEnter autocommand may not work. Noticed when
1727resizing the GUI shell upon startup.
1728
1729Python: Using buffer.append(f.readlines()) didn't work. Allow appending a
1730string with a trailing newline. The newline is ignored.
1731
Bram Moolenaar269ec652004-07-29 08:43:53 +00001732When using the ":saveas f2" command for buffer "f1", the Buffers menu would
1733contain "f2" twice, one of them leading to "f1". Also trigger the BufFilePre
1734and BufFilePost events for the alternate buffer that gets the old name.
1735
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001736strridx() did not work well when the needle is empty. (Ciaran McCreesh)
1737
1738GTK: Avoid a potential hang in gui_mch_wait_for_chars() when input arrives
1739just before it is invoked
1740
1741VMS: Occasionally CR characters were inserted in the file. Expansion of
1742environment variables was not correct. (Zoltan Arpadffy)
1743
1744UTF-8: When 'delcombine' is set "dw" only deleted the last combining character
1745from the first character of the word.
1746
1747When using ":sball" in an autocommand only the filetype in one buffer was
1748detected. Reset did_filetype in enter_buffer().
1749
1750When using ":argdo" and the window already was at the first argument index,
1751but not actually editing it, the current buffer would be used instead.
1752
Bram Moolenaar15d0a8c2004-09-06 17:44:46 +00001753When ":next dir/*" includes many matches, adding the names to the argument
1754list may take an awful lot of time and can't be interrupted. Allow
1755interrupting this.
1756
1757When editing a file that was already loaded in a buffer, modelines were not
1758used. Now window-local options in the modeline are set. Buffer-local options
1759and global options remain unmodified.
1760
1761Win32: When 'encoding' is set to "utf-8" in the vimrc file, files from the
1762command line with non-ASCII characters are not used correctly. Recode the
1763file names when 'encoding' is set, using the Unicode command line.
1764
Bram Moolenaarc0197e22004-09-13 20:26:32 +00001765Win32 console: When the default for 'encoding' ends up to be "latin1", the
1766default value of 'isprint' was wrong.
1767
1768When an error message is given while waiting for a character (e.g., when an
1769xterm reports the number of colors), the hit-enter prompt overwrote the last
1770line. Don't reset msg_didout in normal_cmd() for K_IGNORE.
1771
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00001772Mac GUI: Shift-Tab didn't work.
1773
1774When defining tooltip text, don't translate terminal codes, since it's not
1775going to be used like a command.
1776
1777GTK 2: Check the tooltip text for valid utf-8 characters to avoid getting a
1778GTK error. Invalid characters may appear when 'encoding' is changed.
1779
1780GTK 2: Add a safety check for invalid utf-8 sequences, they can crash pango.
1781
1782Win32: When 'encoding' is changed while starting up, use the Unicode command
1783line to convert the file arguments to 'encoding'. Both for the GUI and the
1784console version.
1785
1786Win32 GUI: latin9 text (iso-8859-15) was not displayed correctly, because
1787there is no codepage for latin9. Do our own conversion from latin9 to UCS2.
1788
Bram Moolenaar7b0294c2004-10-11 10:16:09 +00001789When two versions of GTK+ 2 are installed it was possible to use the header
1790files from one and the library from the other. Use GTK_LIBDIR to put the
1791directory for the library early in the link flags.
1792
1793With the GUI find/replace dialog a replace only worked if the pattern was
1794literal text. Now it works for any pattern.
1795
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001796When 'equalalways' is set and 'eadirection' is "hor", ":quit" would still
1797cause equalizing window heights in the vertical direction.
1798
1799When ":emenu" is used in a startup script the command was put in the typeahead
1800buffer, causing a prompt for the crypt key to be messed up.
1801
1802Mac OS/X: The default for 'isprint' included characters 128-160, causes
1803problems for Terminal.app.
1804
1805When a syntax item with "containedin" is used, it may match in the start or
1806end of a region with a matchgroup, while this doesn't happen for a "contains"
1807argument.
1808
1809When a transparent syntax items matches in another item where the highlighting
1810has already stopped (because of a he= argument), the highlighting would come
1811back.
1812
1813When cscope is used to set the quickfix error list, it didn't get set if there
1814was only one match. (Sergey Khorev)
1815
1816When 'confirm' is set and using ":bdel" in a modified buffer, then selecting
1817"cancel", would still give an error message.
1818
1819The PopUp menu items that started Visual mode didn't work when not in Normal
1820mode. Switching between selecting a word and a line was not possible.
1821
1822Win32: The keypad decimal point always resulted in a '.', while on some
1823keyboards it's a ','. Use MapVirtualKey(VK_DECIMAL, 2).
1824
1825Removed unused function DisplayCompStringOpaque() from gui_w32.c
1826
1827In Visual mode there is not always an indication whether the line break is
1828selected or not. Highlight the character after the line when the line break
1829is included, e.g., after "v$o".
1830
1831GTK: The <F10> key can't be mapped, it selects the menu. Disable that with a
1832GTK setting and do select the menu when <F10> isn't mapped. (David Necas)
1833
1834After "Y" '[ and '] were not at start/end of the yanked text.
1835
1836When a telnet connection is dropped Vim preserves files and exits. While
Bram Moolenaar8ea91232006-04-28 22:41:43 +00001837doing that a SIGHUP may arrive and disturb us, thus ignore it. (Scott
Bram Moolenaar46c9c732004-12-12 11:37:09 +00001838Anderson) Also postpone SIGHUP, SIGQUIT and SIGTERM until it's safe to
1839handle. Added handle_signal().
1840
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00001841When completing a file name on the command line backslashes are required for
1842white space. Was only done for a space, not for a Tab.
1843
1844When configure could not find a terminal library, compiling continued for a
1845long time before reporting the problem. Added a configure check for tgetent()
1846being found in a library.
1847
1848When the cursor is on the first char of the last line a ":g/pat/s///" command
1849may cause the cursor to be displayed below the text.
1850
1851Win32: Editing a file with non-ASCII characters doesn't work when 'encoding'
1852is "utf-8". use _wfullpath() instead of _fullpath(). (Yu-sung Moon)
1853
1854When recovering the 'fileformat' and 'fileencoding' were taken from the
1855original file instead of from the swapfile. When the file didn't exist, was
1856empty or the option was changed (e.g., with ":e ++fenc=cp123 file") it could
1857be wrong. Now store 'fileformat' and 'fileencoding' in the swapfile and use
1858the values when recovering.
1859
1860":bufdo g/something/p" overwrites each last printed text line with the file
1861message for the next buffer. Temporarily clear 'shortmess' to avoid that.
1862
Bram Moolenaarb5bf5b82004-12-24 14:35:23 +00001863Win32: Cannot edit a file starting with # with --remote. Do escape % and #
1864when building the ":drop" command.
1865
Bram Moolenaar8ea91232006-04-28 22:41:43 +00001866A comment or | just after a expression-backtick argument was not recognized.
Bram Moolenaar86b68352004-12-27 21:59:20 +00001867E.g. in :e `="foo"`"comment.
1868
Bram Moolenaar567e4de2004-12-31 21:01:02 +00001869"(" does not stop at an empty sentence (single dot and white space) while ")"
1870does. Also breaks "das" on that dot.
1871
1872When doing "yy" with the cursor on a TAB the ruler could be wrong and "k"
1873moved the cursor to another column.
1874
1875When 'commentstring' is '"%s' and there is a double quote in the line a double
1876quote before the fold marker isn't removed in the text displayed for a closed
1877fold.
1878
1879In Visual mode, when 'bin' and 'eol' set, g CTRL-G counted the last line
1880break, resulting in "selected 202 of 201 bytes".
1881
Bram Moolenaar2079a602005-01-04 21:43:22 +00001882Motif: fonts were not used for dialog components. (Marcin Dalecki)
Bram Moolenaar567e4de2004-12-31 21:01:02 +00001883
Bram Moolenaar49cd9572005-01-03 21:06:01 +00001884Motif: After using a toolbar button the keyboard focus would be on the toolbar
Bram Moolenaar2079a602005-01-04 21:43:22 +00001885(Lesstif problem). (Marcin Dalecki)
Bram Moolenaar49cd9572005-01-03 21:06:01 +00001886
Bram Moolenaar1c2fda22005-01-02 11:43:19 +00001887When using "y<C-V>`x" where mark x is in the first column, the last line was
1888not included.
1889
1890Not all test scripts work properly on MS-Windows when checked out from CVS.
1891Use a Vim command to fix all fileformats to dos before executing the tests.
1892
1893When using ":new" and the file fits in the window, lines could still be above
1894the window. Now remove empty lines instead of keeping the relative position.
1895
Bram Moolenaar3d60ec22005-01-05 22:19:46 +00001896Cmdline completion didn't work after ":let var1 var<Tab>".
1897
Bram Moolenaarb7d6e722005-01-09 21:22:45 +00001898When using ":startinsert" or ":startreplace" when already in Insert mode
1899(possible when using CTRL-R =), pressing Esc would directly restart Insert
1900mode. (Peter Winters)
1901
Bram Moolenaar31c67ef2005-01-11 21:34:41 +00001902"2daw" didn't work at end of file if the last word is a single character.
1903
Bram Moolenaar8c711452005-01-14 21:53:12 +00001904Completion for ":next a'<Tab>" put a backslash before single quote, but it was
1905not removed when editing a file. Now halve backslashes in save_patterns().
Bram Moolenaar798c5a72005-01-16 22:06:30 +00001906Also fix expanding a file name with the shell that contains "\'".
Bram Moolenaar8c711452005-01-14 21:53:12 +00001907
Bram Moolenaarb71ec9f2005-01-25 22:22:02 +00001908When doing "1,6d|put" only "fewer lines" was reported. Now a following "more
1909lines" overwrites the message.
1910
1911Configure could not handle "-Dfoo=long\ long" in the TCL config output.
1912
Bram Moolenaarb2956cd2005-01-27 14:42:53 +00001913When searching backwards, using a pattern that matches a newline and uses \zs
1914after that, didn't find a match. Could also get a hang or end up in the right
1915column in the wrong line.
1916
Bram Moolenaard438e912005-01-31 19:21:46 +00001917When $LANG is "sl" for slovenian, the slovak menu was used, since "slovak"
1918starts with "sl".
1919
1920When 'paste' is set in the GUI the Paste toolbar button doesn't work. Clear
1921'paste' when starting the GUI.
1922
Bram Moolenaarf5836682005-02-02 23:09:45 +00001923A message about a wrong viminfo line included the trailing NL.
1924
Bram Moolenaar2a8d1f82005-02-05 21:43:56 +00001925When 'paste' is set in the GUI the toolbar button doesn't work in Insert mode.
1926Use ":exe" in menu.vim to avoid duplicating the commands, instead of using a
1927mapping.
1928
1929Treat "mlterm" as an xterm-like terminal. (Seiichi Sato)
1930
1931":z.4" and ":z=4" didn't work Vi compatible.
1932
Bram Moolenaarbee0c5b2005-02-07 22:03:36 +00001933When sourcing a file, editing it and sourcing it again, it could appear twice
1934in ":scriptnames" and get a new <SID>, because the inode has changed.
1935
1936When $SHELL is set but empty the 'shell' option would be empty. Don't use an
1937empty $SHELL value.
1938
1939A command "w! file" in .vimrc or $EXINIT didn't work. Now it writes an empty
1940file.
1941
1942When a CTRL-F command at the end of the file failed, the cursor was still
1943moved to the start of the line. Now it remains where it is.
1944
1945When using ":s" or "&" to repeat the last substitute and "$" was used to put
1946the cursor in the last column, put the cursor in the last column again. This
1947is Vi compatible.
1948
Bram Moolenaar4399ef42005-02-12 14:29:27 +00001949Vim is not fully POSIX compliant but sticks with traditional Vi behavior.
1950Added a few flags in 'cpoptions' to behave the POSIX way when wanted. The
1951$VIM_POSIX environment variable is checked to set the default.
1952
1953Appending to a register didn't insert a line break like Vi. Added the '>'
1954flag to 'cpoptions' for this.
1955
1956Using "I" in a line with only blanks appended to the line. This is not Vi
1957compatible. Added the 'H' flag in 'coptions' for this.
1958
1959When joining multiple lines the cursor would be at the last joint, but Vi
1960leaves it at the position where "J" would put it. Added the 'q' flag in
1961'cpoptions' for this.
1962
1963Autoindent didn't work for ":insert" and ":append".
1964
1965Using ":append" in an empty buffer kept the dummy line. Now it's deleted to
1966be Vi compatible.
1967
1968When reading commands from a file and stdout goes to a terminal, would still
1969request the xterm version. Vim can't read it, thus the output went to the
1970shell and caused trouble there.
1971
Bram Moolenaar5313dcb2005-02-22 08:56:13 +00001972When redirecting to a register with an invalid name the redirection would
1973still be done (after an error message). Now reset "redir_reg". (Yegappan
1974Lakshmanan)
1975
1976It was not possible to use a NL after a backslash in Ex mode. This is
1977sometimes used to feed multiple lines to a shell command.
1978
Bram Moolenaar05159a02005-02-26 23:04:13 +00001979When 'cmdheight' is set to 2 in .vimrc and the GUI uses the number of lines
1980from the terminal we actually get 3 lines for the cmdline in gvim.
1981
1982When setting $HOME allocated memory would leak.
1983
Bram Moolenaar19a09a12005-03-04 23:39:37 +00001984Win32: bold characters may sometimes write in another character cell. Use
1985unicodepdy[] as for UTF-8. (Taro Muraoka)
1986
1987":w fname" didn't work for files with 'buftype' set to "nofile".
1988
Bram Moolenaare2ac10d2005-03-07 23:26:06 +00001989The method used to locate user commands for completion differed from when they
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00001990are executed. Ambiguous command names were not completed properly.
Bram Moolenaare2ac10d2005-03-07 23:26:06 +00001991
Bram Moolenaar9062a9d2005-03-08 22:46:26 +00001992Incremental search may cause a crash when there is a custom statusline that
1993indirectly invokes ":normal".
1994
1995Diff mode failed when $DIFF_OPTIONS was set in the environment. Unset it
1996before invoking "diff".
1997
Bram Moolenaar4ad237d2005-03-11 22:49:40 +00001998Completion didn't work after ":argdo", ":windo" and ":bufdo". Also for ":set
1999&l:opt" and ":set &g:opt". (Peter Winters)
2000
2001When setting 'ttymouse' to "dec" in an xterm that supports the DEC mouse
2002locator it doesn't work. Now switch off the mouse before selecting another
2003mouse model.
2004
Bram Moolenaarfb269802005-03-15 22:46:30 +00002005When the CursorHold event is triggered and the commands peek for typed
2006characters the typeahead buffer may be messed up, e.g., when a mouse-up event
2007is received. Avoid invoking the autocommands from the function waiting for a
2008character, let it put K_CURSORHOLD in the input buffer.
2009
2010Removed the "COUNT" flag from ":argadd", to avoid ":argadd 1*" to be used like
Bram Moolenaarc0761132005-03-18 20:30:32 +00002011":1argadd *". Same for ":argdelete" and ":argedit".
Bram Moolenaarfb269802005-03-15 22:46:30 +00002012
2013Avoid that $LANG is used for the menus when LC_MESSAGES is "en_US".
2014
Bram Moolenaarc0761132005-03-18 20:30:32 +00002015Added backslashes before dashes in the vim.1 manual page to make the appear as
2016real dashes. (Pierr Habouzit)
2017
2018Where "gq" left the cursor depended on the value of 'formatprg'. Now "gq"
2019always leaves the cursor at the last line of the formatted text.
2020
2021When editing a compressed file, such as "changelog.Debian.gz" file, filetype
2022detection may try to check the contents of the file while it's still
2023compressed. Skip setting 'filetype' for compressed files until they have been
2024decompressed. Required for patterns that end in a "*".
2025
2026Starting with an argument "+cmd" or "-S script" causes the cursor the be moved
2027to the first line. That breaks a BufReadPost autocommand that uses g`".
2028Don't move the cursor if it's somewhere past the first line.
2029
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00002030"gg=G" while 'modifiable' is off was uninterruptible.
Bram Moolenaarc0761132005-03-18 20:30:32 +00002031
Bram Moolenaar60c78922005-03-20 22:40:14 +00002032When 'encoding' is "sjis" inserting CTRL-V u d800 a few times causes a crash.
2033Don't insert a DBCS character with a NUL second byte.
2034
Bram Moolenaar2641f772005-03-25 21:58:17 +00002035In Insert mode CTRL-O <Home> didn't move the cursor. Made "ins_at_eol" global
2036and reset it in nv_home().
2037
Bram Moolenaarb982ca52005-03-28 21:02:15 +00002038Wildcard expansion failed: ":w /tmp/$$.`echo test`". Don't put quotes around
2039spaces inside backticks.
2040
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +00002041After this sequence of commands: Y V p gv: the wrong line is selected. Now
2042let "gv" select the text that was put, since the original text is deleted.
2043This should be the most useful thing to do.
2044
2045":sleep 100u" sleeps for 100 seconds, not 100 usec as one might expect. Give
2046an error message when the argument isn't recognized.
2047
2048In gui_mch_draw_string() in gui_w32.c "unibuflen" wasn't static, resulting in
2049reallocating the buffer every time. (Alexei Alexandrov)
2050
Bram Moolenaar0e21a3f2005-04-17 20:28:32 +00002051When using a Python "atexit" function it was not invoked when Vim exits. Now
2052call Py_Finalize() for that. (Ugo Di Girolamo)
Bram Moolenaar9ba0eb82005-06-13 22:28:56 +00002053This breaks the thread stuff though, fixed by Ugo.
Bram Moolenaar0e21a3f2005-04-17 20:28:32 +00002054
Bram Moolenaardba8a912005-04-24 22:08:39 +00002055GTK GUI: using a .vimrc with "set cmdheight=2 lines=43" and ":split" right
2056after startup, the window layout is messed up. (Michael Schaap) Added
2057win_new_shellsize() call in gui_init() to fix the topframe size.
2058
2059Trick to get ...MOUSE_NM not used when there are vertical splits. Now pass
2060column -1 for the left most window and add MOUSE_COLOFF for others. Limits
2061mouse column to 10000.
2062
2063searchpair() may hang when the end pattern has "\zs" at the end. Check that
2064we find the same position again and advance one character.
2065
2066When in diff mode and making a change that causes the "changed" highlighting
2067to disappear or reappear, it was still highlighted in another window.
2068
Bram Moolenaar34cdc3e2005-05-18 22:24:46 +00002069When a ":next" command fails because the user selects "Abort" at the ATTENTION
2070prompt the argument index was advanced anyway.
2071
2072When "~" is in 'iskeyword' the "gd" doesn't work, it's used for the previous
2073substitute pattern. Put "\V" in the pattern to avoid that.
2074
Bram Moolenaar555b2802005-05-19 21:08:39 +00002075Use of sprintf() sometimes didn't check properly for buffer overflow. Also
2076when using smsg(). Included code for snprintf() to avoid having to do size
2077checks where invoking them
2078
Bram Moolenaarf4630b62005-05-20 21:31:17 +00002079":help \=<Tab>" didn't find "sub-replace-\=". Wild menu for help tags didn't
2080show backslashes. ":he :s\=" didn't work.
2081
2082When reading an errorfile "~/" in a file name was not expanded.
2083
2084GTK GUI: When adding a scrollbar (e.g. when using ":vsplit") in a script or
2085removing it the window size may change. GTK sends us resize events when we
2086change the window size ourselves, but they may come at an unexpected moment.
2087Peek for a character to get any window resize events and fix 'columns' and
2088'lines' to undo this.
2089
Bram Moolenaarb3656ed2006-03-20 21:59:49 +00002090When using the GTK plug mechanism, resizing and focus was not working
2091properly. (Neil Bird)
2092
Bram Moolenaar67fe1a12005-05-22 22:12:58 +00002093After deleting files from the argument list a session file generated with
2094":mksession" may contain invalid ":next" commands.
2095
2096When 'shortmess' is empty and 'keymap' set to accents, in Insert mode CTRL-N
2097may cause the hit-enter prompt. Typing 'a then didn't result in the accented
2098character. Put the character typed at the prompt back in the typeahead buffer
2099so that mapping is done in the right mode.
2100
Bram Moolenaarb2ec3072005-06-17 22:02:20 +00002101setbufvar() and setwinvar() did not give error messages.
2102
2103It was possible to set a variable with an illegal name, e.g. with setbufvar().
Bram Moolenaard857f0e2005-06-21 22:37:39 +00002104It was possible to define a function with illegal name, e.t. ":func F{-1}()"
2105
2106CTRL-W F and "gf" didn't use the same method to get the file name.
Bram Moolenaarb2ec3072005-06-17 22:02:20 +00002107
Bram Moolenaar42eeac32005-06-29 22:40:58 +00002108When reporting a conversion error the line number of the last error could be
2109given. Now report the first encountered error.
2110
2111When using ":e ++enc=name file" and iconv() was used for conversion an error
Bram Moolenaar63a121b2005-12-11 21:36:39 +00002112caused a fall-back to no conversion. Now replace a character with '?' and
Bram Moolenaar42eeac32005-06-29 22:40:58 +00002113continue.
2114
Bram Moolenaar51bab742005-07-08 22:31:03 +00002115When opening a new buffer the local value of 'bomb' was not initialized from
2116the global value.
2117
Bram Moolenaare759a7a2005-07-12 22:50:18 +00002118Win32: When using the "Edit with Vim" entry the file name was limited to about
2119200 characters.
2120
Bram Moolenaar342337a2005-07-21 21:11:17 +00002121When using command line completion for ":e *foo" and the file "+foo" exists
2122the resulting command ":e +foo" doesn't work. Now insert a backslash: ":e
2123\+foo".
2124
Bram Moolenaar87e25fd2005-07-27 21:13:01 +00002125When the translation of "-- More --" was not 10 characters long the following
2126message would be in the wrong position.
2127
2128At the more-prompt the last character in the last line wasn't drawn.
2129
2130When deleting non-existing text while 'virtualedit' is set the '[ and '] marks
2131were not set.
2132
Bram Moolenaar0be6e642005-08-04 21:32:22 +00002133Win32: Could not use "**/" in 'path', it had to be "**\".
2134
Bram Moolenaarae5bce12005-08-15 21:41:48 +00002135The search pattern "\n" did not match at the end of the last line.
2136
2137Searching for a pattern backwards, starting on the NUL at the end of the line
2138and 'encoding' is "utf-8" would match the pattern just before it incorrectly.
2139Affected searchpair('/\*', '', '\*/').
2140
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00002141For the Find/Replace dialog it was possible that not finding the text resulted
2142in an error message while redrawing, which cleared the syntax highlighting
2143while it was being used, resulting in a crash. Now don't clear syntax
2144highlighting, disable it with b_syn_error.
2145
Bram Moolenaar6e7c7f32005-08-24 22:16:11 +00002146Win32: Combining UTF-8 characters were drawn on the previous character.
2147Could be noticed with a Thai font.
2148
Bram Moolenaarcafda4f2005-09-06 19:25:11 +00002149Output of ":function" could leave some of the typed text behind. (Yegappan
2150Lakshmanan)
2151
Bram Moolenaarcaa0fcf2005-09-07 21:21:14 +00002152When the command line history has only a few lines the command line window
2153would be opened with these lines above the first window line.
2154
2155When using a command line window for search strings ":qa" would result in
2156searching for "qa" instead of quitting all windows.
2157
Bram Moolenaardcca87b2005-09-10 19:24:59 +00002158GUI: When scrolling with the scrollbar and there is a line that doesn't fit
2159redrawing may fail. Make sure w_skipcol is valid before redrawing.
2160
Bram Moolenaar482aaeb2005-09-29 18:26:07 +00002161Limit the values of 'columns' and 'lines' to avoid an overflow in Rows *
2162Columns. Fixed bad effects when running out of memory (command line would be
2163reversed, ":qa!" resulted in ":!aq").
2164
Bram Moolenaara5792f52005-11-23 21:25:05 +00002165Motif: "gvim -iconic" opened the window anyway. (David Harrison)
2166
2167There is a tiny chance that a symlink gets created between checking for an
2168existing file and creating a file. Use the O_NOFOLLOW for open() if it's
2169available.
2170
2171In an empty line "ix<CTRL-O>0" moved the cursor to after the line instead of
2172sticking to the first column.
2173
Bram Moolenaar943d2b52005-12-02 00:50:49 +00002174When using ":wq" and a BufWriteCmd autocmd uses inputsecret() the text was
2175echoed anyway. Set terminal to raw mode in getcmdline().
2176
Bram Moolenaard5bc83f2005-12-07 21:07:59 +00002177Unix: ":w a;b~c" caused an error in expanding wildcards.
2178
Bram Moolenaar63a121b2005-12-11 21:36:39 +00002179When appending to a file with ":w >>fname" in a buffer without a name, causing
2180the buffer to use "fname", the modified flag was reset.
2181
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00002182When appending to the current file the "not edited" flag would be reset.
Bram Moolenaar63a121b2005-12-11 21:36:39 +00002183":w" would overwrite the file accidentally.
2184
Bram Moolenaar900b4d72005-12-12 22:05:50 +00002185Unix: When filtering text with an external command Vim would still read input,
2186causing text typed for the command (e.g., a password) to be eaten and echoed.
2187Don't read input when the terminal is in cooked mode.
2188
Bram Moolenaar146522e2005-12-16 21:55:46 +00002189The Cygwin version of xxd used CR/LF line separators. (Corinna Vinschen)
2190
2191Unix: When filtering text through a shell command some resulting text may be
2192dropped. Now after detecting that the child has exited try reading some more
2193of its output.
2194
Bram Moolenaar3b181812005-12-17 22:10:02 +00002195When inside input(), using "CTRL-R =" and the expression throws an exception
2196the command line was not abandoned but it wasn't used either. Now abandon
2197typing the command line.
2198
Bram Moolenaare3226be2005-12-18 22:10:00 +00002199'delcombine' was also used in Visual and Select mode and for commands like
2200"cl". That was illogical and has been disabled.
2201
2202When recording while a CursorHold autocommand was defined special keys would
2203appear in the register. Now the CursorHold event is not triggered while
2204recording.
2205
Bram Moolenaarf4cd3e82005-12-22 22:47:02 +00002206Unix: the src/configure script used ${srcdir-.}, not all shells understand
2207that. Use ${srcdir:-.} instead.
2208
Bram Moolenaarcc984262005-12-23 22:19:46 +00002209When editing file "a" which is a symlink to file "b" that doesn't exist,
2210writing file "a" to create "b" and then ":split b" resulted in two buffers on
2211the same file with two different swapfile names. Now set the inode in the
2212buffer when creating a new file.
2213
Bram Moolenaarebefac62005-12-28 22:39:57 +00002214When 'esckeys' is not set don't send the xterm code to request the version
2215string, because it may cause trouble in Insert mode.
2216
2217When evaluating an expression for CTRL-R = on the command line it was possible
Bram Moolenaar8ada17c2006-01-19 22:16:24 +00002218to call a function that opens a new window, resulting in errors for
Bram Moolenaarb71eaae2006-01-20 23:10:18 +00002219incremental search, and many other nasty things were possible. Now use the
2220|textlock| to disallow changing the buffer or jumping to another window
Bram Moolenaar4770d092006-01-12 23:22:24 +00002221to protect from unexpected behavior. Same for CTRL-\ e.
Bram Moolenaarebefac62005-12-28 22:39:57 +00002222
2223"d(" deleted the character under the cursor, while the documentation specified
2224an exclusive motion. Vi also doesn't delete the character under the cursor.
2225
2226Shift-Insert in Insert mode could put the cursor before the last character
2227when it just fits in the window. In coladvance() don't stop at the window
2228edge when filling with spaces and when in Insert mode. In mswin.vim avoid
2229getting a beep from the "l" command.
2230
Bram Moolenaar4770d092006-01-12 23:22:24 +00002231Win32 GUI: When Alt-F4 is used to close the window and Cancel is selected in
2232the dialog then Vim would insert <M-F4> in the text. Now it's ignored.
2233
2234When ":silent! {cmd}" caused the swap file dialog, which isn't displayed,
2235there would still be a hit-enter prompt.
2236
Bram Moolenaara40ceaf2006-01-13 22:35:40 +00002237Requesting the termresponse (|t_RV|) early may cause problems with "-c"
2238arguments that invoke an external command or even "-c quit". Postpone it
2239until after executing "-c" arguments.
2240
2241When typing in Insert mode so that a new line is started, using CTRL-G u to
2242break undo and start a new change, then joining the lines with <BS> caused
2243undo info to be missing. Now reset the insertion start point.
2244
2245Syntax HL: When a region start match has a matchgroup and an offset that
2246happens to be after the end of the line then it continued in the next line and
2247stopped at the region end match, making the region continue after that.
2248Now check for the column being past the end of the line in syn_add_end_off().
2249
Bram Moolenaarc32840f2006-01-14 21:23:38 +00002250When changing a file, setting 'swapfile' off and then on again, making another
2251change and killing Vim, then some blocks may be missing from the swapfile.
2252When 'swapfile' is switched back on mark all blocks in the swapfile as dirty.
2253Added mf_set_dirty().
2254
2255Expanding wildcards in a command like ":e aap;<>!" didn't work. Put
2256backslashes before characters that are special to the shell. (Adri Verhoef)
2257
Bram Moolenaar8ada17c2006-01-19 22:16:24 +00002258A CursorHold autocommand would cause a message to be cleared. Don't show the
2259special key for the event for 'showcmd'.
2260
2261When expanding a file name for a shell command, as in "!cmd foo<Tab>" or ":r
2262!cmd foo<Tab>" also escape characters that are special for the shell:
2263"!;&()<>".
2264
Bram Moolenaarb71eaae2006-01-20 23:10:18 +00002265When the name of the buffer was set by a ":r fname" command |cpo-f| no
2266autocommands were triggered to notify about the change in the buffer list.
2267
2268In the quickfix buffer 'bufhidden' was set to "delete", which caused closing
2269the quickfix window to leave an unlisted "No Name" buffer behind every time.
2270
Bram Moolenaar0ac93792006-01-21 22:16:51 +00002271Win32: when using two screens of different size, setting 'lines' to a large
2272value didn't fill the whole screen. (SungHyun Nam)
2273
Bram Moolenaar33aec762006-01-22 23:30:12 +00002274Win32 installer: The generated _vimrc contained an absolute path to diff.exe.
2275After upgrading it becomes invalid. Now use $VIMRUNTIME instead.
2276
Bram Moolenaard12f5c12006-01-25 22:10:52 +00002277The command line was cleared to often when 'showmode' was set and ":silent
2278normal vy" was used. Don't clear the command line unless the mode was
2279actually displayed. Added the "mode_displayed" variable.
2280
Bram Moolenaar280f1262006-01-30 00:14:18 +00002281The "load session" toolbar item could not handle a space or other special
2282characters in v:this_session.
2283
2284":set sta ts=8 sw=4 sts=2" deleted 4 spaces halfway a line instead of 2.
2285
Bram Moolenaar1ef15e32006-02-01 21:56:25 +00002286In a multi-byte file the foldmarker could be recognized in the trail byte.
2287(Taro Muraoka)
2288
Bram Moolenaar0e5bd962006-02-04 00:59:56 +00002289Pasting with CTRL-V and menu didn't work properly when some commands are
2290mapped. Use ":normal!" instead of ":normal". (Tony Apuzzo)
2291
2292Crashed when expanding a file name argument in backticks.
2293
Bram Moolenaarf52c7252006-02-10 23:23:57 +00002294In some situations the menu and scrollbar didn't work, when the value contains
2295a CSI byte. (Yukihiro Nakadaira)
2296
Bram Moolenaar1d2ba7f2006-02-14 22:29:30 +00002297GTK GUI: When drawing the balloon focus changes and we might get a key release
2298event that removed the balloon again. Ignore the key release event.
2299
2300'titleold' was included in ":mkexrc" and ":mksession" files.
2301
Bram Moolenaarf740b292006-02-16 22:11:02 +00002302":set background&" didn't use the same logic as was used when starting up.
2303
Bram Moolenaar997fb4b2006-02-17 21:53:23 +00002304When "umask" is set such that nothing is writable then the viminfo file would
2305be written without write permission. (Julian Bridle)
2306
Bram Moolenaar7e8fd632006-02-18 22:14:51 +00002307Motif: In diff mode dragging one scrollbar didn't update the scrollbar of the
2308other diff'ed window.
2309
Bram Moolenaar238a5642006-02-21 22:12:05 +00002310When editing in an xterm with a different number of colors than expected the
2311screen would be cleared and redrawn, causing the message about the edited file
2312to be cleared. Now set "keep_msg" to redraw the last message.
2313
Bram Moolenaard1f56e62006-02-22 21:25:37 +00002314For a color terminal: When the Normal HL uses bold, possibly to make the color
2315lighter, and another HL group specifies a color it might become light as well.
2316Now reset bold if a HL group doesn't specify bold itself.
2317
Bram Moolenaar32466aa2006-02-24 23:53:04 +00002318When using 256 color xterm the color 255 would show up as color 0. Use a
2319short instead of a char to store the color number.
2320
2321ml_get errors when searching for "\n\zs" in an empty file.
2322
Bram Moolenaara5621492006-02-25 21:55:24 +00002323When selecting a block and using "$" to select until the end of every line and
2324not highlighting the character under the cursor the first character of the
2325block could be unhighlighted.
2326
2327When counting words for the Visual block area and using "$" to select until
2328the end of every line only up to the length of the last line was counted.
2329
Bram Moolenaareddf53b2006-02-27 00:11:10 +00002330"dip" in trailing empty lines left one empty line behind.
2331
Bram Moolenaar5e3cb7e2006-02-27 23:58:35 +00002332The script ID was only remembered globally for each option. When a buffer- or
2333window-local option was set the same "last set" location was changed for all
2334buffers and windows. Now remember the script ID for each local option
2335separately.
2336
2337GUI: The "Replace All" button didn't handle backslashes in the replacement in
2338the same way as "Replace". Escape backslashes so that they are taken
2339literally.
2340
Bram Moolenaare224ffa2006-03-01 00:01:28 +00002341When using Select mode from Insert mode and typing a key, causing lines to be
2342deleted and a message displayed, delayed the effect of inserting the key.
2343Now overwrite the message without delay.
Bram Moolenaar5e3cb7e2006-02-27 23:58:35 +00002344
Bram Moolenaar362e1a32006-03-06 23:29:24 +00002345When 'whichwrap' includes "l" then "dl" and "yl" on a single letter line
2346worked differently. Now recognize all operators when using "l" at the end of
2347a line.
2348
2349GTK GUI: when the font selector returned a font name with a comma in it then
2350it would be handled like two font names. Now put a backslash before the
2351comma.
2352
2353MS-DOS, Win32: When 'encoding' defaults to "latin1" then the value for
2354'iskeyword' was still for CPxxx. And when 'nocompatible' was set 'isprint'
2355would also be the wrong value.
2356
Bram Moolenaar1f35bf92006-03-07 22:38:47 +00002357When a command was defined not to take arguments and no '|' no warning message
2358would be given for using a '|'. Also with ":loadkeymap".
2359
Bram Moolenaara3227e22006-03-08 21:32:40 +00002360Motif: When using a fontset and 'encoding' is "utf-8" and sizeof(wchar_t) !=
2361sizeof(XChar2b) then display was wrong. (Yukihiro Nakadaira)
2362
Bram Moolenaareb94e552006-03-11 21:35:11 +00002363":all" always set the current window to the first window, even when it
2364contains a buffer that is not in the argument list (can't be closed because it
2365is modified). Now go to the window that has the first item of the argument
2366list.
2367
Bram Moolenaar17be7e62006-03-12 22:13:45 +00002368GUI: To avoid left-over pixels from bold text all characters after a character
2369with special attributes were redrawn. Now only do this for characters that
2370actually are bold. Speeds up displaying considerably.
2371
2372When only highlighting changes and the text is scrolled at the same time
2373everything is redraw instead of using a scroll and updating the changed text.
2374E.g., when using ":match" to highlight a paren that the cursor landed on.
2375Added SOME_VALID: Redraw the whole window but also try to scroll to minimize
2376redrawing.
2377
Bram Moolenaarca003e12006-03-17 23:19:38 +00002378Win32: When using Korean IME making it active didn't work properly. (Moon,
2379Yu-sung, 2005 March 21)
2380
Bram Moolenaar97b2ad32006-03-18 21:40:56 +00002381Ruby interface: when inserting/deleting lines display wasn't updated. (Ryan
2382Paul)
Bram Moolenaarca003e12006-03-17 23:19:38 +00002383
Bram Moolenaar910f66f2006-04-05 20:41:53 +00002384--- fixes since Vim 7.0b ---
Bram Moolenaarbd404142006-03-25 22:05:04 +00002385
2386Getting the GCC version in configure didn't work with Solaris sed. First
2387strip any "darwin." and then get the version number.
2388
2389The "autoload" directory was missing from the self-installing executable for
2390MS-Windows.
2391
2392The MS-Windows install program would find "vimtutor.bat" in the install
2393directory. After changing to "c:" also change to "\" to avoid looking in the
2394install directory.
2395
2396To make the 16 bit DOS version compile exclude not used highlight
2397initializations and build a tiny instead of small version.
2398
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00002399finddir() and findfile() accept a negative count and return a List then.
Bram Moolenaar899dddf2006-03-26 21:06:50 +00002400
2401The Python indent file contained a few debugging statements, removed.
2402
2403Expanding {} for a function name, resulting in a name starting with "s:" was
2404not handled correctly.
2405
2406Spelling: renamed COMPOUNDMAX to COMPOUNDWORDMAX. Added several items to be
2407able to handle the new Hungarian dictionary.
2408
2409Mac: Default to building for the current platform only, that is much faster
2410than building a universal binary. Also, using Perl/Python/etc. only works for
2411the current platform.
2412
Bram Moolenaar3991dab2006-03-27 17:01:56 +00002413The time on undo messages disappeared for someone. Using %T for strftime()
2414apparently doesn't work everywhere. Use %H:%M:%S instead.
2415
2416Typing BS at the "z=" prompt removed the prompt.
Bram Moolenaar899dddf2006-03-26 21:06:50 +00002417
Bram Moolenaar779b74b2006-04-10 14:55:34 +00002418--- fixes and changes since Vim 7.0c ---
Bram Moolenaar04a9d452006-03-27 21:03:26 +00002419
2420When jumping to another tab page the Vim window size was always set, even when
2421nothing in the layout changed.
2422
2423Win32 GUI tab pages line wasn't always enabled. Do a proper check for the
2424compiler version.
2425
2426Win32: When switching between tab pages the Vim window was moved when part of
2427it was outside of the screen. Now only do that in the direction of a size
2428change.
2429
2430Win32: added menu to GUI tab pages line. (Yegappan Lakshmanan)
2431
Bram Moolenaard2cec5b2006-03-28 21:08:56 +00002432Mac: Added document icons. (Benji Fisher)
2433
2434Insert mode completion: Using Enter to accept the current match causes
2435confusion. Use CTRL-Y instead. Also, use CTRL-E to go back to the typed
2436text.
2437
Bram Moolenaarb2a460d2007-05-12 15:16:37 +00002438GUI: When there are left and right scrollbars, ":tabedit" kept them instead of
Bram Moolenaard2cec5b2006-03-28 21:08:56 +00002439using the one that isn't needed.
Bram Moolenaar04a9d452006-03-27 21:03:26 +00002440
Bram Moolenaare2f98b92006-03-29 21:18:24 +00002441Using "gP" to replace al the text could leave the cursor below the last line,
2442causing ml_get errors.
2443
2444When 'cursorline' is set don't use the highlighting when Visual mode is
2445active, otherwise it's difficult to see the selected area.
2446
2447The matchparen plugin restricts the search to 100 lines, to avoid a long delay
2448when there are closed folds.
2449
2450Sometimes using CTRL-X s to list spelling suggestions used text from another
2451line.
2452
2453Win32: Set the default for 'isprint' back to the wrong default "@,~-255",
2454because many people use Windows-1252 while 'encoding' is "latin1".
2455
Bram Moolenaar910f66f2006-04-05 20:41:53 +00002456GTK: Added a workaround for gvim crashing when used over an untrusted ssh
2457link, caused by GTK doing something nasty. (Ed Catmur)
2458
2459Win32: The font used for the tab page labels is too big. Use the system menu
2460font. (George Reilly)
2461
2462Win32: Adjusting the window position and size to keep it on the screen didn't
2463work properly when the taskbar is on the left or top of the screen.
2464
2465The installman.sh and installml.sh scripts use ${10}, that didn't work with
2466old shells. And use "test -f" instead of "test -e".
2467
2468Win32: When 'encoding' was set in the vimrc then a directory argument for diff
2469mode didn't work.
2470
2471GUI: at the inputlist() prompt the cursorshape was adjusted as if the windows
2472were still at their old position.
2473
2474The parenmatch plugin didn't remember the highlighting per window.
2475
2476Using ":bd" for a buffer that's the current window in another tab page caused
2477a crash.
2478
2479For a new tab page the 'scroll' option wasn't set to a good default.
2480
2481Using an end offset for a search "/pat/e" didn't work properly for multi-byte
2482text. (Yukihiro Nakadaira)
2483
2484":s/\n/,/" doubled the text when used on the last line.
2485
2486When "search" is in 'foldopen' "[s" and "]s" now open folds.
2487
2488When using a numbered function "dict" can be omitted, but "self" didn't work
2489then. Always add FC_DICT to the function flags when it's part of a
2490dictionary.
2491
2492When "--remote-tab" executes locally it left an empty tab page.
2493
2494"gvim -u NONE", ":set cursorcolumn", "C" in the second line didn't update
2495text. Do update further lines even though the "$" is displayed.
2496
2497VMS: Support GTK better, also enable +clientserver. (Zoltan Arpadffy)
2498
2499When highlighting of statusline or tabline is changed there was no redraw to
2500show the effect.
2501
2502Mac: Added "CFBundleIdentifier" to infplist.xml.
2503
2504Added tabpage-local variables t:var.
2505
2506Win32: Added double-click in tab pages line creates new tab. (Yegappan
2507Lakshmanan)
2508
2509Motif: Added GUI tab pages line. (Yegappan Lakshmanan)
2510
2511Fixed crash when 'lines' was set to 1000 in a modeline.
2512
2513When init_spellfile() finds a writable directory in 'runtimepath' but it
2514doesn't contain a "spell" directory, create one.
2515
2516Win32: executable() also finds "xxd" in the directory where Vim was started,
2517but "!xxd" doesn't work. Append the Vim starting directory to $PATH.
2518
2519The tab page labels are shortened, directory names are reduced to a single
2520letter by default. Added the pathshorten() function to allow a user to do the
2521same.
2522
2523":saveas" now resets 'readonly' if the file was successfully written.
2524
2525Set $MYVIMRC file to the first found .vimrc file.
2526Set $MYGVIMRC file to the first found .gvimrc file.
2527Added menu item "Startup Settings" that edits the $MYVIMRC file
2528
2529Added matcharg().
2530
2531Error message E745 appeared twice. Renamed one to E786.
2532
2533Fixed crash when using "au BufRead * Sexplore" and doing ":help". Was wiping
2534out a buffer that's still in a window.
2535
2536":hardcopy" resulted in an error message when 'encoding' is "utf-8" and
2537'printencoding' is empty. Now it assumes latin1. (Mike Williams)
2538
2539The check for the toolbar feature for Motif, depending on certain included
2540files, wasn't detailed enough, causing building to fail in gui_xmebw.c.
2541
2542Using CTRL-E in Insert mode completion after CTRL-P inserted the first match
2543instead of the original text.
2544
2545When displaying a UTF-8 character with a zero lower byte Vim might think the
2546previous character is double-wide.
2547
2548The "nbsp" item of 'listchars' didn't work when 'encoding' was utf-8.
2549
2550Motif: when Xm/xpm.h is missing gui_xmebw.c would not compile.
2551HAVE_XM_UNHIGHLIGHTT_H was missing a T.
2552
2553Mac: Moved the .icns files into src/os_mac_rsrc, so that they can all be
2554copied at once. Adjusted the Info.plist file for three icons.
2555
2556When Visual mode is active while switching to another tabpage could get ml_get
2557errors.
2558
2559When 'list' is set, 'nowrap' the $ in the first column caused 'cursorcolumn'
2560to move to the right.
2561
2562When a line wraps, 'cursorcolumn' was never displayed past the end of the
2563line.
2564
Bram Moolenaar7b89edc2006-04-06 20:21:51 +00002565'autochdir' was only available when compiled with NetBeans and GUI. Now it's
2566a separate feature, also available in the "big" version.
2567
2568Added CTRL-W gf: open file under cursor in new tab page.
2569
2570When using the menu in the tab pages line, "New Tab" opens the new tab before
2571where the click was. Beyond the labels the new tab appears at the end instead
2572of after the current tab page.
2573
Bram Moolenaar61660ea2006-04-07 21:40:07 +00002574Inside a mapping with an expression getchar() could not be used.
2575
2576When vgetc is used recursively vgetc_busy protects it from being used
2577recursively. But after a ":normal" command the protection was reset.
2578
2579":s/a/b/n" didn't work when 'modifiable' was off.
2580
2581When $VIMRUNTIME includes a multi-byte character then rgb.txt could not be
2582found. (Yukihiro Nakadaira)
2583
2584":mkspell" didn't work correctly for non-ASCII affix flags when conversion is
2585needed on the spell file.
2586
2587glob('/dir/\$ABC/*') didn't work.
2588
Bram Moolenaarc6fe9192006-04-09 21:54:49 +00002589When using several tab pages and changing 'cmdheight' the display could become
2590messed up. Now store the value of 'cmdheight' separately for each tab page.
2591
Bram Moolenaar779b74b2006-04-10 14:55:34 +00002592The user of the Enter key while the popup menu is visible was still confusing.
2593Now use Enter to select the match after using a cursor key.
2594
2595Added "usetab" to 'switchbuf'.
2596
Bram Moolenaar4c3f5362006-04-11 21:38:50 +00002597
2598--- fixes and changes since Vim 7.0d ---
2599
2600Added CTRL-W T: move a window to a new tab page.
2601
2602Using CTRL-X s in Insert mode to complete spelling suggestions and using BS
2603deleted characters before the bad word.
2604
2605A few small fixes for the VMS makefile. (Zoltan Arpadffy)
2606
2607With a window of 91 lines 45 cols, ":vsp" scrolled the window. Copy w_wrow
2608when splitting a window and skip setting the height when it's already at the
2609right value.
2610
2611Using <silent> in a mapping with a shell command and the GUI caused redraw
2612to use wrong attributes.
2613
2614Win32: Using MSVC 4.1 for install.exe resulted in the start menu items to be
2615created in the administrator directory instead of "All Users". Define the
2616CSIDL_ items if they are missing.
2617
Bram Moolenaar18144c82006-04-12 21:52:12 +00002618Motif: The GUI tabline did not use the space above the right scrollbar. Work
2619around a bug in the Motif library. (Yegappan Lakshmanan)
2620
2621The extra files for XML Omni completion are now also installed.
2622|xml-omni-datafile|
2623
2624GTK GUI: when 'm' is missing from 'guioptions' during startup and pressing
2625<F10> GTK produced error messages. Now do create the menu but disable it just
2626after the first gui_mch_update().
2627
2628":mkspell" doesn't work well with the Hungarian dictionary from the Hunspell
2629project. Back to the Myspell dictionary.
2630
2631In help files hide the | used around tags.
2632
2633Renamed pycomplete to pythoncomplete.
2634
2635Added "tabpages" to 'sessionoptions'.
2636
2637When 'guitablabel' is set the effect wasn't visible right away.
2638
2639Fixed a few 'cindent' errors.
2640
Bram Moolenaar7fc904b2006-04-13 20:37:35 +00002641When completing menu names, e.g., after ":emenu", don't sort the entries but
2642keep them in the original order.
2643
2644Fixed a crash when editing a directory in diff mode. Don't trigger
2645autocommands when executing the diff command.
2646
2647Getting a keystroke could get stuck if 'encoding' is a multi-byte encoding and
2648typing a special key.
2649
2650When 'foldignore' is set the folds were not updated right away.
Bram Moolenaar4c3f5362006-04-11 21:38:50 +00002651
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +00002652When a list is indexed with [a : b] and b was greater than the length an error
Bram Moolenaarb21e5842006-04-16 18:30:08 +00002653message was given. Now silently truncate the result.
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +00002654
2655When using BS during Insert mode completion go back to the original text, so
2656that CTRL-N selects the first matching entry.
2657
Bram Moolenaarb21e5842006-04-16 18:30:08 +00002658Added the 'M' flag to 'cinoptions'.
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +00002659
2660Win32: Make the "gvim --help" window appear in the middle of the screen
2661instead of at an arbitrary position. (Randall W. Morris)
2662
Bram Moolenaar8cacf352006-04-15 20:27:24 +00002663Added gettabwinvar() and settabwinvar().
2664
2665Command line completion: pressing <Tab> after ":e /usr/*" expands the whole
2666tree, because it becomes ":e /usr/**". Don't add a star if there already is
2667one.
2668
Bram Moolenaarb21e5842006-04-16 18:30:08 +00002669Added grey10 to grey90 to all GUIs, so that they can all be used for
2670initializing highlighting. Use grey40 for CursorColumn and CursorLine when
2671'background' is "dark".
2672
2673When reading a file and using iconv for conversion, an incomplete byte
2674sequence at the end caused problems. (Yukihiro Nakadaira)
2675
2676
2677--- fixes and changes since Vim 7.0e ---
2678
2679Default color for MatchParen when 'background' is "dark" is now DarkCyan.
2680
2681":syn off" had to be used twice in a file that sets 'syntax' in a modeline.
2682(Michael Geddes)
2683
2684When using ":vsp" or ":sp" the available space wasn't used equally between
2685windows. (Servatius Brandt)
2686
Bram Moolenaara93fa7e2006-04-17 22:14:47 +00002687Expanding <cWORD> on a trailing blank resulted in the first word in the line
2688if 'encoding' is a multi-byte encoding.
2689
2690Spell checking: spellbadword() didn't see a missing capital in the first word
2691of a line. Popup menu now only suggest the capitalized word when appropriate.
2692
Bram Moolenaarf9393ef2006-04-24 19:47:27 +00002693When using whole line completion CTRL-L moves through the matches but it
Bram Moolenaarc1e37902006-04-18 21:55:01 +00002694didn't work when at the original text.
2695
2696When completion finds the longest match, don't go to the first match but stick
2697at the original text, so that CTRL-N selects the first one.
2698
2699Recognize "zsh-beta" like "zsh" for setting the 'shellpipe' default. (James
2700Vega)
2701
2702When using ":map <expr>" and the expression results in something with a
2703special byte (NUL or CSI) then it didn't work properly. Now escape special
2704bytes.
2705
2706The default Visual highlighting for a color xterm with 8 colors was a magenta
2707background, which made magenta text disappear. Now use reverse in this
2708specific situation.
2709
2710After completing the longest match "." didn't insert the same text. Repeating
2711also didn't work correctly for multi-byte text.
2712
2713When using Insert mode completion and BS the whole word that was completed
2714would result in all possible matches. Now stop completion. Also fixes that
2715for spell completion the previous word was deleted.
2716
2717GTK: When 'encoding' is "latin1" and using non-ASCII characters in a file name
2718the tab page label was wrong and an error message would be given.
2719
2720The taglist() function could hang on a tags line with a non-ASCII character.
2721
Bram Moolenaar8424a622006-04-19 21:23:36 +00002722Win32: When 'encoding' differs from the system encoding tab page labels with
2723non-ASCII characters looked wrong. (Yegappan Lakshmanan)
2724
Bram Moolenaarfc1421e2006-04-20 22:17:20 +00002725Motif: building failed when Xm/Notebook.h doesn't exist. Added a configure
2726check, disable GUI tabline when it's missing.
2727
2728Mac: When compiled without multi-byte feature the clipboard didn't work.
2729
2730It was possible to switch to another tab page when the cmdline window is open.
2731
2732Completion could hang when 'lines' is 6 and a preview window was opened.
2733
Bram Moolenaar57657d82006-04-21 22:12:41 +00002734Added CTRL-W gF: open file under cursor in new tab page and jump to the line
2735number following the file name.
Bram Moolenaareb3593b2006-04-22 22:33:57 +00002736Added 'guitabtooltip'. Implemented for Win32 (Yegappan Lakshmanan).
Bram Moolenaar57657d82006-04-21 22:12:41 +00002737
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00002738Added "throw" to 'debug' option: throw an exception for error messages even
Bram Moolenaar57657d82006-04-21 22:12:41 +00002739whey they would otherwise be ignored.
2740
2741When 'keymap' is set and a line contains an invalid entry could get a "No
2742mapping found" warning instead of a proper error message.
2743
2744Motif: default to using XpmAttributes instead of XpmAttributes_21.
2745
Bram Moolenaareb3593b2006-04-22 22:33:57 +00002746A few more changes for 64 bit MS-Windows. (George Reilly)
2747
2748Got ml_get errors when doing "o" and selecting in other window where there are
2749less line shorter than the cursor position in the other window. ins_mouse()
2750was using position in wrong window.
2751
2752Win32 GUI: Crash when giving a lot of messages during startup. Allocate twice
2753as much memory for the dialog template.
2754
2755Fixed a few leaks and wrong pointer use reported by coverity.
2756
2757When showing menus the mode character was sometimes wrong.
Bram Moolenaarfc1421e2006-04-20 22:17:20 +00002758
Bram Moolenaarf9393ef2006-04-24 19:47:27 +00002759Added feedkeys(). (Yakov Lerner)
2760
2761Made matchlist() always return all submatches.
2762
2763Moved triggering QuickFixCmdPost to before jumping to the first location.
2764
2765Mac: Added the 'macatsui' option as a temporary work around for text drawing
2766problems.
2767
2768Line completion on "/**" gave error messages when scanning an unloaded buffer.
Bram Moolenaar4a85b412006-04-23 22:40:29 +00002769
Bram Moolenaar551dbcc2006-04-25 22:13:59 +00002770--- fixes and changes since Vim 7.0f ---
2771
2772Win32: The height of the tab page labels is now adjusted to the font height.
2773(Yegappan Lakshmanan)
2774
2775Win32: selecting the tab label was off by one. (Yegappan Lakshmanan)
Bram Moolenaar4a85b412006-04-23 22:40:29 +00002776
Bram Moolenaar437df8f2006-04-27 21:47:44 +00002777Added tooltips for Motif and GTK tab page labels. (Yegappan Lakshmanan)
Bram Moolenaarf193fff2006-04-27 00:02:13 +00002778
2779When 'encoding' is "utf-8" then ":help spell" would report an illegal byte and
2780the file was not converted from latin1 to utf-8. Now retry with latin1 if
2781reading the file as utf-8 results in illegal bytes.
2782
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00002783Escape the argument of feedkeys() before putting it in the typeahead buffer.
Bram Moolenaarf193fff2006-04-27 00:02:13 +00002784(Yukihiro Nakadaira)
2785
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00002786Added the v:char variable for evaluating 'formatexpr'. (Yukihiro Nakadaira)
Bram Moolenaarf193fff2006-04-27 00:02:13 +00002787
2788With 8 colors Search highlighting combined with Statement highlighted text
2789made the text disappear.
2790
2791VMS: avoid warnings for redefining MAX and MIN. (Zoltan Arpadffy)
2792
2793When 'virtualedit' includes "onemore", stopping Visual selection would still
2794move the cursor left.
2795
2796Prevent that using CTRL-R = in Insert mode can start Visual mode.
2797
Bram Moolenaar49325942007-05-10 19:19:59 +00002798Fixed a crash that occurred when in Insert mode with completion active and a
Bram Moolenaarf193fff2006-04-27 00:02:13 +00002799mapping caused edit() to be called recursively.
2800
2801When using CTRL-O in Insert mode just after the last character while
2802'virtualedit' is "all", then typing CR moved the last character to the next
2803line. Call coladvance() before starting the new line.
2804
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00002805When using |:shell| ignore clicks on the tab page labels. Also when using the
2806command line window.
Bram Moolenaarf193fff2006-04-27 00:02:13 +00002807
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00002808When 'eventignore' is "all" then adding more to ignoring some events, e.g.,
2809for ":vimgrep", would actually trigger more events.
Bram Moolenaarf193fff2006-04-27 00:02:13 +00002810
2811Win32: When a running Vim uses server name GVIM1 then "gvim --remote fname"
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00002812didn't find it. When looking for a server name that doesn't end in a digit
2813and it is not found then use another server with that name and a number (just
2814like on Unix).
Bram Moolenaarf193fff2006-04-27 00:02:13 +00002815
2816When using "double" in 'spellsuggest' when the language doesn't support sound
2817folding resulted in too many suggestions.
2818
Bram Moolenaarb2a460d2007-05-12 15:16:37 +00002819Win32: Dropping a shortcut on the Vim icon didn't edit the referred file like
Bram Moolenaarf193fff2006-04-27 00:02:13 +00002820editing it in another way would. Use fname_expand() in buf_set_name() instead
2821of simply make the file name a full path.
2822
Bram Moolenaar437df8f2006-04-27 21:47:44 +00002823Using feedkeys() could cause Vim to hang.
2824
2825When closing another tab page from the tabline menu in Insert mode the tabline
2826was not updated right away.
2827
2828The syntax menu didn't work in compatible mode.
2829
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00002830After using ":tag id" twice with the same "id", ":ts" and then ":pop" a ":ts"
Bram Moolenaar437df8f2006-04-27 21:47:44 +00002831reported no matching tag. Clear the cached tag name.
2832
2833In Insert mode the matchparen plugin highlighted the wrong paren when there is
2834a string just next to a paren.
2835
Bram Moolenaar8ea91232006-04-28 22:41:43 +00002836GTK: After opening a new tab page the text was sometimes not drawn correctly.
2837Flush output and catch up with events when updating the tab page labels.
2838
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00002839In the GUI, using CTRL-W q to close the last window of a tab page could cause
2840a crash.
Bram Moolenaar8ea91232006-04-28 22:41:43 +00002841
2842GTK: The tab pages line menu was not converted from 'encoding' to utf-8.
2843
Bram Moolenaarc93b83a2006-04-29 22:02:36 +00002844Typing a multi-byte character or a special key at the hit-enter prompt did not
2845work.
2846
2847When 'virtualedit' contains "onemore" CTRL-O in Insert mode still moved the
2848cursor left when it was after the end of the line, even though it's allowed to
2849be there.
2850
Bram Moolenaarc9b4b052006-04-30 18:54:39 +00002851Added test for using tab pages.
2852
2853towupper() and towlower() were not used, because of checking for
2854__STDC__ISO_10646__ instead of __STDC_ISO_10646__. (sertacyildiz)
2855
2856For ":map <expr>" forbid changing the text, jumping to another buffer and
2857using ":normal" to avoid nasty side effects.
2858
Bram Moolenaard68071d2006-05-02 22:08:30 +00002859--- fixes and changes since Vim 7.0g ---
2860
2861Compilation error on HP-UX, use of "dlerr" must be inside a #ifdef.
2862(Gary Johnson)
2863
2864Report +reltime feature in ":version" output.
2865
2866The tar and zip plugins detect failure to get the contents of the archive and
2867edit the file as-is.
2868
2869When the result of 'guitablabel' is empty fall back to the default label.
2870
2871Fixed crash when using ":insert" in a while loop and missing "endwhile".
2872
2873"gt" and other commands could move to another window when |textlock| active
2874and when the command line window was open.
2875
2876Spell checking a file with syntax highlighting and a bad word at the end of
2877the line is ignored could make "]s" hang.
2878
2879Mac: inputdialog() didn't work when compiled with big features.
2880
2881Interrupting ":vimgrep" while it is busy loading a file left a modified and
2882hidden buffer behind. Use enter_cleanup() and leave_cleanup() around
2883wipe_buffer().
2884
2885When making 'keymap' empty the b:keymap_name variable wasn't deleted.
2886
2887Using CTRL-N that searches a long time, pressing space to interrupt the
2888searching and accept the first match, the popup menu was still displayed
2889briefly.
2890
2891When setting the Vim window height with -geometry the 'window' option could be
2892at a value that makes CTRL-F behave differently.
2893
Bram Moolenaar8b2d9c42006-05-03 21:28:47 +00002894When opening a quickfix window in two tabs they used different buffers,
2895causing redrawing problems later. Now use the same buffer for all quickfix
2896windows. (Yegappan Lakshmanan)
2897
2898When 'mousefocus' is set moving the mouse to the text tab pages line would
2899move focus to the first window. Also, the mouse pointer would jump to the
2900active window.
2901
2902In a session file, when an empty buffer is wiped out, do this silently.
2903
2904When one window has the cursor on the last line and another window is resized
2905to make that window smaller, the cursor line could go below the displayed
2906lines. In win_new_height() subtract one from the available space.
2907Also avoid that using "~" lines makes the window scroll down.
2908
2909Mac: When sourcing the "macmap.vim" script and then finding a .vimrc file the
2910'cpo' option isn't set properly, because it was already set and restored.
2911Added the <special> argument to ":map", so that 'cpo' doesn't need to be
2912changed to be able to use <> notation. Also do this for ":menu" for
2913consistency.
2914
2915When using "/encoding=abc" in a spell word list, only "bc" was used.
2916
Bram Moolenaar54a709e2006-05-04 21:57:11 +00002917When 'encoding' and 'printencoding' were both "utf-8" then ":hardcopy" didn't
2918work. (Mike Williams)
2919
2920Mac: When building with "--disable-gui" the install directory would still be
2921"/Applications" and Vim.app would be installed. Now install in /usr/local as
2922usual for a console application.
2923
2924GUI: when doing completion and there is one match and still searching for
2925another, the cursor was displayed at the end of the line instead of after the
2926match. Now show the cursor after the match while still searching for matches.
2927
2928GUI: The mouse shape changed on the statusline even when 'mouse' was empty and
2929they can't be dragged..
2930
2931GTK2: Selecting a button in the confirm() dialog with Tab or cursor keys and
2932hitting Enter didn't select that button. Removed GTK 1 specific code. (Neil
2933Bird)
2934
2935When evaluating 'balloonexpr' takes a long time it could be called
2936recursively, which could cause a crash.
2937
2938exists() could not be used to detect whether ":2match" is supported. Added a
2939check for it specifically.
2940
Bram Moolenaar96351572006-05-05 21:16:59 +00002941GTK1: Tab page labels didn't work. (Yegappan Lakshmanan)
2942
2943Insert mode completion: When finding matches use 'ignorecase', but when adding
2944matches to the list don't use it, so that all words with different case are
2945added, "word", "Word" and "WORD".
2946
2947When 'cursorline' and 'hlsearch' are set and the search pattern is "x\n"
2948the rest of the line was highlighted as a match.
2949
2950Cursor moved while evaluating 'balloonexpr' that invokes ":isearch" and
2951redirects the output. Don't move the cursor to the command line if msg_silent
2952is set.
2953
2954exists() ignored text after a function name and option name, which could
2955result in false positives.
2956
2957exists() ignored characters after the recognized word, which can be wrong when
2958using a name with non-keyword characters. Specifically, these calls no longer
2959allow characters after the name: exists('*funcname') exists('*funcname(...')
2960exists('&option') exists(':cmd') exists('g:name') exists('g:name[n]')
2961exists('g:name.n')
2962
Bram Moolenaar2f567ab2006-05-06 21:47:30 +00002963Trigger the TabEnter autocommand only after entering the current window of the
2964tab page, otherwise the commands are executed with an invalid current window.
2965
2966Win32: When using two monitors and Vim is on the second monitor, changing the
2967width of the Vim window could make it jump to the first monitor.
2968
2969When scrolling back at the more prompt and the quitting a line of text would
2970be left behind when 'cmdheight' is 2 or more.
2971
Bram Moolenaar1423b9d2006-05-07 15:16:06 +00002972Fixed a few things for Insert mode completion, especially when typing BS,
2973CTRL-N or a printable character while still searching for matches.
2974
Bram Moolenaarf193fff2006-04-27 00:02:13 +00002975
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00002976==============================================================================
2977VERSION 7.1 *version-7.1*
2978
2979This section is about improvements made between version 7.0 and 7.1.
2980
2981This is a bug-fix release, there are no fancy new features.
2982
2983
2984Changed *changed-7.1*
2985-------
2986
2987Added setting 'mouse' in vimrc_example.vim.
2988
2989When building with MZscheme also look for include files in the "plt"
2990subdirectory. That's where they are for FreeBSD.
2991
Bram Moolenaar49325942007-05-10 19:19:59 +00002992The Ruby interface module is now called "Vim" instead of "VIM". But "VIM" is
2993an alias, so it's backwards compatible. (Tim Pope)
2994
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00002995
2996Added *added-7.1*
2997-----
2998
2999New syntax files:
Bram Moolenaar49325942007-05-10 19:19:59 +00003000 /var/log/messages (Yakov Lerner)
Bram Moolenaarb2a460d2007-05-12 15:16:37 +00003001 Autohotkey (Nikolai Weibull)
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00003002 AutoIt v3 (Jared Breland)
3003 Bazaar commit file "bzr". (Dmitry Vasiliev)
Bram Moolenaar49325942007-05-10 19:19:59 +00003004 Cdrdao TOC (Nikolai Weibull)
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00003005 Cmusrc (Nikolai Weibull)
Bram Moolenaarb2a460d2007-05-12 15:16:37 +00003006 Conary recipe (rPath Inc)
3007 Framescript (Nikolai Weibull)
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00003008 FreeBasic (Mark Manning)
3009 Hamster (David Fishburn)
3010 IBasic (Mark Manning)
Bram Moolenaarb2a460d2007-05-12 15:16:37 +00003011 Initng (Elan Ruusamae)
Bram Moolenaar49325942007-05-10 19:19:59 +00003012 Ldapconf (Nikolai Weibull)
3013 Litestep (Nikolai Weibull)
Bram Moolenaarb2a460d2007-05-12 15:16:37 +00003014 Privoxy actions file (Doug Kearns)
3015 Streaming Descriptors "sd" (Puria Nafisi Azizi)
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00003016
3017New tutor files:
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00003018 Czech (Lubos Turek)
Bram Moolenaarb2a460d2007-05-12 15:16:37 +00003019 Hungarian (Arpad Horvath)
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00003020 Turkish (Serkan kkk)
3021 utf-8 version of Greek tutor.
3022 utf-8 version of Russian tutor.
3023 utf-8 version of Slowak tutor.
3024
3025New filetype plugins:
3026 Bst (Tim Pope)
3027 Cobol (Tim Pope)
3028 Fvwm (Gautam Iyer)
3029 Hamster (David Fishburn)
3030 Django HTML template (Dave Hodder)
3031
3032New indent files:
3033 Bst (Tim Pope)
3034 Cobol (Tim Pope)
3035 Hamster (David Fishburn)
3036 Django HTML template (Dave Hodder)
3037 Javascript
3038 JSP (David Fishburn)
3039
3040New keymap files:
3041 Bulgarian (Boyko Bantchev)
3042 Mongolian (Natsagdorj Shagdar)
3043 Thaana (Ibrahim Fayaz)
3044 Vietnamese (Samuel Thibault)
3045
3046Other new runtime files:
3047 Ada support files. (Neil Bird, Martin Krischik)
3048 Slovenian menu translations (Mojca Miklavec)
3049 Mono C# compiler plugin (Jarek Sobiecki)
3050
3051
3052Fixed *fixed-7.1*
3053-----
3054
3055Could not build the Win32s version. Added a few structure definitions in
3056src/gui_w32.c
3057
3058
3059Patch 7.0.001
3060Problem: ":set spellsuggest+=10" does not work. (Suresh Govindachar)
3061Solution: Add P_COMMA to the 'spellsuggest' flags.
3062Files: src/option.c
3063
3064Patch 7.0.002
3065Problem: C omni completion has a problem with tags files with a path
3066 containing "#" or "%".
3067Solution: Escape these characters. (Sebastian Baberowski)
3068Files: runtime/autoload/ccomplete.vim
3069
3070Patch 7.0.003
3071Problem: GUI: clicking in the lower part of a label in the tab pages line
3072 while 'mousefocus' is set may warp the mouse pointer. (Robert
3073 Webb)
3074Solution: Check for a negative mouse position.
3075Files: src/gui.c
3076
3077Patch 7.0.004
3078Problem: Compiler warning for debug_saved used before set. (Todd Blumer)
3079Solution: Remove the "else" for calling save_dbg_stuff().
3080Files: src/ex_docmd.c
3081
3082Patch 7.0.005 (extra)
3083Problem: Win32: The installer doesn't remove the "autoload" and "spell"
3084 directories. (David Fishburn)
3085Solution: Add the directories to the list to be removed.
3086Files: nsis/gvim.nsi
3087
3088Patch 7.0.006
3089Problem: Mac: "make shadow" doesn't make a link for infplist.xml. (Axel
3090 Kielhorn)
3091Solution: Make the link.
3092Files: src/Makefile
3093
3094Patch 7.0.007
3095Problem: AIX: compiling fails for message.c. (Ruediger Hornig)
3096Solution: Move the #if outside of memchr().
3097Files: src/message.c
3098
3099Patch 7.0.008
3100Problem: Can't call a function that uses both <SID> and {expr}. (Thomas)
3101Solution: Check both the expanded and unexpanded name for <SID>.
3102Files: src/eval.c
3103
3104Patch 7.0.009
3105Problem: ml_get errors with both 'sidescroll' and 'spell' set.
3106Solution: Use ml_get_buf() instead of ml_get(), get the line from the right
3107 buffer, not the current one.
3108Files: src/spell.c
3109
3110Patch 7.0.010
3111Problem: The spellfile plugin required typing login name and password.
3112Solution: Use "anonymous" and "vim7user" by default. No need to setup a
3113 .netrc file.
3114Files: runtime/autoload/spellfile.vim
3115
3116Patch 7.0.011
3117Problem: Can't compile without the folding and with the eval feature.
3118Solution: Add an #ifdef. (Vallimar)
3119Files: src/option.c
3120
3121Patch 7.0.012
3122Problem: Using the matchparen plugin, moving the cursor in Insert mode to a
3123 shorter line that ends in a brace, changes the preferred column
3124Solution: Use winsaveview()/winrestview() instead of getpos()/setpos().
3125Files: runtime/plugin/matchparen.vim
3126
3127Patch 7.0.013
3128Problem: Insert mode completion: using CTRL-L to add an extra character
3129 also deselects the current match, making it impossible to use
3130 CTRL-L a second time.
3131Solution: Keep the current match. Also make CTRL-L work at the original
3132 text, using the first displayed match.
3133Files: src/edit.c
3134
3135Patch 7.0.014
3136Problem: Compiling gui_xmebw.c fails on Dec Alpha Tru64. (Rolfe)
3137Solution: Disable some code for Motif 1.2 and older.
3138Files: src/gui_xmebw.c
3139
3140Patch 7.0.015
3141Problem: Athena: compilation problems with modern compiler.
3142Solution: Avoid type casts for lvalue. (Alexey Froloff)
3143Files: src/gui_at_fs.c
3144
3145Patch 7.0.016
3146Problem: Printing doesn't work for "dec-mcs" encoding.
3147Solution: Add "dec-mcs", "mac-roman" and "hp-roman8" to the list of
3148 recognized 8-bit encodings. (Mike Williams)
3149Files: src/mbyte.c
3150
3151Patch 7.0.017 (after 7.0.014)
3152Problem: Linking gui_xmebw.c fails on Dec Alpha Tru64. (Rolfe)
3153Solution: Adjust defines for Motif 1.2 and older.
3154Files: src/gui_xmebw.c
3155
3156Patch 7.0.018
3157Problem: VMS: plugins are not loaded on startup.
3158Solution: Remove "**" from the path. (Zoltan Arpadffy)
3159Files: src/main.c
3160
3161Patch 7.0.019
3162Problem: Repeating "VjA789" may cause a crash. (James Vega)
3163Solution: Check the cursor column after moving it to another line.
3164Files: src/ops.c
3165
3166Patch 7.0.020
3167Problem: Crash when using 'mousefocus'. (William Fulton)
3168Solution: Make buffer for mouse coordinates 2 bytes longer. (Juergen Weigert)
3169Files: src/gui.c
3170
3171Patch 7.0.021
3172Problem: Crash when using "\\[" and "\\]" in 'errorformat'. (Marc Weber)
3173Solution: Check for valid submatches after matching the pattern.
3174Files: src/quickfix.c
3175
3176Patch 7.0.022
3177Problem: Using buffer.append() in Ruby may append the line to the wrong
3178 buffer. (Alex Norman)
3179Solution: Properly switch to the buffer to do the appending. Also for
3180 buffer.delete() and setting a buffer line.
3181Files: src/if_ruby.c
3182
3183Patch 7.0.023
3184Problem: Crash when doing spell completion in an empty line and pressing
3185 CTRL-E.
3186Solution: Check for a zero pointer. (James Vega)
3187 Also handle a situation without a matching pattern better, report
3188 "No matches" instead of remaining in undefined CTRL-X mode. And
3189 get out of CTRL-X mode when typing a letter.
3190Files: src/edit.c
3191
3192Patch 7.0.024
3193Problem: It is possible to set arbitrary "v:" variables.
3194Solution: Disallow setting "v:" variables that are not predefined.
3195Files: src/eval.c
3196
3197Patch 7.0.025
3198Problem: Crash when removing an element of a:000. (Nikolai Weibull)
3199Solution: Mark the a:000 list with VAR_FIXED.
3200Files: src/eval.c
3201
3202Patch 7.0.026
3203Problem: Using libcall() may show an old error.
3204Solution: Invoke dlerror() to clear a previous error. (Yukihiro Nakadaira)
3205Files: src/os_unix.c
3206
3207Patch 7.0.027 (extra)
3208Problem: Win32: When compiled with SNIFF gvim may hang on exit.
3209Solution: Translate and dispatch the WM_USER message. (Mathias Michaelis)
3210Files: src/gui_w48.c
3211
3212Patch 7.0.028 (extra)
3213Problem: OS/2: Vim doesn't compile with gcc 3.2.1.
3214Solution: Add argument to after_pathsep(), don't define vim_handle_signal(),
3215 define HAVE_STDARG_H. (David Sanders)
3216Files: src/os_unix.c, src/vim.h, src/os_os2_cfg.h
3217
3218Patch 7.0.029
3219Problem: getchar() may not position the cursor after a space.
3220Solution: Position the cursor explicitly.
3221Files: src/eval.c
3222
3223Patch 7.0.030
3224Problem: The ":compiler" command can't be used in a FileChangedRO event.
3225 (Hari Krishna Dara)
3226Solution: Add the CMDWIN flag to the ":compiler" command.
3227Files: src/ex_cmds.h
3228
3229Patch 7.0.031
3230Problem: When deleting a buffer the buffer-local mappings for Select mode
3231 remain.
3232Solution: Add the Select mode bit to MAP_ALL_MODES. (Edwin Steiner)
3233Files: src/vim.h
3234
3235Patch 7.0.032 (extra, after 7.0.027)
3236Problem: Missing semicolon.
3237Solution: Add the semicolon.
3238Files: src/gui_w48.c
3239
3240Patch 7.0.033
3241Problem: When pasting text, with the menu or CTRL-V, autoindent is removed.
3242Solution: Use "x<BS>" to avoid indent to be removed. (Benji Fisher)
3243Files: runtime/autoload/paste.vim
3244
3245Patch 7.0.034
3246Problem: After doing completion and typing more characters or using BS
3247 repeating with "." didn't work properly. (Martin Stubenschrott)
3248Solution: Don't put BS and other characters in the redo buffer right away,
3249 do this when finishing completion.
3250Files: src/edit.c
3251
3252Patch 7.0.035
3253Problem: Insert mode completion works when typed but not when replayed from
3254 a register. (Hari Krishna Dara)
3255 Also: Mappings for Insert mode completion don't always work.
3256Solution: When finding a non-completion key in the input don't interrupt
3257 completion when it wasn't typed.
3258 Do use mappings when checking for typeahead while still finding
3259 completions. Avoids that completion is interrupted too soon.
3260 Use "compl_pending" in a different way.
3261Files: src/edit.c
3262
3263Patch 7.0.036
3264Problem: Can't compile with small features and syntax highlighting or the
3265 diff feature.
3266Solution: Define LINE_ATTR whenever syntax highlighting or the diff feature
3267 is enabled.
3268Files: src/screen.c
3269
3270Patch 7.0.037
3271Problem: Crash when resizing the GUI window vertically when there is a line
3272 that doesn't fit.
3273Solution: Don't redraw while the screen data is invalid.
3274Files: src/screen.c
3275
3276Patch 7.0.038
3277Problem: When calling complete() from an Insert mode expression mapping
3278 text could be inserted in an improper way.
3279Solution: Make undo_allowed() global and use it in complete().
3280Files: src/undo.c, src/proto/undo.pro, src/eval.c
3281
3282Patch 7.0.039
3283Problem: Calling inputdialog() with a third argument in the console doesn't
3284 work.
3285Solution: Make a separate function for input() and inputdialog(). (Yegappan
3286 Lakshmanan)
3287Files: src/eval.c
3288
3289Patch 7.0.040
3290Problem: When 'cmdheight' is larger than 1 using inputlist() or selecting
3291 a spell suggestion with the mouse gets the wrong entry.
3292Solution: Start listing the first alternative on the last line of the screen.
3293Files: src/eval.c, src/spell.c
3294
3295Patch 7.0.041
3296Problem: cursor([1, 1]) doesn't work. (Peter Hodge)
3297Solution: Allow leaving out the third item of the list and use zero for the
3298 virtual column offset.
3299Files: src/eval.c
3300
3301Patch 7.0.042
3302Problem: When pasting a block of text in Insert mode Vim hangs or crashes.
3303 (Noam Halevy)
3304Solution: Avoid that the cursor is positioned past the NUL of a line.
3305Files: src/ops.c
3306
3307Patch 7.0.043
3308Problem: Using "%!" at the start of 'statusline' doesn't work.
3309Solution: Recognize the special item when the option is being set.
3310Files: src/option.c
3311
3312Patch 7.0.044
3313Problem: Perl: setting a buffer line in another buffer may result in
3314 changing the current buffer.
3315Solution: Properly change to the buffer to be changed.
3316Files: src/if_perl.xs
3317
3318Patch 7.0.045 (extra)
3319Problem: Win32: Warnings when compiling OLE version with MSVC 2005.
3320Solution: Move including vim.h to before windows.h. (Ilya Bobir)
3321Files: src/if_ole.cpp
3322
3323Patch 7.0.046
3324Problem: The matchparen plugin ignores parens in strings, but not in single
3325 quotes, often marked with "character".
3326Solution: Also ignore parens in syntax items matching "character".
3327Files: runtime/plugin/matchparen.vim
3328
3329Patch 7.0.047
3330Problem: When running configure the exit status is wrong.
3331Solution: Handle the exit status properly. (Matthew Woehlke)
3332Files: configure, src/configure
3333
3334Patch 7.0.048
3335Problem: Writing a compressed file fails when there are parens in the name.
3336 (Wang Jian)
3337Solution: Put quotes around the temp file name.
3338Files: runtime/autoload/gzip.vim
3339
3340Patch 7.0.049
3341Problem: Some TCL scripts are not recognized. (Steven Atkinson)
3342Solution: Check for "exec wish" in the file.
3343Files: runtime/scripts.vim
3344
3345Patch 7.0.050
3346Problem: After using the netbeans interface close command a stale pointer
3347 may be used.
3348Solution: Clear the pointer to the closed buffer. (Xaview de Gaye)
3349Files: src/netbeans.c
3350
3351Patch 7.0.051 (after 7.0.44)
3352Problem: The Perl interface doesn't compile or doesn't work properly.
3353Solution: Remove the spaces before #ifdef and avoid an empty line above it.
3354Files: src/if_perl.xs
3355
3356Patch 7.0.052
3357Problem: The user may not be aware that the Vim server allows others more
3358 functionality than desired.
3359Solution: When running Vim as root don't become a Vim server without an
3360 explicit --servername argument.
3361Files: src/main.c
3362
3363Patch 7.0.053
3364Problem: Shortening a directory name may fail when there are multi-byte
3365 characters.
3366Solution: Copy the correct bytes. (Titov Anatoly)
3367Files: src/misc1.c
3368
3369Patch 7.0.054
3370Problem: Mac: Using a menu name that only has a mnemonic or accelerator
3371 causes a crash. (Elliot Shank)
3372Solution: Check for an empty menu name. Also delete empty submenus that
3373 were created before detecting the error.
3374Files: src/menu.c
3375
3376Patch 7.0.055
3377Problem: ":startinsert" in a CmdwinEnter autocommand doesn't take immediate
3378 effect. (Bradley White)
3379Solution: Put a NOP key in the typeahead buffer. Also avoid that using
3380 CTRL-C to go back to the command line moves the cursor left.
3381Files: src/edit.c, src/ex_getln.c
3382
3383Patch 7.0.056
3384Problem: "#!something" gives an error message.
3385Solution: Ignore this line, so that it can be used in an executable Vim
3386 script.
3387Files: src/ex_docmd.c
3388
3389Patch 7.0.057 (extra, after 7.0.45)
3390Problem: Win32: Compilation problem with Borland C 5.5.
3391Solution: Include vim.h as before. (Mark S. Williams)
3392Files: src/if_ole.cpp
3393
3394Patch 7.0.058
3395Problem: The gbk and and gb18030 encodings are not recognized.
3396Solution: Add aliases to cp936. (Edward L. Fox)
3397Files: src/mbyte.c
3398
3399Patch 7.0.059
3400Problem: The Perl interface doesn't compile with ActiveState Perl 5.8.8.
3401Solution: Remove the __attribute__() items. (Liu Yubao)
3402Files: src/if_perl.xs
3403
3404Patch 7.0.060 (after 7.0.51)
3405Problem: Code for temporarily switching to another buffer is duplicated in
3406 quite a few places.
3407Solution: Use aucmd_prepbuf() and aucmd_restbuf() also when FEAT_AUTOCMD is
3408 not defined.
3409Files: src/buffer.c, src/eval.c, src/fileio.c, src/if_ruby.c,
3410 src/if_perl.xs, src/quickfix.c, src/structs.h
3411
3412Patch 7.0.061
3413Problem: Insert mode completion for Vim commands may crash if there is
3414 nothing to complete.
3415Solution: Instead of freeing the pattern make it empty, so that a "not
3416 found" error is given. (Yukihiro Nakadaira)
3417Files: src/edit.c
3418
3419Patch 7.0.062
3420Problem: Mac: Crash when using the popup menu for spell correction. The
3421 popup menu appears twice when letting go of the right mouse button
3422 early.
3423Solution: Don't show the popup menu on the release of the right mouse
3424 button. Also check that a menu pointer is actually valid.
3425Files: src/proto/menu.pro, src/menu.c, src/normal.c, src/term.c
3426
3427Patch 7.0.063
3428Problem: Tiny chance for a memory leak. (coverity)
3429Solution: Free pointer when next memory allocation fails.
3430Files: src/eval.c
3431
3432Patch 7.0.064
3433Problem: Using uninitialized variable. (Tony Mechelynck)
3434Solution: When not used set "temp" to zero. Also avoid a warning for
3435 "files" in ins_compl_dictionaries().
3436Files: src/edit.c
3437
3438Patch 7.0.065 (extra)
3439Problem: Mac: left-right movement of the scrollwheel causes up-down
3440 scrolling.
3441Solution: Ignore mouse wheel events that are not up-down. (Nicolas Weber)
3442Files: src/gui_mac.c
3443
3444Patch 7.0.066
3445Problem: After the popup menu for Insert mode completion overlaps the tab
3446 pages line it is not completely removed.
3447Solution: Redraw the tab pages line after removing the popup menu. (Ori
3448 Avtalion)
3449Files: src/popupmnu.c
3450
3451Patch 7.0.067
3452Problem: Undo doesn't always work properly when using "scim" input method.
3453 Undo is split up when using preediting.
3454Solution: Reset xim_has_preediting also when preedit_start_col is not
3455 MAXCOL. Don't split undo when <Left> is used while preediting.
3456 (Yukihiro Nakadaira)
3457Files: src/edit.c, src/mbyte.c
3458
3459Patch 7.0.068
3460Problem: When 'ignorecase' is set and using Insert mode completion,
3461 typing characters to change the list of matches, case is not
3462 ignored. (Hugo Ahlenius)
3463Solution: Store the 'ignorecase' flag with the matches where needed.
3464Files: src/edit.c, src/search.c, src/spell.c
3465
3466Patch 7.0.069
3467Problem: Setting 'guitablabel' to %!expand(\%) causes Vim to free an
3468 invalid pointer. (Kim Schulz)
3469Solution: Don't try freeing a constant string pointer.
3470Files: src/buffer.c
3471
3472Patch 7.0.070
3473Problem: Compiler warnings for shadowed variables and uninitialized
3474 variables.
3475Solution: Rename variables such as "index", "msg" and "dup". Initialize
3476 variables.
3477Files: src/edit.c, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c,
3478 src/ex_docmd.c, src/gui_beval.c, src/gui_gtk.c, src/gui_gtk_x11.c,
3479 src/hardcopy.c, src/if_cscope.c, src/main.c, src/mbyte.c,
3480 src/memline.c, src/netbeans.c, src/normal.c, src/option.c,
3481 src/os_unix.c, src/quickfix.c, src/regexp.c, src/screen.c,
3482 src/search.c, src/spell.c, src/ui.c, src/undo.c, src/window.c,
3483 src/version.c
3484
3485Patch 7.0.071
3486Problem: Using an empty search pattern may cause a crash.
3487Solution: Avoid using a NULL pointer.
3488Files: src/search.c
3489
3490Patch 7.0.072
3491Problem: When starting the GUI fails there is no way to adjust settings or
3492 do something else.
3493Solution: Add the GUIFailed autocommand event.
3494Files: src/fileio.c, src/gui.c, src/vim.h
3495
3496Patch 7.0.073
3497Problem: Insert mode completion: Typing <CR> sometimes selects the original
3498 text instead of keeping what was typed. (Justin Constantino)
3499Solution: Don't let <CR> select the original text if there is no popup menu.
3500Files: src/edit.c
3501
3502Patch 7.0.074 (extra)
3503Problem: Win32: tooltips were not converted from 'encoding' to Unicode.
3504Solution: Set the tooltip to use Unicode and do the conversion. Also
3505 cleanup the code for the tab pages tooltips. (Yukihiro Nakadaira)
3506Files: src/gui_w32.c, src/gui_w48.c
3507
3508Patch 7.0.075
3509Problem: winsaveview() did not store the actual value of the desired cursor
3510 column. This could move the cursor in the matchparen plugin.
3511Solution: Call update_curswant() before using the value w_curswant.
3512Files: src/eval.c
3513
3514Patch 7.0.076 (after 7.0.010)
3515Problem: Automatic downloading of spell files only works for ftp.
3516Solution: Don't add login and password for non-ftp URLs. (Alexander Patrakov)
3517Files: runtime/autoload/spellfile.vim
3518
3519Patch 7.0.077
3520Problem: ":unlet v:this_session" causes a crash. (Marius Roets)
3521Solution: When trying to unlet a fixed variable give an error message.
3522Files: src/eval.c
3523
3524Patch 7.0.078
3525Problem: There are two error messages E46.
3526Solution: Change the number for the sandbox message to E794.
3527Files: src/globals.h
3528
3529Patch 7.0.079
3530Problem: Russian tutor doesn't work when 'encoding' is "utf-8".
3531Solution: Use tutor.ru.utf-8 as the master, and generate the other encodings
3532 from it. Select the right tutor depending on 'encoding'. (Alexey
3533 Froloff)
3534Files: runtime/tutor/Makefile, runtime/tutor/tutor.vim,
3535 runtime/tutor/tutor.ru.utf-8
3536
3537Patch 7.0.080
3538Problem: Generating auto/pathdef.c fails for CFLAGS with a backslash.
3539Solution: Double backslashes in the string. (Alexey Froloff)
3540Files: src/Makefile
3541
3542Patch 7.0.081
3543Problem: Command line completion doesn't work for a shell command with an
3544 absolute path.
3545Solution: Don't use $PATH when there is an absolute path.
3546Files: src/ex_getln.c
3547
3548Patch 7.0.082
3549Problem: Calling a function that waits for input may cause List and
3550 Dictionary arguments to be freed by the garbage collector.
3551Solution: Keep a list of all arguments to internal functions.
3552Files: src/eval.c
3553
3554Patch 7.0.083
3555Problem: Clicking with the mouse on an item for inputlist() doesn't work
3556 when 'compatible' is set and/or when 'cmdheight' is more than one.
3557 (Christian J. Robinson)
3558Solution: Also decrement "lines_left" when 'more' isn't set. Set
3559 "cmdline_row" to zero to get all mouse events.
3560Files: src/message.c, src/misc1.c
3561
3562Patch 7.0.084
3563Problem: The garbage collector may do its work while some Lists or
3564 Dictionaries are used internally, e.g., by ":echo" that runs into
3565 the more-prompt or ":echo [garbagecollect()]".
3566Solution: Only do garbage collection when waiting for a character at the
3567 toplevel. Let garbagecollect() set a flag that is handled at the
3568 toplevel before waiting for a character.
3569Files: src/eval.c, src/getchar.c, src/globals.h, src/main.c
3570
3571Patch 7.0.085
3572Problem: When doing "make test" the viminfo file is modified.
3573Solution: Use another viminfo file after setting 'compatible.
3574Files: src/testdir/test56.in
3575
3576Patch 7.0.086
3577Problem: getqflist() returns entries for pattern and text with the number
3578 zero. Passing these to setqflist() results in the string "0".
3579Solution: Use an empty string instead of the number zero.
3580Files: src/quickfix.c
3581
3582Patch 7.0.087
3583Problem: After ":file fname" and ":saveas fname" the 'autochdir' option
3584 does not take effect. (Yakov Lerner)
3585 Commands for handling 'autochdir' are repeated many times.
3586Solution: Add the DO_AUTOCHDIR macro and do_autochdir(). Use it for
3587 ":file fname" and ":saveas fname".
3588Files: src/proto/buffer.pro, src/buffer.c, src/ex_cmds.c, src/macros.h,
3589 src/netbeans.c, src/option.c, src/window.c
3590
3591Patch 7.0.088
3592Problem: When compiled with Perl the generated prototypes have "extern"
3593 unnecessarily added.
3594Solution: Remove the "-pipe" argument from PERL_CFLAGS.
3595Files: src/auto/configure, src/configure.in
3596
3597Patch 7.0.089
3598Problem: "ga" does not work properly for a non-Unicode multi-byte encoding.
3599Solution: Only check for composing chars for utf-8. (Taro Muraoka)
3600Files: src/ex_cmds.c
3601
3602Patch 7.0.090
3603Problem: Cancelling the conform() dialog on the console with Esc requires
3604 typing it twice. (Benji Fisher)
3605Solution: When the start of an escape sequence is found use 'timeoutlen' or
3606 'ttimeoutlen'.
3607Files: src/misc1.c
3608
3609Patch 7.0.091
3610Problem: Using winrestview() while 'showcmd' is set causes the cursor to be
3611 displayed in the wrong position. (Yakov Lerner)
3612Solution: Set the window topline properly.
3613Files: src/eval.c
3614
3615Patch 7.0.092 (after 7.0.082 and 7.0.084)
3616Problem: The list of internal function arguments is obsolete now that
3617 garbage collection is only done at the toplevel.
3618Solution: Remove the list of all arguments to internal functions.
3619Files: src/eval.c
3620
3621Patch 7.0.093
3622Problem: The matchparen plugin can't handle a 'matchpairs' value where a
3623 colon is matched.
3624Solution: Change the split() that is used to change 'matchpairs' into a
3625 List.
3626Files: runtime/plugin/matchparen.vim
3627
3628Patch 7.0.094
3629Problem: When a hidden buffer is made the current buffer and another file
3630 edited later, the file message will still be given. Using
3631 ":silent" also doesn't prevent the file message. (Marvin Renich)
3632Solution: Reset the need_fileinfo flag when reading a file. Don't set
3633 need_fileinfo when msg_silent is set.
3634Files: src/buffer.c, src/fileio.c
3635
3636Patch 7.0.095
3637Problem: The Greek tutor is not available in utf-8. "el" is used for the
3638 language, only "gr" for the country is recognized.
3639Solution: Add the utf-8 Greek tutor. Use it for conversion to iso-8859-7
3640 and cp737. (Lefteris Dimitroulakis)
3641Files: runtime/tutor/Makefile, runtime/tutor/tutor.gr.utf-8,
3642 runtime/tutor/tutor.vim
3643
3644Patch 7.0.096
3645Problem: taglist() returns the filename relative to the tags file, while
3646 the directory of the tags file is unknown. (Hari Krishna Dara)
3647Solution: Expand the file name. (Yegappan Lakshmanan)
3648Files: src/tag.c
3649
3650Patch 7.0.097
3651Problem: ":tabclose N" that closes another tab page does not remove the tab
3652 pages line. Same problem when using the mouse.
3653Solution: Adjust the tab pages line when needed in tabpage_close_other().
3654Files: src/ex_docmd.c
3655
3656Patch 7.0.098
3657Problem: Redirecting command output in a cmdline completion function
3658 doesn't work. (Hari Krishna Dara)
3659Solution: Enable redirection when redirection is started.
3660Files: src/ex_docmd.c, src/ex_getln.c
3661
3662Patch 7.0.099
3663Problem: GUI: When the popup menu is visible using the scrollbar messes up
3664 the display.
3665Solution: Disallow scrolling the current window. Redraw the popup menu
3666 after scrolling another window.
3667Files: src/gui.c
3668
3669Patch 7.0.100
3670Problem: "zug" may report the wrong filename. (Lawrence Kesteloot)
3671Solution: Call home_replace() to fill NameBuff[].
3672Files: src/spell.c
3673
3674Patch 7.0.101
3675Problem: When the "~/.vim/spell" directory does not exist "zg" may create
3676 a wrong directory. "zw" doesn't work.
3677Solution: Use the directory of the file name instead of NameBuff. For "zw"
3678 not only remove a good word but also add the word with "!".
3679Files: src/spell.c
3680
3681Patch 7.0.102
3682Problem: Redrawing cmdline is not correct when using SCIM.
3683Solution: Don't call im_get_status(). (Yukihiro Nakadaira)
3684Files: src/ex_getln.c
3685
3686Patch 7.0.103 (after 7.0.101)
3687Problem: Compiler warning for uninitialized variable. (Tony Mechelynck)
3688Solution: Init variable.
3689Files: src/spell.c
3690
3691Patch 7.0.104
3692Problem: The CursorHoldI event only triggers once in Insert mode. It also
3693 triggers after CTRL-V and other two-key commands.
3694Solution: Set "did_cursorhold" before getting a second key. Reset
3695 "did_cursorhold" after handling a command.
3696Files: src/edit.c, src/fileio.c
3697
3698Patch 7.0.105
3699Problem: When using incremental search the statusline ruler isn't updated.
3700 (Christoph Koegl)
3701Solution: Update the statusline when it contains the ruler.
3702Files: src/ex_getln.c
3703
3704Patch 7.0.106
3705Problem: The spell popup menu uses ":amenu", triggering mappings. Other
3706 PopupMenu autocommands are removed. (John Little)
3707Solution: Use ":anoremenu" and use an autocmd group.
3708Files: runtime/menu.vim
3709
3710Patch 7.0.107
3711Problem: Incremental search doesn't redraw the text tabline. (Ilya Bobir)
3712 Also happens in other situations with one window in a tab page.
3713Solution: Redraw the tabline after clearing the screen.
3714Files: src/screen.c
3715
3716Patch 7.0.108 (extra)
3717Problem: Amiga: Compilation problem.
3718Solution: Have mch_mkdir() return a failure flag. (Willy Catteau)
3719Files: src/os_amiga.c, src/proto/os_amiga.pro
3720
3721Patch 7.0.109
3722Problem: Lisp indenting is confused by escaped quotes in strings. (Dorai
3723 Sitaram)
3724Solution: Check for backslash inside strings. (Sergey Khorev)
3725Files: src/misc1.c
3726
3727Patch 7.0.110
3728Problem: Amiga: Compilation problems when not using libnix.
3729Solution: Change a few #ifdefs. (Willy Catteau)
3730Files: src/memfile.c
3731
3732Patch 7.0.111
3733Problem: The gzip plugin can't handle filenames with single quotes.
3734Solution: Add and use the shellescape() function. (partly by Alexey Froloff)
3735Files: runtime/autoload/gzip.vim, runtime/doc/eval.txt, src/eval.c,
3736 src/mbyte.c, src/misc2.c, src/proto/misc2.pro
3737
3738Patch 7.0.112
3739Problem: Python interface does not work with Python 2.5.
3740Solution: Change PyMem_DEL() to Py_DECREF(). (Sumner Hayes)
3741Files: src/if_python.c
3742
3743Patch 7.0.113
3744Problem: Using CTRL-L in Insert completion when there is no current match
3745 may cause a crash. (Yukihiro Nakadaira)
3746Solution: Check for compl_leader to be NULL
3747Files: src/edit.c
3748
3749Patch 7.0.114
3750Problem: When aborting an insert with CTRL-C an extra undo point is
3751 created in the GUI. (Yukihiro Nakadaira)
3752Solution: Call gotchars() only when advancing.
3753Files: src/getchar.c
3754
3755Patch 7.0.115
3756Problem: When 'ignorecase' is set, Insert mode completion only adds "foo"
3757 and not "Foo" when both are found.
3758 A found match isn't displayed right away when 'completeopt' does
3759 not have "menu" or "menuone".
3760Solution: Do not ignore case when checking if a completion match already
3761 exists. call ins_compl_check_keys() also when not using a popup
3762 menu. (Yukihiro Nakadaira)
3763Files: src/edit.c
3764
3765Patch 7.0.116
3766Problem: 64 bit Windows version reports "32 bit" in the ":version" output.
3767 (M. Veerman)
3768Solution: Change the text for Win64.
3769Files: src/version.c
3770
3771Patch 7.0.117
3772Problem: Using "extend" on a syntax item inside a region with "keepend", an
3773 intermediate item may be truncated.
3774 When applying the "keepend" and there is an offset to the end
3775 pattern the highlighting of a contained item isn't adjusted.
3776Solution: Use the seen_keepend flag to remember when to apply the "keepend"
3777 flag. Adjust the keepend highlighting properly. (Ilya Bobir)
3778Files: src/syntax.c
3779
3780Patch 7.0.118
3781Problem: printf() does not do zero padding for strings.
3782Solution: Do allow zero padding for strings.
3783Files: src/message.c
3784
3785Patch 7.0.119
3786Problem: When going back from Insert to Normal mode the CursorHold event
3787 doesn't trigger. (Yakov Lerner)
3788Solution: Reset "did_cursorhold" when leaving Insert mode.
3789Files: src/edit.c
3790
3791Patch 7.0.120
3792Problem: Crash when using CTRL-R = at the command line and entering
3793 "getreg('=')". (James Vega)
3794Solution: Avoid recursiveness of evaluating the = register.
3795Files: src/ops.c
3796
3797Patch 7.0.121
3798Problem: GUI: Dragging the last status line doesn't work when there is a
3799 text tabline. (Markus Wolf)
3800Solution: Take the text tabline into account when deciding to start modeless
3801 selection.
3802Files: src/gui.c
3803
3804Patch 7.0.122
3805Problem: GUI: When clearing after a bold, double-wide character half a
3806 character may be drawn.
3807Solution: Check for double-wide character and redraw it. (Yukihiro Nakadaira)
3808Files: src/screen.c
3809
3810Patch 7.0.123
3811Problem: On SCO Openserver configure selects the wrong terminal library.
3812Solution: Put terminfo before the other libraries. (Roger Cornelius)
3813 Also fix a small problem compiling on Mac without Darwin.
3814Files: src/configure.in, src/auto/configure
3815
3816Patch 7.0.124
3817Problem: getwinvar() obtains a dictionary with window-local variables, but
3818 it's always for the current window.
3819Solution: Get the variables of the specified window. (Geoff Reedy)
3820Files: src/eval.c
3821
3822Patch 7.0.125
3823Problem: When "autoselect" is in the 'clipboard' option then the '< and '>
3824 marks are set while Visual mode is still active.
3825Solution: Don't set the '< and '> marks when yanking the selected area for
3826 the clipboard.
3827Files: src/normal.c
3828
3829Patch 7.0.126
3830Problem: When 'formatexpr' uses setline() and later internal formatting is
3831 used undo information is not correct. (Jiri Cerny, Benji Fisher)
3832Solution: Set ins_need_undo after using 'formatexpr'.
3833Files: src/edit.c
3834
3835Patch 7.0.127
3836Problem: Crash when swap files has invalid timestamp.
3837Solution: Check return value of ctime() for being NULL.
3838Files: src/memline.c
3839
3840Patch 7.0.128
3841Problem: GUI: when closing gvim is cancelled because there is a changed
3842 buffer the screen isn't updated to show the changed buffer in the
3843 current window. (Krzysztof Kacprzak)
3844Solution: Redraw when closing gvim is cancelled.
3845Files: src/gui.c
3846
3847Patch 7.0.129
3848Problem: GTK GUI: the GTK file dialog can't handle a relative path.
3849Solution: Make the initial directory a full path before passing it to GTK.
3850 (James Vega) Also postpone adding the default file name until
3851 after setting the directory.
3852Files: src/gui_gtk.c
3853
3854Patch 7.0.130 (extra)
3855Problem: Win32: Trying to edit or write devices may cause Vim to get stuck.
3856Solution: Add the 'opendevice' option, default off. Disallow
3857 reading/writing from/to devices when it's off.
3858 Also detect more devices by the full name starting with "\\.\".
3859Files: runtime/doc/options.txt, src/fileio.c, src/option.c, src/option.h,
3860 src/os_win32.c
3861
3862Patch 7.0.131
3863Problem: Win32: "vim -r" does not list all the swap files.
3864Solution: Also check for swap files starting with a dot.
3865Files: src/memline.c
3866
3867Patch 7.0.132 (after 7.0.130)
3868Problem: Win32: Crash when Vim reads from stdin.
3869Solution: Only use mch_nodetype() when there is a file name.
3870Files: src/fileio.c
3871
3872Patch 7.0.133
3873Problem: When searching included files messages are added to the history.
3874Solution: Set msg_hist_off for messages about scanning included files.
3875 Set msg_silent to avoid message about wrapping around.
3876Files: src/edit.c, src/globals.h, src/message.c, src/search.c
3877
3878Patch 7.0.134
3879Problem: Crash when comparing a recursively looped List or Dictionary.
3880Solution: Limit recursiveness for comparing to 1000.
3881Files: src/eval.c
3882
3883Patch 7.0.135
3884Problem: Crash when garbage collecting list or dict with loop.
3885Solution: Don't use DEL_REFCOUNT but don't recurse into Lists and
3886 Dictionaries when freeing them in the garbage collector.
3887 Also add allocated Dictionaries to the list of Dictionaries to
3888 avoid leaking memory.
3889Files: src/eval.c, src/proto/eval.pro, src/tag.c
3890
3891Patch 7.0.136
3892Problem: Using "O" while matching parens are highlighted may not remove the
3893 highlighting. (Ilya Bobir)
3894Solution: Also trigger CursorMoved when a line is inserted under the cursor.
3895Files: src/misc1.c
3896
3897Patch 7.0.137
3898Problem: Configure check for big features is wrong.
3899Solution: Change "==" to "=". (Martti Kuparinen)
3900Files: src/auto/configure, src/configure.in
3901
3902Patch 7.0.138 (extra)
3903Problem: Mac: modifiers don't work with function keys.
3904Solution: Use GetEventParameter() to obtain modifiers. (Nicolas Weber)
3905Files: src/gui_mac.c
3906
3907Patch 7.0.139
3908Problem: Using CTRL-PageUp or CTRL-PageDown in Insert mode to go to another
3909 tab page does not prepare for undo properly. (Stefano Zacchiroli)
3910Solution: Call start_arrow() before switching tab page.
3911Files: src/edit.c
3912
3913Patch 7.0.140 (after 7.0.134)
3914Problem: Comparing recursively looped List or Dictionary doesn't work well.
3915Solution: Detect comparing a List or Dictionary with itself.
3916Files: src/eval.c
3917
3918Patch 7.0.141
3919Problem: When pasting a while line on the command line an extra CR is added
3920 literally.
3921Solution: Don't add the trailing CR when pasting with the mouse.
3922Files: src/ex_getln.c, src/proto/ops.pro, src/ops.c
3923
3924Patch 7.0.142
3925Problem: Using the middle mouse button in Select mode to paste text results
3926 in an extra "y". (Kriton Kyrimis)
3927Solution: Let the middle mouse button replace the selected text with the
3928 contents of the clipboard.
3929Files: src/normal.c
3930
3931Patch 7.0.143
3932Problem: Setting 'scroll' to its default value was not handled correctly.
3933Solution: Compare the right field to PV_SCROLL.
3934Files: src/option.c
3935
3936Patch 7.0.144
3937Problem: May compare two unrelated pointers when matching a pattern against
3938 a string. (Dominique Pelle)
3939Solution: Avoid calling reg_getline() when REG_MULTI is false.
3940Files: src/regexp.c
3941
3942Patch 7.0.145 (after 7.0.142)
3943Problem: Compiler warning.
3944Solution: Add type cast.
3945Files: src/normal.c
3946
3947Patch 7.0.146
3948Problem: When 'switchbuf' is set to "usetab" and the current tab has only a
3949 quickfix window, jumping to an error always opens a new window.
3950 Also, when the buffer is open in another tab page it's not found.
3951Solution: Check for the "split" value of 'switchbuf' properly. Search in
3952 other tab pages for the desired buffer. (Yegappan Lakshmanan)
3953Files: src/buffer.c, src/quickfix.c
3954
3955Patch 7.0.147
3956Problem: When creating a session file and there are several tab pages and
3957 some windows have a local directory a short file name may be used
3958 when it's not valid. (Marius Roets)
3959 A session with multiple tab pages may result in "No Name" buffers.
3960 (Bill McCarthy)
3961Solution: Don't enter tab pages when going through the list, only use a
3962 pointer to the first window in each tab page.
3963 Use "tabedit" instead of "tabnew | edit" when possible.
3964Files: src/ex_docmd.c
3965
3966Patch 7.0.148
3967Problem: When doing "call a.xyz()" and "xyz" does not exist in dictionary
3968 "a" there is no error message. (Yegappan Lakshmanan)
3969Solution: Add the error message.
3970Files: src/eval.c
3971
3972Patch 7.0.149
3973Problem: When resizing a window that shows "~" lines the text sometimes
3974 jumps down.
3975Solution: Remove code that uses "~" lines in some situations. Fix the
3976 computation of the screen line of the cursor. Also set w_skipcol
3977 to handle very long lines.
3978Files: src/misc1.c, src/window.c
3979
3980Patch 7.0.150
3981Problem: When resizing the Vim window scrollbinding doesn't work. (Yakov
3982 Lerner)
3983Solution: Do scrollbinding in set_shellsize().
3984Files: src/term.c
3985
3986Patch 7.0.151
3987Problem: Buttons in file dialog are not according to Gnome guidelines.
3988Solution: Swap Cancel and Open buttons. (Stefano Zacchiroli)
3989Files: src/gui_gtk.c
3990
3991Patch 7.0.152
3992Problem: Crash when using lesstif 2.
3993Solution: Fill in the extension field. (Ben Hutchings)
3994Files: src/gui_xmebw.c
3995
3996Patch 7.0.153
3997Problem: When using cscope and opening the temp file fails Vim crashes.
3998 (Kaya Bekiroglu)
3999Solution: Check for NULL pointer returned from mch_open().
4000Files: src/if_cscope.c
4001
4002Patch 7.0.154
4003Problem: When 'foldnextmax' is negative Vim can hang. (James Vega)
4004Solution: Avoid the fold level becoming negative.
4005Files: src/fold.c, src/syntax.c
4006
4007Patch 7.0.155
4008Problem: When getchar() returns a mouse button click there is no way to get
4009 the mouse coordinates.
4010Solution: Add v:mouse_win, v:mouse_lnum and v:mouse_col.
4011Files: runtime/doc/eval.txt, src/eval.c, src/vim.h
4012
4013Patch 7.0.156 (extra)
4014Problem: Vim doesn't compile for Amiga OS 4.
4015Solution: Various changes for Amiga OS4. (Peter Bengtsson)
4016Files: src/feature.h, src/mbyte.c, src/memfile.c, src/memline.c,
4017 src/os_amiga.c, src/os_amiga.h, src/pty.c
4018
4019Patch 7.0.157
4020Problem: When a function is used recursively the profiling information is
4021 invalid. (Mikolaj Machowski)
4022Solution: Put the start time on the stack instead of in the function.
4023Files: src/eval.c
4024
4025Patch 7.0.158
4026Problem: In a C file with ":set foldmethod=syntax", typing {<CR> on the
4027 last line results in the cursor being in a closed fold. (Gautam
4028 Iyer)
4029Solution: Open fold after inserting a new line.
4030Files: src/edit.c
4031
4032Patch 7.0.159
4033Problem: When there is an I/O error in the swap file the cause of the error
4034 cannot be seen.
4035Solution: Use PERROR() instead of EMSG() where possible.
4036Files: src/memfile.c
4037
4038Patch 7.0.160
4039Problem: ":@a" echoes the command, Vi doesn't do that.
4040Solution: Set the silent flag in the typeahead buffer to avoid echoing the
4041 command.
4042Files: src/ex_docmd.c, src/normal.c, src/ops.c, src/proto/ops.pro
4043
4044Patch 7.0.161
4045Problem: Win32: Tab pages line popup menu isn't using the right encoding.
4046 (Yongwei Wu)
4047Solution: Convert the text when necessary. Also fixes the Find/Replace
4048 dialog title. (Yegappan Lakshmanan)
4049Files: src/gui_w48.c
4050
4051Patch 7.0.162
4052Problem: "vim -o a b" when file "a" triggers the ATTENTION dialog,
4053 selecting "Quit" exits Vim instead of editing "b" only.
4054 When file "b" triggers the ATTENTION dialog selecting "Quit" or
4055 "Abort" results in editing file "a" in that window.
4056Solution: When selecting "Abort" exit Vim. When selecting "Quit" close the
4057 window. Also avoid hit-enter prompt when selecting Abort.
4058Files: src/buffer.c, src/main.c
4059
4060Patch 7.0.163
4061Problem: Can't retrieve the position of a sign after it was set.
4062Solution: Add the netbeans interface getAnno command. (Xavier de Gaye)
4063Files: runtime/doc/netbeans.txt, src/netbeans.c
4064
4065Patch 7.0.164
4066Problem: ":redir @+" doesn't work.
4067Solution: Accept "@+" just like "@*". (Yegappan Lakshmanan)
4068Files: src/ex_docmd.c
4069
4070Patch 7.0.165
4071Problem: Using CTRL-L at the search prompt adds a "/" and other characters
4072 without escaping, causing the pattern not to match.
4073Solution: Escape special characters with a backslash.
4074Files: src/ex_getln.c
4075
4076Patch 7.0.166
4077Problem: Crash in cscope code when connection could not be opened.
4078 (Kaya Bekiroglu)
4079Solution: Check for the file descriptor to be NULL.
4080Files: src/if_cscope.c
4081
4082Patch 7.0.167
4083Problem: ":function" redefining a dict function doesn't work properly.
4084 (Richard Emberson)
4085Solution: Allow a function name to be a number when it's a function
4086 reference.
4087Files: src/eval.c
4088
4089Patch 7.0.168
4090Problem: Using uninitialized memory and memory leak. (Dominique Pelle)
4091Solution: Use alloc_clear() instead of alloc() for w_lines. Free
4092 b_ml.ml_stack after recovery.
4093Files: src/memline.c, src/window.c
4094
4095Patch 7.0.169
4096Problem: With a Visual block selection, with the cursor in the left upper
4097 corner, pressing "I" doesn't remove the highlighting. (Guopeng
4098 Wen)
4099Solution: When checking if redrawing is needed also check if Visual
4100 selection is still active.
4101Files: src/screen.c
4102
4103Patch 7.0.170 (extra)
4104Problem: Win32: Using "gvim --remote-tab foo" when gvim is minimized while
4105 it previously was maximized, un-maximizing doesn't work properly.
4106 And the labels are not displayed properly when 'encoding' is
4107 utf-8.
4108Solution: When minimized check for SW_SHOWMINIMIZED. When updating the tab
4109 pages line use TCM_SETITEMW instead of TCM_INSERTITEMW. (Liu
4110 Yubao)
4111Files: src/gui_w48.c
4112
4113Patch 7.0.171 (extra)
4114Problem: VMS: A file name with multiple paths is written in the wrong file.
4115Solution: Get the actually used file name. (Zoltan Arpadffy)
4116 Also add info to the :version command about compilation.
4117Files: src/Make_vms.mms, src/buffer.c, src/os_unix.c, src/version.c
4118
4119Patch 7.0.172
4120Problem: Crash when recovering and quitting at the "press-enter" prompt.
4121Solution: Check for "msg_list" to be NULL. (Liu Yubao)
4122Files: src/ex_eval.c
4123
4124Patch 7.0.173
4125Problem: ":call f().TT()" doesn't work. (Richard Emberson)
4126Solution: When a function returns a Dictionary or another composite continue
4127 evaluating what follows.
4128Files: src/eval.c
4129
4130Patch 7.0.174
4131Problem: ":mksession" doesn't restore window layout correctly in tab pages
4132 other than the current one. (Zhibin He)
4133Solution: Use the correct topframe for producing the window layout commands.
4134Files: src/ex_docmd.c
4135
4136Patch 7.0.175
4137Problem: The result of tr() is missing the terminating NUL. (Ingo Karkat)
4138Solution: Add the NUL.
4139Files: src/eval.c
4140
4141Patch 7.0.176
4142Problem: ":emenu" isn't executed directly, causing the encryption key
4143 prompt to fail. (Life Jazzer)
4144Solution: Fix wrong #ifdef.
4145Files: src/menu.c
4146
4147Patch 7.0.177
4148Problem: When the press-enter prompt gets a character from a non-remappable
4149 mapping, it's put back in the typeahead buffer as remappable,
4150 which may cause an endless loop.
4151Solution: Restore the non-remappable flag and the silent flag when putting a
4152 char back in the typeahead buffer.
4153Files: src/getchar.c, src/message.c, src/normal.c
4154
4155Patch 7.0.178
4156Problem: When 'enc' is "utf-8" and 'ignorecase' is set the result of ":echo
4157 ("\xe4" == "\xe4")" varies.
4158Solution: In mb_strnicmp() avoid looking past NUL bytes.
4159Files: src/mbyte.c
4160
4161Patch 7.0.179
4162Problem: Using ":recover" or "vim -r" without a swapfile crashes Vim.
4163Solution: Check for "buf" to be unequal NULL. (Yukihiro Nakadaira)
4164Files: src/memline.c
4165
4166Patch 7.0.180 (extra, after 7.0.171)
4167Problem: VMS: build failed. Problem with swapfiles.
4168Solution: Add "compiled_arch". Always expand path and pass it to
4169 buf_modname(). (Zoltan Arpadffy)
4170Files: src/globals.h, src/memline.c, src/os_unix.c, runtime/menu.vim
4171
4172Patch 7.0.181
4173Problem: When reloading a file that starts with an empty line, the reloaded
4174 buffer has an extra empty line at the end. (Motty Lentzitzky)
4175Solution: Delete all lines, don't use bufempty().
4176Files: src/fileio.c
4177
4178Patch 7.0.182
4179Problem: When using a mix of undo and "g-" it may no longer be possible to
4180 go to every point in the undo tree. (Andy Wokula)
4181Solution: Correctly update pointers in the undo tree.
4182Files: src/undo.c
4183
4184Patch 7.0.183
4185Problem: Crash in ":let" when redirecting to a variable that's being
4186 displayed. (Thomas Link)
4187Solution: When redirecting to a variable only do the assignment when
4188 stopping redirection to avoid that setting the variable causes a
4189 freed string to be accessed.
4190Files: src/eval.c
4191
4192Patch 7.0.184
4193Problem: When the cscope program is called "mlcscope" the Cscope interface
4194 doesn't work.
4195Solution: Accept "\S*cscope:" instead of "cscope:". (Frodak D. Baksik)
4196Files: src/if_cscope.c
4197
4198Patch 7.0.185
4199Problem: Multi-byte characters in a message are displayed with attributes
4200 from what comes before it.
4201Solution: Don't use the attributes for a multi-byte character. Do use
4202 attributes for special characters. (Yukihiro Nakadaira)
4203Files: src/message.c
4204
4205Patch 7.0.186
4206Problem: Get an ml_get error when 'encoding' is "utf-8" and searching for
4207 "/\_s*/e" in an empty buffer. (Andrew Maykov)
4208Solution: Don't try getting the line just below the last line.
4209Files: src/search.c
4210
4211Patch 7.0.187
4212Problem: Can't source a remote script properly.
4213Solution: Add the SourceCmd event. (Charles Campbell)
4214Files: runtime/doc/autocmd.txt, src/ex_cmds2.c, src/fileio.c, src/vim.h
4215
4216Patch 7.0.188 (after 7.0.186)
4217Problem: Warning for wrong pointer type.
4218Solution: Add a type cast.
4219Files: src/search.c
4220
4221Patch 7.0.189
4222Problem: Translated message about finding matches is truncated. (Yukihiro
4223 Nakadaira)
4224Solution: Enlarge the buffer. Also use vim_snprintf().
4225Files: src/edit.c
4226
4227Patch 7.0.190
4228Problem: "syntax spell default" results in an error message.
4229Solution: Change 4 to 7 for STRNICMP(). (Raul Nunez de Arenas Coronado)
4230Files: src/syntax.c
4231
4232Patch 7.0.191
4233Problem: The items used by getqflist() and setqflist() don't match.
4234Solution: Support the "bufnum" item for setqflist(). (Yegappan Lakshmanan)
4235Files: runtime/doc/eval.txt, src/quickfix.c
4236
4237Patch 7.0.192
4238Problem: When 'swapfile' is switched off in an empty file it is possible
4239 that not all blocks are loaded into memory, causing ml_get errors
4240 later.
4241Solution: Rename "dont_release" to "mf_dont_release" and also use it to
4242 avoid using the cached line and locked block.
4243Files: src/globals.h, src/memfile.c, src/memline.c
4244
4245Patch 7.0.193
4246Problem: Using --remote or --remote-tab with an argument that matches
4247 'wildignore' causes a crash.
4248Solution: Check the argument count before using ARGLIST[0].
4249Files: src/ex_cmds.c
4250
4251Patch 7.0.194
4252Problem: Once an ml_get error is given redrawing part of the screen may
4253 cause it again, resulting in an endless loop.
4254Solution: Don't give the error message for a recursive call.
4255Files: src/memline.c
4256
4257Patch 7.0.195
4258Problem: When a buffer is modified and 'autowriteall' is set, ":quit"
4259 results in an endless loop when there is a conversion error while
4260 writing. (Nikolai Weibull)
4261Solution: Make autowrite() return FAIL if the buffer is still changed after
4262 writing it.
4263 /* put the cursor on the last char, for 'tw' formatting */
4264Files: src/ex_cmds2.c
4265
4266Patch 7.0.196
4267Problem: When using ":vert ball" the computation of the mouse pointer
4268 position may be off by one column. (Stefan Karlsson)
4269Solution: Recompute the frame width when moving the vertical separator from
4270 one window to another.
4271Files: src/window.c
4272
4273Patch 7.0.197 (extra)
4274Problem: Win32: Compiling with EXITFREE doesn't work.
4275Solution: Adjust a few #ifdefs. (Alexei Alexandrof)
4276Files: src/misc2.c, src/os_mswin.c
4277
4278Patch 7.0.198 (extra)
4279Problem: Win32: Compiler warnings. No need to generate gvim.exe.mnf.
4280Solution: Add type casts. Use "*" for processorArchitecture. (George Reilly)
4281Files: src/Make_mvc.mak, src/eval.c, src/gvim.exe.mnf, src/misc2.c
4282
4283Patch 7.0.199
4284Problem: When using multi-byte characters the combination of completion and
4285 formatting may result in a wrong cursor position.
4286Solution: Don't decrement the cursor column, use dec_cursor(). (Yukihiro
4287 Nakadaira) Also check for the column to be zero.
4288Files: src/edit.c
4289
4290Patch 7.0.200
4291Problem: Memory leaks when out of memory.
4292Solution: Free the memory.
4293Files: src/edit.c, src/diff.c
4294
4295Patch 7.0.201
4296Problem: Message for ":diffput" about buffer not being in diff mode may be
4297 wrong.
4298Solution: Check for buffer in diff mode but not modifiable.
4299Files: src/diff.c
4300
4301Patch 7.0.202
4302Problem: Problems on Tandem systems while compiling and at runtime.
4303Solution: Recognize root uid is 65535. Check select() return value for it
4304 not being supported. Avoid wrong function prototypes. Mention
4305 use of -lfloss. (Matthew Woehlke)
4306Files: src/Makefile, src/ex_cmds.c, src/fileio.c, src/main.c,
4307 src/osdef1.h.in, src/osdef2.h.in, src/os_unix.c, src/pty.c,
4308 src/vim.h
4309
4310Patch 7.0.203
4311Problem: 0x80 characters in a register are not handled correctly for the
4312 "@" command.
4313Solution: Escape CSI and 0x80 characters. (Yukihiro Nakadaira)
4314Files: src/ops.c
4315
4316Patch 7.0.204
4317Problem: Cscope: Parsing matches for listing isn't done properly.
4318Solution: Check for line number being found. (Yu Zhao)
4319Files: src/if_cscope.c
4320
4321Patch 7.0.205 (after 7.0.203)
4322Problem: Can't compile.
4323Solution: Always include the vim_strsave_escape_csi function.
4324Files: src/getchar.c
4325
4326Patch 7.0.206 (after 7.0.058)
4327Problem: Some characters of the "gb18030" encoding are not handled
4328 properly.
4329Solution: Do not use "cp936" as an alias for "gb18030" encoding. Instead
4330 initialize 'encoding' to "cp936".
4331Files: src/mbyte.c, src/option.c
4332
4333Patch 7.0.207
4334Problem: After patch 2.0.203 CSI and K_SPECIAL characters are escaped when
4335 recorded and then again when the register is executed.
4336Solution: Remove escaping before putting the recorded characters in a
4337 register. (Yukihiro Nakadaira)
4338Files: src/getchar.c, src/ops.c, src/proto/getchar.pro
4339
4340Patch 7.0.208 (after 7.0.171 and 7.0.180)
4341Problem: VMS: changes to path handling cause more trouble than they solve.
4342Solution: Revert changes.
4343Files: src/buffer.c, src/memline.c, src/os_unix.c
4344
4345Patch 7.0.209
4346Problem: When replacing a line through Python the cursor may end up beyond
4347 the end of the line.
4348Solution: Check the cursor column after replacing the line.
4349Files: src/if_python.c
4350
4351Patch 7.0.210
4352Problem: ":cbuffer" and ":lbuffer" always fail when the buffer is modified.
4353 (Gary Johnson)
4354Solution: Support adding a !. (Yegappan Lakshmanan)
4355Files: runtime/doc/quickfix.txt, src/ex_cmds.h
4356
4357Patch 7.0.211
4358Problem: With ":set cindent noai bs=0" using CTRL-U in Insert mode will
4359 delete auto-indent. After ":set ai" it doesn't.
4360Solution: Also check 'cindent' being set. (Ryan Lortie)
4361Files: src/edit.c
4362
4363Patch 7.0.212
4364Problem: The GUI can't be terminated with SIGTERM. (Mark Logan)
4365Solution: Use the signal protection in the GUI as in the console, allow
4366 signals when waiting for 100 msec or longer.
4367Files: src/ui.c
4368
4369Patch 7.0.213
4370Problem: When 'spellfile' has two regions that use the same sound folding
4371 using "z=" will cause memory to be freed twice. (Mark Woodward)
4372Solution: Clear the hashtable properly so that the items are only freed once.
4373Files: src/spell.c
4374
4375Patch 7.0.214
4376Problem: When using <f-args> in a user command it's not possible to have an
4377 argument end in '\ '.
4378Solution: Change the handling of backslashes. (Yakov Lerner)
4379Files: runtime/doc/map.txt, src/ex_docmd.c
4380
4381Patch 7.0.215 (extra)
4382Problem: Mac: Scrollbar size isn't set. Context menu has disabled useless
4383 Help entry. Call to MoreMasterPointers() is ignored.
4384Solution: Call SetControlViewSize() in gui_mch_set_scrollbar_thumb(). Use
4385 kCMHelpItemRemoveHelp for ContextualMenuSelect(). Remove call to
4386 MoreMasterPointers(). (Nicolas Weber)
4387Files: src/gui_mac.c
4388
4389Patch 7.0.216
4390Problem: ":tab wincmd ]" does not open a tab page. (Tony Mechelynck)
4391Solution: Copy the cmdmod.tab value to postponed_split_tab and use it.
4392Files: src/globals.h, src/ex_docmd.c, src/if_cscope.c, src/window.c
4393
4394Patch 7.0.217
4395Problem: This hangs when pressing "n": ":%s/\n/,\r/gc". (Ori Avtalion)
4396Solution: Set "skip_match" to advance to the next line.
4397Files: src/ex_cmds.c
4398
4399Patch 7.0.218
4400Problem: "%B" in 'statusline' always shows zero in Insert mode. (DervishD)
4401Solution: Remove the exception for Insert mode, check the column for being
4402 valid instead.
4403Files: src/buffer.c
4404
4405Patch 7.0.219
4406Problem: When using the 'editexisting.vim' script and a file is being
4407 edited in another tab page the window is split. The "+123"
4408 argument is not used.
4409Solution: Make the tab page with the file the current tab page. Set
4410 v:swapcommand when starting up to the first "+123" or "-c" command
4411 line argument.
4412Files: runtime/macros/editexisting.vim, src/main.c
4413
4414Patch 7.0.220
4415Problem: Crash when using winnr('#') in a new tab page. (Andy Wokula)
4416Solution: Check for not finding the window.
4417Files: src/eval.c
4418
4419Patch 7.0.221
4420Problem: finddir() uses 'path' by default, where "." means relative to the
4421 current file. But it works relative to the current directory.
4422 (Tye Zdrojewski)
4423Solution: Add the current buffer name to find_file_in_path_option() for the
4424 relative file name.
4425Files: runtime/doc/eval.txt, src/eval.c
4426
4427Patch 7.0.222
4428Problem: Perl indenting using 'cindent' works almost right.
4429Solution: Recognize '#' to start a comment. (Alex Manoussakis) Added '#'
4430 flag in 'cinoptions'.
4431Files: runtime/doc/indent.txt, src/misc1.c
4432
4433Patch 7.0.223
4434Problem: Unprintable characters in completion text mess up the popup menu.
4435 (Gombault Damien)
4436Solution: Use strtrans() to make the text printable.
4437Files: src/charset.c, src/popupmnu.c
4438
4439Patch 7.0.224
4440Problem: When expanding "##" spaces are escaped twice. (Pavol Juhas)
4441Solution: Don't escape the spaces that separate arguments.
4442Files: src/eval.c, src/ex_docmd.c, src/proto/ex_docmd.pro
4443
4444Patch 7.0.225
4445Problem: When using setline() in an InsertEnter autocommand and doing "A"
4446 the cursor ends up on the last byte in the line. (Yukihiro
4447 Nakadaira)
4448Solution: Only adjust the column when using setline() for the cursor line.
4449 Move it back to the head byte if necessary.
4450Files: src/eval.c, src/misc2.c
4451
4452Patch 7.0.226
4453Problem: Display flickering when updating signs through the netbeans
4454 interface. (Xavier de Gaye)
4455Solution: Remove the redraw_later(CLEAR) call.
4456Files: src/netbeans.c
4457
4458Patch 7.0.227
4459Problem: Crash when closing a window in the GUI. (Charles Campbell)
4460Solution: Don't call out_flush() from win_free().
4461Files: src/window.c
4462
4463Patch 7.0.228
4464Problem: Cygwin: problem with symlink to DOS style path.
4465Solution: Invoke cygwin_conv_to_posix_path(). (Luca Masini)
4466Files: src/os_unix.c
4467
4468Patch 7.0.229
4469Problem: When 'pastetoggle' starts with Esc then pressing Esc in Insert
4470 mode will not time out. (Jeffery Small)
4471Solution: Use KL_PART_KEY instead of KL_PART_MAP, so that 'ttimeout' applies
4472 to the 'pastetoggle' key.
4473Files: src/getchar.c
4474
4475Patch 7.0.230
4476Problem: After using ":lcd" a script doesn't know how to restore the
4477 current directory.
4478Solution: Add the haslocaldir() function. (Bob Hiestand)
4479Files: runtime/doc/usr_41.txt, runtime/doc/eval.txt, src/eval.c
4480
4481Patch 7.0.231
4482Problem: When recovering from a swap file the page size is likely to be
4483 different from the minimum. The block used for the first page
4484 then has a buffer of the wrong size, causing a crash when it's
4485 reused later. (Zephaniah Hull)
4486Solution: Reallocate the buffer when the page size changes. Also check that
4487 the page size is at least the minimum value.
4488Files: src/memline.c
4489
4490Patch 7.0.232 (extra)
4491Problem: Mac: doesn't support GUI tab page labels.
4492Solution: Add GUI tab page labels. (Nicolas Weber)
4493Files: src/feature.h, src/gui.c, src/gui.h, src/gui_mac.c,
4494 src/proto/gui_mac.pro
4495
4496Patch 7.0.233 (extra)
4497Problem: Mac: code formatted badly.
4498Solution: Fix code formatting
4499Files: src/gui_mac.c
4500
4501Patch 7.0.234
4502Problem: It's possible to use feedkeys() from a modeline. That is a
4503 security issue, can be used for a trojan horse.
4504Solution: Disallow using feedkeys() in the sandbox.
4505Files: src/eval.c
4506
4507Patch 7.0.235
4508Problem: It is possible to use writefile() in the sandbox.
4509Solution: Add a few more checks for the sandbox.
4510Files: src/eval.c
4511
4512Patch 7.0.236
4513Problem: Linux 2.4 uses sysinfo() with a mem_unit field, which is not
4514 backwards compatible.
4515Solution: Add an autoconf check for sysinfo.mem_unit. Let mch_total_mem()
4516 return Kbyte to avoid overflow.
4517Files: src/auto/configure, src/configure.in, src/config.h.in,
4518 src/option.c, src/os_unix.c
4519
4520Patch 7.0.237
4521Problem: For root it is recommended to not use 'modeline', but in
4522 not-compatible mode the default is on.
4523Solution: Let 'modeline' default to off for root.
4524Files: runtime/doc/options.txt, src/option.c
4525
4526Patch 7.0.238
4527Problem: Crash when ":match" pattern runs into 'maxmempattern'. (Yakov
4528 Lerner)
4529Solution: Don't free the regexp program of match_hl.
4530Files: src/screen.c
4531
4532Patch 7.0.239
4533Problem: When using local directories and tab pages ":mksession" uses a
4534 short file name when it shouldn't. Window-local options from a
4535 modeline may be applied to the wrong window. (Teemu Likonen)
4536Solution: Add the did_lcd flag, use the full path when it's set. Don't use
4537 window-local options from the modeline when using the current
4538 window for another buffer in ":doautoall".
4539Files: src/fileio.c, src/ex_docmd.c
4540
4541Patch 7.0.240
4542Problem: Crash when splitting a window in the GUI. (opposite of 7.0.227)
4543Solution: Don't call out_flush() from win_alloc(). Also avoid this for
4544 win_delete(). Also block autocommands while the window structure
4545 is invalid.
4546Files: src/window.c
4547
4548Patch 7.0.241
4549Problem: ":windo throw 'foo'" loops forever. (Andy Wokula)
4550Solution: Detect that win_goto() doesn't work.
4551Files: src/ex_cmds2.c
4552
4553Patch 7.0.242 (extra)
4554Problem: Win32: Using "-register" in a Vim that does not support OLE causes
4555 a crash.
4556Solution: Don't use EMSG() but mch_errmsg(). Check p_go for being NULL.
4557 (partly by Michael Wookey)
4558Files: src/gui_w32.c
4559
4560Patch 7.0.243 (extra)
4561Problem: Win32: When GvimExt is built with MSVC 2005 or later, the "Edit
4562 with vim" context menu doesn't appear in the Windows Explorer.
4563Solution: Embed the linker manifest file into the resources of GvimExt.dll.
4564 (Mathias Michaelis)
4565Files: src/GvimExt/Makefile
4566
4567
Bram Moolenaar49325942007-05-10 19:19:59 +00004568Fixes after Vim 7.1a BETA:
4569
4570The extra archive had CVS directories included below "farsi" and
4571"runtime/icons". CVS was missing the farsi icon files.
4572
4573Fix compiling with Gnome 2.18, undefine bind_textdomain_codeset. (Daniel
4574Drake)
4575
4576Mac: "make install" didn't copy rgb.txt.
4577
4578When editing a compressed file while there are folds caused "ml_get" errors
4579and some lines could be missing. When decompressing failed option values were
4580not restored.
4581
4582
4583Patch 7.1a.001
4584Problem: Crash when downloading a spell file. (Szabolcs Horvat)
4585Solution: Avoid that did_set_spelllang() is used recursively when a new
4586 window is opened for the download.
4587 Also avoid wiping out the wrong buffer.
4588Files: runtime/autoload/spellfile.vim, src/buffer.c, src/ex_cmds.c,
4589 src/spell.c
4590
4591Patch 7.1a.002 (extra)
4592Problem: Compilation error with MingW.
4593Solution: Check for LPTOOLTIPTEXT to be defined.
4594Files: src/gui_w32.c
4595
4596
Bram Moolenaarb2a460d2007-05-12 15:16:37 +00004597Fixes after Vim 7.1b BETA:
4598
4599Made the Mzscheme interface build both with old and new versions of Mzscheme,
4600using an #ifdef. (Sergey Khorev)
4601Mzscheme interface didn't link, missing function. Changed order of libraries
4602in the configure script.
4603
4604Ruby interface didn't compile on Mac. Changed #ifdef. (Kevin Ballard)
4605
4606Patch 7.1b.001 (extra)
4607Problem: Random text in a source file. No idea how it got there.
4608Solution: Delete the text.
4609Files: src/gui_w32.c
4610
4611Patch 7.1b.002
4612Problem: When 'maxmem' is large there can be an overflow in computations.
4613 (Thomas Wiegner)
4614Solution: Use the same mechanism as in mch_total_mem(): first reduce the
4615 multiplier as much as possible.
4616Files: src/memfile.c
4617
4618
Bram Moolenaar49325942007-05-10 19:19:59 +00004619
Bram Moolenaar071d4272004-06-13 20:20:40 +00004620 vim:tw=78:ts=8:ft=help:norl: