356 lines
14 KiB
Text
356 lines
14 KiB
Text
|
*version4.txt* For Vim version 7.4. Last change: 2006 Apr 24
|
||
|
|
||
|
|
||
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||
|
|
||
|
|
||
|
This document lists the incompatible differences between Vim 3.0 and Vim 4.0.
|
||
|
Although 4.0 is mentioned here, this is also for version 4.1, 4.2, etc..
|
||
|
|
||
|
This file is important for everybody upgrading from Vim 3.0. Read it
|
||
|
carefully to avoid unexpected problems.
|
||
|
|
||
|
'backup' option default changed |backup-changed|
|
||
|
Extension for backup file changed |backup-extension|
|
||
|
Structure of swap file changed |swapfile-changed|
|
||
|
"-w scriptout" argument changed |scriptout-changed|
|
||
|
Backspace and Delete keys |backspace-delete|
|
||
|
Escape for | changed |escape-bar|
|
||
|
Key codes changed |key-codes-changed|
|
||
|
Terminal options changed |termcap-changed|
|
||
|
'errorformat' option changed |errorformat-changed|
|
||
|
'graphic' option gone |graphic-option-gone|
|
||
|
'yankendofline' option gone |ye-option-gone|
|
||
|
'icon' and 'title' default value changed |icon-changed|
|
||
|
'highlight' option changed |highlight-changed|
|
||
|
'tildeop' and 'weirdinvert' short names changed |short-name-changed|
|
||
|
Use of "v", "V" and "CTRL-V" in Visual mode |use-visual-cmds|
|
||
|
CTRL-B in Insert mode removed |toggle-revins|
|
||
|
|
||
|
|
||
|
'backup' option default changed *backup-changed*
|
||
|
-------------------------------
|
||
|
|
||
|
The default value for 'backup' used to be on. This resulted in a backup file
|
||
|
being made when the original file was overwritten.
|
||
|
|
||
|
Now the default for 'backup' is off. As soon as the writing of the file has
|
||
|
successfully finished, the backup file is deleted. If you want to keep the
|
||
|
backup file, set 'backup' on in your vimrc. The reason for this change is
|
||
|
that many people complained that leaving a backup file behind is not
|
||
|
Vi-compatible. |'backup'|
|
||
|
|
||
|
|
||
|
Extension for backup file changed *backup-extension*
|
||
|
---------------------------------
|
||
|
|
||
|
The extension for the backup file used to be ".bak". Since other programs
|
||
|
also use this extension and some users make copies with this extension, it was
|
||
|
changed to the less obvious "~". Another advantage is that this takes less
|
||
|
space, which is useful when working on a system with short file names. For
|
||
|
example, on MS-DOS the backup files for "longfile.c" and "longfile.h" would
|
||
|
both become "longfile.bak"; now they will be "longfile.c~" and "longfile.h~".
|
||
|
|
||
|
If you prefer to use ".bak", you can set the 'backupext' option: >
|
||
|
:set bex=.bak
|
||
|
|
||
|
|
||
|
Structure of swap file changed *swapfile-changed*
|
||
|
------------------------------
|
||
|
|
||
|
The contents of the swap file were extended with several parameters. Vim
|
||
|
stores the user name and other information about the edited file to make
|
||
|
recovery more easy and to be able to know where the swap file comes from. The
|
||
|
first part of the swap file can now be understood on a machine with a
|
||
|
different byte order or sizeof(int). When you try to recover a file on such a
|
||
|
machine, you will get an error message that this is not possible.
|
||
|
|
||
|
Because of this change, swap files cannot be exchanged between 3.0 and 4.0.
|
||
|
If you have a swap file from a crashed session with 3.0, use Vim 3.0 to
|
||
|
recover the file---don't use 4.0. |swap-file|
|
||
|
|
||
|
|
||
|
"-w scriptout" argument changed *scriptout-changed*
|
||
|
-------------------------------
|
||
|
|
||
|
"vim -w scriptout" used to append to the scriptout file. Since this was
|
||
|
illogical, it now creates a new file. An existing file is not overwritten
|
||
|
(to avoid destroying an existing file for those who rely on the appending).
|
||
|
[This was removed again later] |-w|
|
||
|
|
||
|
|
||
|
Backspace and Delete keys *backspace-delete*
|
||
|
-------------------------
|
||
|
|
||
|
In 3.0 both the delete key and the backspace key worked as a backspace in
|
||
|
insert mode; they deleted the character to the left of the cursor. In 4.0 the
|
||
|
delete key has a new function: it deletes the character under the cursor, just
|
||
|
like it does on the command-line. If the cursor is after the end of the line
|
||
|
and 'bs' is set, two lines are joined. |<Del>| |i_<Del>|
|
||
|
|
||
|
In 3.0 the backspace key was always defined as CTRL-H and delete as CTRL-?.
|
||
|
In 4.0 the code for the backspace and delete key is obtained from termcap or
|
||
|
termlib, and adjusted for the "stty erase" value on Unix. This helps people
|
||
|
who define the erase character according to the keyboard they are working on.
|
||
|
|<BS>| |i_<BS>|
|
||
|
|
||
|
If you prefer backspace and delete in Insert mode to have the old behavior,
|
||
|
put this line in your vimrc:
|
||
|
|
||
|
inoremap ^? ^H
|
||
|
|
||
|
And you may also want to add these, to fix the values for <BS> and <Del>:
|
||
|
|
||
|
set t_kb=^H
|
||
|
set t_kD=^?
|
||
|
|
||
|
(Enter ^H with CTRL-V CTRL-H and ^? with CTRL-V CTRL-? or <Del>.)
|
||
|
|
||
|
If the value for t_kb is correct, but the t_kD value is not, use the ":fixdel"
|
||
|
command. It will set t_kD according to the value of t_kb. This is useful if
|
||
|
you are using several different terminals. |:fixdel|
|
||
|
|
||
|
When ^H is not recognized as <BS> or <Del>, it is used like a backspace.
|
||
|
|
||
|
|
||
|
Escape for | changed *escape-bar*
|
||
|
--------------------
|
||
|
|
||
|
When the 'b' flag is present in 'cpoptions', the backslash cannot be used to
|
||
|
escape '|' in mapping and abbreviate commands, only CTRL-V can. This is
|
||
|
Vi-compatible. If you work in Vi-compatible mode and had used "\|" to include
|
||
|
a bar in a mapping, this needs to be replaced by "^V|". See |:bar|.
|
||
|
|
||
|
|
||
|
Key codes changed *key-codes-changed*
|
||
|
-----------------
|
||
|
|
||
|
The internal representation of key codes has changed dramatically. In 3.0 a
|
||
|
one-byte code was used to represent a key. This caused problems with
|
||
|
different characters sets that also used these codes. In 4.0 a three-byte
|
||
|
code is used that cannot be confused with a character. |key-notation|
|
||
|
|
||
|
If you have used the single-byte key codes in your vimrc for mappings, you
|
||
|
will have to replace them with the 4.0 codes. Instead of using the three-byte
|
||
|
code directly, you should use the symbolic representation for this in <>. See
|
||
|
the table below. The table also lists the old name, as it was used in the 3.0
|
||
|
documentation.
|
||
|
|
||
|
The key names in <> can be used in mappings directly. This makes it possible
|
||
|
to copy/paste examples or type them literally. The <> notation has been
|
||
|
introduced for this |<>|. The 'B' and '<' flags must not be present in
|
||
|
'cpoptions' to enable this to work |'cpoptions'|.
|
||
|
|
||
|
old name new name old code old MS-DOS code ~
|
||
|
hex dec hex dec ~
|
||
|
<ESC> <Esc>
|
||
|
<TAB> <Tab>
|
||
|
<LF> <NL> <NewLine> <LineFeed>
|
||
|
<SPACE> <Space>
|
||
|
<NUL> <Nul>
|
||
|
<BELL> <Bell>
|
||
|
<BS> <BS> <BackSpace>
|
||
|
<INSERT> <Insert>
|
||
|
<DEL> <Del> <Delete>
|
||
|
<HOME> <Home>
|
||
|
<END> <End>
|
||
|
<PAGE_UP> <PageUp>
|
||
|
<PAGE_DOWN> <PageDown>
|
||
|
|
||
|
<C_UP> <Up> 0x80 128 0xb0 176
|
||
|
<C_DOWN> <Down> 0x81 129 0xb1 177
|
||
|
<C_LEFT> <Left> 0x82 130 0xb2 178
|
||
|
<C_RIGHT> <Right> 0x83 131 0xb3 179
|
||
|
<SC_UP> <S-Up> 0x84 132 0xb4 180
|
||
|
<SC_DOWN> <S-Down> 0x85 133 0xb5 181
|
||
|
<SC_LEFT> <S-Left> 0x86 134 0xb6 182
|
||
|
<SC_RIGHT> <S-Right> 0x87 135 0xb7 183
|
||
|
|
||
|
<F1> <F1> 0x88 136 0xb8 184
|
||
|
<F2> <F2> 0x89 137 0xb9 185
|
||
|
<F3> <F3> 0x8a 138 0xba 186
|
||
|
<F4> <F4> 0x8b 139 0xbb 187
|
||
|
<F5> <F5> 0x8c 140 0xbc 188
|
||
|
<F6> <F6> 0x8d 141 0xbd 189
|
||
|
<F7> <F7> 0x8e 142 0xbe 190
|
||
|
<F8> <F8> 0x8f 143 0xbf 191
|
||
|
<F9> <F9> 0x90 144 0xc0 192
|
||
|
<F10> <F10> 0x91 145 0xc1 193
|
||
|
|
||
|
<SF1> <S-F1> 0x92 146 0xc2 194
|
||
|
<SF2> <S-F2> 0x93 147 0xc3 195
|
||
|
<SF3> <S-F3> 0x94 148 0xc4 196
|
||
|
<SF4> <S-F4> 0x95 149 0xc5 197
|
||
|
<SF5> <S-F5> 0x96 150 0xc6 198
|
||
|
<SF6> <S-F6> 0x97 151 0xc7 199
|
||
|
<SF7> <S-F7> 0x98 152 0xc8 200
|
||
|
<SF8> <S-F8> 0x99 153 0xc9 201
|
||
|
<SF9> <S-F9> 0x9a 154 0xca 202
|
||
|
<SF10> <S-F10> 0x9b 155 0xcb 203
|
||
|
|
||
|
<HELP> <Help> 0x9c 156 0xcc 204
|
||
|
<UNDO> <Undo> 0x9d 157 0xcd 205
|
||
|
|
||
|
(not used) 0x9e 158 0xce 206
|
||
|
(not used) 0x9f 159 0xcf 207
|
||
|
|
||
|
|
||
|
Terminal options changed *termcap-changed*
|
||
|
------------------------
|
||
|
|
||
|
The names of the terminal options have been changed to match the termcap names
|
||
|
of these options. All terminal options now have the name t_xx, where xx is
|
||
|
the termcap name. Normally these options are not used, unless you have a
|
||
|
termcap entry that is wrong or incomplete, or you have set the highlight
|
||
|
options to a different value. |terminal-options|
|
||
|
|
||
|
Note that for some keys there is no termcap name. Use the <> type of name
|
||
|
instead, which is a good idea anyway.
|
||
|
|
||
|
Note that "t_ti" has become "t_mr" (invert/reverse output) and "t_ts" has
|
||
|
become "t_ti" (init terminal mode). Be careful when you use "t_ti"!
|
||
|
|
||
|
old name new name meaning ~
|
||
|
t_cdl t_DL delete number of lines *t_cdl*
|
||
|
t_ci t_vi cursor invisible *t_ci*
|
||
|
t_cil t_AL insert number of lines *t_cil*
|
||
|
t_cm t_cm move cursor
|
||
|
t_cri t_RI cursor number of chars right *t_cri*
|
||
|
t_cv t_ve cursor visible *t_cv*
|
||
|
t_cvv t_vs cursor very visible *t_cvv*
|
||
|
t_dl t_dl delete line
|
||
|
t_cs t_cs scroll region
|
||
|
t_ed t_cl clear display *t_ed*
|
||
|
t_el t_ce clear line *t_el*
|
||
|
t_il t_al insert line *t_il*
|
||
|
t_da display may be retained above the screen
|
||
|
t_db display may be retained below the screen
|
||
|
t_ke t_ke put terminal out of keypad transmit mode
|
||
|
t_ks t_ks put terminal in keypad transmit mode
|
||
|
t_ms t_ms save to move cursor in highlight mode
|
||
|
t_se t_se normal mode (undo t_so)
|
||
|
t_so t_so shift out (standout) mode
|
||
|
t_ti t_mr reverse highlight
|
||
|
t_tb t_md bold mode *t_tb*
|
||
|
t_tp t_me highlight end *t_tp*
|
||
|
t_sr t_sr scroll reverse
|
||
|
t_te t_te out of termcap mode
|
||
|
t_ts t_ti into termcap mode *t_ts_old*
|
||
|
t_vb t_vb visual bell
|
||
|
t_csc t_CS cursor is relative to scroll region *t_csc*
|
||
|
|
||
|
t_ku t_ku <Up> arrow up
|
||
|
t_kd t_kd <Down> arrow down
|
||
|
t_kr t_kr <Right> arrow right
|
||
|
t_kl t_kl <Left> arrow left
|
||
|
t_sku <S-Up> shifted arrow up *t_sku*
|
||
|
t_skd <S-Down> shifted arrow down *t_skd*
|
||
|
t_skr t_%i <S-Right> shifted arrow right *t_skr*
|
||
|
t_skl t_#4 <S-Left> shifted arrow left *t_skl*
|
||
|
t_f1 t_k1 <F1> function key 1 *t_f1*
|
||
|
t_f2 t_k2 <F2> function key 2 *t_f2*
|
||
|
t_f3 t_k3 <F3> function key 3 *t_f3*
|
||
|
t_f4 t_k4 <F4> function key 4 *t_f4*
|
||
|
t_f5 t_k5 <F5> function key 5 *t_f5*
|
||
|
t_f6 t_k6 <F6> function key 6 *t_f6*
|
||
|
t_f7 t_k7 <F7> function key 7 *t_f7*
|
||
|
t_f8 t_k8 <F8> function key 8 *t_f8*
|
||
|
t_f9 t_k9 <F9> function key 9 *t_f9*
|
||
|
t_f10 t_k; <F10> function key 10 *t_f10*
|
||
|
t_sf1 <S-F1> shifted function key 1 *t_sf1*
|
||
|
t_sf2 <S-F2> shifted function key 2 *t_sf2*
|
||
|
t_sf3 <S-F3> shifted function key 3 *t_sf3*
|
||
|
t_sf4 <S-F4> shifted function key 4 *t_sf4*
|
||
|
t_sf5 <S-F5> shifted function key 5 *t_sf5*
|
||
|
t_sf6 <S-F6> shifted function key 6 *t_sf6*
|
||
|
t_sf7 <S-F7> shifted function key 7 *t_sf7*
|
||
|
t_sf8 <S-F8> shifted function key 8 *t_sf8*
|
||
|
t_sf9 <S-F9> shifted function key 9 *t_sf9*
|
||
|
t_sf10 <S-F10> shifted function key 10 *t_sf10*
|
||
|
t_help t_%1 <Help> help key *t_help*
|
||
|
t_undo t_&8 <Undo> undo key *t_undo*
|
||
|
|
||
|
|
||
|
'errorformat' option changed *errorformat-changed*
|
||
|
----------------------------
|
||
|
|
||
|
'errorformat' can now contain several formats, separated by commas. The first
|
||
|
format that matches is used. The default values have been adjusted to catch
|
||
|
the most common formats. |errorformat|
|
||
|
|
||
|
If you have a format that contains a comma, it needs to be preceded with a
|
||
|
backslash. Type two backslashes, because the ":set" command will eat one.
|
||
|
|
||
|
|
||
|
'graphic' option gone *graphic-option-gone*
|
||
|
---------------------
|
||
|
|
||
|
The 'graphic' option was used to make the characters between <~> and 0xa0
|
||
|
display directly on the screen. Now the 'isprint' option takes care of this
|
||
|
with many more possibilities. The default setting is the same; you only need
|
||
|
to look into this if you previously set the 'graphic' option in your vimrc.
|
||
|
|'isprint'|
|
||
|
|
||
|
|
||
|
'yankendofline' option gone *ye-option-gone*
|
||
|
---------------------------
|
||
|
|
||
|
The 'yankendofline' option has been removed. Instead you can just use
|
||
|
:map Y y$
|
||
|
|
||
|
|
||
|
'icon' and 'title' default value changed *icon-changed*
|
||
|
----------------------------------------
|
||
|
|
||
|
The 'title' option is now only set by default if the original title can be
|
||
|
restored. Avoids "Thanks for flying Vim" titles. If you want them anyway,
|
||
|
put ":set title" in your vimrc. |'title'|
|
||
|
|
||
|
The default for 'icon' now depends on the possibility of restoring the
|
||
|
original value, just like 'title'. If you don't like your icon titles to be
|
||
|
changed, add this line to your vimrc: |'icon'|
|
||
|
:set noicon
|
||
|
|
||
|
|
||
|
'highlight' option changed *highlight-changed*
|
||
|
--------------------------
|
||
|
|
||
|
The 'i' flag now means italic highlighting, instead of invert. The 'r' flag
|
||
|
is used for reverse highlighting, which is what 'i' used to be. Normally you
|
||
|
won't see the difference, because italic mode is not supported on most
|
||
|
terminals and reverse mode is used as a fallback. |'highlight'|
|
||
|
|
||
|
When an occasion is not present in 'highlight', use the mode from the default
|
||
|
value for 'highlight', instead of reverse mode.
|
||
|
|
||
|
|
||
|
'tildeop' and 'weirdinvert' short names changed *short-name-changed*
|
||
|
-----------------------------------------------
|
||
|
|
||
|
Renamed 'to' (abbreviation for 'tildeop') to 'top'. |'tildeop'|
|
||
|
Renamed 'wi' (abbreviation for 'weirdinvert') to 'wiv'. |'weirdinvert'|
|
||
|
|
||
|
This was done because Vi uses 'wi' as the short name for 'window' and 'to' as
|
||
|
the short name for 'timeout'. This means that if you try setting these
|
||
|
options, you won't get an error message, but the effect will be different.
|
||
|
|
||
|
|
||
|
Use of "v", "V" and "CTRL-V" in Visual mode *use-visual-cmds*
|
||
|
-------------------------------------------
|
||
|
|
||
|
In Visual mode, "v", "V", and "CTRL-V" used to end Visual mode. Now this
|
||
|
happens only if the Visual mode was in the corresponding type. Otherwise the
|
||
|
type of Visual mode is changed. Now only ESC can be used in all circumstances
|
||
|
to end Visual mode without doing anything. |v_V|
|
||
|
|
||
|
|
||
|
CTRL-B in Insert mode removed *toggle-revins*
|
||
|
-----------------------------
|
||
|
|
||
|
CTRL-B in Insert mode used to toggle the 'revins' option. If you don't know
|
||
|
this and accidentally hit CTRL-B, it is very difficult to find out how to undo
|
||
|
it. Since hardly anybody uses this feature, it is disabled by default. If
|
||
|
you want to use it, define RIGHTLEFT in feature.h before compiling. |'revins'|
|
||
|
|
||
|
vim:tw=78:ts=8:ft=help:norl:
|