Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame^] | 1 | *version7.txt* For Vim version 7.0aa. Last change: 2004 Sep 01 |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 2 | |
| 3 | |
| 4 | VIM REFERENCE MANUAL by Bram Moolenaar |
| 5 | |
| 6 | |
| 7 | Welcome to Vim 7! A large number of features has been added. This file |
| 8 | mentions all the new items, changes to existing features and bug fixes |
| 9 | compared to Vim 6.x. |
| 10 | |
| 11 | See |vi_diff.txt| for an overview of differences between Vi and Vim 7.0. |
| 12 | See |version4.txt| for differences between Vim 3.x and Vim 4.x. |
| 13 | See |version5.txt| for differences between Vim 4.x and Vim 5.x. |
| 14 | See |version6.txt| for differences between Vim 5.x and Vim 6.x. |
| 15 | |
| 16 | INCOMPATIBLE CHANGES |incompatible-7| |
| 17 | |
| 18 | NEW FEATURES |new-7| |
| 19 | |
| 20 | New data types |new-data-types| |
Bram Moolenaar | 325b7a2 | 2004-07-05 15:58:32 +0000 | [diff] [blame] | 21 | KDE support |new-KDE| |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 22 | Various new items |new-items-7| |
| 23 | |
| 24 | IMPROVEMENTS |improvements-7| |
| 25 | |
| 26 | COMPILE TIME CHANGES |compile-changes-7| |
| 27 | |
| 28 | BUG FIXES |bug-fixes-7| |
| 29 | |
| 30 | ============================================================================== |
| 31 | INCOMPATIBLE CHANGES *incompatible-7* |
| 32 | |
| 33 | These changes are incompatible with previous releases. Check this list if you |
| 34 | run into a problem when upgrading from Vim 6.x to 7.0 |
| 35 | |
Bram Moolenaar | f4b8e57 | 2004-06-24 15:53:16 +0000 | [diff] [blame] | 36 | ":helpgrep" now uses a help window to display a match. |
| 37 | |
| 38 | |
| 39 | Minor incompatibilities: |
| 40 | |
| 41 | For filetype detection: For many types, instead of ~/.dir/filename use |
| 42 | */.dir/filename, so that it also works for other user's files. |
| 43 | |
| 44 | ":0verbose" now sets 'verbose' to zero instead of one. |
| 45 | |
| 46 | Removed the old and incomplete "VimBuddy" code. |
| 47 | |
| 48 | Buffers without a name report "No Name" instead of "No File". It was |
| 49 | confusing for buffers with a name and 'buftype' set to "nofile". |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 50 | |
| 51 | ============================================================================== |
| 52 | NEW FEATURES *new-7* |
| 53 | |
| 54 | New data types *new-data-types* |
| 55 | -------------- |
| 56 | |
| 57 | In Vim scripts the following types have been added: |
| 58 | |
| 59 | list ordered list of items |
| 60 | dictionary associative array of items |
| 61 | function reference to a function |
| 62 | |
| 63 | Many functions and commands have been added to support the new types. |
| 64 | |
Bram Moolenaar | 843ee41 | 2004-06-30 16:16:41 +0000 | [diff] [blame] | 65 | NOT IMPLEMENTED YET! |
| 66 | |
| 67 | |
Bram Moolenaar | 325b7a2 | 2004-07-05 15:58:32 +0000 | [diff] [blame] | 68 | KDE support *new-KDE* |
Bram Moolenaar | 843ee41 | 2004-06-30 16:16:41 +0000 | [diff] [blame] | 69 | ----------- |
| 70 | |
| 71 | Kvim is the KDE version of Vim. It uses the Qt toolkit. See |KVim|. |
| 72 | (Thomas Capricelli, Philippe Fremy, Mickael Marchand, Mark Westcott, et al.) |
| 73 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 74 | |
Bram Moolenaar | 325b7a2 | 2004-07-05 15:58:32 +0000 | [diff] [blame] | 75 | MzScheme interface *new-MzScheme* |
| 76 | ------------------ |
| 77 | |
| 78 | The MzScheme interpreter is supported. |MzScheme| |
| 79 | The |:mzscheme| command can be used to execute MzScheme commands. |
| 80 | The |:mzfile| command can be used to execute an MzScheme script file. |
| 81 | |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 82 | Printing multi-byte text *new-print-multi-byte* |
| 83 | ------------------ |
| 84 | |
| 85 | The |:hardcopy| command now supports printing multi-byte characters. |
| 86 | The 'printmbcharset' and 'printmbfont' options are used for this. |
| 87 | Also see |postscript-cjk-printing|. (Mike Williams) |
| 88 | |
Bram Moolenaar | 325b7a2 | 2004-07-05 15:58:32 +0000 | [diff] [blame] | 89 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 90 | Various new items *new-items-7* |
| 91 | ----------------- |
| 92 | |
| 93 | Normal mode commands: ~ |
| 94 | |
Bram Moolenaar | cfbc5ee | 2004-07-02 15:38:35 +0000 | [diff] [blame] | 95 | a", a' and a` New text objects to select quoted strings. |a'| |
| 96 | i", i' and i' (Taro Muraoka) |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 97 | |
| 98 | Options: ~ |
| 99 | |
Bram Moolenaar | cfbc5ee | 2004-07-02 15:38:35 +0000 | [diff] [blame] | 100 | 'completefunc' The name of a function used for user-specified Insert |
| 101 | mode completion. CTRL-X CTRL-U can be used in Insert |
| 102 | mode to do any kind of completion. (Taro Muraoka) |
| 103 | 'quoteescape' Characters used to escape quotes inside a string. |
| 104 | Used for the a", a' and a` text objects. |a'| |
Bram Moolenaar | 592e0a2 | 2004-07-03 16:05:59 +0000 | [diff] [blame] | 105 | 'numberwidth' Minimal width of the space used for the 'number' |
| 106 | option. (Emmanuel Renieris) |
Bram Moolenaar | 325b7a2 | 2004-07-05 15:58:32 +0000 | [diff] [blame] | 107 | 'mzquantum' Time in msec to schedule MzScheme threads. |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 108 | 'printmbcharset' CJK character set to be used for :hardcopy |
| 109 | 'printmbfont' font names to be used for CJK output of :hardcopy |
Bram Moolenaar | 325b7a2 | 2004-07-05 15:58:32 +0000 | [diff] [blame] | 110 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 111 | |
| 112 | Ex commands: ~ |
| 113 | |
Bram Moolenaar | 843ee41 | 2004-06-30 16:16:41 +0000 | [diff] [blame] | 114 | Win32: The ":winpos" command now also works in the console. (Vipin Aravind) |
| 115 | |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 116 | |:startreplace| Start Replace mode. (Charles Campbell) |
Bram Moolenaar | 325b7a2 | 2004-07-05 15:58:32 +0000 | [diff] [blame] | 117 | |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 118 | |:0file| Removes the name of the buffer. (Charles Campbell) |
Bram Moolenaar | 325b7a2 | 2004-07-05 15:58:32 +0000 | [diff] [blame] | 119 | |
Bram Moolenaar | 2df6dcc | 2004-07-12 15:53:54 +0000 | [diff] [blame] | 120 | |:diffoff| Switch off diff mode in the current window or in all |
| 121 | windows. |
| 122 | |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame^] | 123 | |:keepalt| Do not change the alternate file. |
| 124 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 125 | |
| 126 | New functions: ~ |
| 127 | |
Bram Moolenaar | 89cb5e0 | 2004-07-19 20:55:54 +0000 | [diff] [blame] | 128 | byteidx(expr, nr) |byteidx()| Index of a character. (Ilya Sher) |
| 129 | finddir(name) |finddir()| Find a directory in 'path'. |
| 130 | findfile(name) |findfile()| Find a file in 'path'. (Johannes |
| 131 | Zellner) |
Bram Moolenaar | 5eb86f9 | 2004-07-26 12:53:41 +0000 | [diff] [blame] | 132 | getfperm(fname) |getfperm()| Get file permission string. (Nikolai |
| 133 | Weibull) |
| 134 | getftype(fname) |getftype()| Get type of file. (Nikolai Weibull) |
Bram Moolenaar | ab79bcb | 2004-07-18 21:34:53 +0000 | [diff] [blame] | 135 | repeat(expr, count) |repeat()| Repeat "expr" "count" times. |
| 136 | (Christophe Poucet) |
| 137 | tr(expr, from, to) |tr()| Translate characters. (Ron Aaron) |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 138 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 139 | |
| 140 | New autocommand events: ~ |
| 141 | |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 142 | |InsertEnter| starting Insert or Replace mode |
| 143 | |InsertChange| going from Insert to Replace mode or back |
| 144 | |InsertLeave| leaving Insert or Replace mode |
Bram Moolenaar | 843ee41 | 2004-06-30 16:16:41 +0000 | [diff] [blame] | 145 | |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 146 | |ColorScheme| after loading a color scheme |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 147 | |
Bram Moolenaar | cfbc5ee | 2004-07-02 15:38:35 +0000 | [diff] [blame] | 148 | |
| 149 | New Syntax/Indent/FTplugin files: ~ |
| 150 | |
| 151 | MuPAD source syntax, indent and ftplugin. (Dave Silvia) |
| 152 | |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame^] | 153 | ABAB/4 syntax file. (Marius van Wyk) |
| 154 | |
| 155 | SQL-Informix syntax file. (Dean L Hill) |
| 156 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 157 | |
Bram Moolenaar | f4b8e57 | 2004-06-24 15:53:16 +0000 | [diff] [blame] | 158 | Others: ~ |
| 159 | |
| 160 | Mac: Add the selection type to the clipboard, so that Block, line and |
| 161 | character selections can be used between two Vims. (Eckehard Berns) |
| 162 | Also fixes the problem that setting 'clipboard' to "unnamed" breaks using |
| 163 | "yyp". |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 164 | |
Bram Moolenaar | 592e0a2 | 2004-07-03 16:05:59 +0000 | [diff] [blame] | 165 | Mac: GUI font selector. (Peter "Rain Dog" Cucka) |
| 166 | |
Bram Moolenaar | 843ee41 | 2004-06-30 16:16:41 +0000 | [diff] [blame] | 167 | The netrw plugin now also supports viewing a directory, when "scp://" is used. |
| 168 | Deleting and renaming files is possible. (Charles Campbell) |
| 169 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 170 | ============================================================================== |
| 171 | IMPROVEMENTS *improvements-7* |
| 172 | |
Bram Moolenaar | f4b8e57 | 2004-06-24 15:53:16 +0000 | [diff] [blame] | 173 | ":helpgrep" accepts a language specifier after the pattern: "pat@it". |
| 174 | |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 175 | Move the help for printing to a separate help file. It's quite a lot now. |
| 176 | |
Bram Moolenaar | f4b8e57 | 2004-06-24 15:53:16 +0000 | [diff] [blame] | 177 | ":breakadd here" and ":breakdel here" can be used to set or delete a |
| 178 | breakpoint at the cursor. |
| 179 | |
Bram Moolenaar | 843ee41 | 2004-06-30 16:16:41 +0000 | [diff] [blame] | 180 | The tutor was updated to make it simpler to use and added text to explain a |
| 181 | few more important commands. Used ideas from Gabriel Zachmann. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 182 | |
Bram Moolenaar | cfbc5ee | 2004-07-02 15:38:35 +0000 | [diff] [blame] | 183 | Unix: When libcall() fails obtain an error message with dlerror() and display |
| 184 | it. (Johannes Zellner) |
| 185 | |
Bram Moolenaar | 592e0a2 | 2004-07-03 16:05:59 +0000 | [diff] [blame] | 186 | Added "nbsp" in 'listchars'. (David Blanchet) |
| 187 | |
Bram Moolenaar | 21cf823 | 2004-07-16 20:18:37 +0000 | [diff] [blame] | 188 | Added the "acwrite" value for the 'buftype' option. This is for a buffer that |
| 189 | doesn not have a name that refers to a file and is written with BufWriteCmd |
| 190 | autocommands. |
| 191 | |
Bram Moolenaar | 325b7a2 | 2004-07-05 15:58:32 +0000 | [diff] [blame] | 192 | For lisp indenting and matching parenthesis: (Sergey Khorev) |
| 193 | - square brackets are recognized properly |
| 194 | - #\(, #\), #\[ and #\] are recognized as character literals |
| 195 | - Lisp line comments (delimited by semicolon) are recognized |
| 196 | |
Bram Moolenaar | 89cb5e0 | 2004-07-19 20:55:54 +0000 | [diff] [blame] | 197 | Added the "count" argument to match(), matchend() and matchstr(). (Ilya Sher) |
| 198 | |
Bram Moolenaar | 5eb86f9 | 2004-07-26 12:53:41 +0000 | [diff] [blame] | 199 | winnr() takes an optional "$" and "#" arguments. (Nikolai Weibull, Yegappan |
| 200 | Lakshmanan) |
| 201 | |
| 202 | Added 'n' flag to search(): don't move the cursor. (Nikolai Weibull) |
| 203 | |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame^] | 204 | When uncompressing fails in the gzip plugin, give an error message but don't |
| 205 | delete the raw text. Helps if the file has a .gz extension but is not |
| 206 | actually compressed. (Andrew Pimlott) |
| 207 | |
| 208 | When C, C++ or IDL syntax is used, may additionally load doxygen syntax. |
| 209 | Also support setting the filetype to "cdoxygen" for C plus doxygen syntax. |
| 210 | (Michael Geddes) |
| 211 | |
| 212 | The ":registers" command now displays multi-byte characters properly. |
| 213 | |
| 214 | VMS: In the usage message mention that a slash can be used to make a flag |
| 215 | upper case. Add color support to the builtin vt320 terminal codes. |
| 216 | (Zoltan Arpadffy) |
| 217 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 218 | ============================================================================== |
| 219 | COMPILE TIME CHANGES *compile-changes-7* |
| 220 | |
Bram Moolenaar | ab79bcb | 2004-07-18 21:34:53 +0000 | [diff] [blame] | 221 | Mac: "make" now creates the Vim.app directory and "make install" copies it to |
| 222 | its final destination. (Raf) |
| 223 | |
| 224 | Mac: Made it possible to compile with Motif, Athena or GTK without tricks and |
| 225 | still being able to use the MacRoman conversion. Added the os_mac_conv.c |
| 226 | file. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 227 | |
| 228 | ============================================================================== |
| 229 | BUG FIXES *bug-fixes-7* |
| 230 | |
Bram Moolenaar | f4b8e57 | 2004-06-24 15:53:16 +0000 | [diff] [blame] | 231 | When using PostScript printing on MS-DOS the default 'printexpr' used "lpr" |
| 232 | instead of "copy". When 'printdevice' was empty the copy command did not |
| 233 | work. Use "LPT1" then. |
| 234 | |
| 235 | The GTK font dialog uses a font size zero when the font name doesn't include a |
| 236 | size. Use a default size of 10. |
| 237 | |
| 238 | This example in the documentation didn't work: |
| 239 | :e `=foo . ".c" ` |
| 240 | Skip over the expression in `=expr` when looking for comments, |, % and #. |
| 241 | |
| 242 | When ":helpgrep" doesn't find anything there is no error message. |
| 243 | |
| 244 | "L" and "H" did not take closed folds into account. |
| 245 | |
| 246 | Win32: The "-P title" argument stopped at the first title that matched, even |
| 247 | when it doesn't support MDI. |
| 248 | |
| 249 | Mac GUI: CTRL-^ and CTRL-@ did not work. |
| 250 | |
| 251 | "2daw" on "word." at the end of a line didn't include the preceding white |
| 252 | space. |
| 253 | |
| 254 | Win32: Using FindExecutable() doesn't work to find a program. Use |
| 255 | SearchPath() instead. For executable() use $PATHEXT when the program searched |
| 256 | for doesn't have an extension. |
| 257 | |
| 258 | When 'virtualedit' is set, moving the cursor up after appending a character |
| 259 | may move it to a different column. Was caused by auto-formatting moving the |
| 260 | cursor and not putting it back where it was. |
| 261 | |
| 262 | When indent was added automatically and then moving the cursor, the indent was |
| 263 | not deleted (like when pressing ESC). The "I" flag in 'cpoptions' can be used |
| 264 | to make it work the old way. |
| 265 | |
| 266 | When <Space> is mapped to something that starts with a space, typing <Space> |
| 267 | does not expand abbreviations. Only disable expanding abbreviations when a |
| 268 | mapping is not remapped, not when the RHS starts with the LHS. |
| 269 | |
| 270 | When opening a command-line window, 'textwidth' gets set to 78 by the Vim |
| 271 | filetype plugin. Reset 'textwidth' to 0 to avoid lines are broken. |
| 272 | |
| 273 | After using cursor(line, col) moving up/down doesn't keep the same column. |
| 274 | |
| 275 | Win32: Borland C before 5.5 requires using ".u." for LowPart and HighPart |
| 276 | fields. (Walter Briscoe) |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 277 | |
Bram Moolenaar | 843ee41 | 2004-06-30 16:16:41 +0000 | [diff] [blame] | 278 | On Sinix SYS_NMLN isn't always defined. Define it ourselves. (Cristiano De |
| 279 | Michele) |
| 280 | |
Bram Moolenaar | 325b7a2 | 2004-07-05 15:58:32 +0000 | [diff] [blame] | 281 | Printing with PostScript may keep the printer waiting for more. Append a |
| 282 | CTRL-D to the printer output. (Mike Williams) |
| 283 | |
Bram Moolenaar | 2df6dcc | 2004-07-12 15:53:54 +0000 | [diff] [blame] | 284 | When converting a string with a hex or octal number the leading '-' was |
| 285 | ignored. ":echo '-05' + 0" resulted in 5 instead of -5. |
| 286 | |
| 287 | Using "@:" to repeat a command line didn't work when it contains control |
| 288 | characters. |
| 289 | |
Bram Moolenaar | 21cf823 | 2004-07-16 20:18:37 +0000 | [diff] [blame] | 290 | When using file completion for a user command, it would not expand environment |
| 291 | variables like for a regular command with a file argument. |
| 292 | |
| 293 | 'cindent': When the argument of a #define looks like a C++ class the next line |
| 294 | is indented too much. |
| 295 | |
| 296 | When 'comments' includes multi-byte characters inserting the middle part and |
| 297 | alignment may go wrong. 'cindent' also suffers from this for right-aligned |
| 298 | items. |
| 299 | |
Bram Moolenaar | ab79bcb | 2004-07-18 21:34:53 +0000 | [diff] [blame] | 300 | The default for 'helplang' was "zh" for both "zh_cn" and "zh_tw". Now use |
| 301 | "cn" or "tw" as intended. |
| 302 | |
Bram Moolenaar | 5eb86f9 | 2004-07-26 12:53:41 +0000 | [diff] [blame] | 303 | When 'bin' is set and 'eol' is not set then line2byte() added the line break |
| 304 | after the last line while it's not there. |
| 305 | |
| 306 | Using foldlevel() in a WinEnter autocommand may not work. Noticed when |
| 307 | resizing the GUI shell upon startup. |
| 308 | |
| 309 | Python: Using buffer.append(f.readlines()) didn't work. Allow appending a |
| 310 | string with a trailing newline. The newline is ignored. |
| 311 | |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 312 | When using the ":saveas f2" command for buffer "f1", the Buffers menu would |
| 313 | contain "f2" twice, one of them leading to "f1". Also trigger the BufFilePre |
| 314 | and BufFilePost events for the alternate buffer that gets the old name. |
| 315 | |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame^] | 316 | strridx() did not work well when the needle is empty. (Ciaran McCreesh) |
| 317 | |
| 318 | GTK: Avoid a potential hang in gui_mch_wait_for_chars() when input arrives |
| 319 | just before it is invoked |
| 320 | |
| 321 | VMS: Occasionally CR characters were inserted in the file. Expansion of |
| 322 | environment variables was not correct. (Zoltan Arpadffy) |
| 323 | |
| 324 | UTF-8: When 'delcombine' is set "dw" only deleted the last combining character |
| 325 | from the first character of the word. |
| 326 | |
| 327 | When using ":sball" in an autocommand only the filetype in one buffer was |
| 328 | detected. Reset did_filetype in enter_buffer(). |
| 329 | |
| 330 | When using ":argdo" and the window already was at the first argument index, |
| 331 | but not actually editing it, the current buffer would be used instead. |
| 332 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 333 | vim:tw=78:ts=8:ft=help:norl: |