-*autocmd.txt* For Vim version 9.1. Last change: 2025 Nov 09
+*autocmd.txt* For Vim version 9.1. Last change: 2026 Jan 30
VIM REFERENCE MANUAL by Bram Moolenaar
to tell Vim what to do next.
NOTE: When this autocommand is executed, the
current buffer "%" may be different from the
- buffer that was changed, which is in "<afile>".
+ buffer that was changed, which is in
+ "<afile>".
NOTE: The commands must not change the current
buffer, jump to another buffer or delete a
buffer. *E246* *E811*
"osc",
"version" (|t_RV|)
Note that this event may be triggered halfway
- executing another event, especially if file I/O,
- a shell command or anything else that takes time
- is involved.
+ executing another event, especially if file
+ I/O, a shell command or anything else that
+ takes time is involved.
*TextChanged*
TextChanged After a change was made to the text in the
current buffer in Normal mode. That is after
:autocmd VimResume * checktime
< *VimSuspend*
VimSuspend When the Vim instance is suspended. Only when
- CTRL-Z was typed inside Vim, or when the SIGTSTP
- signal was sent to Vim, but not for SIGSTOP.
+ CTRL-Z was typed inside Vim, or when the
+ SIGTSTP signal was sent to Vim, but not for
+ SIGSTOP.
*WinClosed*
WinClosed When closing a window, just before it is
removed from the window layout. The pattern
value {expr}. Examples: >
nr2char(64) returns "@"
nr2char(32) returns " "
-< When {utf8} is omitted or zero, the current 'encoding' is used.
- Example for "utf-8": >
+< When {utf8} is omitted or zero, the current 'encoding' is
+ used. Example for "utf-8": >
nr2char(300) returns I with bow character
< When {utf8} is TRUE, always return UTF-8 characters.
Note that a NUL character in the file is specified with
Return type: |Number|
-redraw_listener_remove({id}) *redraw_listener_remove()*
+redraw_listener_remove({id}) *redraw_listener_remove()*
Remove a redraw listener previously added with
|redraw_listener_add()|. Returns FALSE when {id} could not be
found, TRUE when {id} was removed.
win_gotoid({expr}) *win_gotoid()*
Go to window with ID {expr}. This may also change the current
tabpage.
- Return TRUE if successful, FALSE if the window cannot be found.
+ Return TRUE if successful, FALSE if the window cannot be
+ found.
Can also be used as a |method|: >
GetWinid()->win_gotoid()
-*channel.txt* For Vim version 9.1. Last change: 2025 Nov 09
+*channel.txt* For Vim version 9.1. Last change: 2026 Jan 30
VIM REFERENCE MANUAL by Bram Moolenaar
"params": <list|dict>
}
-A LSP response message has the following format (expressed as a Vim Dict). The
-"result" and "error" fields are optional: >
+A LSP response message has the following format (expressed as a Vim Dict).
+The "result" and "error" fields are optional: >
{
"jsonrpc": "2.0",
-*develop.txt* For Vim version 9.1. Last change: 2025 Dec 13
+*develop.txt* For Vim version 9.1. Last change: 2026 Jan 30
VIM REFERENCE MANUAL by Bram Moolenaar
since this triggers the test suite.
A PR should ideally contain a single commit for a single logical change.
-However, you can include several commits if you want to group multiple logical,
-atomic changes in one PR. This can also make longer PRs easier to review. Be
-sure to describe the reasoning for your changes in each commit message, as
-this greatly helps with the review process. In cases where each commit
-handles different logical changes, they will also be applied as separate
-patches in Vim's repository.
+However, you can include several commits if you want to group multiple
+logical, atomic changes in one PR. This can also make longer PRs easier to
+review. Be sure to describe the reasoning for your changes in each commit
+message, as this greatly helps with the review process. In cases where each
+commit handles different logical changes, they will also be applied as
+separate patches in Vim's repository.
*style-clang-format*
sound.c and sign.c can be (semi-) automatically formatted using the
-*eval.txt* For Vim version 9.1. Last change: 2026 Jan 10
+*eval.txt* For Vim version 9.1. Last change: 2026 Jan 30
VIM REFERENCE MANUAL by Bram Moolenaar
expected result.
*v:sizeofpointer* *sizeofpointer-variable*
-v:sizeofpointer Number of bytes in a pointer. Depends on how Vim was compiled.
- This is only useful for deciding whether a test will give the
- expected result.
+v:sizeofpointer Number of bytes in a pointer. Depends on how Vim was
+ compiled. This is only useful for deciding whether a test
+ will give the expected result.
*v:stacktrace* *stacktrace-variable*
v:stacktrace The stack trace of the exception most recently caught and
This maps Alt-Space to pop down the system menu for the Vim window. Note that
~ is used by simalt to represent the <Space> character. >
:map <C-n> :simalt ~n<CR>
-Maps Control-N to produce the keys Alt-Space followed by N. This minimizes the
-Vim window via the system menu.
+Maps Control-N to produce the keys Alt-Space followed by N. This minimizes
+the Vim window via the system menu.
Note that the key changes depending on the language you are using.
To enable fullscreen mode in the Windows GUI version of Vim, add the 's' flag
to the 'guioptions' setting.
-For convenience, you can define a command or mapping to toggle fullscreen mode:
+For convenience, you can define a command or mapping to toggle fullscreen
+mode:
>
command ToggleFullscreen {
if &guioptions =~# 's'
-*mbyte.txt* For Vim version 9.1. Last change: 2025 Dec 17
+*mbyte.txt* For Vim version 9.1. Last change: 2026 Jan 30
VIM REFERENCE MANUAL by Bram Moolenaar et al.
ftp://ftp.cuhk.hk/pub/chinese/ifcss/software/unix/convert/hc-30.tar.gz
Korean: hmconv
- Hmconv is Korean code conversion utility especially for E-mail. It can
- convert between EUC-KR and ISO-2022-KR. Hmconv can be found at:
+ Hmconv is Korean code conversion utility especially for E-mail. It
+ can convert between EUC-KR and ISO-2022-KR. Hmconv can be found at:
https://www.freshports.org/korean/hmconv/
Multilingual: lv
X INPUT METHOD (XIM) BACKGROUND *XIM* *xim* *x-input-method*
-XIM is an international input module for X. There are two kinds of structures,
-Xlib unit type and |IM-server| (Input-Method server) type. |IM-server| type
-is suitable for complex input, such as CJK.
+XIM is an international input module for X. There are two kinds of
+structures, Xlib unit type and |IM-server| (Input-Method server) type.
+|IM-server| type is suitable for complex input, such as CJK.
- IM-server
*IM-server*
-*netbeans.txt* For Vim version 9.1. Last change: 2026 Jan 25
+*netbeans.txt* For Vim version 9.1. Last change: 2026 Jan 30
VIM REFERENCE MANUAL by Gordon Prieur et al.
typeNum number sequence number of the annotation
defined with defineAnnoType for this
buffer
- off number offset where annotation is to be placed
+ off number offset where annotation is to be
+ placed
len number not used
In version 2.1 "lnum/col" can be used instead of "off".
getAnno serNum
Return the line number of the annotation in the buffer.
Argument:
- serNum serial number of this placed annotation
+ serNum serial number of this placed
+ annotation
The reply is:
123 lnum line number of the annotation
123 0 invalid annotation serial number
-*options.txt* For Vim version 9.1. Last change: 2026 Jan 29
+*options.txt* For Vim version 9.1. Last change: 2026 Jan 30
VIM REFERENCE MANUAL by Bram Moolenaar
*'autowriteall'* *'awa'* *'noautowriteall'* *'noawa'*
'autowriteall' 'awa' boolean (default off)
global
- Like 'autowrite', but also used for commands ":edit", ":enew", ":quit",
- ":qall", ":exit", ":xit", ":recover" and closing the Vim window.
+ Like 'autowrite', but also used for commands ":edit", ":enew",
+ ":quit", ":qall", ":exit", ":xit", ":recover" and closing the Vim
+ window.
Setting this option also implies that Vim behaves like 'autowrite' has
been set.
This makes "y0" fail in the first column.
*cpo-f*
f When included, a ":read" command with a file name
- argument will set the file name for the current buffer,
- if the current buffer doesn't have a file name yet.
+ argument will set the file name for the current
+ buffer, if the current buffer doesn't have a file name
+ yet.
*cpo-F*
F When included, a ":write" command with a file name
argument will set the file name for the current
hiddenoff Do not use diff mode for a buffer when it
becomes hidden.
- iblank Ignore changes where lines are all blank. Adds
- the "-B" flag to the "diff" command if
+ iblank Ignore changes where lines are all blank.
+ Adds the "-B" flag to the "diff" command if
'diffexpr' is empty. Check the documentation
of the "diff" command for what this does
exactly.
edit a file, a check is done for the <EOL>:
1. If all lines end in <CR><NL>, and 'fileformats' includes "dos",
'fileformat' is set to "dos".
- 2. If a <NL> is found and 'fileformats' includes "unix", 'fileformat'
- is set to "unix". Note that when a <NL> is found without a
- preceding <CR>, "unix" is preferred over "dos".
+ 2. If a <NL> is found and 'fileformats' includes "unix",
+ 'fileformat' is set to "unix". Note that when a <NL> is found
+ without a preceding <CR>, "unix" is preferred over "dos".
3. If 'fileformat' has not yet been set, and if a <CR> is found, and
if 'fileformats' includes "mac", 'fileformat' is set to "mac".
This means that "mac" is only chosen when:
'e' Add tab pages when indicated with 'showtabline'.
'guitablabel' can be used to change the text in the labels.
When 'e' is missing a non-GUI tab pages line may be used.
- The GUI tabs are only supported on some systems, currently GTK,
- Motif, Mac OS/X, Haiku, and MS-Windows.
+ The GUI tabs are only supported on some systems, currently
+ GTK, Motif, Mac OS/X, Haiku, and MS-Windows.
*'go-f'*
'f' Foreground: Don't use fork() to detach the GUI from the shell
where it was started. Use this for programs that wait for the
*'makeencoding'* *'menc'*
'makeencoding' 'menc' string (default "")
global or local to buffer |global-local|
- Encoding used for reading the output of external commands. When empty,
- encoding is not converted.
+ Encoding used for reading the output of external commands. When
+ empty, encoding is not converted.
This is used for `:make`, `:lmake`, `:grep`, `:lgrep`, `:grepadd`,
`:lgrepadd`, `:cfile`, `:cgetfile`, `:caddfile`, `:lfile`, `:lgetfile`,
and `:laddfile`.
< If your terminal can't overrule the mouse events going to the
application, use: >
:set mouse=nvi
-< Then you can press ":", select text for the system, and press Esc to go
- back to Vim using the mouse events.
+< Then you can press ":", select text for the system, and press Esc to
+ go back to Vim using the mouse events.
In |defaults.vim| "nvi" is used if the 'term' option is not matching
"xterm".
highlighting is used, also for the statusline of non-current
windows.
* - Set highlight group to User{N}, where {N} is taken from the
- minwid field, e.g. %1*. Restore normal highlight with %* or %0*.
- The difference between User{N} and StatusLine will be applied to
- StatusLineNC for the statusline of non-current windows.
+ minwid field, e.g. %1*. Restore normal highlight with %* or
+ %0*. The difference between User{N} and StatusLine will be
+ applied to StatusLineNC for the statusline of non-current
+ windows.
The number N must be between 1 and 9. See |hl-User1..9|
When displaying a flag, Vim removes the leading comma, if any, when
global or local to buffer |global-local|
Maximum number of changes that can be undone. Since undo information
is kept in memory, higher numbers will cause more memory to be used.
- Nevertheless, a single change can already use a large amount of memory.
- Set to 0 for Vi compatibility: One level of undo and "u" undoes
- itself: >
+ Nevertheless, a single change can already use a large amount of
+ memory. Set to 0 for Vi compatibility: One level of undo and "u"
+ undoes itself: >
set ul=0
< But you can also get Vi compatibility by including the 'u' flag in
'cpoptions', and still be able to use CTRL-R to repeat undo.
*'visualbell'* *'vb'* *'novisualbell'* *'novb'* *beep*
'visualbell' 'vb' boolean (default off)
global
- Use a visual bell instead of beeping. The terminal code to display the
- visual bell is given with 't_vb'. When no beep or flash is wanted,
- use: >
+ Use a visual bell instead of beeping. The terminal code to display
+ the visual bell is given with 't_vb'. When no beep or flash is
+ wanted, use: >
:set vb t_vb=
< If you want a short flash, you can use this on many terminals: >
:set vb t_vb=\e[?5h$<100>\e[?5l
to get a shorter or longer flash.
Note: Vim will limit the bell to once per half a second. This avoids
- having to wait for the flashing to finish when there are lots of bells,
- e.g. on key repeat. This also happens without 'visualbell' set.
+ having to wait for the flashing to finish when there are lots of
+ bells, e.g. on key repeat. This also happens without 'visualbell'
+ set.
In the GUI, 't_vb' defaults to "<Esc>|f", which inverts the display
for 20 msec. If you want to use a different time, use "<Esc>|40f",
'wildcharm' 'wcm' number (default: none (0))
global
'wildcharm' works exactly like 'wildchar', except that it is
- recognized when used inside a macro. You can find "spare" command-line
- keys suitable for this option by looking at |ex-edit-index|. Normally
- you'll never actually type 'wildcharm', just use it in mappings that
- automatically invoke completion mode, e.g.: >
+ recognized when used inside a macro. You can find "spare"
+ command-line keys suitable for this option by looking at
+ |ex-edit-index|. Normally you'll never actually type 'wildcharm',
+ just use it in mappings that automatically invoke completion mode,
+ e.g.: >
:set wcm=<C-Z>
:cnoremap ss so $vim/sessions/*.vim<C-Z>
< Then after typing :ss you can use CTRL-P & CTRL-N.
-*pi_getscript.txt* For Vim version 9.1. Last change: 2025 Aug 10
+*pi_getscript.txt* For Vim version 9.1. Last change: 2026 Jan 30
>
GETSCRIPT REFERENCE MANUAL by Charles E. Campbell
<
own personal list. Feel free to remove all the scripts mentioned within it;
the "important" part of it is the first two lines.
-Your computer needs to have wget or curl for GetLatestVimScripts to do its work.
+Your computer needs to have wget or curl for GetLatestVimScripts to do its
+work.
1. if compressed: gunzip getscript.vmb.gz
2. Unix:
-*pi_vimball.txt* For Vim version 9.1. Last change: 2025 Aug 06
+*pi_vimball.txt* For Vim version 9.1. Last change: 2026 Jan 30
----------------
Vimball Archiver
Copyright: (c) 2004-2015 by Charles E. Campbell *Vimball-copyright*
The VIM LICENSE (see |copyright|) applies to the files in this
package, including vimballPlugin.vim, vimball.vim, and pi_vimball.txt.
- except use "vimball" instead of "VIM". Like anything else that's free,
- vimball.vim and its associated files are provided *as is* and comes with
- no warranty of any kind, either expressed or implied. No guarantees
- of merchantability. No guarantees of suitability for any purpose. By
- using this plugin, you agree that in no event will the copyright
- holder be liable for any damages resulting from the use of this
- software. Use at your own risk!
+ except use "vimball" instead of "VIM". Like anything else that's
+ free, vimball.vim and its associated files are provided *as is* and
+ comes with no warranty of any kind, either expressed or implied. No
+ guarantees of merchantability. No guarantees of suitability for any
+ purpose. By using this plugin, you agree that in no event will the
+ copyright holder be liable for any damages resulting from the use of
+ this software. Use at your own risk!
==============================================================================
1. Contents *vba* *vimball* *vimball-contents*
13 : May 01, 2006 * exists("&acd") used to determine if the acd
option exists
12 : May 01, 2006 * bugfix - the 'acd' option is not always defined
- 11 : Apr 27, 2006 * VimballList would create missing subdirectories that
- the vimball specified were needed. Fixed.
+ 11 : Apr 27, 2006 * VimballList would create missing subdirectories
+ that the vimball specified were needed. Fixed.
10 : Apr 27, 2006 * moved all setting saving/restoration to a pair of
functions. Included some more settings in them
which frequently cause trouble.
-*quickfix.txt* For Vim version 9.1. Last change: 2025 Dec 27
+*quickfix.txt* For Vim version 9.1. Last change: 2026 Jan 30
VIM REFERENCE MANUAL by Bram Moolenaar
EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
*:cdo*
-:cdo[!] {cmd} Execute {cmd} in each valid entry in the quickfix list.
- It works like doing this: >
+:cdo[!] {cmd} Execute {cmd} in each valid entry in the quickfix
+ list. It works like doing this: >
:cfirst
:{cmd}
:cnext
%- do not include the matching multi-line in any output
%+ include the whole matching line in the %m error string
-One prefix is only useful in combination with '+' or '-', namely %G. It parses
-over lines containing general information like compiler version strings or
-other headers that can be skipped.
+One prefix is only useful in combination with '+' or '-', namely %G. It
+parses over lines containing general information like compiler version strings
+or other headers that can be skipped.
%-G ignore this message
%+G general message
Making all in dir2 ./dir1/dir2
Making all in dir2 ./dir1/dir2
- This can be solved by printing absolute directories in the "enter directory"
- message or by printing "leave directory" messages.
+ This can be solved by printing absolute directories in the "enter
+ directory" message or by printing "leave directory" messages.
To avoid this problem, ensure to print absolute directory names and "leave
directory" messages.
-*repeat.txt* For Vim version 9.1. Last change: 2025 Nov 09
+*repeat.txt* For Vim version 9.1. Last change: 2026 Jan 30
VIM REFERENCE MANUAL by Bram Moolenaar
*>bt*
*>backtrace*
*>where*
- backtrace Show the call stacktrace for current debugging session.
+ backtrace Show the call stacktrace for current debugging
+ session.
bt
where
*>frame*
-*starting.txt* For Vim version 9.1. Last change: 2025 Dec 20
+*starting.txt* For Vim version 9.1. Last change: 2026 Jan 30
VIM REFERENCE MANUAL by Bram Moolenaar
III The environment variable EXINIT.
The value of $EXINIT is used as an Ex command line.
IV The user exrc file(s). Same as for the user vimrc file, but with
- "vimrc" replaced by "exrc". But only one of ".exrc" and "_exrc" is
- used, depending on the system. And without the (*)!
+ "vimrc" replaced by "exrc". But only one of ".exrc" and "_exrc"
+ is used, depending on the system. And without the (*)!
V The default vimrc file, $VIMRUNTIME/defaults.vim. This sets up
options values and has "syntax on" and "filetype on" commands,
which is what most new users will want. See |defaults.vim|.
-*syntax.txt* For Vim version 9.1. Last change: 2026 Jan 27
+*syntax.txt* For Vim version 9.1. Last change: 2026 Jan 30
VIM REFERENCE MANUAL by Bram Moolenaar
*hl-TOhtmlProgress* *TOhtml-progress-color*
When displayed, the progress bar will show colored boxes along the statusline
as the HTML conversion proceeds. By default, the background color as the
-current "DiffDelete" highlight group is used. If "DiffDelete" and "StatusLine"
-have the same background color, TOhtml will automatically adjust the color to
-differ. If you do not like the automatically selected colors, you can define
-your own highlight colors for the progress bar. Example: >
+current "DiffDelete" highlight group is used. If "DiffDelete" and
+"StatusLine" have the same background color, TOhtml will automatically adjust
+the color to differ. If you do not like the automatically selected colors,
+you can define your own highlight colors for the progress bar. Example: >
hi TOhtmlProgress guifg=#c0ffee ctermbg=7
<
When "fallback" (default value), the same <input> elements are generated for
older browsers, but newer browsers (detected by CSS feature query) hide the
-<input> elements and instead use generated content in an ::before pseudoelement
-to display the uncopyable text. This method should work with the largest
-number of browsers, both old and new.
+<input> elements and instead use generated content in an ::before
+pseudoelement to display the uncopyable text. This method should work with
+the largest number of browsers, both old and new.
When "none", the <input> elements are not generated at all. Only the
generated-content method is used. This means that old browsers, notably
-*tagsrch.txt* For Vim version 9.1. Last change: 2025 Nov 09
+*tagsrch.txt* For Vim version 9.1. Last change: 2026 Jan 30
VIM REFERENCE MANUAL by Bram Moolenaar
When excluded, a match is ignored when the line is recognized as a
comment (according to 'comments'), or the match is in a C comment
(after "//" or inside /* */). Note that a match may be missed if a
- line is recognized as a comment, but the comment ends halfway the line.
- And if the line is a comment, but it is not recognized (according to
- 'comments') a match may be found in it anyway. Example: >
+ line is recognized as a comment, but the comment ends halfway the
+ line. And if the line is a comment, but it is not recognized
+ (according to 'comments') a match may be found in it anyway. Example: >
/* comment
foobar */
< A match for "foobar" is found, because this line is not recognized as
-*term.txt* For Vim version 9.1. Last change: 2025 Nov 11
+*term.txt* For Vim version 9.1. Last change: 2026 Jan 30
VIM REFERENCE MANUAL by Bram Moolenaar
Some termcap entries have the entry ":ku=\E[A:". But the Amiga really sends
"\233A". On output "\E[" and "\233" are often equivalent, on input they
-aren't. You will have to change the termcap entry, or change the key code with
-the :set command to fix this.
+aren't. You will have to change the termcap entry, or change the key code
+with the :set command to fix this.
Many cursor key codes start with an <Esc>. Vim must find out if this is a
single hit of the <Esc> key or the start of a cursor key sequence. It waits
-*vi_diff.txt* For Vim version 9.1. Last change: 2025 Nov 09
+*vi_diff.txt* For Vim version 9.1. Last change: 2026 Jan 30
VIM REFERENCE MANUAL by Bram Moolenaar
`:delete` delete lines
`:edit` edit a file
`:exit` same as `:xit`
-`:file` show or set the current file name; Vi: without the column number
+`:file` show or set the current file name; Vi: without the column
+ number
`:global` execute commands for matching lines
`:insert` insert text
`:join` join lines; Vi: not :join!
- ex test 368 fails because shell command isn't echoed in silent mode.
- ex test 394 fails because "=" command output isn't visible in silent mode.
- ex test 411 fails because test file is wrong, contains stray ':'.
-- ex test 475 and 476 fail because reprint output isn't visible in silent mode.
+- ex test 475 and 476 fail because reprint output isn't visible in silent
+ mode.
- ex test 480 and 481 fail because the tags file has spaces instead of a tab.
- ex test 502 fails because .exrc isn't read in silent mode.
- ex test 509 fails because .exrc isn't read in silent mode. and exit code is