Update runtime files.

This commit is contained in:
Bram Moolenaar
2021-01-18 19:55:44 +01:00
parent 82aa6e09e0
commit 98a29d00a4
17 changed files with 150 additions and 116 deletions

View File

@ -1,4 +1,4 @@
*eval.txt* For Vim version 8.2. Last change: 2021 Jan 13 *eval.txt* For Vim version 8.2. Last change: 2021 Jan 17
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -4084,8 +4084,9 @@ delete({fname} [, {flags}]) *delete()*
A symbolic link itself is deleted, not what it points to. A symbolic link itself is deleted, not what it points to.
The result is a Number, which is 0 if the delete operation was The result is a Number, which is 0/false if the delete
successful and -1 when the deletion failed or partly failed. operation was successful and -1/true when the deletion failed
or partly failed.
Use |remove()| to delete an item from a |List|. Use |remove()| to delete an item from a |List|.
To delete a line from the buffer use |:delete| or To delete a line from the buffer use |:delete| or
@ -6222,8 +6223,8 @@ has({feature} [, {check}])
has_key({dict}, {key}) *has_key()* has_key({dict}, {key}) *has_key()*
The result is a Number, which is 1 if |Dictionary| {dict} has The result is a Number, which is TRUE if |Dictionary| {dict}
an entry with key {key}. Zero otherwise. has an entry with key {key}. FALSE otherwise.
Can also be used as a |method|: > Can also be used as a |method|: >
mydict->has_key(key) mydict->has_key(key)
@ -6266,16 +6267,16 @@ haslocaldir([{winnr} [, {tabnr}]]) *haslocaldir()*
GetWinnr()->haslocaldir() GetWinnr()->haslocaldir()
hasmapto({what} [, {mode} [, {abbr}]]) *hasmapto()* hasmapto({what} [, {mode} [, {abbr}]]) *hasmapto()*
The result is a Number, which is 1 if there is a mapping that The result is a Number, which is TRUE if there is a mapping
contains {what} in somewhere in the rhs (what it is mapped to) that contains {what} in somewhere in the rhs (what it is
and this mapping exists in one of the modes indicated by mapped to) and this mapping exists in one of the modes
{mode}. indicated by {mode}.
When {abbr} is there and it is |TRUE| use abbreviations When {abbr} is there and it is |TRUE| use abbreviations
instead of mappings. Don't forget to specify Insert and/or instead of mappings. Don't forget to specify Insert and/or
Command-line mode. Command-line mode.
Both the global mappings and the mappings local to the current Both the global mappings and the mappings local to the current
buffer are checked for a match. buffer are checked for a match.
If no matching mapping is found 0 is returned. If no matching mapping is found FALSE is returned.
The following characters are recognized in {mode}: The following characters are recognized in {mode}:
n Normal mode n Normal mode
v Visual and Select mode v Visual and Select mode
@ -6311,8 +6312,8 @@ histadd({history}, {item}) *histadd()*
character is sufficient. character is sufficient.
If {item} does already exist in the history, it will be If {item} does already exist in the history, it will be
shifted to become the newest entry. shifted to become the newest entry.
The result is a Number: 1 if the operation was successful, The result is a Number: TRUE if the operation was successful,
otherwise 0 is returned. otherwise FALSE is returned.
Example: > Example: >
:call histadd("input", strftime("%Y %b %d")) :call histadd("input", strftime("%Y %b %d"))
@ -6335,8 +6336,8 @@ histdel({history} [, {item}]) *histdel()*
an index, see |:history-indexing|. The respective entry will an index, see |:history-indexing|. The respective entry will
be removed if it exists. be removed if it exists.
The result is a Number: 1 for a successful operation, The result is TRUE for a successful operation, otherwise FALSE
otherwise 0 is returned. is returned.
Examples: Examples:
Clear expression register history: > Clear expression register history: >
@ -6388,7 +6389,7 @@ histnr({history}) *histnr()*
GetHistory()->histnr() GetHistory()->histnr()
< <
hlexists({name}) *hlexists()* hlexists({name}) *hlexists()*
The result is a Number, which is non-zero if a highlight group The result is a Number, which is TRUE if a highlight group
called {name} exists. This is when the group has been called {name} exists. This is when the group has been
defined in some way. Not necessarily when highlighting has defined in some way. Not necessarily when highlighting has
been defined for it, it may also have been used for a syntax been defined for it, it may also have been used for a syntax
@ -6561,7 +6562,7 @@ inputrestore() *inputrestore()*
Restore typeahead that was saved with a previous |inputsave()|. Restore typeahead that was saved with a previous |inputsave()|.
Should be called the same number of times inputsave() is Should be called the same number of times inputsave() is
called. Calling it more often is harmless though. called. Calling it more often is harmless though.
Returns 1 when there is nothing to restore, 0 otherwise. Returns TRUE when there is nothing to restore, FALSE otherwise.
inputsave() *inputsave()* inputsave() *inputsave()*
Preserve typeahead (also from mappings) and clear it, so that Preserve typeahead (also from mappings) and clear it, so that
@ -6569,7 +6570,7 @@ inputsave() *inputsave()*
followed by a matching inputrestore() after the prompt. Can followed by a matching inputrestore() after the prompt. Can
be used several times, in which case there must be just as be used several times, in which case there must be just as
many inputrestore() calls. many inputrestore() calls.
Returns 1 when out of memory, 0 otherwise. Returns TRUE when out of memory, FALSE otherwise.
inputsecret({prompt} [, {text}]) *inputsecret()* inputsecret({prompt} [, {text}]) *inputsecret()*
This function acts much like the |input()| function with but This function acts much like the |input()| function with but
@ -7045,7 +7046,7 @@ listener_flush([{buf}]) *listener_flush()*
listener_remove({id}) *listener_remove()* listener_remove({id}) *listener_remove()*
Remove a listener previously added with listener_add(). Remove a listener previously added with listener_add().
Returns zero when {id} could not be found, one when {id} was Returns FALSE when {id} could not be found, TRUE when {id} was
removed. removed.
Can also be used as a |method|: > Can also be used as a |method|: >
@ -7728,8 +7729,8 @@ mkdir({name} [, {path} [, {prot}]])
flag is passed (since patch 8.0.1708). However, without the flag is passed (since patch 8.0.1708). However, without the
"p" option the call will fail. "p" option the call will fail.
The function result is a Number, which is 1 if the call was The function result is a Number, which is TRUE if the call was
successful or 0 if the directory creation failed or partly successful or FALSE if the directory creation failed or partly
failed. failed.
Not available on all systems. To check use: > Not available on all systems. To check use: >
@ -9205,6 +9206,7 @@ server2client({clientid}, {string}) *server2client()*
Send a reply string to {clientid}. The most recent {clientid} Send a reply string to {clientid}. The most recent {clientid}
that sent a string can be retrieved with expand("<client>"). that sent a string can be retrieved with expand("<client>").
{only available when compiled with the |+clientserver| feature} {only available when compiled with the |+clientserver| feature}
Returns zero for success, -1 for failure.
Note: Note:
This id has to be stored before the next command can be This id has to be stored before the next command can be
received. I.e. before returning from the received command and received. I.e. before returning from the received command and
@ -9342,8 +9344,8 @@ setcmdpos({pos}) *setcmdpos()*
before inserting the resulting text. before inserting the resulting text.
When the number is too big the cursor is put at the end of the When the number is too big the cursor is put at the end of the
line. A number smaller than one has undefined results. line. A number smaller than one has undefined results.
Returns 0 when successful, 1 when not editing the command Returns FALSE when successful, TRUE when not editing the
line. command line.
Can also be used as a |method|: > Can also be used as a |method|: >
GetPos()->setcmdpos() GetPos()->setcmdpos()
@ -9402,8 +9404,8 @@ setline({lnum}, {text}) *setline()*
When {lnum} is just below the last line the {text} will be When {lnum} is just below the last line the {text} will be
added below the last line. added below the last line.
If this succeeds, 0 is returned. If this fails (most likely If this succeeds, FALSE is returned. If this fails (most likely
because {lnum} is invalid) 1 is returned. because {lnum} is invalid) TRUE is returned.
Example: > Example: >
:call setline(5, strftime("%c")) :call setline(5, strftime("%c"))
@ -11378,7 +11380,7 @@ win_gettype([{nr}]) *win_gettype()*
win_gotoid({expr}) *win_gotoid()* win_gotoid({expr}) *win_gotoid()*
Go to window with ID {expr}. This may also change the current Go to window with ID {expr}. This may also change the current
tabpage. tabpage.
Return 1 if successful, 0 if the window cannot be found. Return TRUE if successful, FALSE if the window cannot be found.
Can also be used as a |method|: > Can also be used as a |method|: >
GetWinid()->win_gotoid() GetWinid()->win_gotoid()

