Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
version4.txt356 linesDownload Raw Back to doc
1*version4.txt*	For Vim version 9.2.  Last change: 2026 Feb 142 3 4		  VIM REFERENCE MANUAL	  by Bram Moolenaar5 6 7This document lists the incompatible differences between Vim 3.0 and Vim 4.0.8Although 4.0 is mentioned here, this is also for version 4.1, 4.2, etc..9 10This file is important for everybody upgrading from Vim 3.0.  Read it11carefully to avoid unexpected problems.12 13'backup' option default changed			|backup-changed|14Extension for backup file changed		|backup-extension|15Structure of swap file changed			|swapfile-changed|16"-w scriptout" argument changed			|scriptout-changed|17Backspace and Delete keys			|backspace-delete|18Escape for | changed				|escape-bar|19Key codes changed				|key-codes-changed|20Terminal options changed			|termcap-changed|21'errorformat' option changed			|errorformat-changed|22'graphic' option gone				|graphic-option-gone|23'yankendofline' option gone			|ye-option-gone|24'icon' and 'title' default value changed	|icon-changed|25'highlight' option changed			|highlight-changed|26'tildeop' and 'weirdinvert' short names changed	|short-name-changed|27Use of "v", "V" and "CTRL-V" in Visual mode	|use-visual-cmds|28CTRL-B in Insert mode removed			|toggle-revins|29 30 31'backup' option default changed				*backup-changed*32-------------------------------33 34The default value for 'backup' used to be on.  This resulted in a backup file35being made when the original file was overwritten.36 37Now the default for 'backup' is off.  As soon as the writing of the file has38successfully finished, the backup file is deleted.  If you want to keep the39backup file, set 'backup' on in your vimrc.  The reason for this change is40that many people complained that leaving a backup file behind is not41Vi-compatible.						'backup'42 43 44Extension for backup file changed			*backup-extension*45---------------------------------46 47The extension for the backup file used to be ".bak".  Since other programs48also use this extension and some users make copies with this extension, it was49changed to the less obvious "~".  Another advantage is that this takes less50space, which is useful when working on a system with short file names.  For51example, on MS-DOS the backup files for "longfile.c" and "longfile.h" would52both become "longfile.bak"; now they will be "longfile.c~" and "longfile.h~".53 54If you prefer to use ".bak", you can set the 'backupext' option: >55	:set bex=.bak56 57 58Structure of swap file changed				*swapfile-changed*59------------------------------60 61The contents of the swap file were extended with several parameters.  Vim62stores the user name and other information about the edited file to make63recovery more easy and to be able to know where the swap file comes from.  The64first part of the swap file can now be understood on a machine with a65different byte order or sizeof(int).  When you try to recover a file on such a66machine, you will get an error message that this is not possible.67 68Because of this change, swap files cannot be exchanged between 3.0 and 4.0.69If you have a swap file from a crashed session with 3.0, use Vim 3.0 to70recover the file---don't use 4.0.			|swap-file|71 72 73"-w scriptout" argument changed				*scriptout-changed*74-------------------------------75 76"vim -w scriptout" used to append to the scriptout file.  Since this was77illogical, it now creates a new file.  An existing file is not overwritten78(to avoid destroying an existing file for those who rely on the appending).79[This was removed again later]					|-w|80 81 82Backspace and Delete keys				*backspace-delete*83-------------------------84 85In 3.0 both the delete key and the backspace key worked as a backspace in86insert mode; they deleted the character to the left of the cursor.  In 4.0 the87delete key has a new function: it deletes the character under the cursor, just88like it does on the command-line.  If the cursor is after the end of the line89and 'bs' is set, two lines are joined.			|<Del>| |i_<Del>|90 91In 3.0 the backspace key was always defined as CTRL-H and delete as CTRL-?.92In 4.0 the code for the backspace and delete key is obtained from termcap or93termlib, and adjusted for the "stty erase" value on Unix.  This helps people94who define the erase character according to the keyboard they are working on.95							|<BS>| |i_<BS>|96 97If you prefer backspace and delete in Insert mode to have the old behavior,98put this line in your vimrc:99 100	inoremap ^? ^H101 102And you may also want to add these, to fix the values for <BS> and <Del>:103 104	set t_kb=^H105	set t_kD=^?106 107(Enter ^H with CTRL-V CTRL-H and ^? with CTRL-V CTRL-? or <Del>.)108 109If the value for t_kb is correct, but the t_kD value is not, use the ":fixdel"110command.  It will set t_kD according to the value of t_kb.  This is useful if111you are using several different terminals.		|:fixdel|112 113When ^H is not recognized as <BS> or <Del>, it is used like a backspace.114 115 116Escape for | changed					*escape-bar*117--------------------118 119When the 'b' flag is present in 'cpoptions', the backslash cannot be used to120escape '|' in mapping and abbreviate commands, only CTRL-V can.  This is121Vi-compatible.  If you work in Vi-compatible mode and had used "\|" to include122a bar in a mapping, this needs to be replaced by "^V|".  See |:bar|.123 124 125Key codes changed					*key-codes-changed*126-----------------127 128The internal representation of key codes has changed dramatically.  In 3.0 a129one-byte code was used to represent a key.  This caused problems with130different characters sets that also used these codes.  In 4.0 a three-byte131code is used that cannot be confused with a character.		|key-notation|132 133If you have used the single-byte key codes in your vimrc for mappings, you134will have to replace them with the 4.0 codes.  Instead of using the three-byte135code directly, you should use the symbolic representation for this in <>.  See136the table below.  The table also lists the old name, as it was used in the 3.0137documentation.138 139The key names in <> can be used in mappings directly.  This makes it possible140to copy/paste examples or type them literally.  The <> notation has been141introduced for this |<>|.  The 'B' and '<' flags must not be present in142'cpoptions' to enable this to work 'cpoptions'.143 144old name	new name	  old code	old MS-DOS code	~145				hex	dec	hex	dec	~146<ESC>		<Esc>147<TAB>		<Tab>148<LF>		<NL> <NewLine> <LineFeed>149<SPACE>		<Space>150<NUL>		<Nul>151<BELL>		<Bell>152<BS>		<BS> <BackSpace>153<INSERT>	<Insert>154<DEL>		<Del> <Delete>155<HOME>		<Home>156<END>		<End>157<PAGE_UP>	<PageUp>158<PAGE_DOWN>	<PageDown>159 160<C_UP>		<Up>		0x80	128	0xb0	176161<C_DOWN>	<Down>		0x81	129     0xb1	177162<C_LEFT>	<Left>		0x82	130     0xb2	178163<C_RIGHT>	<Right>		0x83	131     0xb3	179164<SC_UP>		<S-Up>		0x84	132     0xb4	180165<SC_DOWN>	<S-Down>	0x85	133     0xb5	181166<SC_LEFT>	<S-Left>	0x86	134     0xb6	182167<SC_RIGHT>	<S-Right>	0x87	135     0xb7	183168 169<F1>		<F1>		0x88	136     0xb8	184170<F2>		<F2>		0x89	137     0xb9	185171<F3>		<F3>		0x8a	138     0xba	186172<F4>		<F4>		0x8b	139     0xbb	187173<F5>		<F5>		0x8c	140     0xbc	188174<F6>		<F6>		0x8d	141     0xbd	189175<F7>		<F7>		0x8e	142     0xbe	190176<F8>		<F8>		0x8f	143     0xbf	191177<F9>		<F9>		0x90	144     0xc0	192178<F10>		<F10>		0x91	145     0xc1	193179 180<SF1>		<S-F1>		0x92	146     0xc2	194181<SF2>		<S-F2>		0x93	147     0xc3	195182<SF3>		<S-F3>		0x94	148     0xc4	196183<SF4>		<S-F4>		0x95	149     0xc5	197184<SF5>		<S-F5>		0x96	150     0xc6	198185<SF6>		<S-F6>		0x97	151     0xc7	199186<SF7>		<S-F7>		0x98	152     0xc8	200187<SF8>		<S-F8>		0x99	153     0xc9	201188<SF9>		<S-F9>		0x9a	154     0xca	202189<SF10>		<S-F10>		0x9b	155     0xcb	203190 191<HELP>		<Help>		0x9c	156     0xcc	204192<UNDO>		<Undo>		0x9d	157     0xcd	205193 194		(not used)	0x9e	158     0xce	206195		(not used)	0x9f	159     0xcf	207196 197 198Terminal options changed				*termcap-changed*199------------------------200 201The names of the terminal options have been changed to match the termcap names202of these options.  All terminal options now have the name t_xx, where xx is203the termcap name.  Normally these options are not used, unless you have a204termcap entry that is wrong or incomplete, or you have set the highlight205options to a different value.				|terminal-options|206 207Note that for some keys there is no termcap name.  Use the <> type of name208instead, which is a good idea anyway.209 210Note that "t_ti" has become "t_mr" (invert/reverse output) and "t_ts" has211become "t_ti" (init terminal mode).  Be careful when you use "t_ti"!212 213old name	new name	meaning		~214t_cdl		t_DL		delete number of lines		*t_cdl*215t_ci		t_vi		cursor invisible		*t_ci*216t_cil		t_AL		insert number of lines		*t_cil*217t_cm		t_cm		move cursor218t_cri		t_RI		cursor number of chars right	*t_cri*219t_cv		t_ve		cursor visible			*t_cv*220t_cvv		t_vs		cursor very visible		*t_cvv*221t_dl		t_dl		delete line222t_cs		t_cs		scroll region223t_ed		t_cl		clear display			*t_ed*224t_el		t_ce		clear line			*t_el*225t_il		t_al		insert line			*t_il*226		t_da		display may be retained above the screen227		t_db		display may be retained below the screen228t_ke		t_ke		put terminal out of keypad transmit mode229t_ks		t_ks		put terminal in keypad transmit mode230t_ms		t_ms		save to move cursor in highlight mode231t_se		t_se		normal mode (undo t_so)232t_so		t_so		shift out (standout) mode233t_ti		t_mr		reverse highlight234t_tb		t_md		bold mode			*t_tb*235t_tp		t_me		highlight end			*t_tp*236t_sr		t_sr		scroll reverse237t_te		t_te		out of termcap mode238t_ts		t_ti		into termcap mode		*t_ts_old*239t_vb		t_vb		visual bell240t_csc		t_CS		cursor is relative to scroll region *t_csc*241 242t_ku	t_ku	<Up>		arrow up243t_kd	t_kd	<Down>		arrow down244t_kr	t_kr	<Right>		arrow right245t_kl	t_kl	<Left>		arrow left246t_sku		<S-Up>		shifted arrow up		*t_sku*247t_skd		<S-Down>	shifted arrow down		*t_skd*248t_skr	t_%i	<S-Right>	shifted arrow right		*t_skr*249t_skl	t_#4	<S-Left>	shifted arrow left		*t_skl*250t_f1	t_k1	<F1>		function key 1			*t_f1*251t_f2	t_k2	<F2>		function key 2			*t_f2*252t_f3	t_k3	<F3>		function key 3			*t_f3*253t_f4	t_k4	<F4>		function key 4			*t_f4*254t_f5	t_k5	<F5>		function key 5			*t_f5*255t_f6	t_k6	<F6>		function key 6			*t_f6*256t_f7	t_k7	<F7>		function key 7			*t_f7*257t_f8	t_k8	<F8>		function key 8			*t_f8*258t_f9	t_k9	<F9>		function key 9			*t_f9*259t_f10	t_k;	<F10>		function key 10			*t_f10*260t_sf1		<S-F1>		shifted function key 1		*t_sf1*261t_sf2		<S-F2>		shifted function key 2		*t_sf2*262t_sf3		<S-F3>		shifted function key 3		*t_sf3*263t_sf4		<S-F4>		shifted function key 4		*t_sf4*264t_sf5		<S-F5>		shifted function key 5		*t_sf5*265t_sf6		<S-F6>		shifted function key 6		*t_sf6*266t_sf7		<S-F7>		shifted function key 7		*t_sf7*267t_sf8		<S-F8>		shifted function key 8		*t_sf8*268t_sf9		<S-F9>		shifted function key 9		*t_sf9*269t_sf10		<S-F10>		shifted function key 10		*t_sf10*270t_help	t_%1	<Help>		help key			*t_help*271t_undo	t_&8	<Undo>		undo key			*t_undo*272 273 274'errorformat' option changed				*errorformat-changed*275----------------------------276 277'errorformat' can now contain several formats, separated by commas.  The first278format that matches is used.  The default values have been adjusted to catch279the most common formats.				|errorformat|280 281If you have a format that contains a comma, it needs to be preceded with a282backslash.  Type two backslashes, because the ":set" command will eat one.283 284 285'graphic' option gone					*graphic-option-gone*286---------------------287 288The 'graphic' option was used to make the characters between <~> and 0xa0289display directly on the screen.  Now the 'isprint' option takes care of this290with many more possibilities.  The default setting is the same; you only need291to look into this if you previously set the 'graphic' option in your vimrc.292							'isprint'293 294 295'yankendofline' option gone				*ye-option-gone*296---------------------------297 298The 'yankendofline' option has been removed.  Instead you can just use299	:map Y y$300 301 302'icon' and 'title' default value changed		*icon-changed*303----------------------------------------304 305The 'title' option is now only set by default if the original title can be306restored.  Avoids "Thanks for flying Vim" titles.  If you want them anyway,307put ":set title" in your vimrc.				'title'308 309The default for 'icon' now depends on the possibility of restoring the310original value, just like 'title'.  If you don't like your icon titles to be311changed, add this line to your vimrc:			'icon'312	:set noicon313 314 315'highlight' option changed				*highlight-changed*316--------------------------317 318The 'i' flag now means italic highlighting, instead of invert.  The 'r' flag319is used for reverse highlighting, which is what 'i' used to be.  Normally you320won't see the difference, because italic mode is not supported on most321terminals and reverse mode is used as a fallback.	'highlight'322 323When an occasion is not present in 'highlight', use the mode from the default324value for 'highlight', instead of reverse mode.325 326 327'tildeop' and 'weirdinvert' short names changed		*short-name-changed*328-----------------------------------------------329 330Renamed 'to' (abbreviation for 'tildeop') to 'top'.	'tildeop'331Renamed 'wi' (abbreviation for 'weirdinvert') to 'wiv'.	'weirdinvert'332 333This was done because Vi uses 'wi' as the short name for 'window' and 'to' as334the short name for 'timeout'.  This means that if you try setting these335options, you won't get an error message, but the effect will be different.336 337 338Use of "v", "V" and "CTRL-V" in Visual mode		*use-visual-cmds*339-------------------------------------------340 341In Visual mode, "v", "V", and "CTRL-V" used to end Visual mode.  Now this342happens only if the Visual mode was in the corresponding type.  Otherwise the343type of Visual mode is changed.  Now only ESC can be used in all circumstances344to end Visual mode without doing anything.		|v_V|345 346 347CTRL-B in Insert mode removed				*toggle-revins*348-----------------------------349 350CTRL-B in Insert mode used to toggle the 'revins' option.  If you don't know351this and accidentally hit CTRL-B, it is very difficult to find out how to undo352it.  Since hardly anybody uses this feature, it is disabled by default.  If353you want to use it, define RIGHTLEFT in feature.h before compiling. 'revins'354 355 vim:tw=78:ts=8:noet:ft=help:norl:356 
codekingpro/portable-devtools · Team Ai