Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame^] | 1 | *version7.txt* For Vim version 7.0aa. Last change: 2004 Jul 27 |
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 | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 123 | |
| 124 | New functions: ~ |
| 125 | |
Bram Moolenaar | 89cb5e0 | 2004-07-19 20:55:54 +0000 | [diff] [blame] | 126 | byteidx(expr, nr) |byteidx()| Index of a character. (Ilya Sher) |
| 127 | finddir(name) |finddir()| Find a directory in 'path'. |
| 128 | findfile(name) |findfile()| Find a file in 'path'. (Johannes |
| 129 | Zellner) |
Bram Moolenaar | 5eb86f9 | 2004-07-26 12:53:41 +0000 | [diff] [blame] | 130 | getfperm(fname) |getfperm()| Get file permission string. (Nikolai |
| 131 | Weibull) |
| 132 | getftype(fname) |getftype()| Get type of file. (Nikolai Weibull) |
Bram Moolenaar | ab79bcb | 2004-07-18 21:34:53 +0000 | [diff] [blame] | 133 | repeat(expr, count) |repeat()| Repeat "expr" "count" times. |
| 134 | (Christophe Poucet) |
| 135 | tr(expr, from, to) |tr()| Translate characters. (Ron Aaron) |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 136 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 137 | |
| 138 | New autocommand events: ~ |
| 139 | |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 140 | |InsertEnter| starting Insert or Replace mode |
| 141 | |InsertChange| going from Insert to Replace mode or back |
| 142 | |InsertLeave| leaving Insert or Replace mode |
Bram Moolenaar | 843ee41 | 2004-06-30 16:16:41 +0000 | [diff] [blame] | 143 | |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 144 | |ColorScheme| after loading a color scheme |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 145 | |
Bram Moolenaar | cfbc5ee | 2004-07-02 15:38:35 +0000 | [diff] [blame] | 146 | |
| 147 | New Syntax/Indent/FTplugin files: ~ |
| 148 | |
| 149 | MuPAD source syntax, indent and ftplugin. (Dave Silvia) |
| 150 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 151 | |
Bram Moolenaar | f4b8e57 | 2004-06-24 15:53:16 +0000 | [diff] [blame] | 152 | Others: ~ |
| 153 | |
| 154 | Mac: Add the selection type to the clipboard, so that Block, line and |
| 155 | character selections can be used between two Vims. (Eckehard Berns) |
| 156 | Also fixes the problem that setting 'clipboard' to "unnamed" breaks using |
| 157 | "yyp". |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 158 | |
Bram Moolenaar | 592e0a2 | 2004-07-03 16:05:59 +0000 | [diff] [blame] | 159 | Mac: GUI font selector. (Peter "Rain Dog" Cucka) |
| 160 | |
Bram Moolenaar | 843ee41 | 2004-06-30 16:16:41 +0000 | [diff] [blame] | 161 | The netrw plugin now also supports viewing a directory, when "scp://" is used. |
| 162 | Deleting and renaming files is possible. (Charles Campbell) |
| 163 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 164 | ============================================================================== |
| 165 | IMPROVEMENTS *improvements-7* |
| 166 | |
Bram Moolenaar | f4b8e57 | 2004-06-24 15:53:16 +0000 | [diff] [blame] | 167 | ":helpgrep" accepts a language specifier after the pattern: "pat@it". |
| 168 | |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 169 | Move the help for printing to a separate help file. It's quite a lot now. |
| 170 | |
Bram Moolenaar | f4b8e57 | 2004-06-24 15:53:16 +0000 | [diff] [blame] | 171 | ":breakadd here" and ":breakdel here" can be used to set or delete a |
| 172 | breakpoint at the cursor. |
| 173 | |
Bram Moolenaar | 843ee41 | 2004-06-30 16:16:41 +0000 | [diff] [blame] | 174 | The tutor was updated to make it simpler to use and added text to explain a |
| 175 | few more important commands. Used ideas from Gabriel Zachmann. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 176 | |
Bram Moolenaar | cfbc5ee | 2004-07-02 15:38:35 +0000 | [diff] [blame] | 177 | Unix: When libcall() fails obtain an error message with dlerror() and display |
| 178 | it. (Johannes Zellner) |
| 179 | |
Bram Moolenaar | 592e0a2 | 2004-07-03 16:05:59 +0000 | [diff] [blame] | 180 | Added "nbsp" in 'listchars'. (David Blanchet) |
| 181 | |
Bram Moolenaar | 21cf823 | 2004-07-16 20:18:37 +0000 | [diff] [blame] | 182 | Added the "acwrite" value for the 'buftype' option. This is for a buffer that |
| 183 | doesn not have a name that refers to a file and is written with BufWriteCmd |
| 184 | autocommands. |
| 185 | |
Bram Moolenaar | 325b7a2 | 2004-07-05 15:58:32 +0000 | [diff] [blame] | 186 | For lisp indenting and matching parenthesis: (Sergey Khorev) |
| 187 | - square brackets are recognized properly |
| 188 | - #\(, #\), #\[ and #\] are recognized as character literals |
| 189 | - Lisp line comments (delimited by semicolon) are recognized |
| 190 | |
Bram Moolenaar | 89cb5e0 | 2004-07-19 20:55:54 +0000 | [diff] [blame] | 191 | Added the "count" argument to match(), matchend() and matchstr(). (Ilya Sher) |
| 192 | |
Bram Moolenaar | 5eb86f9 | 2004-07-26 12:53:41 +0000 | [diff] [blame] | 193 | winnr() takes an optional "$" and "#" arguments. (Nikolai Weibull, Yegappan |
| 194 | Lakshmanan) |
| 195 | |
| 196 | Added 'n' flag to search(): don't move the cursor. (Nikolai Weibull) |
| 197 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 198 | ============================================================================== |
| 199 | COMPILE TIME CHANGES *compile-changes-7* |
| 200 | |
Bram Moolenaar | ab79bcb | 2004-07-18 21:34:53 +0000 | [diff] [blame] | 201 | Mac: "make" now creates the Vim.app directory and "make install" copies it to |
| 202 | its final destination. (Raf) |
| 203 | |
| 204 | Mac: Made it possible to compile with Motif, Athena or GTK without tricks and |
| 205 | still being able to use the MacRoman conversion. Added the os_mac_conv.c |
| 206 | file. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 207 | |
| 208 | ============================================================================== |
| 209 | BUG FIXES *bug-fixes-7* |
| 210 | |
Bram Moolenaar | f4b8e57 | 2004-06-24 15:53:16 +0000 | [diff] [blame] | 211 | When using PostScript printing on MS-DOS the default 'printexpr' used "lpr" |
| 212 | instead of "copy". When 'printdevice' was empty the copy command did not |
| 213 | work. Use "LPT1" then. |
| 214 | |
| 215 | The GTK font dialog uses a font size zero when the font name doesn't include a |
| 216 | size. Use a default size of 10. |
| 217 | |
| 218 | This example in the documentation didn't work: |
| 219 | :e `=foo . ".c" ` |
| 220 | Skip over the expression in `=expr` when looking for comments, |, % and #. |
| 221 | |
| 222 | When ":helpgrep" doesn't find anything there is no error message. |
| 223 | |
| 224 | "L" and "H" did not take closed folds into account. |
| 225 | |
| 226 | Win32: The "-P title" argument stopped at the first title that matched, even |
| 227 | when it doesn't support MDI. |
| 228 | |
| 229 | Mac GUI: CTRL-^ and CTRL-@ did not work. |
| 230 | |
| 231 | "2daw" on "word." at the end of a line didn't include the preceding white |
| 232 | space. |
| 233 | |
| 234 | Win32: Using FindExecutable() doesn't work to find a program. Use |
| 235 | SearchPath() instead. For executable() use $PATHEXT when the program searched |
| 236 | for doesn't have an extension. |
| 237 | |
| 238 | When 'virtualedit' is set, moving the cursor up after appending a character |
| 239 | may move it to a different column. Was caused by auto-formatting moving the |
| 240 | cursor and not putting it back where it was. |
| 241 | |
| 242 | When indent was added automatically and then moving the cursor, the indent was |
| 243 | not deleted (like when pressing ESC). The "I" flag in 'cpoptions' can be used |
| 244 | to make it work the old way. |
| 245 | |
| 246 | When <Space> is mapped to something that starts with a space, typing <Space> |
| 247 | does not expand abbreviations. Only disable expanding abbreviations when a |
| 248 | mapping is not remapped, not when the RHS starts with the LHS. |
| 249 | |
| 250 | When opening a command-line window, 'textwidth' gets set to 78 by the Vim |
| 251 | filetype plugin. Reset 'textwidth' to 0 to avoid lines are broken. |
| 252 | |
| 253 | After using cursor(line, col) moving up/down doesn't keep the same column. |
| 254 | |
| 255 | Win32: Borland C before 5.5 requires using ".u." for LowPart and HighPart |
| 256 | fields. (Walter Briscoe) |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 257 | |
Bram Moolenaar | 843ee41 | 2004-06-30 16:16:41 +0000 | [diff] [blame] | 258 | On Sinix SYS_NMLN isn't always defined. Define it ourselves. (Cristiano De |
| 259 | Michele) |
| 260 | |
Bram Moolenaar | 325b7a2 | 2004-07-05 15:58:32 +0000 | [diff] [blame] | 261 | Printing with PostScript may keep the printer waiting for more. Append a |
| 262 | CTRL-D to the printer output. (Mike Williams) |
| 263 | |
Bram Moolenaar | 2df6dcc | 2004-07-12 15:53:54 +0000 | [diff] [blame] | 264 | When converting a string with a hex or octal number the leading '-' was |
| 265 | ignored. ":echo '-05' + 0" resulted in 5 instead of -5. |
| 266 | |
| 267 | Using "@:" to repeat a command line didn't work when it contains control |
| 268 | characters. |
| 269 | |
Bram Moolenaar | 21cf823 | 2004-07-16 20:18:37 +0000 | [diff] [blame] | 270 | When using file completion for a user command, it would not expand environment |
| 271 | variables like for a regular command with a file argument. |
| 272 | |
| 273 | 'cindent': When the argument of a #define looks like a C++ class the next line |
| 274 | is indented too much. |
| 275 | |
| 276 | When 'comments' includes multi-byte characters inserting the middle part and |
| 277 | alignment may go wrong. 'cindent' also suffers from this for right-aligned |
| 278 | items. |
| 279 | |
Bram Moolenaar | ab79bcb | 2004-07-18 21:34:53 +0000 | [diff] [blame] | 280 | The default for 'helplang' was "zh" for both "zh_cn" and "zh_tw". Now use |
| 281 | "cn" or "tw" as intended. |
| 282 | |
Bram Moolenaar | 5eb86f9 | 2004-07-26 12:53:41 +0000 | [diff] [blame] | 283 | When 'bin' is set and 'eol' is not set then line2byte() added the line break |
| 284 | after the last line while it's not there. |
| 285 | |
| 286 | Using foldlevel() in a WinEnter autocommand may not work. Noticed when |
| 287 | resizing the GUI shell upon startup. |
| 288 | |
| 289 | Python: Using buffer.append(f.readlines()) didn't work. Allow appending a |
| 290 | string with a trailing newline. The newline is ignored. |
| 291 | |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame^] | 292 | When using the ":saveas f2" command for buffer "f1", the Buffers menu would |
| 293 | contain "f2" twice, one of them leading to "f1". Also trigger the BufFilePre |
| 294 | and BufFilePost events for the alternate buffer that gets the old name. |
| 295 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 296 | vim:tw=78:ts=8:ft=help:norl: |