View File

@ -147,6 +147,7 @@ can be used to overrule the filetype used for certain extensions:
*.w g:filetype_w |ft-cweb-syntax| *.w g:filetype_w |ft-cweb-syntax|
*.i g:filetype_i |ft-progress-syntax| *.i g:filetype_i |ft-progress-syntax|
*.p g:filetype_p |ft-pascal-syntax| *.p g:filetype_p |ft-pascal-syntax|
*.pp g:filetype_pp |ft-pascal-syntax|
*.sh g:bash_is_sh |ft-sh-syntax| *.sh g:bash_is_sh |ft-sh-syntax|
*.tex g:tex_flavor |ft-tex-plugin| *.tex g:tex_flavor |ft-tex-plugin|

View File

@ -1,4 +1,4 @@
*index.txt* For Vim version 8.2. Last change: 2020 Oct 05 *index.txt* For Vim version 8.2. Last change: 2021 Jan 15
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar

View File

@ -3273,7 +3273,7 @@ A jump table for the options with a short description can be found at |Q_op|.
See the 'endofline' option. See the 'endofline' option.
*'fkmap'* *'fk'* *'nofkmap'* *'nofk'* *'fkmap'* *'fk'* *'nofkmap'* *'nofk'*
'fkmap' 'fk' boolean (default off) *E198* 'fkmap' 'fk' boolean (default off)
global global
{only available when compiled with the |+rightleft| {only available when compiled with the |+rightleft|
feature} feature}
@ -5221,7 +5221,7 @@ A jump table for the options with a short description can be found at |Q_op|.
NOTE: This option is set to the Vi default value when 'compatible' is NOTE: This option is set to the Vi default value when 'compatible' is
set and to the Vim default value when 'compatible' is reset. set and to the Vim default value when 'compatible' is reset.
*'mouse'* *E538* *'mouse'*
'mouse' string (default "", "a" for GUI and Win32, 'mouse' string (default "", "a" for GUI and Win32,
set to "a" or "nvi" in |defaults.vim|) set to "a" or "nvi" in |defaults.vim|)
global global

View File

@ -588,8 +588,6 @@ properties. It is in one of four forms:
If you want to create a new buffer yourself use |bufadd()| and pass the buffer If you want to create a new buffer yourself use |bufadd()| and pass the buffer
number to popup_create(). number to popup_create().
It is not possible to use the buffer of a terminal window. *E278* You CAN
create a hidden terminal buffer and use that one in a popup window.
The second argument of |popup_create()| is a dictionary with options: The second argument of |popup_create()| is a dictionary with options:
line Screen line where to position the popup. Can use a line Screen line where to position the popup. Can use a

