Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
version6.txt14531 linesDownload Raw Back to doc
1*version6.txt*	For Vim version 9.2.  Last change: 2026 Feb 142 3 4		  VIM REFERENCE MANUAL	  by Bram Moolenaar5 6 7Welcome to Vim Version 6.0!  A large number of features has been added.  This8file mentions all the new items that have been added, changes to existing9features and bug fixes compared to Vim 5.x.10 11See |vi_diff.txt| for an overview of differences between Vi and Vim 6.0.12See |version4.txt| for differences between Vim 3.0 and Vim 4.0.13See |version5.txt| for differences between Vim 4.0 and Vim 5.0.14 15INCOMPATIBLE CHANGES			|incompatible-6|16 17Cursor position in Visual mode		|curpos-visual|18substitute command Vi compatible	|substitute-CR|19global option values introduced		|new-global-values|20'fileencoding' changed			|fileencoding-changed|21Digraphs changed			|digraphs-changed|22Filetype detection changed		|filetypedetect-changed|23Unlisted buffers introduced		|new-unlisted-buffers|24CTRL-U in Command-line mode changed	|CTRL-U-changed|25Ctags gone				|ctags-gone|26Documentation reorganized		|documentation-6|27Modeless selection and clipboard	|modeless-and-clipboard|28Small incompatibilities			|incomp-small-6|29 30NEW FEATURES				|new-6|31 32Folding					|new-folding|33Vertically split windows		|new-vertsplit|34Diff mode				|new-diff-mode|35Easy Vim: click-and-type		|new-evim|36User manual				|new-user-manual|37Flexible indenting			|new-indent-flex|38Extended search patterns		|new-searchpat|39UTF-8 support				|new-utf-8|40Multi-language support			|new-multi-lang|41Plugin support				|new-plugins|42Filetype plugins			|new-filetype-plugins|43File browser				|new-file-browser|44Editing files over a network		|new-network-files|45Window for command-line editing		|new-cmdwin|46Debugging mode				|new-debug-mode|47Cursor in virtual position		|new-virtedit|48Debugger interface			|new-debug-itf|49Communication between Vims		|new-vim-server|50Buffer type options			|new-buftype|51Printing				|new-printing|52Ports					|ports-6|53Quickfix extended			|quickfix-6|54Operator modifiers			|new-operator-mod|55Search Path				|new-search-path|56Writing files improved			|new-file-writing|57Argument list				|new-argument-list|58Restore a View				|new-View|59Color schemes				|new-color-schemes|60Various new items			|new-items-6|61 62IMPROVEMENTS				|improvements-6|63 64COMPILE TIME CHANGES			|compile-changes-6|65 66BUG FIXES				|bug-fixes-6|67 68VERSION 6.1			|version-6.1|69Changed					|changed-6.1|70Added					|added-6.1|71Fixed					|fixed-6.1|72 73VERSION 6.2			|version-6.2|74Changed					|changed-6.2|75Added					|added-6.2|76Fixed					|fixed-6.2|77 78VERSION 6.3			|version-6.3|79Changed					|changed-6.3|80Added					|added-6.3|81Fixed					|fixed-6.3|82 83VERSION 6.4			|version-6.4|84Changed					|changed-6.4|85Added					|added-6.4|86Fixed					|fixed-6.4|87 88==============================================================================89INCOMPATIBLE CHANGES				*incompatible-6*90 91These changes are incompatible with previous releases.  Check this list if you92run into a problem when upgrading from Vim 5.x to 6.093 94 95Cursor position in Visual mode			*curpos-visual*96------------------------------97 98When going from one window to another window on the same buffer while in99Visual mode, the cursor position of the other window is adjusted to keep the100same Visual area.  This can be used to set the start of the Visual area in one101window and the end in another.  In vim 5.x the cursor position of the other102window would be used, which could be anywhere and was not very useful.103 104 105Substitute command Vi compatible		*substitute-CR*106--------------------------------107 108The substitute string (the "to" part of the substitute command) has been made109Vi compatible.  Previously a CTRL-V had a special meaning and could be used to110prevent a <CR> to insert a line break.  This made it impossible to insert a111CTRL-V before a line break.  Now a backslash is used to prevent a <CR> to112cause a line break.  Since the number of backslashes is halved, it is still113possible to insert a line break at the end of the line.  This now works just114like Vi, but it's not compatible with Vim versions before 6.0.115 116When a ":s" command doesn't make any substitutions, it no longer sets the '[117and '] marks.  This is not related to Vi, since it doesn't have these marks.118 119 120Global option values introduced			*new-global-values*121-------------------------------122 123There are now global values for options which are local to a buffer or window.124Previously the local options were copied from one buffer to another.  When125editing another file this could cause option values from a modeline to be used126for the wrong file.  Now the global values are used when entering a buffer127that has not been used before.  Also, when editing another buffer in a window,128the local window options are reset to their global values.  The ":set" command129sets both the local and global values, this is still compatible.  But a130modeline only sets the local value, this is not backwards compatible.131 132":let &opt = val" now sets the local and global values, like ":set".  New133commands have been added to set the global or local value:134	:let &opt = val		like ":set"135	:let &g:opt = val	like ":setglobal"136	:let &l:opt = val	like ":setlocal"137 138 139'fileencoding' changed				*fileencoding-changed*140----------------------141 142'fileencoding' was used in Vim 5.x to set the encoding used inside all of Vim.143This was a bit strange, because it was local to a buffer and worked for all144buffers.  It could never be different between buffers, because it changed the145way text in all buffers was interpreted.146It is now used for the encoding of the file related to the buffer.  If you147still set 'fileencoding' it is likely to be overwritten by the detected148encoding from 'fileencodings', thus it is "mostly harmless".149The old FileEncoding autocommand now does the same as the new EncodingChanged150event.151 152 153Digraphs changed				*digraphs-changed*154----------------155 156The default digraphs now correspond to RFC1345.  This is very different from157what was used in Vim 5.x. |digraphs|158 159 160Filetype detection changed			*filetypedetect-changed*161--------------------------162 163The filetype detection previously was using the "filetype" autocommand group.164This caused confusion with the FileType event name (case is ignored).  The165group is now called "filetypedetect".  It still works, but if the "filetype"166group is used the autocommands will not be removed by ":filetype off".167   The support for 'runtimepath' has made the "myfiletypefile" and168"mysyntaxfile" mechanism obsolete.  They are still used for backwards169compatibility.170 171The connection between the FileType event and setting the 'syntax' option was172previously in the "syntax" autocommand group.  That caused confusion with the173Syntax event name.  The group is now called "syntaxset".174 175The distributed syntax files no longer contain "syntax clear".  That makes it176possible to include one in the other without tricks.  The syntax is now177cleared when the 'syntax' option is set (by an autocommand added from178synload.vim).  This makes the syntax cleared when the value of 'syntax' does179not correspond to a syntax file.  Previously the existing highlighting was180kept.181 182 183Unlisted buffers introduced			*new-unlisted-buffers*184---------------------------185 186There is now a difference between buffers which don't appear in the buffer187list and buffers which are really not in the buffer list.  Commands like188":ls", ":bnext", ":blast" and the Buffers menu will skip buffers not in the189buffer list. |unlisted-buffer|190The 'buflisted' option can be used to make a buffer appear in the buffer list191or not.192 193Several commands that previously added a buffer to the buffer list now create194an unlisted buffer.  This means that a ":bnext" and ":ball" will not find these195files until they have actually been edited.  For example, buffers used for the196alternative file by ":write file" and ":read file".197   Other commands previously completely deleted a buffer and now only remove198the buffer from the buffer list.  Commands relying on a buffer not to be199present might fail.  For example, a ":bdelete" command in an autocommand that200relied on something following to fail (was used in the automatic tests).201|:bwipeout| can be used for the old meaning of ":bdelete".202 203The BufDelete autocommand event is now triggered when a buffer is removed from204the buffer list.  The BufCreate event is only triggered when a buffer is205created that is added to the buffer list, or when an existing buffer is added206to the buffer list.  BufAdd is a new name for BufCreate.207The new BufNew event is for creating any buffer and BufWipeout for really208deleting a buffer.209 210When doing Insert mode completion, only buffers in the buffer list are211scanned.  Added the 'U' flag to 'complete' to do completion from unlisted212buffers.213 214Unlisted buffers are not stored in a viminfo file.215 216 217CTRL-U in Command-line mode changed		*CTRL-U-changed*218-----------------------------------219 220Using CTRL-U when editing the command line cleared the whole line.  Most221shells only delete the characters before the cursor.  Made it work like that.222(Steve Wall)223 224You can get the old behavior with CTRL-E CTRL-U: >225	:cnoremap <C-U> <C-E><C-U>226 227 228Ctags gone					*ctags-gone*229----------230 231Ctags is no longer part of the Vim distribution.  It's now a grown-up program232by itself, it deserves to be distributed separately.233Ctags can be found here: http://ctags.sf.net/.234 235 236Documentation reorganized			*documentation-6*237-------------------------238 239The documentation has been reorganized, an item may not be where you found it240in Vim 5.x.241- The user manual was added, some items have been moved to it from the242  reference manual.243- The quick reference is now in a separate file (so that it can be printed).244 245The examples in the documentation were previously marked with a ">" in the246first column.  This made it difficult to copy/paste them.  There is now a247single ">" before the example and it ends at a "<" or a non-blank in the first248column.  This also looks better without highlighting.249 250'helpfile' is no longer used to find the help tags file.  This allows a user251to add its own help files (e.g., for plugins).252 253 254Modeless selection and clipboard		*modeless-and-clipboard*255--------------------------------256 257The modeless selection is used to select text when Visual mode can't be used,258for example when editing the command line or at the more prompt.259In Vim 5.x the modeless selection was always used.  On MS-Windows this caused260the clipboard to be overwritten, with no way to avoid that.  The modeless261selection now obeys the 'a' and 'A' flags in 'guioptions' and "autoselect" and262"autoselectml" in 'clipboard'.  By default there is no automatic copy on263MS-Windows.  Use the |c_CTRL-Y| command to manually copy the selection.264 265To get the old behavior back, do this: >266 267	:set clipboard^=autoselectml guioptions+=A268 269 270Small incompatibilities				*incomp-small-6*271-----------------------272 273'backupdir', 'cdpath', 'directory', 'equalprg', 'errorfile', 'formatprg',274'grepprg', 'helpfile', 'makeef', 'makeprg', 'keywordprg', 'cscopeprg',275'viminfo' and 'runtimepath' can no longer be set from a modeline, for better276security.277 278Removed '_' from the 'breakat' default: It's commonly used in keywords.279 280The default for 'mousehide' is on, because this works well for most people.281 282The Amiga binary is now always compiled with "big" features.  The "big" binary283archive no longer exists.284 285The items "[RO]", "[+]", "[help]", "[Preview]" and "[filetype]" in286'statusline' no longer have a leading space.287 288Non-Unix systems: When expanding wildcards for the Vim arguments, don't use289'suffixes'.  It now works as if the shell had expanded the arguments.290 291The 'lisp', 'smartindent' and 'cindent' options are not switched off when292'paste' is set.  The auto-indenting is disabled when 'paste' is set, but293manual indenting with "=" still works.294 295When formatting with "=" uses 'cindent' or 'indentexpr' indenting, and there296is no change in indent, this is not counted as a change ('modified' isn't set297and there is nothing to undo).298 299Report 'modified' as changed when 'fileencoding' or 'fileformat' was set.300Thus it reflects the possibility to abandon the buffer without losing changes.301 302The "Save As" menu entry now edits the saved file.  Most people expect it to303work like this.304 305A buffer for a directory is no longer added to the Buffers menu.306 307Renamed <Return> to <Enter>, since that's what it's called on most keyboards.308Thus it's now the hit-enter prompt instead of the hit-return prompt.309Can map <Enter> just like <CR> or <Return>.310 311The default for the 'viminfo' option is now '20,"50,h when 'compatible' isn't312set.  Most people will want to use it, including beginners, but it required313setting the option, which isn't that easy.314 315After using ":colder" the newer error lists are overwritten.  This makes it316possible to use ":grep" to browse in a tree-like way.  Must use ":cnewer 99"317to get the old behavior.318 319The patterns in 'errorformat' would sometimes ignore case (MS-Windows) and320sometimes not (Unix).  Now case is always ignored.  Add "\C" to the pattern to321match case.322 323The 16 bit MS-DOS version is now compiled without the +listcmds feature324(buffer list manipulation commands).  They are not often needed and this325executable needs to be smaller.326 327'sessionoptions' now includes "curdir" by default.  This means that restoring328a session will result in the current directory being restored, instead of329going to the directory where the session file is located.330 331A session deleted all buffers, deleting all marks.  Now keep the buffer list,332it shouldn't hurt for some existing buffers to remain present.333When the argument list is empty ":argdel *" caused an error message.334 335No longer put the search pattern from a tag jump in the history.336 337Use "SpecialKey" highlighting for unprintable characters instead of "NonText".338The idea is that unprintable text or any text that's displayed differently339from the characters in the file is using "SpecialKey", and "NonText" is used340for text that doesn't really exist in the file.341 342Motif now uses the system default colors for the menu and scrollbar.  Used to343be grey.  It's still possible to set the colors with ":highlight" commands and344resources.345 346Formatting text with "gq" breaks a paragraph at a non-empty blank line.347Previously the line would be removed, which wasn't very useful.348 349":normal" does no longer hang when the argument ends in half a command.350Previously Vim would wait for more characters to be typed, without updating351the screen.  Now it pretends an <Esc> was typed.352 353Bitmaps for the toolbar are no longer searched for in "$VIM/bitmaps" but in354the "bitmaps" directories in 'runtimepath'.355 356Now use the Cmdline-mode menus for the hit-enter prompt instead of the Normal357mode menus.  This generally works better and allows using the "Copy" menu to358produce CTRL-Y to copy the modeless selection.359 360Moved the font selection from the Window to the Edit menu, together with the361other settings.362 363The default values for 'isfname' include more characters to make "gf" work364better.365 366Changed the license for the documentation to the Open Publication License.367This seemed fair, considering the inclusion of parts of the Vim book, which is368also published under the OPL.  The downside is that we can't force someone who369would sell copies of the manual to contribute to Uganda.370 371After  "ayy  don't let  ""yy  or  :let @" = val  overwrite the "a register.372Use the unnamed register instead.373 374MSDOS: A pattern "*.*" previously also matched a file name without a dot.375This was inconsistent with other versions.376 377In Insert mode, CTRL-O CTRL-\ CTRL-N {cmd} remains in Normal mode.  Previously378it would go back to Insert mode, thus confusing the meaning of CTRL-\ CTRL-N,379which is supposed to take us to Normal mode (especially in ":amenu").380 381Allow using ":" commands after an operator.  Could be used to implement a new382movement command.  Thus it no longer aborts a pending operator.383 384For the Amiga the "-d {device}" argument was possible.  When compiled with the385diff feature, this no longer works.  Use "-dev {device}" instead. |-dev|386 387Made the default mappings for <S-Insert> in Insert mode insert the text388literally, avoids that special characters like BS cause side effects.389 390Using ":confirm" applied to the rest of the line.  Now it applies only to the391command right after it.  Thus ":confirm if x | edit | endif" no longer works,392use ":if x | confirm edit | endif".  This was the original intention, that it393worked differently was a bug.394 395==============================================================================396NEW FEATURES						*new-6*397 398Folding							*new-folding*399-------400 401Vim can now display a buffer with text folded.  This allows overviewing the402structure of a file quickly.  It is also possible to yank, delete and put403folded text, for example to move a function to another position.404 405There is a whole bunch of new commands and options related to folding.406See |folding|.407 408 409Vertically split windows				*new-vertsplit*410------------------------411 412Windows can also be split vertically.  This makes it possible to have windows413side by side.  One nice use for this is to compare two similar files (see414|new-diff-mode|).  The 'scrollbind' option can be used to synchronize415scrolling.416 417A vertical split can be created with the commands:418	:vsplit	  or  CTRL-W v  or CTRL-W CTRL-V	|:vsplit|419	:vnew						|:vnew|420	:vertical {cmd}					|:vertical|421The last one is a modifier, which has a meaning for any command that splits a422window.  For example: >423	:vertical stag main424Will vertically split the window and jump to the tag "main" in the new window.425 426Moving from window to window horizontally can be done with the |CTRL-W_h| and427|CTRL-W_l| commands.  The |CTRL-W_k| and |CTRL-W_j| commands have been changed428to jump to the window above or below the cursor position.429 430The vertical and horizontal splits can be mixed as you like.  Resizing windows431is easy when using the mouse, just position the pointer on a status line or432vertical separator and drag it.  In the GUI a special mouse pointer shape433indicates where you can drag a status or separator line.434 435To resize vertically split windows use the |CTRL-W_<| and |CTRL-W_>| commands.436To make a window the maximum width use the CTRL-W | command |CTRL-W_bar|.437 438To force a new window to use the full width or height of the Vim window,439these two modifiers are available:440	:topleft {cmd}		New window appears at the top with full441				width or at the left with full height.442	:botright {cmd}		New window appears at the bottom with full443				width or at the right with full height.444This can be combined with ":vertical" to force a vertical split: >445	:vert bot dsplit DEBUG446This will open a window at the far right, occupying the full height of the Vim447window, with the cursor on the first definition of "DEBUG".448The help window is opened at the top, like ":topleft" was used, if the current449window is fewer than 80 characters wide.450 451A few options can be used to set the preferences for vertically split windows.452They work similarly to their existing horizontal equivalents:453	horizontal	vertical ~454	'splitbelow'	'splitright'455	'winheight'	'winwidth'456	'winminheight'	'winminwidth'457It's possible to set 'winminwidth' to zero, so that temporarily unused windows458hardly take up space without closing them.459 460The new 'eadirection' option tells where 'equalalways' applies:461	:set eadirection=both		both directions462	:set eadirection=ver		equalize window heights463	:set eadirection=hor		equalize windows widths464This can be used to avoid changing window sizes when you want to keep them.465 466Since windows can become quite narrow with vertical splits, text lines will467often not fit.  The 'sidescrolloff' has been added to keep some context left468and right of the cursor.  The 'listchars' option has been extended with the469"precedes" item, to show a "<" for example, when there is text left off the470screen. (Utz-Uwe Haus)471 472"-O" command line argument: Like "-o" but split windows vertically. (Scott473Urban)474 475Added commands to move the current window to the very top (CTRL-W K), bottom476(CTRL-W J), left (CTRL-W H) and right (CTRL-W L).  In the new position the477window uses the full width/height of the screen.478 479When there is not enough room in the status line for both the file name and480the ruler, use up to half the width for the ruler.  Useful for narrow windows.481 482 483Diff mode						*new-diff-mode*484---------485 486In diff mode Vim shows the differences between two, three or four files.487Folding is used to hide the parts of the file that are equal.488Highlighting is used to show deleted and changed lines.489See |diff-mode|.490 491An easy way to start in diff mode is to start Vim as "vimdiff file1 file2".492Added the vimdiff manpage.493 494In a running Vim the |:diffsplit| command starts diff mode for the current495file and another file.  The |:diffpatch| command starts diff mode using the496current file and a patch file.  The |:diffthis| command starts diff mode for497the current window.498 499Differences can be removed with the |:diffget| and |:diffput| commands.500 501- The 'diff' option switches diff mode on in a window.502- The |:diffupdate| command refreshes the diffs.503- The 'diffopt' option changes how diffs are displayed.504- The 'diffexpr' option can be set how a diff is to be created.505- The 'patchexpr' option can be set how patch is applied to a file.506- Added the "diff" folding method.  When opening a window for diff-mode, set507  'foldlevel' to zero and 'foldenable' on, to close the folds.508- Added the DiffAdd, DiffChange, DiffDelete and DiffText highlight groups to509  specify the highlighting for differences.  The defaults are ugly...510- Unix: make a vimdiff symbolic link for "make install".511- Removed the now obsolete "vimdiff.vim" script from the distribution.512- Added the "[c" and "]c" commands to move to the next/previous change in diff513  mode.514 515 516Easy Vim: click-and-type				*new-evim*517------------------------518 519eVim stands for "Easy Vim".  This is a separate program, but can also be520started as "vim -y".521 522This starts Vim with 'insertmode' set to allow click-and-type editing.  The523$VIMRUNTIME/evim.vim script is used to add mappings and set options to be able524to do most things like Notepad.  This is only for people who can't stand two525modes.526 527eView does the same but in readonly mode.528 529In the GUI a CTRL-C now only interrupts when busy with something, not when530waiting for a character.  Allows using CTRL-C to copy text to the clipboard.531 532 533User manual						*new-user-manual*534-----------535 536The user manual has been added.  It is organised around editing tasks.  It537reads like a book, from start to end.  It should allow beginners to start538learning Vim.  It helps everybody to learn using the most useful Vim features.539It is much easier to read than the reference manual, but omits details.  See540|user-manual|.541 542The user manual includes parts of the Vim book by Steve Oualline |frombook|.543It is published under the OPL |manual-copyright|.544 545When syntax highlighting is not enabled, the characters in the help file which546mark examples ('>' and '<') and header lines ('~') are replaced with a space.547 548When closing the help window, the window layout is restored from before549opening it, if the window layout didn't change since then.550When opening the help window, put it at the top of the Vim window if the551current window is fewer than 80 characters and not full width.552 553 554Flexible indenting					*new-indent-flex*555------------------556 557Automatic indenting is now possible for any language.  It works with a Vim558script, which makes it very flexible to compute the indent.559 560The ":filetype indent on" command enables using the provided indent scripts.561This is explained in the user manual: |30.3|.562 563The 'indentexpr' option is evaluated to get the indent for a line.  The564'indentkeys' option tells when to trigger re-indenting.  Normally these565options are set from an indent script.  Like Syntax files, indent scripts will566be created and maintained by many people.567 568 569Extended search patterns				*new-searchpat*570------------------------571 572Added the possibility to match more than one line with a pattern. (partly by573Loic Grenie)574New items in a search pattern for multi-line matches:575\n		match end-of-line, also in []576\_[]		match characters in range and end-of-line577\_x		match character class and end-of-line578\_.		match any character or end-of-line579\_^		match start-of-line, can be used anywhere in the regexp580\_$		match end-of-line, can be used anywhere in the regexp581 582Various other new items in search patterns:583\c		ignore case for the whole pattern584\C		match case for the whole pattern585\m		magic on for the following586\M		magic off for the following587\v		make following characters "very magic"588\V		make following characters "very nomagic"589 590\@!		don't match atom before this.591		Example: "foo\(bar\)\@!" matches "foo " but not "foobar".592\@=		match atom, resulting in  zero-width match593		Example: "foo\(bar\)\@=" matches "foo" in "foobar".594\@<!		don't match preceding atom before the current position595\@<=		match preceding atom before the current position596\@>		match preceding atom as a subexpression597 598\&		match only when branch before and after it match599 600\%[]		optionally match a list of atoms; "end\%[if]" matches "end",601		"endi" and "endif"602\%(\)		like \(\), but without creating a back-reference; there can be603		any number of these, overcomes the limit of nine \( \) pairs604\%^		match start-of-file (Chase Tingley)605\%$		match end-of-file (Chase Tingley)606\%#		Match with the cursor position. (Chase Tingley)607\?		Just like "\=" but can't be used in a "?" command.608 609\%23l		match in line 23610\%<23l		match before line 23611\%>23l		match after line 23612\%23c, \%<23c, \%>23c   match in/before/after column 23613\%23v, \%<23v, \%>23v	match in/before/after virtual column 23614 615 616For syntax items:617\z(...\)	external reference match set (in region start pattern)618\z1 - \z9	external reference match use (in region skip or end pattern)619	(Scott Bigham)620 621\zs		use position as start of match622\ze		use position as end of match623 624Removed limit of matching only up to 32767 times with *, \+, etc.625 626Added support to match multibyte characters. (partly by Muraoka Taro)627Made "\<" and "\>" work for UTF-8. (Muraoka Taro)628 629 630UTF-8 support						*new-utf-8*631-------------632 633Vim can now edit files in UTF-8 encoding.  Up to 31 bit characters can be634used, but only 16 bit characters are displayed.  Up to two combining635characters are supported, they overprint the preceding character.636Double-wide characters are also supported.  See |UTF-8|.637 638UCS-2, UCS-4 and UTF-16 encodings are supported too, they are converted to639UTF-8 internally.  There is also support for editing Unicode files in a Latin1640environment.  Other encodings are converted with iconv() or an external641converter specified with 'charconvert'.642 643Many new items for Multi-byte support:644- Added 'encoding' option: specifies character encoding used inside Vim.  It645  can be any 8-bit encoding, some double-byte encodings or Unicode.646  It is initialized from the environment when a supported value is found.647- Added 'fileencoding' and 'fileencodings': specify character coding in a648  file, similar to 'fileformat' and 'fileformats'.649  When 'encoding' is "utf-8" and 'fileencodings' is "utf-8,latin1" this will650  automatically switch to latin1 if a file does not contain valid UTF-8.651- Added 'bomb' option and detection of a BOM at the start of a file.  Can be652  used with "ucs-bom" in 'fileencodings' to automatically detect a Unicode653  file if it starts with a BOM.  Especially useful on MS-Windows (NT and654  2000), which uses ucs-2le files with a BOM (e.g., when exporting the655  registry).656- Added the 'termencoding' option: Specifies the encoding used for the657  terminal.  Useful to put Vim in utf-8 mode while in a non-Unicode locale: >658    :let &termencoding = &encoding659    :set encoding=utf-8660- When 'viminfo' contains the 'c' flag, the viminfo file is converted from the661  'encoding' it was written with to the current 'encoding'.662- Added ":scriptencoding" command: convert lines in a sourced script to663  'encoding'.  Useful for menu files.664- Added 'guifontwide' to specify a font for double-wide characters.665- Added Korean support for character class detection.  Also fix cls() in666  search.c. (Chong-Dae Park)667- Win32: Typing multibyte characters without IME. (Alexander Smishlajev)668- Win32 with Mingw: compile with iconv library. (Ron Aaron)669- Win32 with MSVC: dynamically load iconv.dll library. (Muraoka Taro)670- Make it possible to build a version with multibyte and iconv support with671  Borland 5.5.  (Yasuhiro Matsumoto)672- Added 'delcombine' option: Delete combining character separately. (Ron673  Aaron)674- The "xfontset" feature isn't required for "xim".  These are now two675  independent features.676- XIM: enable XIM when typing a language character (Insert mode, Search677  pattern, "f" or "r" command).  Disable XIM when typing a Normal mode678  command.679- When the XIM is active, show "XIM" in the 'showmode' message. (Nam SungHyun)680- Support "CursorIM" for XIM.  (Nam SungHyun)681- Added 'm' flag to 'formatoptions': When wrapping words, allow splitting at682  each multibyte character, not only at a space.683- Made ":syntax keyword" work with multibyte characters.684- Added support for Unicode upper/lowercase flipping and comparing. (based on685  patch by Raphael Finkel)686  Let "~" on multibyte characters that have a third case ("title case")687  switch between the three cases. (Raphael Finkel)688 689Allow defining digraphs for multibyte characters.690Added RFC1345 digraphs for Unicode.691Most Normal mode commands that accept a character argument, like "r", "t" and692"f" now accept a digraph.  The 'D' flag in 'cpoptions' disables this to remain693Vi compatible.694 695Added Language mapping and 'keymap' to be able to type multibyte characters:696- Added the ":lmap" command and friends: Define mappings that are used when697  typing characters in the language of the text.  Also for "r", "t", etc.  In698  Insert and Command-line mode CTRL-^ switches the use of the mappings on/off.699  CTRL-^ also toggles the use of an input method when no language mappings are700  present.  Allows switching the IM back on halfway typing.701- "<char-123>" argument to ":map", allows to specify the decimal, octal or702  hexadecimal value of a character.703- Implemented the 'keymap' option: Load a keymap file.  Uses ":lnoremap" to704  define mappings for the keymap.  The new ":loadkeymap" command is used in705  the keymap file.706- Added 'k' flag in 'statusline': Value of "b:keymap_name" or 'keymap' when707  it's being used.  Uses "<lang>" when no keymap is loaded and ":lmap"s are708  active.  Show this text in the default statusline too.709- Added the 'iminsert' and 'imsearch' options: Specify use of langmap mappings710  and Input Method with an option. (Muraoka Taro)711  Added 'imcmdline' option: When set the input method is always enabled when712  starting to edit a command line.  Useful for a XIM that uses dead keys to713  type accented characters.714  Added 'imactivatekey' option to better control XIM.  (Muraoka Taro)715- When typing a mapping that's not finished yet, display the last character716  under the cursor in Insert mode and Command-line mode.  Looks good for dead717  characters.718- Made the 'langmap' option recognize multibyte characters.  But mapping only719  works for 8-bit characters.  Helps when using UTF-8.720- Use a different cursor for when ":lmap" mappings are active.  Can specify721  two highlight groups for an item in 'guicursor'.  By default "lCursor" and722  "Cursor" are equal, the user must set a color he likes.723  Use the cursor color for hangul input as well. (Sung-Hyun Nam)724- Show "(lang)" for 'showmode' when language mapping is enabled.725- UTF-8: Made "r" work with a ":lmap" that includes a composing character.726  Also works for "f", which now works to find a character that includes a727  composing character.728 729Other multibyte character additions:730- Support double-byte single-width characters for euc-jp: Characters starting731  with 0x8E.  Added ScreenLines2[] to store the second byte.732 733 734Multi-language support					*new-multi-lang*735----------------------736 737The messages used in Vim can be translated.  Several translations are738available.  This uses the gettext mechanism.  It allows adding a translation739without recompiling Vim.  |multi-lang| (partly by Marcin Dalecki)740 741The translation files are in the src/po directory.  The src/po/README.txt file742explains a few things about doing a translation.743 744Menu translations are available as well.  This uses the new |:menutranslate|745command.  The translations are found in the runtime directory "lang".  This746allows a user to add a translation.747 748Added |:language| command to set the language (locale) for messages, time and749character type.  This allows switching languages in Vim without changing the750locale outside of Vim.751 752Made it possible to have vimtutor use different languages.  (Eduardo Fernandez)753Spanish (Eduardo Fernandez), Italian (Antonio Colombo), Japanese (Yasuhiro754Matsumoto) and French (Adrien Beau) translations are included.755Added "vimtutor.bat": script to start Vim on a copy of the tutor file for756MS-Windows. (Dan Sharp)757 758- Added v:lang variable to be able to get current language setting.759  (Marcin Dalecki)  Also v:lc_time and v:ctype.760- Make it possible to translate the dialogs used by the menus.  Uses global761  "menutrans_" variables.  ":menutrans clear" deletes them.762- removed "broken locale" (Marcin Dalecki).763- Don't use color names in icons, use RGB values.  The names could be764  translated.765- Win32: Added global IME support (Muraoka)766- Win32: Added dynamic loading of IME support.767- ":messages" prints a message about who maintains the messages or the768  translations.  Useful to find out where to make a remark about a wrong769  translation.770- --disable-nls argument for configure: Disable use of gettext(). (Sung-Hyun771  Nam)772- Added NLS support for Win32 with the MingW compiler. (Eduardo Fernandez)773- When available, call bind_textdomain_codeset() to have gettext() translate774  messages to 'encoding'.  This requires GNU gettext 0.10.36 or later.775- Added gettext support for Win32.  This means messages will be translated776  when the locale is set and libintl.dll can be found.  (Muraoka Taro)777  Also made it work with MingW compiler.  (Eduardo Fernandez)778  Detect the language and set $LANG to get the appropriate translated messages779  (if supported).  Also use $LANG to select a language, v:lang is a very780  different kind of name.781- Made gvimext.dll use translated messages, if possible. (Yasuhiro Matsumoto)782 783 784Plugin support					*new-plugins*785--------------786 787To make it really easy to load a Vim script when starting Vim, the "plugin"788runtime directory can be used.  All "*.vim" files in it will be automatically789loaded.  For Unix, the directory "~/.vim/plugin" is used by default.  The790'runtimepath' option can be set to look in other directories for plugins.791|load-plugins| |add-plugin|792 793The |:runtime| command has been added to load one or more files in794'runtimepath'.795 796Standard plugins:797netrw.vim - Edit files over a network |new-network-files|798gzip.vim - Edit compressed files799explorer.vim - Browse directories |new-file-browser|800 801Added support for local help files. |add-local-help|.802When searching for help tags, all "doc/tags" files in 'runtimepath' are used.803Added the ":helptags" command: Generate a tags file for a help directory.804The first line of each help file is automagically added to the "LOCAL805ADDITIONS" section in doc/help.txt.806 807Added the <unique> argument to ":map": only add a mapping when it wasn't808defined before.809 810When displaying an option value with 'verbose' set will give a message about811where the option was last set.  Very useful to find out which script did set812the value.813 814The new |:scriptnames| command displays a list of all scripts that have been815sourced.816 817GUI: For Athena, Motif and GTK look for a toolbar bitmap in the "bitmaps"818directories in 'runtimepath'.  Allows adding your own bitmaps.819 820 821Filetype plugins				*new-filetype-plugins*822-----------------823 824A new group of files has been added to do settings for specific file types.825These can be options and mappings which are specifically used for one value of826'filetype'.827 828The files are located in "$VIMRUNTIME/ftplugin".  The 'runtimepath' option829makes it possible to use several sets of plugins: Your own, system-wide,830included in the Vim distribution, etc.831 832To be able to make this work, several features were added:833- Added the "s:" variables, local to a script.  Avoids name conflicts with834  global variables.  They can be used in the script and in functions,835  autocommands and user commands defined in the script.  They are kept between836  invocations of the same script.  |s:var|837- Added the global value for local options.  This value is used when opening838  a new buffer or editing another file.  The option value specified in a839  modeline or filetype setting is not carried over to another buffer.840  ":set" sets both the local and the global value.841  ":setlocal" sets the local option value only.842  ":setglobal" sets or displays the global value for a local option.843  ":setlocal name<" sets a local option to its global value.844- Added the buffer-local value for some global options: 'equalprg', 'makeprg',845  'errorformat', 'grepprg', 'path', 'dictionary', 'thesaurus', 'tags',846  'include' and 'define'.  This allows setting a local value for these global847  options, without making it incompatible.848- Added mappings and abbreviations local to a buffer: ":map <buffer>".849- In a mapping "<Leader>" can be used to get the value of the "mapleader"850  variable.  This simplifies mappings that use "mapleader".  "<Leader>"851  defaults to "\".  "<LocalLeader>" does the same with "maplocalleader".  This852  is to be used for mappings local to a buffer.853- Added <SID> Script ID to define functions and mappings local to a script.854- Added <script> argument to ":noremap" and ":noremenu": Only remap855  script-local mappings.  Avoids that mappings from other scripts get in the856  way, but does allow using mappings defined in the script.857- User commands can be local to a buffer: ":command -buffer".858 859The new ":setfiletype" command is used in the filetype detection autocommands,860to avoid that 'filetype' is set twice.861 862 863File browser						*new-file-browser*864------------865 866When editing a directory, the explorer plugin will list the files in the867directory.  Pressing <Enter> on a file name edits that file.  Pressing <Enter>868on a directory moves the browser to that directory.869 870There are several other possibilities, such as opening a file in the preview871window, renaming files and deleting files.872 873 874Editing files over a network				*new-network-files*875----------------------------876 877Files starting with scp://, rcp://, ftp:// and http:// are recognized as878remote files.  An attempt is made to access these files with the indicated879method.  For http:// only reading is possible, for the others writing is also880supported.  Uses the netrw.vim script as a standard "plugin". |netrw|881 882Made "gf" work on a URL.  It no longer assumes the file is local on the883computer (mostly didn't work anyway, because the full path was required).884Adjusted test2 for this.885 886Allow using a URL in 'path'.  Makes ":find index.html" work.887 888GTK: Allow dropping a http:// and ftp:// URL on Vim.  The netrw plugin takes889care of downloading the file. (Mikael Berthe)890 891 892Window for command-line editing				*new-cmdwin*893-------------------------------894 895The Command-line window can be used to edit a command-line with Normal and896Insert mode commands.  When it is opened it contains the history.  This allows897copying parts of previous command lines. |cmdwin|898 899The command-line window can be opened from the command-line with the key900specified by the 'cedit' option (like Nvi).  It can also be opened directly901from Normal mode with "q:", "q/" and "q?".902 903The 'cmdwinheight' is used to specify the initial height of the window.904 905In Insert mode CTRL-X CTRL-V can be used to complete an Ex command line, like906it's done on the command-line.  This is also useful for writing Vim scripts!907 908Additionally, there is "improved Ex mode".  Entered when Vim is started as909"exim" or "vim -E", and with the "gQ" command.  Works like repeated use of910":", with full command-line editing and completion. (Ulf Carlsson)911 912 913Debugging mode						*new-debug-mode*914--------------915 916In debugging mode sourced scripts and user functions can be executed line by917line.  There are commands to step over a command or step into it. |debug-mode|918 919Breakpoints can be set to run until a certain line in a script or user920function is executed. |:breakadd|921 922Debugging can be started with ":debug {cmd}" to debug what happens when a923command executes.  The |-D| argument can be used to debug while starting up.924 925 926Cursor in virtual position				*new-virtedit*927--------------------------928 929Added the 'virtualedit' option: Allow positioning the cursor where there is no930actual character in Insert mode, Visual mode or always. (Matthias Kramm)931This is especially useful in Visual-block mode.  It allows positioning a932corner of the area where there is no text character.  (Many improvements by933Chase Tingley)934 935 936Debugger interface					*new-debug-itf*937------------------938 939This was originally made to work with Sun Visual Workshop. (Gordon Prieur)940See |debugger.txt|, |sign.txt| and |workshop.txt|.941 942Added the ":sign" command to define and place signs.  They can be displayed943with two ASCII characters or an icon.  The line after it can be highlighted.944Useful to display breakpoints and the current PC position.945 946Added the :wsverb command to execute debugger commands.947 948Added balloon stuff: 'balloondelay' and 'ballooneval' options.949 950Added "icon=" argument for ":menu".  Allows defining a specific icon for a951ToolBar item.952 953 954Communication between Vims				*new-vim-server*955--------------------------956 957Added communication between two Vims.  Makes it possible to send commands from958one Vim to another.  Works for X-Windows and MS-Windows |clientserver|.959 960Use "--remote" to have files be edited in an already running Vim.961Use "--remote-wait" to do the same and wait for the editing to finish.962Use "--remote-send" to send commands from one Vim to another.963Use "--remote-expr" to have an expression evaluated in another Vim.964Use "--serverlist" to list the currently available Vim servers.  (X only)965There are also functions to communicate between the server and the client.966|remote_send()| |remote_expr()|967 968(X-windows version implemented by Flemming Madsen, MS-Windows version by Paul969Moore)970 971Added the command server name to the window title, so you can see which server972name belongs to which Vim.973 974Removed the OleVim directory and SendToVim.exe and EditWithVim.exe from the975distribution.  Can now use "gvim --remote" and "gvim --remote-send", which is976portable.977 978GTK+: Support running Vim inside another window.  Uses the --socketid argument979(Neil Bird)980 981 982Buffer type options					*new-buftype*983-------------------984 985The 'buftype' and 'bufhidden' options have been added.  They can be set to986have different kinds of buffers.  For example:987- 'buftype' = "quickfix": buffer with error list988- 'buftype' = "nofile" and 'bufhidden' = "delete": scratch buffer that will be989  deleted as soon as there is no window displaying it.990 991'bufhidden' can be used to overrule the 'hidden' option for one buffer.992 993In combination with 'buflisted' and 'swapfile' this offers the possibility to994use various kinds of special buffers.  See |special-buffers|.995 996 997Printing						*new-printing*998--------999 1000Included first implementation of the ":hardcopy" command for printing1001to paper.  For MS-Windows any installed printer can be used.  For other1002systems a PostScript file is generated, which can be printed with the1003'printexpr' option.1004(MS-Windows part by Vince Negri, Vipin Aravind, PostScript by Vince Negri and1005Mike Williams)1006 1007Made ":hardcopy" work with multibyte characters. (Muraoka Taro, Yasuhiro1008Matsumoto)1009 1010Added options to tune the way printing works: (Vince Negri)1011- 'printoptions' defines various things.1012- 'printheader' specifies the header format.  Added "N" field to 'statusline'1013  for the page number.1014- 'printfont' specifies the font name and attributes.1015- 'printdevice' defines the default printer for ":hardcopy!".1016 1017 1018Ports							*ports-6*1019-----1020 1021Port to OS/390 Unix (Ralf Schandl)1022- A lot of changes to handle EBCDIC encoding.1023- Changed Ctrl('x') to Ctrl_x define.1024 1025Included jsbmouse support. (Darren Garth)1026Support for dec mouse in Unix. (Steve Wall)1027 1028Port to 16-bit MS-Windows (Windows 3.1x) (Vince Negri)1029 1030Port to QNX.  Supports the Photon GUI, mouse, etc. (Julian Kinraid)1031 1032Allow cross-compiling the Win32 version with Make_ming.mak. (Ron Aaron)1033Added Python support for compiling with Mingw. (Ron Aaron)1034 1035Dos 32 bit: Added support the Windows clipboard. (David Kotchan)1036 1037Win32: Dynamically load Perl and Python.  Allows compiling Vim with these1038interfaces and will try to find the DLLs at runtime. (Muraoka Taro)1039 1040Compiling the Win32 GUI with Cygwin.  Also compile vimrun, dosinst and1041uninstall.  (Gerfried)1042 1043Mac: Make Vim compile with the free MPW compiler supplied by Apple.  And1044updates for CodeWarrior. (Axel Kielhorn)1045 1046Added typecasts and ifdefs as a start to make Vim work on Win64 (George1047Reilly)1048 1049 1050Quickfix extended					*quickfix-6*1051-----------------1052 1053Added the "error window".  It contains all the errors of the current error1054list.  Pressing <Enter> in a line makes Vim jump to that line (in another1055window).  This makes it easy to navigate through the error list.1056|quickfix-window|.1057 1058- |:copen| opens the quickfix window.1059- |:cclose| closes the quickfix window.1060- |:cwindow| takes care that there is a quickfix window only when there are1061  recognized errors. (Dan Sharp)1062 1063- Quickfix also knows "info", next to "warning" and "error" types.  "%I" can be1064  used for the start of a multi-line informational message. (Tony Leneis)1065- The "%p" argument can be used in 'errorformat' to get the column number from1066  a line where "^" points to the column. (Stefan Roemer)1067- When using "%f" in 'errorformat' on a DOS/Windows system, also include "c:"1068  in the filename, even when using "%f:".1069 1070 1071Operator modifiers					*new-operator-mod*1072------------------1073 1074Insert "v", "V" or CTRL-V between an operator and a motion command to force1075the operator to work characterwise, linewise or blockwise. |o_v|1076 1077 1078Search Path						*new-search-path*1079-----------1080 1081Vim can search in a directory tree not only in downwards but also upwards.1082Works for the 'path', 'cdpath' and 'tags' options. (Ralf Schandl)1083 1084Also use "**" for 'tags' option. (Ralf Schandl)1085 1086Added 'includeexpr', can be used to modify file name found by 'include'1087option.1088Also use 'includeexpr' for "gf" and "<cfile>" when the file can't be found1089without modification.  Useful for doing "gf" on the name after an include or1090import statement.1091 1092Added the 'cdpath' option: Locations to find a ":cd" argument. (Raf)1093 1094Added the 'suffixesadd' option: Suffixes to be added to a file name when1095searching for a file for the "gf", "[I", etc. commands.1096 1097 1098Writing files improved					*new-file-writing*1099----------------------1100 1101Added the 'backupcopy' option: Select whether a file is to be copied or1102renamed to make a backup file.  Useful on Unix to speed up writing an ordinary1103file.  Useful on other systems to preserve file attributes and when editing a1104file on a Unix filesystem.1105 1106Added the 'autowriteall' option.  Works like 'autowrite' but for more1107commands.1108 1109Added the 'backupskip' option: A list of file patterns to skip making a backup1110file when it matches.  The default for Unix includes "/tmp/*", this makes1111"crontab -e" work.1112 1113Added support for Access Control Lists (ACL) for FreeBSD and Win32.  The ACL1114is copied from the original file to the new file (or the backup if it's1115copied).1116ACL is also supported for AIX, Solaris and generic POSIX. (Tomas Ogren)1117And on SGI.1118 1119 1120Argument list						*new-argument-list*1121-------------1122 1123The support for the argument list has been extended.  It can now be1124manipulated to contain the files you want it to contain.1125 1126The argument list can now be local to a window.  It is created with the1127|:arglocal| command.  The |:argglobal| command can be used to go back to the1128global argument list.1129 1130The |:argdo| command executes a command on all files in the argument list.1131 1132File names can be added to the argument list with |:argadd|.  File names can1133be removed with |:argdelete|.1134 1135"##" can be used like "#", it is replaced by all the names in the argument1136list concatenated.  Useful for ":grep foo ##".1137 1138The |:argedit| adds a file to the argument list and edits it.  Like ":argadd"1139and then ":edit".1140 1141 1142Restore a View						*new-View*1143--------------1144 1145The ":mkview" command writes a Vim script with the settings and mappings for1146one window.  When the created file is sourced, the view of the window is1147restored.  It's like ":mksession" for one window.1148The View also contains the local argument list and manually created, opened1149and closed folds.1150 1151Added the ":loadview" command and the 'viewdir' option: Allows for saving and1152restoring views of a file with simple commands.  ":mkview 1" saves view 1 for1153the current file, ":loadview 1" loads it again.  Also allows quickly switching1154between two views on one file.  And saving and restoring manual folds and the1155folding state.1156 1157Added 'viewoptions' to specify how ":mkview" works.1158 1159":mksession" now also works fine with vertical splits.  It has been further1160improved and restores the view of each window.  It also works properly with1161preview and quickfix windows.1162 1163'sessionoptions' is used for ":mkview" as well.1164Added "curdir" and "sesdir" to 'sessionoptions'.  Allows selection of what1165the current directory will be restored to.1166 1167The session file now also contains the argument list(s).1168 1169 1170Color schemes						*new-color-schemes*1171-------------1172 1173Support for loading a color scheme.  Added the ":colorscheme" command.1174Automatically add menu entries for available schemes.1175Should now properly reset the colors when 'background' or 't_Co' is changed.1176":highlight clear" sets the default colors again.1177":syntax reset" sets the syntax highlight colors back to the defaults.1178For ":set bg&" guess the value.  This allows a color scheme to switch back to1179the default colors.1180When syntax highlighting is switched on and a color scheme was defined, reload1181the color scheme to define the colors.1182 1183 1184Various new items					*new-items-6*1185-----------------1186 1187Normal mode commands: ~1188 1189"gi"		Jump to the ^ mark and start Insert mode.  Also works when the1190		mark is just after the line. |gi|1191 1192"g'm" and "g`m"1193		Jump to a mark without changing the jumplist.  Now you can use1194		g`" to jump to the last known position in a file without side1195		effects.  Also useful in mappings.1196 1197[', [`, ]' and ]`1198		move the cursor to the next/previous lowercase mark.1199 1200g_		Go to last non-blank in line. (Steve Wall)

Showing the first 1,200 of 14531 lines. Download the file for the rest.

codekingpro/portable-devtools · Team Ai