View File

@ -2335,11 +2335,12 @@ http://papp.plan9.de.
PASCAL *pascal.vim* *ft-pascal-syntax* PASCAL *pascal.vim* *ft-pascal-syntax*
Files matching "*.p" could be Progress or Pascal. If the automatic detection Files matching "*.p" could be Progress or Pascal and those matching "*.pp"
doesn't work for you, or you don't edit Progress at all, use this in your could be Puppet or Pascal. If the automatic detection doesn't work for you,
startup vimrc: > or you only edit Pascal files, use this in your startup vimrc: >
:let filetype_p = "pascal" :let filetype_p = "pascal"
:let filetype_pp = "pascal"
The Pascal syntax file has been extended to take into account some extensions The Pascal syntax file has been extended to take into account some extensions
provided by Turbo Pascal, Free Pascal Compiler and GNU Pascal Compiler. provided by Turbo Pascal, Free Pascal Compiler and GNU Pascal Compiler.

View File

@ -1045,6 +1045,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
't_da' term.txt /*'t_da'* 't_da' term.txt /*'t_da'*
't_db' term.txt /*'t_db'* 't_db' term.txt /*'t_db'*
't_dl' term.txt /*'t_dl'* 't_dl' term.txt /*'t_dl'*
't_fd' term.txt /*'t_fd'*
't_fe' term.txt /*'t_fe'*
't_fs' term.txt /*'t_fs'* 't_fs' term.txt /*'t_fs'*
't_k1' term.txt /*'t_k1'* 't_k1' term.txt /*'t_k1'*
't_k2' term.txt /*'t_k2'* 't_k2' term.txt /*'t_k2'*
@ -3112,9 +3114,11 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:sip change.txt /*:sip* :sip change.txt /*:sip*
:sir change.txt /*:sir* :sir change.txt /*:sir*
:sl various.txt /*:sl* :sl various.txt /*:sl*
:sl! various.txt /*:sl!*
:sla windows.txt /*:sla* :sla windows.txt /*:sla*
:slast windows.txt /*:slast* :slast windows.txt /*:slast*
:sleep various.txt /*:sleep* :sleep various.txt /*:sleep*
:sleep! various.txt /*:sleep!*
:sm change.txt /*:sm* :sm change.txt /*:sm*
:smagic change.txt /*:smagic* :smagic change.txt /*:smagic*
:smap map.txt /*:smap* :smap map.txt /*:smap*
@ -4028,7 +4032,6 @@ E194 message.txt /*E194*
E195 starting.txt /*E195* E195 starting.txt /*E195*
E196 various.txt /*E196* E196 various.txt /*E196*
E197 mlang.txt /*E197* E197 mlang.txt /*E197*
E198 options.txt /*E198*
E199 cmdline.txt /*E199* E199 cmdline.txt /*E199*
E20 motion.txt /*E20* E20 motion.txt /*E20*
E200 autocmd.txt /*E200* E200 autocmd.txt /*E200*
@ -4114,7 +4117,6 @@ E274 eval.txt /*E274*
E275 textprop.txt /*E275* E275 textprop.txt /*E275*
E276 eval.txt /*E276* E276 eval.txt /*E276*
E277 remote.txt /*E277* E277 remote.txt /*E277*
E278 popup.txt /*E278*
E279 terminal.txt /*E279* E279 terminal.txt /*E279*
E28 syntax.txt /*E28* E28 syntax.txt /*E28*
E280 if_tcl.txt /*E280* E280 if_tcl.txt /*E280*
@ -4180,7 +4182,6 @@ E337 gui.txt /*E337*
E338 editing.txt /*E338* E338 editing.txt /*E338*
E339 message.txt /*E339* E339 message.txt /*E339*
E34 various.txt /*E34* E34 various.txt /*E34*
E340 vi_diff.txt /*E340*
E341 message.txt /*E341* E341 message.txt /*E341*
E342 message.txt /*E342* E342 message.txt /*E342*
E343 options.txt /*E343* E343 options.txt /*E343*
@ -4388,7 +4389,6 @@ E534 options.txt /*E534*
E535 options.txt /*E535* E535 options.txt /*E535*
E536 options.txt /*E536* E536 options.txt /*E536*
E537 options.txt /*E537* E537 options.txt /*E537*
E538 options.txt /*E538*
E539 options.txt /*E539* E539 options.txt /*E539*
E54 pattern.txt /*E54* E54 pattern.txt /*E54*
E540 options.txt /*E540* E540 options.txt /*E540*
@ -6351,6 +6351,7 @@ expression-commands eval.txt /*expression-commands*
expression-syntax eval.txt /*expression-syntax* expression-syntax eval.txt /*expression-syntax*
exrc starting.txt /*exrc* exrc starting.txt /*exrc*
extend() eval.txt /*extend()* extend() eval.txt /*extend()*
extendnew() eval.txt /*extendnew()*
extension-removal cmdline.txt /*extension-removal* extension-removal cmdline.txt /*extension-removal*
extensions-improvements todo.txt /*extensions-improvements* extensions-improvements todo.txt /*extensions-improvements*
f motion.txt /*f* f motion.txt /*f*
@ -8680,6 +8681,7 @@ read-in-close-cb channel.txt /*read-in-close-cb*
read-messages insert.txt /*read-messages* read-messages insert.txt /*read-messages*
read-only-share editing.txt /*read-only-share* read-only-share editing.txt /*read-only-share*
read-stdin version5.txt /*read-stdin* read-stdin version5.txt /*read-stdin*
readblob() eval.txt /*readblob()*
readdir() eval.txt /*readdir()* readdir() eval.txt /*readdir()*
readdirex() eval.txt /*readdirex()* readdirex() eval.txt /*readdirex()*
readfile() eval.txt /*readfile()* readfile() eval.txt /*readfile()*
@ -8945,6 +8947,7 @@ sinh() eval.txt /*sinh()*
skeleton autocmd.txt /*skeleton* skeleton autocmd.txt /*skeleton*
skip_defaults_vim starting.txt /*skip_defaults_vim* skip_defaults_vim starting.txt /*skip_defaults_vim*
slice eval.txt /*slice* slice eval.txt /*slice*
slice() eval.txt /*slice()*
slow-fast-terminal term.txt /*slow-fast-terminal* slow-fast-terminal term.txt /*slow-fast-terminal*
slow-start starting.txt /*slow-start* slow-start starting.txt /*slow-start*
slow-terminal term.txt /*slow-terminal* slow-terminal term.txt /*slow-terminal*
@ -9340,6 +9343,8 @@ t_f6 version4.txt /*t_f6*
t_f7 version4.txt /*t_f7* t_f7 version4.txt /*t_f7*
t_f8 version4.txt /*t_f8* t_f8 version4.txt /*t_f8*
t_f9 version4.txt /*t_f9* t_f9 version4.txt /*t_f9*
t_fd term.txt /*t_fd*
t_fe term.txt /*t_fe*
t_float-variable eval.txt /*t_float-variable* t_float-variable eval.txt /*t_float-variable*
t_fs term.txt /*t_fs* t_fs term.txt /*t_fs*
t_func-variable eval.txt /*t_func-variable* t_func-variable eval.txt /*t_func-variable*
@ -9714,6 +9719,7 @@ type-inference vim9.txt /*type-inference*
type-mistakes tips.txt /*type-mistakes* type-mistakes tips.txt /*type-mistakes*
typecorr-settings usr_41.txt /*typecorr-settings* typecorr-settings usr_41.txt /*typecorr-settings*
typecorr.txt usr_41.txt /*typecorr.txt* typecorr.txt usr_41.txt /*typecorr.txt*
typename() eval.txt /*typename()*
u undo.txt /*u* u undo.txt /*u*
uganda uganda.txt /*uganda* uganda uganda.txt /*uganda*
uganda.txt uganda.txt /*uganda.txt* uganda.txt uganda.txt /*uganda.txt*
@ -10314,6 +10320,7 @@ xterm-command-server term.txt /*xterm-command-server*
xterm-copy-paste term.txt /*xterm-copy-paste* xterm-copy-paste term.txt /*xterm-copy-paste*
xterm-cursor-keys term.txt /*xterm-cursor-keys* xterm-cursor-keys term.txt /*xterm-cursor-keys*
xterm-end-home-keys term.txt /*xterm-end-home-keys* xterm-end-home-keys term.txt /*xterm-end-home-keys*
xterm-focus-event term.txt /*xterm-focus-event*
xterm-function-keys term.txt /*xterm-function-keys* xterm-function-keys term.txt /*xterm-function-keys*
xterm-modifier-keys term.txt /*xterm-modifier-keys* xterm-modifier-keys term.txt /*xterm-modifier-keys*
xterm-mouse options.txt /*xterm-mouse* xterm-mouse options.txt /*xterm-mouse*

View File

@ -1,4 +1,4 @@
*term.txt* For Vim version 8.2. Last change: 2020 Dec 29 *term.txt* For Vim version 8.2. Last change: 2021 Jan 14
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -373,9 +373,9 @@ Added by Vim (there are no standard codes for these):
t_Ri restore icon text from stack *t_Ri* *'t_Ri'* t_Ri restore icon text from stack *t_Ri* *'t_Ri'*
t_TE end of "raw" mode *t_TE* *'t_TE'* t_TE end of "raw" mode *t_TE* *'t_TE'*
t_TI put terminal into "raw" mode *t_TI* *'t_TI'* t_TI put terminal into "raw" mode *t_TI* *'t_TI'*
t_fd disable focus-event tracking *t_TI* *'t_TI'* t_fd disable focus-event tracking *t_fd* *'t_fd'*
|xterm-focus-event| |xterm-focus-event|
t_fe enable focus-event tracking *t_TI* *'t_TI'* t_fe enable focus-event tracking *t_fe* *'t_fe'*
|xterm-focus-event| |xterm-focus-event|
Some codes have a start, middle and end part. The start and end are defined Some codes have a start, middle and end part. The start and end are defined

View File

@ -1,4 +1,4 @@
*todo.txt* For Vim version 8.2. Last change: 2021 Jan 11 *todo.txt* For Vim version 8.2. Last change: 2021 Jan 17
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -38,15 +38,7 @@ browser use: https://github.com/vim/vim/issues/1234
*known-bugs* *known-bugs*
-------------------- Known bugs and current work ----------------------- -------------------- Known bugs and current work -----------------------
no error for: test_autocmd failure in Windows: Something wrong with system()?
echo extend([0], ['a', true])
like it does for:
echo extend([0], ['a'])
At script level this does not give an error:
echo map([0], (_, v) => [])
Or:
var l: list<number> = [0]
echo map(l, (_, v) => [])
Vim9 - Make everything work: Vim9 - Make everything work:
- Expand `=expr` in :next, :argedit, :argadd, :argdelete, :drop - Expand `=expr` in :next, :argedit, :argadd, :argdelete, :drop
@ -117,6 +109,8 @@ Vim9 - Make everything work:
- compile "skip" argument of searchpair() - compile "skip" argument of searchpair()
- compile "expr" and "call" expression of a channel in channel_exe_cmd()? - compile "expr" and "call" expression of a channel in channel_exe_cmd()?
- give an error for "echo Func()" if Func() does not return anything. - give an error for "echo Func()" if Func() does not return anything.
- Using "windo echo expr" does not accept a line break inside "expr" (in a
:def function and at script level in a not executed block). #7681
Once Vim9 is stable: Once Vim9 is stable:
- Change the help to prefer Vim9 syntax where appropriate - Change the help to prefer Vim9 syntax where appropriate
@ -287,6 +281,9 @@ Have another look at the implementation.
Patch to implement the vimtutor with a plugin: #6414 Patch to implement the vimtutor with a plugin: #6414
Was originally written by Felipe Morales. Was originally written by Felipe Morales.
Adding "10" to 'spellsuggest' causes spell suggestions to become very slow.
(#4087)
Patch to find Python dll using registry key. (#7540) Patch to find Python dll using registry key. (#7540)
Remove SPACE_IN_FILENAME ? It is only used for completion. Remove SPACE_IN_FILENAME ? It is only used for completion.
@ -479,9 +476,6 @@ Help for ":argadd fname" says that if "fname" is already in the argument list
that entry is used. But instead it's always added. (#6210) that entry is used. But instead it's always added. (#6210)
Add flag AL_FIND_ADD, if there is one argument find it in the list. Add flag AL_FIND_ADD, if there is one argument find it in the list.
Adding "10" to 'spellsuggest' causes spell suggestions to become very slow.
(#4087)
behavior of i_CTRl-R_CTRL-R differs from documentation. (Paul Desmond Parker, behavior of i_CTRl-R_CTRL-R differs from documentation. (Paul Desmond Parker,
#5771) #5771)
@ -556,14 +550,6 @@ when "qq" is mapped and after the first "q" the mouse is moved outside of the
gvim window (with focus follows mouse), then the K_FOCUSLOST key is put in the gvim window (with focus follows mouse), then the K_FOCUSLOST key is put in the
input buffer. (#5302) input buffer. (#5302)
xterm should be able to pass focus changes to Vim, so that Vim can check for
buffers that changed. Perhaps in misc.c, function selectwindow().
Xterm 224 supports it!
Patch to make FocusGained and FocusLost work in modern terminals. (Hayaki
Saito, 2013 Apr 24) Update 2016 Aug 12.
Also see issue #609.
We could add the enable/disable sequences to t_ti/t_te or t_ks/t_ke.
:buffer completion does not escape "+" properly and results in a regexp error. :buffer completion does not escape "+" properly and results in a regexp error.
(#5467) (#5467)

View File

@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 8.2. Last change: 2021 Jan 08 *usr_41.txt* For Vim version 8.2. Last change: 2021 Jan 13
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar

View File

@ -1,4 +1,4 @@
*various.txt* For Vim version 8.2. Last change: 2020 Nov 16 *various.txt* For Vim version 8.2. Last change: 2021 Jan 16
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -411,7 +411,7 @@ N *+mouse_sysmouse* Unix only: *BSD console mouse handling |sysmouse|
B *+mouse_sgr* Unix only: sgr mouse handling |sgr-mouse| B *+mouse_sgr* Unix only: sgr mouse handling |sgr-mouse|
B *+mouse_urxvt* Unix only: urxvt mouse handling |urxvt-mouse| B *+mouse_urxvt* Unix only: urxvt mouse handling |urxvt-mouse|
N *+mouse_xterm* Unix only: xterm mouse handling |xterm-mouse| N *+mouse_xterm* Unix only: xterm mouse handling |xterm-mouse|
N *+multi_byte* 16 and 32 bit characters |multibyte| T *+multi_byte* Unicode support, 16 and 32 bit characters |multibyte|
*+multi_byte_ime* Win32 input method for multibyte chars |multibyte-ime| *+multi_byte_ime* Win32 input method for multibyte chars |multibyte-ime|
N *+multi_lang* non-English language support |multi-lang| N *+multi_lang* non-English language support |multi-lang|
m *+mzscheme* Mzscheme interface |mzscheme| m *+mzscheme* Mzscheme interface |mzscheme|
@ -722,6 +722,9 @@ K Run a program to lookup the keyword under the
available when compiled with the |+netbeans_intg| available when compiled with the |+netbeans_intg|
feature} feature}
*:sl!* *:sleep!*
:[N]sl[eep]! [N] [m] Same as above, but hide the cursor
*:xrestore* *:xr* *:xrestore* *:xr*
:xr[estore] [display] Reinitializes the connection to the X11 server. Useful :xr[estore] [display] Reinitializes the connection to the X11 server. Useful
after the X server restarts, e.g. when running Vim for after the X server restarts, e.g. when running Vim for

View File

@ -9661,7 +9661,7 @@ Solution: Check for tcsetattr() to return an error, retry when it does.
Files: src/os_unix.c Files: src/os_unix.c
Patch 6.2f.018 Patch 6.2f.018
Problem: Mac OS X 10.2: OK is defined to zero in cursus.h while Vim uses Problem: Mac OS X 10.2: OK is defined to zero in curses.h while Vim uses
one. Redefining it causes a warning message. one. Redefining it causes a warning message.
Solution: Undefine OK before defining it to one. (Taro Muraoka) Solution: Undefine OK before defining it to one. (Taro Muraoka)
Files: src/vim.h Files: src/vim.h

View File

@ -73,7 +73,7 @@ edit the termcap entry and try again. Vim has the |terminal-options|.
Vim has only a few limits for the files that can be edited {Vi: can not handle Vim has only a few limits for the files that can be edited {Vi: can not handle
<Nul> characters and characters above 128, has limited line length, many other <Nul> characters and characters above 128, has limited line length, many other
limits}. limits}.
*E340*
Maximum line length 2147483647 characters. Longer lines are split. Maximum line length 2147483647 characters. Longer lines are split.
Maximum number of lines 2147483647 lines. Maximum number of lines 2147483647 lines.
Maximum file size 2147483647 bytes (2 Gbyte) when a long integer is Maximum file size 2147483647 bytes (2 Gbyte) when a long integer is

View File

@ -1,4 +1,4 @@
*vim9.txt* For Vim version 8.2. Last change: 2021 Jan 10 *vim9.txt* For Vim version 8.2. Last change: 2021 Jan 15
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -487,6 +487,9 @@ Now "exit_cb: Func})" is actually a valid command: save any changes to the
file "_cb: Func})" and exit. To avoid this kind of mistake in Vim9 script file "_cb: Func})" and exit. To avoid this kind of mistake in Vim9 script
there must be white space between most command names and the argument. there must be white space between most command names and the argument.
However, the argument of a command that is a command won't be recognized. For
example, after "windo echo expr" a line break inside "expr" will not be seen.
Notes: Notes:
- "enddef" cannot be used at the start of a continuation line, it ends the - "enddef" cannot be used at the start of a continuation line, it ends the
@ -527,17 +530,17 @@ that using a literal key is much more common than using an expression, and
considering that JavaScript uses this syntax, using the {} form for dictionary considering that JavaScript uses this syntax, using the {} form for dictionary
literals is considered a much more useful syntax. In Vim9 script the {} form literals is considered a much more useful syntax. In Vim9 script the {} form
uses literal keys: > uses literal keys: >
let dict = {key: value} var dict = {key: value}
This works for alphanumeric characters, underscore and dash. If you want to This works for alphanumeric characters, underscore and dash. If you want to
use another character, use a single or double quoted string: > use another character, use a single or double quoted string: >
let dict = {'key with space': value} var dict = {'key with space': value}
let dict = {"key\twith\ttabs": value} var dict = {"key\twith\ttabs": value}
let dict = {'': value} # empty key var dict = {'': value} # empty key
In case the key needs to be an expression, square brackets can be used, just In case the key needs to be an expression, square brackets can be used, just
like in JavaScript: > like in JavaScript: >
let dict = {["key" .. nr]: value} var dict = {["key" .. nr]: value}
No :xit, :t, :append, :change or :insert ~ No :xit, :t, :append, :change or :insert ~
@ -552,6 +555,29 @@ Comparators ~
The 'ignorecase' option is not used for comparators that use strings. The 'ignorecase' option is not used for comparators that use strings.
For loop ~
Legacy Vim script has some tricks to make a for loop over a list handle
deleting items at the current or previous item. In Vim9 script it just uses
the index, if items are deleted then items in the list will be skipped.
Example legacy script: >
let l = [1, 2, 3, 4]
for i in l
echo i
call remove(l, index(l, i))
endfor
Would echo:
1
2
3
4
In compiled Vim9 script you get:
1
3
Generally, you should not change the list that is iterated over. Make a copy
first if needed.
White space ~ White space ~
Vim9 script enforces proper use of white space. This is no longer allowed: > Vim9 script enforces proper use of white space. This is no longer allowed: >
@ -576,15 +602,17 @@ the start and end: >
White space is not allowed: White space is not allowed:
- Between a function name and the "(": > - Between a function name and the "(": >
call Func (arg) # Error! Func (arg) # Error!
call Func Func
\ (arg) # Error! \ (arg) # Error!
call Func(arg) # OK Func
call Func( (arg) # Error!
\ arg) # OK Func(arg) # OK
call Func( Func(
\ arg # OK arg) # OK
\ ) Func(
arg # OK
)
Conditions and expressions ~ Conditions and expressions ~
@ -648,12 +676,13 @@ for v:null. When converting a boolean to a string "false" and "true" are
used, not "v:false" and "v:true" like in legacy script. "v:none" is not used, not "v:false" and "v:true" like in legacy script. "v:none" is not
changed, it is only used in JSON and has no equivalent in other languages. changed, it is only used in JSON and has no equivalent in other languages.
Indexing a string with [idx] or [idx, idx] uses character indexes instead of Indexing a string with [idx] or [idx : idx] uses character indexes instead of
byte indexes. Example: > byte indexes. Example: >
echo 'bár'[1] echo 'bár'[1]
In legacy script this results in the character 0xc3 (an illegal byte), in Vim9 In legacy script this results in the character 0xc3 (an illegal byte), in Vim9
script this results in the string 'á'. script this results in the string 'á'.
A negative index is counting from the end, "[-1]" is the last character. A negative index is counting from the end, "[-1]" is the last character.
To exclude the last character use |slice()|.
If the index is out of range then an empty string results. If the index is out of range then an empty string results.
In legacy script "++var" and "--var" would be silently accepted and have no In legacy script "++var" and "--var" would be silently accepted and have no
@ -670,16 +699,17 @@ same time tries to support the legacy Vim commands. Some compromises had to
be made. Here is a summary of what might be unexpected. be made. Here is a summary of what might be unexpected.
Ex command ranges need to be prefixed with a colon. > Ex command ranges need to be prefixed with a colon. >
-> # legacy Vim: shifts the previous line to the right -> legacy Vim: shifts the previous line to the right
->func() # Vim9: method call in continuation line ->func() Vim9: method call in a continuation line
:-> # Vim9: shifts the previous line to the right :-> Vim9: shifts the previous line to the right
%s/a/b # legacy Vim: substitute on all lines %s/a/b legacy Vim: substitute on all lines
x = alongname x = alongname
% another # Vim9: line continuation without a backslash % another Vim9: modulo operator in a continuation line
:%s/a/b # Vim9: substitute on all lines :%s/a/b Vim9: substitute on all lines
'text'->func() # Vim9: method call 't legacy Vim: jump to mark t
:'t # legacy Vim: jump to mark m 'text'->func() Vim9: method call
:'t Vim9: jump to mark t
Some Ex commands can be confused with assignments in Vim9 script: > Some Ex commands can be confused with assignments in Vim9 script: >
g:name = value # assignment g:name = value # assignment
@ -704,7 +734,7 @@ Vim9 functions are compiled as a whole: >
For a workaround, split it in two functions: > For a workaround, split it in two functions: >
func Maybe() func Maybe()
if has('feature') if has('feature')
call MaybyInner() call MaybeInner()
endif endif
endfunc endfunc
if has('feature') if has('feature')
@ -720,7 +750,7 @@ evaluates to false: >
endif endif
enddef enddef
< *vim9-user-command* < *vim9-user-command*
Another side effect of compiling a function is that the precense of a user Another side effect of compiling a function is that the presence of a user
command is checked at compile time. If the user command is defined later an command is checked at compile time. If the user command is defined later an
error will result. This works: > error will result. This works: >
command -nargs=1 MyCommand echom <q-args> command -nargs=1 MyCommand echom <q-args>
@ -1090,7 +1120,7 @@ actually needed. A recommended mechanism:
1. In the plugin define user commands, functions and/or mappings that refer to 1. In the plugin define user commands, functions and/or mappings that refer to
an autoload script. > an autoload script. >
command -nargs=1 SearchForStuff call searchfor#Stuff(<f-args>) command -nargs=1 SearchForStuff searchfor#Stuff(<f-args>)
< This goes in .../plugin/anyname.vim. "anyname.vim" can be freely chosen. < This goes in .../plugin/anyname.vim. "anyname.vim" can be freely chosen.
@ -1183,12 +1213,12 @@ When compiling lines of Vim commands into instructions as much as possible
should be done at compile time. Postponing it to runtime makes the execution should be done at compile time. Postponing it to runtime makes the execution
slower and means mistakes are found only later. For example, when slower and means mistakes are found only later. For example, when
encountering the "+" character and compiling this into a generic add encountering the "+" character and compiling this into a generic add
instruction, at execution time the instruction would have to inspect the type instruction, at runtime the instruction would have to inspect the type of the
of the arguments and decide what kind of addition to do. And when the arguments and decide what kind of addition to do. And when the type is
type is dictionary throw an error. If the types are known to be numbers then dictionary throw an error. If the types are known to be numbers then an "add
an "add number" instruction can be used, which is faster. The error can be number" instruction can be used, which is faster. The error can be given at
given at compile time, no error handling is needed at runtime, since adding compile time, no error handling is needed at runtime, since adding two numbers
two numbers cannot fail. cannot fail.
The syntax for types, using <type> for compound types, is similar to Java. It The syntax for types, using <type> for compound types, is similar to Java. It
is easy to understand and widely used. The type names are what were used in is easy to understand and widely used. The type names are what were used in

View File

@ -1,7 +1,7 @@
" Vim filetype plugin " Vim filetype plugin
" Language: Vim " Language: Vim
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2021 Jan 05 " Last Change: 2021 Jan 12
" Only do this when not done yet for this buffer " Only do this when not done yet for this buffer
if exists("b:did_ftplugin") if exists("b:did_ftplugin")
@ -51,12 +51,12 @@ setlocal keywordprg=:help
if "\n" .. getline(1, 10)->join("\n") =~# '\n\s*vim9\%[script]\>' if "\n" .. getline(1, 10)->join("\n") =~# '\n\s*vim9\%[script]\>'
" Set 'comments' to format dashed lists in comments " Set 'comments' to format dashed lists in comments
setlocal com=sO:#\ -,mO:#\ \ ,eO:##,:# setlocal com=sO:#\ -,mO:#\ \ ,eO:##,:#
" Comments start with a double quote in a legacy script; " Comments starts with # in Vim9 script
" with # in a Vim9 script setlocal commentstring=#%s
setlocal commentstring=\"%s
else else
setlocal com=sO:\"\ -,mO:\"\ \ ,:\" setlocal com=sO:\"\ -,mO:\"\ \ ,:\"
setlocal commentstring=#%s " Comments starts with a double quote in legacy script
setlocal commentstring=\"%s
endif endif

View File

@ -1,7 +1,7 @@
" Vim syntax file " Vim syntax file
" Language: C " Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2020 Aug 28 " Last Change: 2021 Jan 11
" Quit when a (custom) syntax file was already loaded " Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax") if exists("b:current_syntax")
@ -13,6 +13,9 @@ set cpo&vim
let s:ft = matchstr(&ft, '^\([^.]\)\+') let s:ft = matchstr(&ft, '^\([^.]\)\+')
" check if this was included from cpp.vim
let s:in_cpp_family = exists("b:filetype_in_cpp_family")
" Optional embedded Autodoc parsing " Optional embedded Autodoc parsing
" To enable it add: let g:c_autodoc = 1 " To enable it add: let g:c_autodoc = 1
" to your .vimrc " to your .vimrc
@ -55,7 +58,7 @@ if !exists("c_no_cformat")
endif endif
" cCppString: same as cString, but ends at end of line " cCppString: same as cString, but ends at end of line
if s:ft ==# "cpp" && !exists("cpp_no_cpp11") && !exists("c_no_cformat") if s:in_cpp_family && !exists("cpp_no_cpp11") && !exists("c_no_cformat")
" ISO C++11 " ISO C++11
syn region cString start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend syn region cString start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
syn region cCppString start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell syn region cCppString start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell
@ -87,7 +90,7 @@ syn match cSpecialCharacter display "L\='\\\o\{1,3}'"
syn match cSpecialCharacter display "'\\x\x\{1,2}'" syn match cSpecialCharacter display "'\\x\x\{1,2}'"
syn match cSpecialCharacter display "L'\\x\x\+'" syn match cSpecialCharacter display "L'\\x\x\+'"
if (s:ft ==# "c" && !exists("c_no_c11")) || (s:ft ==# "cpp" && !exists("cpp_no_cpp11")) if (s:ft ==# "c" && !exists("c_no_c11")) || (s:in_cpp_family && !exists("cpp_no_cpp11"))
" ISO C11 or ISO C++ 11 " ISO C11 or ISO C++ 11
if exists("c_no_cformat") if exists("c_no_cformat")
syn region cString start=+\%(U\|u8\=\)"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,@Spell extend syn region cString start=+\%(U\|u8\=\)"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,@Spell extend
@ -130,7 +133,7 @@ endif
" But avoid matching <::. " But avoid matching <::.
syn cluster cParenGroup contains=cParenError,cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserLabel,cBitField,cOctalZero,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom syn cluster cParenGroup contains=cParenError,cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserLabel,cBitField,cOctalZero,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom
if exists("c_no_curly_error") if exists("c_no_curly_error")
if s:ft ==# 'cpp' && !exists("cpp_no_cpp11") if s:in_cpp_family && !exists("cpp_no_cpp11")
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,@cStringGroup,@Spell syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,@cStringGroup,@Spell
" cCppParen: same as cParen but ends at end-of-line; used in cDefine " cCppParen: same as cParen but ends at end-of-line; used in cDefine
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
@ -144,7 +147,7 @@ if exists("c_no_curly_error")
syn match cErrInParen display contained "^[{}]\|^<%\|^%>" syn match cErrInParen display contained "^[{}]\|^<%\|^%>"
endif endif
elseif exists("c_no_bracket_error") elseif exists("c_no_bracket_error")
if s:ft ==# 'cpp' && !exists("cpp_no_cpp11") if s:in_cpp_family && !exists("cpp_no_cpp11")
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,@cStringGroup,@Spell syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,@cStringGroup,@Spell
" cCppParen: same as cParen but ends at end-of-line; used in cDefine " cCppParen: same as cParen but ends at end-of-line; used in cDefine
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
@ -158,7 +161,7 @@ elseif exists("c_no_bracket_error")
syn match cErrInParen display contained "[{}]\|<%\|%>" syn match cErrInParen display contained "[{}]\|<%\|%>"
endif endif
else else
if s:ft ==# 'cpp' && !exists("cpp_no_cpp11") if s:in_cpp_family && !exists("cpp_no_cpp11")
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,@cStringGroup,@Spell syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,@cStringGroup,@Spell
" cCppParen: same as cParen but ends at end-of-line; used in cDefine " cCppParen: same as cParen but ends at end-of-line; used in cDefine
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cErrInBracket,cParen,cBracket,cString,@Spell syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cErrInBracket,cParen,cBracket,cString,@Spell
@ -278,7 +281,7 @@ syn keyword cStorageClass static register auto volatile extern const
if exists("c_gnu") if exists("c_gnu")
syn keyword cStorageClass inline __attribute__ syn keyword cStorageClass inline __attribute__
endif endif
if !exists("c_no_c99") && s:ft !=# 'cpp' if !exists("c_no_c99") && !s:in_cpp_family
syn keyword cStorageClass inline restrict syn keyword cStorageClass inline restrict
endif endif
if !exists("c_no_c11") if !exists("c_no_c11")
@ -420,7 +423,7 @@ endif
syn cluster cLabelGroup contains=cUserLabel syn cluster cLabelGroup contains=cUserLabel
syn match cUserCont display "^\s*\zs\I\i*\s*:$" contains=@cLabelGroup syn match cUserCont display "^\s*\zs\I\i*\s*:$" contains=@cLabelGroup
syn match cUserCont display ";\s*\zs\I\i*\s*:$" contains=@cLabelGroup syn match cUserCont display ";\s*\zs\I\i*\s*:$" contains=@cLabelGroup
if s:ft ==# 'cpp' if s:in_cpp_family
syn match cUserCont display "^\s*\zs\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup syn match cUserCont display "^\s*\zs\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
syn match cUserCont display ";\s*\zs\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup syn match cUserCont display ";\s*\zs\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
else else

View File

@ -2,13 +2,16 @@
" Language: C++ " Language: C++
" Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp) " Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp)
" Previous Maintainer: Ken Shan <ccshan@post.harvard.edu> " Previous Maintainer: Ken Shan <ccshan@post.harvard.edu>
" Last Change: 2019 Dec 18 " Last Change: 2021 Jan 12
" quit when a syntax file was already loaded " quit when a syntax file was already loaded
if exists("b:current_syntax") if exists("b:current_syntax")
finish finish
endif endif
" inform C syntax that the file was included from cpp.vim
let b:filetype_in_cpp_family = 1
" Read the C syntax to start with " Read the C syntax to start with
runtime! syntax/c.vim runtime! syntax/c.vim
unlet b:current_syntax unlet b:current_syntax