summaryrefslogtreecommitdiffstats
path: root/runtime/doc
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/doc')
-rw-r--r--runtime/doc/Make_mvc.mak23
-rw-r--r--runtime/doc/Makefile12
-rw-r--r--runtime/doc/autocmd.txt8
-rw-r--r--runtime/doc/builtin.txt66
-rw-r--r--runtime/doc/change.txt6
-rw-r--r--runtime/doc/editing.txt21
-rw-r--r--runtime/doc/eval.txt6
-rw-r--r--runtime/doc/filetype.txt60
-rw-r--r--runtime/doc/gui.txt4
-rw-r--r--runtime/doc/gui_x11.txt6
-rw-r--r--runtime/doc/helphelp.txt4
-rw-r--r--runtime/doc/intro.txt10
-rw-r--r--runtime/doc/options.txt11
-rw-r--r--runtime/doc/os_dos.txt7
-rw-r--r--runtime/doc/pattern.txt15
-rw-r--r--runtime/doc/quickfix.txt11
-rw-r--r--runtime/doc/sponsor.txt84
-rw-r--r--runtime/doc/starting.txt90
-rw-r--r--runtime/doc/syntax.txt124
-rw-r--r--runtime/doc/tabpage.txt9
-rw-r--r--runtime/doc/tags40
-rw-r--r--runtime/doc/term.txt9
-rw-r--r--runtime/doc/testing.txt6
-rw-r--r--runtime/doc/todo.txt3
-rw-r--r--runtime/doc/uganda.rux340
-rw-r--r--runtime/doc/uganda.txt9
-rw-r--r--runtime/doc/usr_41.txt4
-rw-r--r--runtime/doc/usr_51.txt10
-rw-r--r--runtime/doc/version9.txt15
-rw-r--r--runtime/doc/vim9.txt11
-rw-r--r--runtime/doc/vim9class.txt153
31 files changed, 947 insertions, 230 deletions
diff --git a/runtime/doc/Make_mvc.mak b/runtime/doc/Make_mvc.mak
index 850d86b..f2fbc52 100644
--- a/runtime/doc/Make_mvc.mak
+++ b/runtime/doc/Make_mvc.mak
@@ -1,7 +1,7 @@
#
# Makefile for the Vim documentation on Windows
#
-# 17.11.23, Restorer, <restorer@mail2k.ru>
+# 20.03.24, Restorer, <restorer@mail2k.ru>
# Common components
!INCLUDE Make_all.mak
@@ -23,7 +23,7 @@ ICONV_PATH = D:\Programs\GetText\bin
# If the "touch" program is installed on the system, but it is not registered
# in the %PATH% environment variable, then specify the full path to this file.
!IF EXIST ("touch.exe")
-TOUCH = "touch.exe" %1
+TOUCH = touch.exe %1
!ELSE
TOUCH = if exist %1 ( copy /b %1+,, ) else ( type nul >%1 )
!ENDIF
@@ -33,7 +33,7 @@ TOUCH = if exist %1 ( copy /b %1+,, ) else ( type nul >%1 )
# If the "iconv" program is installed on the system, but it is not registered
# in the %PATH% environment variable, then specify the full path to this file.
!IF EXIST ("iconv.exe")
-ICONV = "iconv.exe"
+ICONV = iconv.exe
!ELSEIF EXIST ("$(ICONV_PATH)\iconv.exe")
ICONV = "$(ICONV_PATH)\iconv.exe"
!ENDIF
@@ -53,8 +53,8 @@ all : tags perlhtml $(CONVERTED)
tags : doctags $(DOCS)
doctags.exe $(DOCS) | sort /L C /O tags
$(PS) $(PSFLAGS) \
- (Get-Content -Raw tags ^| Get-Unique ^| %%{$$_ -replace \"`r\", \"\"})\
- ^| New-Item -Force -Path . -ItemType file -Name tags
+ (Get-Content -Raw tags ^| Get-Unique ^| %%{$$_ -replace \"`r\", \"\"}) \
+ ^| New-Item -Path . -Force -ItemType file -Name tags
doctags : doctags.c
$(CC) doctags.c
@@ -67,13 +67,12 @@ vimtags : $(DOCS)
uganda.nsis.txt : uganda.???
- !@$(PS) $(PSFLAGS) $$ext=(Get-Item $?).Extension; (Get-Content $? ^| \
- %%{$$_ -replace '\s*\*[-a-zA-Z0-9.]*\*', '' -replace 'vim:tw=78:.*', ''})\
- ^| Set-Content $*$$ext
- !@$(PS) $(PSFLAGS) $$ext=(Get-Item $?).Extension; \
- (Get-Content -Raw $(@B)$$ext).Trim() -replace '(\r\n){3,}', '$$1$$1' \
- ^| Set-Content $(@B)$$ext
-
+ ! $(PS) $(PSFLAGS) (Get-Content $? -Encoding UTF8 \
+ ^| %%{$$_ -replace '[\t\s]*\*.*\*', '' -replace 'vim:tw=\d\d:.*', ''}) \
+ ^| Set-Content \"$(@B)$$((Get-Item $?).Extension)\" -Encoding Unicode
+ ! $(PS) $(PSFLAGS)\
+ (Get-Content $(@B)$$((Get-Item $?).Extension) -Raw).Trim() -replace '(\r\n){3,}', '$$1$$1' \
+ ^| Set-Content \"$(@B)$$((Get-Item $?).Extension)\" -Encoding Unicode
# TODO:
#html: noerrors tags $(HTMLS)
diff --git a/runtime/doc/Makefile b/runtime/doc/Makefile
index eecce55..30a4f08 100644
--- a/runtime/doc/Makefile
+++ b/runtime/doc/Makefile
@@ -50,9 +50,15 @@ vimtutor.man: vimtutor.1
xxd.man: xxd.1
nroff -man $< | sed -e s/.//g > $@
-uganda.nsis.txt: uganda.txt
- sed -e 's/[ ]*\*[-a-zA-Z0-9.]*\*//g' -e 's/vim:tw=78:.*//' \
- uganda.txt | uniq >uganda.nsis.txt
+uganda.nsis.txt : uganda.???
+ for dpn in $?; do \
+ trg=$@; \
+ sed -e 's/[ ]*\*.*\*//g' -e 's/vim:tw=[[:digit:]][[:digit:]]:.*//' \
+ $${dpn} | uniq > $${trg%txt}$${dpn##*.}; \
+ done
+# This files needs to be in dos fileformat for NSIS.
+ $(VIMEXE) -e -X -u NONE --cmd "set notitle noicon nocp noml viminfo=" \
+ -c "argdo write ++ff=dos" -c "qa" uganda.nsis.???
# Awk version of .txt to .html conversion.
html: noerrors tags $(HTMLS)
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 5f9f51e..32094b3 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt* For Vim version 9.1. Last change: 2024 Jan 25
+*autocmd.txt* For Vim version 9.1. Last change: 2024 Mar 26
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -428,6 +428,9 @@ Name triggered by ~
|SessionLoadPost| after loading a session file
+|SessionWritePost| After writing the session file using
+ the |:mksession| command.
+
|MenuPopup| just before showing the popup menu
|CompleteChanged| after Insert mode completion menu changed
|CompleteDonePre| after Insert mode completion is done, before clearing
@@ -1115,6 +1118,9 @@ SafeStateAgain Like SafeState but after processing any
*SessionLoadPost*
SessionLoadPost After loading the session file created using
the |:mksession| command.
+ *SessionWritePost*
+SessionWritePost After writing a session file by calling
+ the |:mksession| command.
*ShellCmdPost*
ShellCmdPost After executing a shell command with |:!cmd|,
|:shell|, |:make| and |:grep|. Can be used to
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index ec70220..79f3cd7 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -1,4 +1,4 @@
-*builtin.txt* For Vim version 9.1. Last change: 2024 Mar 23
+*builtin.txt* For Vim version 9.1. Last change: 2024 Apr 07
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -220,12 +220,12 @@ getbufvar({buf}, {varname} [, {def}])
any variable {varname} in buffer {buf}
getcellwidths() List get character cell width overrides
getchangelist([{buf}]) List list of change list items
-getchar([expr]) Number or String
+getchar([{expr}]) Number or String
get one character from the user
getcharmod() Number modifiers for the last typed character
getcharpos({expr}) List position of cursor, mark, etc.
getcharsearch() Dict last character search
-getcharstr([expr]) String get one character from the user
+getcharstr([{expr}]) String get one character from the user
getcmdcompltype() String return the type of the current
command-line completion
getcmdline() String return the current command-line
@@ -398,7 +398,7 @@ menu_info({name} [, {mode}]) Dict get menu item information
min({expr}) Number minimum value of items in {expr}
mkdir({name} [, {flags} [, {prot}]])
Number create directory {name}
-mode([expr]) String current editing mode
+mode([{expr}]) String current editing mode
mzeval({expr}) any evaluate |MzScheme| expression
nextnonblank({lnum}) Number line nr of non-blank line >= {lnum}
nr2char({expr} [, {utf8}]) String single char with ASCII/UTF-8 value {expr}
@@ -699,7 +699,7 @@ test_override({expr}, {val}) none test with Vim internal overrides
test_refcount({expr}) Number get the reference count of {expr}
test_setmouse({row}, {col}) none set the mouse position for testing
test_settime({expr}) none set current time for testing
-test_srand_seed([seed]) none set seed for testing srand()
+test_srand_seed([{seed}]) none set seed for testing srand()
test_unknown() any unknown value for testing
test_void() any void value for testing
timer_info([{id}]) List information about timers
@@ -729,7 +729,7 @@ virtcol({expr} [, {list} [, {winid}])
screen column of cursor or mark
virtcol2col({winid}, {lnum}, {col})
Number byte index of a character on screen
-visualmode([expr]) String last visual mode used
+visualmode([{expr}]) String last visual mode used
wildmenumode() Number whether 'wildmenu' mode is active
win_execute({id}, {command} [, {silent}])
String execute {command} in window {id}
@@ -1771,7 +1771,7 @@ confirm({msg} [, {choices} [, {default} [, {type}]]])
made. It returns the number of the choice. For the first
choice this is 1.
Note: confirm() is only supported when compiled with dialog
- support, see |+dialog_con| and |+dialog_gui|.
+ support, see |+dialog_con| |+dialog_con_gui| and |+dialog_gui|.
{msg} is displayed in a |dialog| with {choices} as the
alternatives. When {choices} is missing or empty, "&OK" is
@@ -2265,8 +2265,8 @@ empty({expr}) *empty()*
- A |Job| is empty when it failed to start.
- A |Channel| is empty when it is closed.
- A |Blob| is empty when its length is zero.
- - An |Object| is empty, when the |empty()| builtin method in
- the object (if present) returns true.
+ - An |Object| is empty, when the empty() method in the object
+ (if present) returns true. |object-empty()|
For a long |List| this is much faster than comparing the
length with zero.
@@ -2307,7 +2307,8 @@ eval({string}) Evaluate {string} and return the result. Especially useful to
turn the result of |string()| back into the original value.
This works for Numbers, Floats, Strings, Blobs and composites
of them. Also works for |Funcref|s that refer to existing
- functions.
+ functions. In |Vim9| script, it can be used to obtain |enum|
+ values from their fully qualified names.
Can also be used as a |method|: >
argv->join()->eval()
@@ -3454,16 +3455,16 @@ getchangelist([{buf}]) *getchangelist()*
Can also be used as a |method|: >
GetBufnr()->getchangelist()
-getchar([expr]) *getchar()*
+getchar([{expr}]) *getchar()*
Get a single character from the user or input stream.
- If [expr] is omitted, wait until a character is available.
- If [expr] is 0, only get a character when one is available.
+ If {expr} is omitted, wait until a character is available.
+ If {expr} is 0, only get a character when one is available.
Return zero otherwise.
- If [expr] is 1, only check if a character is available, it is
+ If {expr} is 1, only check if a character is available, it is
not consumed. Return zero if no character available.
If you prefer always getting a string use |getcharstr()|.
- Without [expr] and when [expr] is 0 a whole character or
+ Without {expr} and when {expr} is 0 a whole character or
special key is returned. If it is a single character, the
result is a Number. Use |nr2char()| to convert it to a String.
Otherwise a String is returned with the encoded character.
@@ -3473,11 +3474,11 @@ getchar([expr]) *getchar()*
also a String when a modifier (shift, control, alt) was used
that is not included in the character.
- When [expr] is 0 and Esc is typed, there will be a short delay
+ When {expr} is 0 and Esc is typed, there will be a short delay
while Vim waits to see if this is the start of an escape
sequence.
- When [expr] is 1 only the first byte is returned. For a
+ When {expr} is 1 only the first byte is returned. For a
one-byte character it is the character itself as a number.
Use nr2char() to convert it to a String.
@@ -3588,13 +3589,13 @@ getcharsearch() *getcharsearch()*
< Also see |setcharsearch()|.
-getcharstr([expr]) *getcharstr()*
+getcharstr([{expr}]) *getcharstr()*
Get a single character from the user or input stream as a
string.
- If [expr] is omitted, wait until a character is available.
- If [expr] is 0 or false, only get a character when one is
+ If {expr} is omitted, wait until a character is available.
+ If {expr} is 0 or false, only get a character when one is
available. Return an empty string otherwise.
- If [expr] is 1 or true, only check if a character is
+ If {expr} is 1 or true, only check if a character is
available, it is not consumed. Return an empty string
if no character is available.
Otherwise this works like |getchar()|, except that a number
@@ -5485,9 +5486,9 @@ len({expr}) The result is a Number, which is the length of the argument.
When {expr} is a |Blob| the number of bytes is returned.
When {expr} is a |Dictionary| the number of entries in the
|Dictionary| is returned.
- When {expr} is an |Object|, invokes the |len()| method in the
- object (if present) to get the length. Otherwise returns
- zero.
+ When {expr} is an |Object|, invokes the len() method in the
+ object (if present) to get the length (|object-len()|).
+ Otherwise returns zero.
Can also be used as a |method|: >
mylist->len()
@@ -6647,8 +6648,8 @@ mkdir({name} [, {flags} [, {prot}]])
GetName()->mkdir()
<
*mode()*
-mode([expr]) Return a string that indicates the current mode.
- If [expr] is supplied and it evaluates to a non-zero Number or
+mode([{expr}]) Return a string that indicates the current mode.
+ If {expr} is supplied and it evaluates to a non-zero Number or
a non-empty String (|non-zero-arg|), then the full mode is
returned, otherwise only the first letter is returned.
Also see |state()|.
@@ -9598,14 +9599,16 @@ string({expr}) Return {expr} converted to a String. If {expr} is a Number,
Dictionary {key: value, key: value}
Class class SomeName
Object object of SomeName {lnum: 1, col: 3}
+ Enum enum EnumName
+ EnumValue enum name.value {name: str, ordinal: nr}
When a |List| or |Dictionary| has a recursive reference it is
replaced by "[...]" or "{...}". Using eval() on the result
will then fail.
- For an object, invokes the |string()| method to get a textual
+ For an object, invokes the string() method to get a textual
representation of the object. If the method is not present,
- then the default representation is used.
+ then the default representation is used. |object-string()|
Can also be used as a |method|: >
mylist->string()
@@ -9977,6 +9980,10 @@ synconcealed({lnum}, {col}) *synconcealed()*
synconcealed(lnum, 5) [1, 'X', 2]
synconcealed(lnum, 6) [0, '', 0]
+ Note: Doesn't consider |matchadd()| highlighting items,
+ since syntax and matching highlighting are two different
+ mechanisms |syntax-vs-match|.
+
synstack({lnum}, {col}) *synstack()*
Return a |List|, which is the stack of syntax items at the
@@ -10461,6 +10468,8 @@ type({expr}) The result is a Number representing the type of {expr}.
Class: 12 |v:t_class|
Object: 13 |v:t_object|
Typealias: 14 |v:t_typealias|
+ Enum: 15 |v:t_enum|
+ EnumValue: 16 |v:t_enumvalue|
For backward compatibility, this method can be used: >
:if type(myvar) == type(0)
:if type(myvar) == type("")
@@ -11195,6 +11204,7 @@ cscope Compiled with |cscope| support.
cursorbind Compiled with |'cursorbind'| (always true)
debug Compiled with "DEBUG" defined.
dialog_con Compiled with console dialog support.
+dialog_con_gui Compiled with console and GUI dialog support.
dialog_gui Compiled with GUI dialog support.
diff Compiled with |vimdiff| and 'diff' support.
digraphs Compiled with support for digraphs.
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 7063cad..cd3d6ad 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt* For Vim version 9.1. Last change: 2023 Dec 19
+*change.txt* For Vim version 9.1. Last change: 2024 Apr 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1345,8 +1345,8 @@ expression (like with the "/" command).
The expression must evaluate to a String. A Number is always automatically
converted to a String. For the "p" and ":put" command, if the result is a
Float it's converted into a String. If the result is a List each element is
-turned into a String and used as a line. A Dictionary or FuncRef results in
-an error message (use string() to convert).
+turned into a String and used as a line. A Dictionary is converted into a
+String. A FuncRef results in an error message (use string() to convert).
If the "= register is used for the "p" command, the String is split up at <NL>
characters. If the String ends in a <NL>, it is regarded as a linewise
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index d0f8938..ca8f0ae 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt* For Vim version 9.1. Last change: 2024 Jan 14
+*editing.txt* For Vim version 9.1. Last change: 2024 Apr 12
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -658,9 +658,12 @@ list of the current window.
:[count]arge[dit][!] [++opt] [+cmd] {name} .. *:arge* *:argedit*
Add {name}s to the argument list and edit it.
- When {name} already exists in the argument list, this
- entry is edited.
- This is like using |:argadd| and then |:edit|.
+ There is no check for duplicates, it is possible to
+ add a file to the argument list twice |:argded|.
+ This is like using |:argadd| and then |:edit| (with
+ the small exception that |:edit| does not change the
+ argument list, so the argument list pointer isn't
+ changed).
Spaces in filenames have to be escaped with "\".
[count] is used like with |:argadd|.
If the current file cannot be |abandon|ed {name}s will
@@ -679,12 +682,12 @@ list of the current window.
If the argument list is "a b c", and "b" is the
current argument, then these commands result in:
command new argument list ~
- :argadd x a b x c
- :0argadd x x a b c
- :1argadd x a x b c
- :$argadd x a b c x
+ :argadd x a [b] x c
+ :0argadd x x a [b] c
+ :1argadd x a x [b] c
+ :$argadd x a [b] c x
And after the last one:
- :+2argadd y a b c x y
+ :+2argadd y a [b] c x y
There is no check for duplicates, it is possible to
add a file to the argument list twice. You can use
|:argdedupe| to fix it afterwards: >
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index f2ff3a8..fd37d97 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 9.1. Last change: 2024 Mar 20
+*eval.txt* For Vim version 9.1. Last change: 2024 Mar 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2601,6 +2601,10 @@ v:t_class Value of |class| type. Read-only. See: |type()|
v:t_object Value of |object| type. Read-only. See: |type()|
*v:t_typealias* *t_typealias-variable*
v:t_typealias Value of |typealias| type. Read-only. See: |type()|
+ *v:t_enum* *t_enum-variable*
+v:t_enum Value of |enum| type. Read-only. See: |type()|
+ *v:t_enumvalue* *t_enumvalue-variable*
+v:t_enumvalue Value of |enumvalue| type. Read-only. See: |type()|
*v:termresponse* *termresponse-variable*
v:termresponse The escape sequence returned by the terminal for the |t_RV|
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index 41b27cc..f8a8ebe 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -1,4 +1,4 @@
-*filetype.txt* For Vim version 9.1. Last change: 2024 Feb 14
+*filetype.txt* For Vim version 9.1. Last change: 2024 Apr 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -157,6 +157,8 @@ variables can be used to overrule the filetype used for certain extensions:
*.inc g:filetype_inc
*.lsl g:filetype_lsl
*.m g:filetype_m |ft-mathematica-syntax|
+ *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md
+ g:filetype_md |ft-pandoc-syntax|
*.mod g:filetype_mod
*.p g:filetype_p |ft-pascal-syntax|
*.pl g:filetype_pl
@@ -437,6 +439,19 @@ So to enable this only for ruby, set the following variable: >
If both, the global `plugin_exec` and the `<filetype>_exec` specific variable
are set, the filetype specific variable should have precedent.
+
+ASCIIDOC *ft-asciidoc-plugin*
+
+To enable |folding| use this: >
+ let g:asciidoc_folding = 1
+
+To disable nesting of folded headers use this: >
+ let g:asciidoc_foldnested = 0
+
+To disable folding everything under the title use this: >
+ let asciidoc_fold_under_title = 0
+
+
AWK *ft-awk-plugin*
Support for features specific to GNU Awk, like @include, can be enabled by
@@ -564,18 +579,6 @@ under it. If not found, a new entry and item is prepended to the beginning of
the Changelog.
-ASCIIDOC *ft-asciidoc-plugin*
-
-To enable |folding| use this: >
- let g:asciidoc_folding = 1
-
-To disable nesting of folded headers use this: >
- let g:asciidoc_foldnested = 0
-
-To disable folding everything under the title use this: >
- let asciidoc_fold_under_title = 0
-
-
FORTRAN *ft-fortran-plugin*
Options:
@@ -624,6 +627,37 @@ The mapping can be disabled with: >
let g:no_gprof_maps = 1
+JAVA *ft-java-plugin*
+
+Whenever the variable "g:ftplugin_java_source_path" is defined and its value
+is a filename whose extension is either ".jar" or ".zip", e.g.: >
+ let g:ftplugin_java_source_path = '/path/to/src.jar'
+ let g:ftplugin_java_source_path = '/path/to/src.zip'
+<
+and the |zip| plugin has already been sourced, the |gf| command can be used to
+open the archive and the |n| command can be used to look for the selected type
+and the <Return> key can be used to load a listed file.
+
+Note that the effect of using the "gf" command WITHIN a buffer loaded with the
+Zip plugin depends on the version of the Zip plugin. For the Zip plugin
+versions that do not support Jar type archives, consider creating symbolic
+links with the ".zip" extension for each Jar archive of interest and assigning
+any such file to the variable from now on.
+
+Otherwise, for the defined variable "g:ftplugin_java_source_path", the local
+value of the 'path' option will be further modified by prefixing the value of
+the variable, e.g.: >
+ let g:ftplugin_java_source_path = $JDK_SRC_PATH
+ let &l:path = g:ftplugin_java_source_path . ',' . &l:path
+<
+and the "gf" command can be used on a fully-qualified type to look for a file
+in the "path" and to try to load it.
+
+Remember to manually trigger the |FileType| event from a buffer with a Java
+file loaded in it each time after assigning a new value to the variable: >
+ doautocmd FileType
+<
+
JSON-FORMAT *ft-json-plugin*
JSON filetype can be extended to use 'formatexpr' and "json.FormatExpr()"
diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index 6e08752..3fda6e1 100644
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -1,4 +1,4 @@
-*gui.txt* For Vim version 9.1. Last change: 2023 Apr 29
+*gui.txt* For Vim version 9.1. Last change: 2024 Apr 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -70,6 +70,8 @@ When the GUI starts up initializations are carried out, in this order:
- For Win32, $HOME is set by Vim if needed, see |$HOME-windows|.
- When a "_gvimrc" file is not found, ".gvimrc" is tried too. And vice
versa.
+ - On Unix, if "~/.config/vim/gvimrc" or "$XDG_CONFIG_HOME/vim/gvimrc"
+ exists, it is sourced. You can check this with ":version".
The name of the first file found is stored in $MYGVIMRC, unless it was
already set.
- If the 'exrc' option is set (which is NOT the default) the file ./.gvimrc
diff --git a/runtime/doc/gui_x11.txt b/runtime/doc/gui_x11.txt
index bc2ba54..dbd4b10 100644
--- a/runtime/doc/gui_x11.txt
+++ b/runtime/doc/gui_x11.txt
@@ -1,4 +1,4 @@
-*gui_x11.txt* For Vim version 9.1. Last change: 2024 Jan 30
+*gui_x11.txt* For Vim version 9.1. Last change: 2024 Apr 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -636,8 +636,8 @@ that version.
For Motif, you need at least Motif version 1.2 and/or X11R5. Motif 2.0 and
X11R6 are OK. Motif 1.1 and X11R4 might work, no guarantee (there may be a
few problems, but you might make it compile and run with a bit of work, please
-send me the patches if you do). The newest releases of LessTif have been
-reported to work fine too.
+send patches if you do). The newest releases of LessTif have been reported to
+work fine too.
*gui-x11-athena* *gui-x11-neXtaw*
Support for the Athena GUI and neXtaw was removed in patch 8.2.4677.
diff --git a/runtime/doc/helphelp.txt b/runtime/doc/helphelp.txt
index 07a4c96..40039e3 100644
--- a/runtime/doc/helphelp.txt
+++ b/runtime/doc/helphelp.txt
@@ -1,4 +1,4 @@
-*helphelp.txt* For Vim version 9.1. Last change: 2022 Jan 08
+*helphelp.txt* For Vim version 9.1. Last change: 2024 Apr 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -315,7 +315,7 @@ Hints for translators:
using the "tag@en" notation.
- Make a package with all the files and the tags file available for download.
Users can drop it in one of the "doc" directories and start use it.
- Report this to Bram, so that he can add a link on www.vim.org.
+ Report to the development team, so they can add a link on www.vim.org.
- Use the |:helptags| command to generate the tags files. It will find all
languages in the specified directory.
diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt
index 120d65d..12808a5 100644
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -1,4 +1,4 @@
-*intro.txt* For Vim version 9.1. Last change: 2024 Jan 25
+*intro.txt* For Vim version 9.1. Last change: 2024 Apr 11
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -132,9 +132,9 @@ There are three ways to report bugs:
3. Send bug reports to: Vim Developers <vim-dev@vim.org>
This is a maillist, you need to become a member first and many people will
see the message. If you don't want that, e.g. because it is a security
- issue, please contact any of the current Vim maintainers
- https://github.com/orgs/vim/people (but not Bram or the vim-dev ML).
- In the future, a proper process for handling security issues will be setup.
+ issue, please contact the current Vim maintainers at the e-mail address
+ <vim-security@googlegroups.com> or create a security advisory at Github:
+ https://github.com/vim/vim/security/advisories
Please be brief; all the time that is spent on answering mail is subtracted
from the time that is spent on improving Vim! Always give a reproducible
@@ -145,7 +145,7 @@ Preferably start Vim with: >
Where reproduce.vim is a script that reproduces the problem. Try different
machines, if relevant (is this an MS-Windows specific bug perhaps?).
-Send me patches if you can! If you create a pull request on
+Send patches if you can! If you create a pull request on
https://github.com/vim/vim then the automated checks will run and report any
obvious problems. But you can also send the patch by email (use an attachment
to avoid white space changes).
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index a79e0b2..806f5f0 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt* For Vim version 9.1. Last change: 2024 Mar 11
+*options.txt* For Vim version 9.1. Last change: 2024 Mar 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -7502,8 +7502,7 @@ A jump table for the options with a short description can be found at |Q_op|.
highlighted with |hl-NonText|.
You may also want to add "lastline" to the 'display' option to show as
much of the last line as possible.
- NOTE: only partly implemented, currently works with CTRL-E, CTRL-Y
- and scrolling with the mouse.
+ NOTE: partly implemented, doesn't work yet for |gj| and |gk|.
*'softtabstop'* *'sts'*
'softtabstop' 'sts' number (default 0)
@@ -8106,7 +8105,7 @@ A jump table for the options with a short description can be found at |Q_op|.
appear wrong in many places, e.g., when printing it.
The value must be more than 0 and less than 10000.
- There are four main ways to use tabs in Vim:
+ There are five main ways to use tabs in Vim:
1. Always keep 'tabstop' at 8, set 'softtabstop' and 'shiftwidth' to 4
(or 3 or whatever you prefer) and use 'noexpandtab'. Then Vim
will use a mix of tabs and spaces, but typing <Tab> and <BS> will
@@ -9469,8 +9468,8 @@ A jump table for the options with a short description can be found at |Q_op|.
will scroll 'window' minus two lines, with a minimum of one.
When 'window' is equal to 'lines' minus one CTRL-F and CTRL-B scroll
in a much smarter way, taking care of wrapping lines.
- When resizing the Vim window, the value is smaller than 1 or more than
- or equal to 'lines' it will be set to 'lines' minus 1.
+ When resizing the Vim window, and the value is smaller than 1 or more
+ than or equal to 'lines' it will be set to 'lines' minus 1.
Note: Do not confuse this with the height of the Vim window, use
'lines' for that.
diff --git a/runtime/doc/os_dos.txt b/runtime/doc/os_dos.txt
index e81ba9a..1b738f4 100644
--- a/runtime/doc/os_dos.txt
+++ b/runtime/doc/os_dos.txt
@@ -1,4 +1,4 @@
-*os_dos.txt* For Vim version 9.1. Last change: 2006 Mar 30
+*os_dos.txt* For Vim version 9.1. Last change: 2024 Apr 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -330,6 +330,11 @@ following values:
'shellpipe' >%s 2>&1
'shellredir' >%s 2>&1
+Note: those options are only set after reading the |.vimrc| file, in
+particular setting the 'shell' option via |-c| is too late to take effect for
+the other shell related settings. Consider using |--cmd| to override this
+option via the command line.
+
If you find that PowerShell commands are taking a long time to run then try
with "-NoProfile" at the beginning of the 'shellcmdflag'. Note this will
prevent any PowerShell environment setup by the profile from taking place.
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index 2d1898d..c23462c 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt* For Vim version 9.1. Last change: 2023 Oct 23
+*pattern.txt* For Vim version 9.1. Last change: 2024 Apr 26
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1394,6 +1394,19 @@ Finally, these constructs are unique to Perl:
==============================================================================
10. Highlighting matches *match-highlight*
+ *syntax-vs-match*
+ Note that the match highlight mechanism is independent
+ of |syntax-highlighting|, which is (usually) a buffer-local
+ highlighting, while matching is window-local, both methods
+ can be freely mixed. Match highlighting functions give you
+ a bit more flexibility in when and how to apply, but are
+ typically only used for temporary highlighting, without strict
+ rules. Both methods can be used to conceal text.
+
+ Thus the matching functions like |matchadd()| won't consider
+ syntax rules and functions like |synconcealend()| and the
+ other way around.
+
*:mat* *:match*
:mat[ch] {group} /{pattern}/
Define a pattern to highlight in the current window. It will
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index ae3bfb5..e659d39 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt* For Vim version 9.1. Last change: 2023 Jan 18
+*quickfix.txt* For Vim version 9.1. Last change: 2023 Apr 15
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1321,6 +1321,15 @@ If Vim was started from the compiler, the :sh and some :! commands will not
work, because Vim is then running in the same process as the compiler and
stdin (standard input) will not be interactive.
+PANDOC *quickfix-pandoc* *compiler-pandoc*
+
+The Pandoc compiler plugin expects that an output file type extension is
+passed to make, say :make html or :make pdf.
+
+Additional arguments can be passed to pandoc:
+
+- either by appending them to make, say `:make html --self-contained` .
+- or setting them in `b:pandoc_compiler_args` or `g:pandoc_compiler_args`
PERL *quickfix-perl* *compiler-perl*
diff --git a/runtime/doc/sponsor.txt b/runtime/doc/sponsor.txt
index 86da892..1698168 100644
--- a/runtime/doc/sponsor.txt
+++ b/runtime/doc/sponsor.txt
@@ -1,4 +1,4 @@
-*sponsor.txt* For Vim version 9.1. Last change: 2023 Mar 24
+*sponsor.txt* For Vim version 9.1. Last change: 2024 Apr 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -8,11 +8,12 @@
SPONSOR VIM DEVELOPMENT *sponsor*
Fixing bugs and adding new features takes a lot of time and effort. To show
-your appreciation for the work and motivate Bram and others to continue
-working on Vim please send a donation.
+your appreciation for the work and motivate developers to continue working on
+Vim please send a donation.
-Since Bram does not need the money it will be used to help children in Uganda,
-see |uganda|. Donations increase Bram's motivation to keep working on Vim!
+The money you donated will be mainly used to help children in Uganda. See
+|uganda|. But at the same time donations increase the development team
+motivation to keep working on Vim!
For the most recent information about sponsoring look on the Vim web site:
@@ -33,22 +34,12 @@ More explanations can be found in the |register-faq|.
VOTE FOR FEATURES *vote-for-features*
-To give registered Vim users and sponsors an advantage over lurkers they can
-vote for the items Bram should work on. How does this voting work?
+Note: Voting for features has been discontinued since the passing of |Bram| in
+2023. The following two links still work, but they are no longer updated. So
+they now only provide a historic view as of summer 2023.
-1. You send at least 10 euro. See below for ways to transfer money
- |send-money|.
-
-2. You will be e-mailed a registration key. Enter this key on your account
- page on the Vim website. You can easily create an account if you don't
- have one yet.
-
-3. You can enter your votes on the voting page. There is a link to that page
- on your account page after entering a registration key. Your votes will
- be counted for two years.
-
-4. The voting results appear on the results page, which is visible for
- everybody: http://www.vim.org/sponsor/vote_results.php
+The voting results appear on the results page, which is visible for everybody:
+http://www.vim.org/sponsor/vote_results.php
Additionally, once you have sent 100 euro or more in total, your name appears
in the "Vim hall of honour": http://www.vim.org/sponsor/hall_of_honour.php
@@ -69,17 +60,16 @@ Credit card Through PayPal, see the PayPal site for information:
Other methods See |iccf-donations|.
Include "Vim sponsor" or "Vim registration" in the comment of
- your money transfer. Send me an e-mail that mentions the
- amount you transferred if you want to vote for features and
- show others you are a registered Vim user or sponsor.
+ your money transfer.
QUESTIONS AND ANSWERS *sponsor-faq* *register-faq*
Why should I give money?
-If you do not show your appreciation for Vim then Bram will be less motivated
-to fix bugs and add new features. He will do something else instead.
+If you do not show your appreciation for Vim, the development team will be
+less motivated to fix bugs and add new features. They will do something else
+instead.
How much money should I send?
@@ -90,18 +80,6 @@ professional use: 30 Euro per year per person. Send at least 10 euro to be
able to vote for features.
-What do I get in return?
-
-Each registered Vim user and sponsor who donates at least 10 euro will be able
-to vote for new features. These votes will give priority to the work on Vim.
-The votes are valid for two years. The more money you send the more your
-votes count |votes-counted|.
-
-If you send 100 Euro or more in total you will be mentioned on the "Vim hall
-of honour" page on the Vim web site. But only if you enable this on your
-account page. You can also select whether the amount will be visible.
-
-
How do I become a Vim sponsor or registered Vim user?
Send money, as explained above |send-money| and include your e-mail address.
@@ -146,29 +124,6 @@ No, suggestions for improving Vim can always be given. For improvements use
the developer |maillist|, for reporting bugs see |bugs|.
-How are my votes counted? *votes-counted*
-
-You may vote when you send 10 euro or more. You can enter up to ten votes.
-You can select the same item several times to give it more points. You can
-also enter three counter votes, these count as negative points.
-
-When you send 30 euro or more the points are doubled. Above 100 euro they
-count four times, above 300 euro they count six times, above 1000 euro ten
-times.
-
-
-Can I change my votes?
-
-You can change your votes any time you like, up to two years after you
-sent money. The points will be counted right away.
-
-
-Can I add an item to vote on?
-
-Not directly. You can suggest items to vote on to Bram. He will consider
-fitting your item into the list.
-
-
How about Charityware?
Currently the Vim donations go to |uganda| anyway. Thus it doesn't matter if
@@ -178,18 +133,17 @@ for features.
I donated $$$, now please add feature XYZ!
-There is no direct relation between your donation and the work Bram does.
+There is no direct relation between your donation and the work developers do.
Otherwise you would be paying for work and we would have to pay tax over the
-donation. If you want to hire Bram for specific work, contact him directly,
-don't use the donation system.
+donation. If you want to hire one of the developers for specific work,
+contact them directly, don't use the donation system.
Are the donations tax deductible?
That depends on your country. The donations to help the children in |Uganda|
are tax deductible in Holland, Germany, Canada and in the USA. See the ICCF
-website http://iccf-holland.org/donate.html. You must send an e-mail to Bram
-to let him know that the donation is done because of the use of Vim.
+website http://iccf-holland.org/donate.html.
Can you send me a bill?
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index a757445..b83a61e 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt* For Vim version 9.1. Last change: 2024 Mar 13
+*starting.txt* For Vim version 9.1. Last change: 2024 Apr 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -93,20 +93,20 @@ filename One or more file names. The first one will be the current
The startup mode can be changed by using another name instead of "vim", which
is equal to giving options:
-ex vim -e Start in Ex mode (see |Ex-mode|). *ex*
-exim vim -E Start in improved Ex mode (see |Ex-mode|). *exim*
- (normally not installed)
-view vim -R Start in read-only mode (see |-R|). *view*
-gvim vim -g Start the GUI (see |gui|). *gvim*
-gex vim -eg Start the GUI in Ex mode. *gex*
-gview vim -Rg Start the GUI in read-only mode. *gview*
-rvim vim -Z Like "vim", but in restricted mode (see |-Z|) *rvim*
-rview vim -RZ Like "view", but in restricted mode. *rview*
-rgvim vim -gZ Like "gvim", but in restricted mode. *rgvim*
-rgview vim -RgZ Like "gview", but in restricted mode. *rgview*
-evim vim -y Easy Vim: set 'insertmode' (see |-y|) *evim*
-eview vim -yR Like "evim" in read-only mode *eview*
-vimdiff vim -d Start in diff mode |diff-mode|
+ex vim -e Start in Ex mode (see |Ex-mode|). *ex*
+exim vim -E Start in improved Ex mode (see |Ex-mode|). *exim*
+ (normally not installed)
+view vim -R Start in read-only mode (see |-R|). *view*
+gvim vim -g Start the GUI (see |gui|). *gvim*
+gex vim -eg Start the GUI in Ex mode. *gex*
+gview vim -Rg Start the GUI in read-only mode. *gview*
+rvim vim -Z Like "vim", but in restricted mode (see |-Z|) *rvim*
+rview vim -RZ Like "view", but in restricted mode. *rview*
+rgvim vim -gZ Like "gvim", but in restricted mode. *rgvim*
+rgview vim -RgZ Like "gview", but in restricted mode. *rgview*
+evim vim -y Easy Vim: set 'insertmode' (see |-y|) *evim*
+eview vim -yR Like "evim" in read-only mode *eview*
+vimdiff vim -d Start in diff mode |diff-mode|
gvimdiff vim -gd Start in diff mode |diff-mode|
Additional characters may follow, they are ignored. For example, you can have
@@ -811,7 +811,8 @@ accordingly. Vim proceeds in this order:
name. Also see |vimrc-intro|.
Places for your personal initializations:
- Unix $HOME/.vimrc or $HOME/.vim/vimrc
+ Unix $HOME/.vimrc, $HOME/.vim/vimrc
+ or $XDG_CONFIG_HOME/vim/vimrc
MS-Windows $HOME/_vimrc, $HOME/vimfiles/vimrc
or $VIM/_vimrc
Amiga s:.vimrc, home:.vimrc, home:vimfiles:vimrc
@@ -853,15 +854,16 @@ accordingly. Vim proceeds in this order:
I The environment variable VIMINIT (see also |compatible-default|) (*)
The value of $VIMINIT is used as an Ex command line.
II The user vimrc file(s):
- "$HOME/.vimrc" (for Unix) (*)
- "$HOME/.vim/vimrc" (for Unix) (*)
- "s:.vimrc" (for Amiga) (*)
- "home:.vimrc" (for Amiga) (*)
- "home:vimfiles:vimrc" (for Amiga) (*)
- "$VIM/.vimrc" (for Amiga) (*)
- "$HOME/_vimrc" (for Win32) (*)
- "$HOME/vimfiles/vimrc" (for Win32) (*)
- "$VIM/_vimrc" (for Win32) (*)
+ "$HOME/.vimrc" (for Unix) (*)
+ "$HOME/.vim/vimrc" (for Unix) (*)
+ "$HOME/.config/vim/vimrc" (for Unix) (*)
+ "s:.vimrc" (for Amiga) (*)
+ "home:.vimrc" (for Amiga) (*)
+ "home:vimfiles:vimrc" (for Amiga) (*)
+ "$VIM/.vimrc" (for Amiga) (*)
+ "$HOME/_vimrc" (for Win32) (*)
+ "$HOME/vimfiles/vimrc" (for Win32) (*)
+ "$VIM/_vimrc" (for Win32) (*)
"$HOME/config/settings/vim/vimrc" (for Haiku) (*)
Note: For Unix and Amiga, when ".vimrc" does not exist,
@@ -1085,6 +1087,44 @@ defaults.vim from your .vimrc, first unlet skip_defaults_vim, as in the
example above.
+ *xdg-base-dir* *$XDG_CONFIG_HOME*
+XDG Base Directory Specification ~
+
+The XDG Base Directory Specification aims to define a standard location for
+configuration files used by applications. This is mainly done to prevent
+the legacy behavior of dumping everything into the user's home directory.
+The specification can be found online at
+https://specifications.freedesktop.org/basedir-spec/latest/
+
+The location of this standard configuration directory is configurable by the
+user, using an environment variable but should also give fallback in case those
+variables weren't set.
+
+This is not an exhaustive list of those directories:
+ Environment var Default location Description ~
+ `$XDG_CACHE_HOME` $HOME/.cache Ephemeral data files
+ `$XDG_CONFIG_HOME` $HOME/.config Configuration files
+ `$XDG_DATA_HOME` $HOME/.local/share Persistent data files
+ `$XDG_STATE_HOME` $HOME/.local/state State data files
+
+Vim will only use the `$XDG_CONFIG_HOME` directory, the others are not
+(yet) used for its various configuration and state files.
+
+ *xdg-vimrc*
+Vim, on Unix systems, will look at `$XDG_CONFIG_HOME/vim/vimrc` for its
+configuration (see |vimrc|) but it will source it only if no other
+initialization file is found in `$HOME` or `$HOME/.vim` (thus making this
+feature backward compatible). However, if you want to migrate to use
+`$XDG_CONFIG_HOME/vim/` directory, you will have to move away your `~/.vimrc`
+and `~/.vim/vimrc` file.
+
+ *xdg-runtime*
+When the |xdg-vimrc| is used the |'runtimepath'| will be modified accordingly
+to respect the |xdg-base-dir|: >
+
+ "$XDG_CONFIG_HOME/vim,$VIMRUNTIME,/after,$XDG_CONFIG_HOME/vim/after"
+<
+
Avoiding trojan horses ~
*trojan-horse*
While reading the "vimrc" or the "exrc" file in the current directory, some
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index de8a665..873315c 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt* For Vim version 9.1. Last change: 2024 Mar 10
+*syntax.txt* For Vim version 9.1. Last change: 2024 Apr 26
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -930,6 +930,21 @@ nasm_loose_syntax unofficial parser allowed syntax not as Error
nasm_ctx_outside_macro contexts outside macro not as Error
nasm_no_warn potentially risky syntax not as ToDo
+ASTRO *astro.vim* *ft-astro-syntax*
+
+Configuration
+
+The following variables control certain syntax highlighting features.
+You can add them to your .vimrc: >
+ let g:astro_typescript = "enable"
+<
+Enables TypeScript and TSX for ".astro" files. Default Value: "disable" >
+ let g:astro_stylus = "enable"
+<
+Enables Stylus for ".astro" files. Default Value: "disable"
+
+NOTE: You need to install an external plugin to support stylus in astro files.
+
ASPPERL and ASPVBS *ft-aspperl-syntax* *ft-aspvbs-syntax*
@@ -2467,6 +2482,95 @@ by the camlp4 preprocessor. Setting the variable >
prevents highlighting of "end" as error, which is useful when sources
contain very long structures that Vim does not synchronize anymore.
+PANDOC *ft-pandoc-syntax*
+
+By default, markdown files will be detected as filetype "markdown".
+Alternatively, you may want them to be detected as filetype "pandoc" instead.
+To do so, set the following: >
+
+ :let g:markdown_md = 'pandoc'
+
+The pandoc syntax plugin uses |conceal| for pretty highlighting. Default is 1 >
+
+ :let g:pandoc#syntax#conceal#use = 1
+
+To specify elements that should not be concealed, set the following variable: >
+
+ :let g:pandoc#syntax#conceal#blacklist = []
+
+This is a list of the rules wich can be used here:
+
+ - titleblock
+ - image
+ - block
+ - subscript
+ - superscript
+ - strikeout
+ - atx
+ - codeblock_start
+ - codeblock_delim
+ - footnote
+ - definition
+ - list
+ - newline
+ - dashes
+ - ellipses
+ - quotes
+ - inlinecode
+ - inlinemath
+
+You can customize the way concealing works. For example, if you prefer to mark
+footnotes with the `*` symbol: >
+
+ :let g:pandoc#syntax#conceal#cchar_overrides = {"footnote" : "*"}
+
+To conceal the urls in links, use: >
+
+ :let g:pandoc#syntax#conceal#urls = 1
+
+Prevent highlighting specific codeblock types so that they remain Normal.
+Codeblock types include "definition" for codeblocks inside definition blocks
+and "delimited" for delimited codeblocks. Default = [] >
+
+ :let g:pandoc#syntax#codeblocks#ignore = ['definition']
+
+Use embedded highlighting for delimited codeblocks where a language is
+specified. Default = 1 >
+
+ :let g:pandoc#syntax#codeblocks#embeds#use = 1
+
+For specify what languages and using what syntax files to highlight embeds. This is a
+list of language names. When the language pandoc and vim use don't match, you
+can use the "PANDOC=VIM" syntax. For example: >
+
+ :let g:pandoc#syntax#codeblocks#embeds#langs = ["ruby", "bash=sh"]
+
+To use italics and strong in emphases. Default = 1 >
+
+ :let g:pandoc#syntax#style#emphases = 1
+
+"0" will add "block" to g:pandoc#syntax#conceal#blacklist, because otherwise
+you couldn't tell where the styles are applied.
+
+To add underline subscript, superscript and strikeout text styles. Default = 1 >
+
+ :let g:pandoc#syntax#style#underline_special = 1
+
+Detect and highlight definition lists. Disabling this can improve performance.
+Default = 1 (i.e., enabled by default) >
+
+ :let g:pandoc#syntax#style#use_definition_lists = 1
+
+The pandoc syntax script also comes with the following commands: >
+
+ :PandocHighlight LANG
+
+Enables embedded highlighting for language LANG in codeblocks. Uses the
+syntax for items in g:pandoc#syntax#codeblocks#embeds#langs. >
+
+ :PandocUnhighlight LANG
+
+Disables embedded highlighting for language LANG in codeblocks.
PAPP *papp.vim* *ft-papp-syntax*
@@ -2581,8 +2685,8 @@ perl_string_as_statement, it will be highlighted as in the second line.
The syncing has 3 options. The first two switch off some triggering of
synchronization and should only be needed in case it fails to work properly.
If while scrolling all of a sudden the whole screen changes color completely
-then you should try and switch off one of those. Let me know if you can
-figure out the line that causes the mistake.
+then you should try and switch off one of those. Let the developer know if
+you can figure out the line that causes the mistake.
One triggers on "^\s*sub\s*" and the other on "^[$@%]" more or less. >
@@ -3675,12 +3779,15 @@ Some folding is now supported with syntax/vim.vim: >
g:vimsyn_folding == 0 or doesn't exist: no syntax-based folding
g:vimsyn_folding =~ 'a' : augroups
g:vimsyn_folding =~ 'f' : fold functions
+ g:vimsyn_folding =~ 'h' : fold heredocs
+ g:vimsyn_folding =~ 'H' : fold Vim9-script legacy headers
g:vimsyn_folding =~ 'l' : fold lua script
g:vimsyn_folding =~ 'm' : fold mzscheme script
g:vimsyn_folding =~ 'p' : fold perl script
g:vimsyn_folding =~ 'P' : fold python script
g:vimsyn_folding =~ 'r' : fold ruby script
g:vimsyn_folding =~ 't' : fold tcl script
+let g:vimsyn_folding = 'acfhlmpPrt'
<
*g:vimsyn_noerror*
Not all error highlighting that syntax/vim.vim does may be correct; Vim script
@@ -4207,7 +4314,9 @@ Whether or not it is actually concealed depends on the value of the
'conceallevel' option. The 'concealcursor' option is used to decide whether
concealable items in the current line are displayed unconcealed to be able to
edit the line.
-Another way to conceal text is with |matchadd()|.
+
+Another way to conceal text is with |matchadd()|, but internally this works a
+bit differently |syntax-vs-match|.
concealends *:syn-concealends*
@@ -4215,7 +4324,9 @@ When the "concealends" argument is given, the start and end matches of
the region, but not the contents of the region, are marked as concealable.
Whether or not they are actually concealed depends on the setting on the
'conceallevel' option. The ends of a region can only be concealed separately
-in this way when they have their own highlighting via "matchgroup"
+in this way when they have their own highlighting via "matchgroup". The
+|synconcealed()| function can be used to retrieve information about conealed
+items.
cchar *:syn-cchar*
*E844*
@@ -5496,6 +5607,9 @@ MessageWindow Messages popup window used by `:echowindow`. If not defined
|hl-WarningMsg| is used.
*hl-ModeMsg*
ModeMsg 'showmode' message (e.g., "-- INSERT --").
+ *hl-MsgArea*
+MsgArea Command-line area, also used for outputting messages, see also
+ 'cmdheight'
*hl-MoreMsg*
MoreMsg |more-prompt|
*hl-NonText*
diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt
index a98fe95..a922604 100644
--- a/runtime/doc/tabpage.txt
+++ b/runtime/doc/tabpage.txt
@@ -1,4 +1,4 @@
-*tabpage.txt* For Vim version 9.1. Last change: 2022 Feb 02
+*tabpage.txt* For Vim version 9.1. Last change: 2024 Mar 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -196,7 +196,7 @@ gt *i_CTRL-<PageDown>* *i_<C-PageDown>*
:1tabnext " go to the first tab page
:$tabnext " go to the last tab page
:tabnext $ " as above
- :tabnext # " go to the last accessed tab page
+ :tabnext # " go to the last accessed tab page
:tabnext - " go to the previous tab page
:tabnext -1 " as above
:tabnext + " go to the next tab page
@@ -248,13 +248,12 @@ REORDERING TAB PAGES:
Move the current tab page to after tab page N. Use zero to
make the current tab page the first one. N is counted before
the move, thus if the second tab is the current one,
- `:tabmove 1` and `:tabmove 2` have no effect.
+ `:tabmove 1` and `:tabmove 2` have no effect.
Without N the tab page is made the last one. >
:.tabmove " do nothing
:-tabmove " move the tab page to the left
:+tabmove " move the tab page to the right
- :0tabmove " move the tab page to the beginning of the tab
- " list
+ :0tabmove " move the tab page to the first
:tabmove 0 " as above
:tabmove " move the tab page to the last
:$tabmove " as above
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 8dd4db2..dcd8db7 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -12,6 +12,7 @@ $VIM starting.txt /*$VIM*
$VIM-use version5.txt /*$VIM-use*
$VIMRUNTIME starting.txt /*$VIMRUNTIME*
$VIM_POSIX vi_diff.txt /*$VIM_POSIX*
+$XDG_CONFIG_HOME starting.txt /*$XDG_CONFIG_HOME*
$quote eval.txt /*$quote*
% motion.txt /*%*
%:. cmdline.txt /*%:.*
@@ -1157,6 +1158,7 @@ $quote eval.txt /*$quote*
't_vi' term.txt /*'t_vi'*
't_vs' term.txt /*'t_vs'*
't_xn' term.txt /*'t_xn'*
+'t_xo' term.txt /*'t_xo'*
't_xs' term.txt /*'t_xs'*
'ta' options.txt /*'ta'*
'tabline' options.txt /*'tabline'*
@@ -4520,7 +4522,21 @@ E1410 vim9class.txt /*E1410*
E1411 vim9class.txt /*E1411*
E1412 vim9class.txt /*E1412*
E1413 vim9class.txt /*E1413*
+E1414 vim9class.txt /*E1414*
+E1415 vim9class.txt /*E1415*
+E1416 vim9class.txt /*E1416*
+E1417 vim9class.txt /*E1417*
+E1418 vim9class.txt /*E1418*
+E1419 vim9class.txt /*E1419*
E142 message.txt /*E142*
+E1420 vim9class.txt /*E1420*
+E1421 vim9class.txt /*E1421*
+E1422 vim9class.txt /*E1422*
+E1423 vim9class.txt /*E1423*
+E1424 vim9class.txt /*E1424*
+E1425 vim9class.txt /*E1425*
+E1426 vim9class.txt /*E1426*
+E1429 vim9class.txt /*E1429*
E143 autocmd.txt /*E143*
E144 various.txt /*E144*
E145 starting.txt /*E145*
@@ -5682,6 +5698,7 @@ Select-mode-mapping visual.txt /*Select-mode-mapping*
Session starting.txt /*Session*
SessionLoad-variable starting.txt /*SessionLoad-variable*
SessionLoadPost autocmd.txt /*SessionLoadPost*
+SessionWritePost autocmd.txt /*SessionWritePost*
ShellCmdPost autocmd.txt /*ShellCmdPost*
ShellFilterPost autocmd.txt /*ShellFilterPost*
SigUSR1 autocmd.txt /*SigUSR1*
@@ -6034,6 +6051,7 @@ assert_notequal() testing.txt /*assert_notequal()*
assert_notmatch() testing.txt /*assert_notmatch()*
assert_report() testing.txt /*assert_report()*
assert_true() testing.txt /*assert_true()*
+astro.vim syntax.txt /*astro.vim*
at motion.txt /*at*
atan() builtin.txt /*atan()*
atan2() builtin.txt /*atan2()*
@@ -6511,6 +6529,7 @@ compiler-gcc quickfix.txt /*compiler-gcc*
compiler-gnat ft_ada.txt /*compiler-gnat*
compiler-hpada ft_ada.txt /*compiler-hpada*
compiler-manx quickfix.txt /*compiler-manx*
+compiler-pandoc quickfix.txt /*compiler-pandoc*
compiler-perl quickfix.txt /*compiler-perl*
compiler-pyunit quickfix.txt /*compiler-pyunit*
compiler-select quickfix.txt /*compiler-select*
@@ -6873,6 +6892,12 @@ encryption editing.txt /*encryption*
end intro.txt /*end*
end-of-file pattern.txt /*end-of-file*
enlightened-terminal syntax.txt /*enlightened-terminal*
+enum vim9class.txt /*enum*
+enum-constructor vim9class.txt /*enum-constructor*
+enum-name vim9class.txt /*enum-name*
+enum-ordinal vim9class.txt /*enum-ordinal*
+enum-values vim9class.txt /*enum-values*
+enumvalue vim9class.txt /*enumvalue*
environ() builtin.txt /*environ()*
eol-and-eof editing.txt /*eol-and-eof*
erlang.vim syntax.txt /*erlang.vim*
@@ -7206,6 +7231,7 @@ ft-asm68k-syntax syntax.txt /*ft-asm68k-syntax*
ft-asmh8300-syntax syntax.txt /*ft-asmh8300-syntax*
ft-aspperl-syntax syntax.txt /*ft-aspperl-syntax*
ft-aspvbs-syntax syntax.txt /*ft-aspvbs-syntax*
+ft-astro-syntax syntax.txt /*ft-astro-syntax*
ft-awk-plugin filetype.txt /*ft-awk-plugin*
ft-bash-syntax syntax.txt /*ft-bash-syntax*
ft-basic-syntax syntax.txt /*ft-basic-syntax*
@@ -7262,6 +7288,7 @@ ft-html-syntax syntax.txt /*ft-html-syntax*
ft-htmlos-syntax syntax.txt /*ft-htmlos-syntax*
ft-ia64-syntax syntax.txt /*ft-ia64-syntax*
ft-inform-syntax syntax.txt /*ft-inform-syntax*
+ft-java-plugin filetype.txt /*ft-java-plugin*
ft-java-syntax syntax.txt /*ft-java-syntax*
ft-javascript-omni insert.txt /*ft-javascript-omni*
ft-json-plugin filetype.txt /*ft-json-plugin*
@@ -7302,6 +7329,7 @@ ft-nasm-syntax syntax.txt /*ft-nasm-syntax*
ft-ncf-syntax syntax.txt /*ft-ncf-syntax*
ft-nroff-syntax syntax.txt /*ft-nroff-syntax*
ft-ocaml-syntax syntax.txt /*ft-ocaml-syntax*
+ft-pandoc-syntax syntax.txt /*ft-pandoc-syntax*
ft-papp-syntax syntax.txt /*ft-papp-syntax*
ft-pascal-syntax syntax.txt /*ft-pascal-syntax*
ft-pdf-plugin filetype.txt /*ft-pdf-plugin*
@@ -8029,6 +8057,7 @@ hl-Menu syntax.txt /*hl-Menu*
hl-MessageWindow syntax.txt /*hl-MessageWindow*
hl-ModeMsg syntax.txt /*hl-ModeMsg*
hl-MoreMsg syntax.txt /*hl-MoreMsg*
+hl-MsgArea syntax.txt /*hl-MsgArea*
hl-NonText syntax.txt /*hl-NonText*
hl-Normal syntax.txt /*hl-Normal*
hl-Pmenu syntax.txt /*hl-Pmenu*
@@ -9536,6 +9565,7 @@ quickfix-functions usr_41.txt /*quickfix-functions*
quickfix-gcc quickfix.txt /*quickfix-gcc*
quickfix-index quickfix.txt /*quickfix-index*
quickfix-manx quickfix.txt /*quickfix-manx*
+quickfix-pandoc quickfix.txt /*quickfix-pandoc*
quickfix-parse quickfix.txt /*quickfix-parse*
quickfix-perl quickfix.txt /*quickfix-perl*
quickfix-size quickfix.txt /*quickfix-size*
@@ -10156,6 +10186,7 @@ syntax-latex syntax.txt /*syntax-latex*
syntax-loading syntax.txt /*syntax-loading*
syntax-printing usr_06.txt /*syntax-printing*
syntax-tex syntax.txt /*syntax-tex*
+syntax-vs-match pattern.txt /*syntax-vs-match*
syntax.txt syntax.txt /*syntax.txt*
syntax_cmd syntax.txt /*syntax_cmd*
sys-file-list help.txt /*sys-file-list*
@@ -10289,6 +10320,8 @@ t_dl term.txt /*t_dl*
t_ds term.txt /*t_ds*
t_ed version4.txt /*t_ed*
t_el version4.txt /*t_el*
+t_enum-variable eval.txt /*t_enum-variable*
+t_enumvalue-variable eval.txt /*t_enumvalue-variable*
t_f1 version4.txt /*t_f1*
t_f10 version4.txt /*t_f10*
t_f2 version4.txt /*t_f2*
@@ -10378,6 +10411,7 @@ t_ve term.txt /*t_ve*
t_vi term.txt /*t_vi*
t_vs term.txt /*t_vs*
t_xn term.txt /*t_xn*
+t_xo term.txt /*t_xo*
t_xs term.txt /*t_xs*
tab intro.txt /*tab*
tab-page tabpage.txt /*tab-page*
@@ -10862,6 +10896,8 @@ v:t_bool eval.txt /*v:t_bool*
v:t_channel eval.txt /*v:t_channel*
v:t_class eval.txt /*v:t_class*
v:t_dict eval.txt /*v:t_dict*
+v:t_enum eval.txt /*v:t_enum*
+v:t_enumvalue eval.txt /*v:t_enumvalue*
v:t_float eval.txt /*v:t_float*
v:t_func eval.txt /*v:t_func*
v:t_job eval.txt /*v:t_job*
@@ -11216,7 +11252,6 @@ vms-problems os_vms.txt /*vms-problems*
vms-started os_vms.txt /*vms-started*
vms-usage os_vms.txt /*vms-usage*
vote-for-features sponsor.txt /*vote-for-features*
-votes-counted sponsor.txt /*votes-counted*
votes-for-changes todo.txt /*votes-for-changes*
vreplace-mode insert.txt /*vreplace-mode*
vt100-cursor-keys term.txt /*vt100-cursor-keys*
@@ -11343,6 +11378,9 @@ x11-clientserver remote.txt /*x11-clientserver*
x11-cut-buffer gui_x11.txt /*x11-cut-buffer*
x11-selection gui_x11.txt /*x11-selection*
xattr editing.txt /*xattr*
+xdg-base-dir starting.txt /*xdg-base-dir*
+xdg-runtime starting.txt /*xdg-runtime*
+xdg-vimrc starting.txt /*xdg-vimrc*
xf86conf.vim syntax.txt /*xf86conf.vim*
xfontset mbyte.txt /*xfontset*
xfree-xterm syntax.txt /*xfree-xterm*
diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt
index d958229..1256d75 100644
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -1,4 +1,4 @@
-*term.txt* For Vim version 9.1. Last change: 2024 Feb 28
+*term.txt* For Vim version 9.1. Last change: 2024 Apr 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -382,7 +382,7 @@ The options are listed below. The associated termcap code is always equal to
the last two characters of the option name. Only one termcap code is
required: Cursor motion, 't_cm'.
-The options 't_da', 't_db', 't_ms', 't_xs', 't_xn' represent flags in the
+The options 't_da', 't_db', 't_ms', 't_xs', 't_xn', 't_xo' represent flags in the
termcap. When the termcap flag is present, the option will be set to "y".
But any non-empty string means that the flag is set. An empty string means
that the flag is not set. 't_CS' works like this too, but it isn't a termcap
@@ -441,6 +441,11 @@ OUTPUT CODES *terminal-output-codes*
*t_xn* *'t_xn'*
t_xn if non-empty, writing a character at the last screen cell
does not cause scrolling
+ *t_xo* *'t_xo'*
+ t_xo if non-empty, terminal uses xon/xoff handshaking, mapping
+ CTRL-S will not be possible then, since it is used for flow
+ control (used by vt420 terminal). Setting this flag has only
+ an effect when starting Vim.
t_ZH italics mode *t_ZH* *'t_ZH'*
t_ZR italics end *t_ZR* *'t_ZR'*
diff --git a/runtime/doc/testing.txt b/runtime/doc/testing.txt
index 356d74e..9b9f60b 100644
--- a/runtime/doc/testing.txt
+++ b/runtime/doc/testing.txt
@@ -1,4 +1,4 @@
-*testing.txt* For Vim version 9.1. Last change: 2024 Feb 18
+*testing.txt* For Vim version 9.1. Last change: 2024 Apr 07
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -438,8 +438,8 @@ test_settime({expr}) *test_settime()*
GetTime()->test_settime()
-test_srand_seed([seed]) *test_srand_seed()*
- When [seed] is given this sets the seed value used by
+test_srand_seed([{seed}]) *test_srand_seed()*
+ When {seed} is given this sets the seed value used by
`srand()`. When omitted the test seed is removed.
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 2b4a70a..8712008 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 9.1. Last change: 2024 Mar 03
+*todo.txt* For Vim version 9.1. Last change: 2024 Mar 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -144,7 +144,6 @@ Further Vim9 improvements:
- More efficient way for interface member index than iterating over list?
- a variant of type() that returns a different type for each class?
list<number> and list<string> should also differ.
-- implement :enum
- Promise class, could be used to wait on a popup close callback?
- class local to a function
- Use Vim9 for more runtime files.
diff --git a/runtime/doc/uganda.rux b/runtime/doc/uganda.rux
new file mode 100644
index 0000000..783c6d5
--- /dev/null
+++ b/runtime/doc/uganda.rux
@@ -0,0 +1,340 @@
+*uganda.txt* для Vim version 9.1 редакция от 02 марта 2022 г.
+
+
+ СПРАВОЧНИК ПО РЕДАКТОРУ VIM
+ автор Брам Моленар
+
+
+ *uganda* *Uganda* *copying* *copyright* *license*
+КРАТКОЕ ОПИСАНИЕ
+ *iccf* *ICCF*
+Редактор Vim является благотворительным программным обеспечением.
+Использование и копирование программы Vim не ограничено, однако
+рекомендуется сделать добровольное пожертвование для нуждающихся детей в
+Уганде. Ознакомьтесь с разделом |kcc| далее в этом документе или посетите
+веб-сайт организации ICCF, доступный по указанным ниже адресам:
+
+ https://iccf-holland.org/
+ https://www.vim.org/iccf/
+ https://www.iccf.nl/
+
+Также возможно оказание финансовой помощи для разработки программы Vim.
+Люди, пожертвовавшие на развитие программы, получают право голосовать за
+внедрение в редактор функциональных возможностей. См. раздел |sponsor|.
+В любом случае деньги направляются в Уганду.
+
+Документация, поставляемая в составе программы Vim, распространяется на
+условиях лицензии на Открытые публикации, см. раздел |manual-copyright|.
+
+=== начало лицензии ===
+
+ЛИЦЕНЗИЯ VIM
+
+I) Неизменённые копии программы Vim могут распространяться без ограничения
+ при условии включения данного текста лицензии. Распространение
+ неизменённых копий отдельных частей программы Vim также возможно при
+ соблюдении условия о включении данного текста лицензии. Подобным образом
+ разрешается добавлять исполняемые файлы, скомпилированные из
+ неизменённого исходного кода программы Vim, а также собственные примеры
+ использования и командные файлы редактора Vim.
+
+II) Изменённую (или дополненную) версию программы Vim, включающую
+ исполняемые файлы и/или исходный код, допускается распространять при
+ соблюдении следующих четырёх условий:
+ 1) Текст настоящей лицензии должен включаться в состав распространяемой
+ версии программы Vim без изменений.
+ 2) Изменённая версия программы Vim должна распространяться одним из
+ следующих пяти способов:
+ a) При внесении изменений в программу Vim, в дистрибутиве должны
+ быть явно указаны контактные данные лица, внёсшего эти изменения.
+ Ответственному разработчику по его запросу (в любой форме) должна
+ быть безвозмездно предоставлена копия распространяемой изменённой
+ версии программы Vim, включая её исходный код. Ответственный
+ разработчик оставляет за собой право включать сделанные изменения
+ в официальную версию программы Vim. Конкретные действия
+ ответственного разработчика, относительно переданных изменений, а
+ также лицензионные условия, на основании которых будет
+ осуществляться их распространение, могут быть дополнительно
+ согласованы. Если согласование не проводилось, сделанные изменения
+ будут распространяться на условиях настоящей лицензии или более
+ поздней её версии. Лица, в данное время являющиеся ответственными
+ за рабзработку, указаны в перечне по следующему адресу:
+ https://github.com/orgs/vim/people. В случае изменения этой
+ информации, актуальные данные будут опубликованы на
+ соответствующих ресурсах (вероятнее всего по интернет‐адресам
+ vim.sf.net, www.vim.org и/или comp.editors). В случае полной
+ невозможности установить контакт с ответственным разработчиком,
+ обязательства по отправке изменений утрачивают силу. После
+ передачи подтверждения о получении изменений от ответственного
+ разработчика, необходимость в повторной отправке копии изменённой
+ программы Vim неприменима.
+ b) Если лицом получена изменённая версия программа Vim,
+ распространяющаяся на условиях, указанных в ч. II) п. 2) пп. а)
+ допускается дальнейшее её распространение этим лицом без внесения
+ изменений и согласно ч. I) настоящей лицензии. В случае внесения
+ дополнительных изменений, на эти изменения будут распространяться
+ условия, указанные в ч. II) п. 2) пп. a).
+ c) Каждая копия распространяемой изменённой версии программы Vim
+ должна включать информацию обо всех произведённых изменениях,
+ включая исходный код. Эта информация может быть представлена в
+ виде построчного сравнения файлов. Выбор лицензии, по условиям
+ которой будет распространяться добавленный код, остаётся за
+ автором этих изменений. Изменения и лицензия на эти изменения не
+ должны запрещать другим лицам внесение своих собственных
+ изменений в официальную версию программы Vim.
+ d) Изменённая версия программы Vim, содержащая изменения в
+ соответствии с ч. II) п. 2 пп. c), может распространяться без
+ исходного кода для этих изменений, при соблюдении следующих трёх
+ условий:
+ - Лицензия, применяемая к внесённым изменениям, предоставляет
+ ответственному разработчику программы Vim возможность
+ безвозмездного и неограниченного распространения этих изменений,
+ а также право на безвозмездное и неограниченное включение этих
+ изменений в официальную версию программы Vim.
+ - Изменения должны сохраняться не менее трёх лет со времени
+ распространения соответствующей изменённой версии программы Vim.
+ В течение этого периода по запросу ответственного разработчика
+ или другого пользователя изменённой версии программы Vim
+ (в любой форме) необходимо предоставить исходный код данных
+ изменений.
+ - В дистрибутиве изменённой версии программы Vim должны быть явно
+ указаны контактные данные лица, внёсшего эти изменения.
+ Контактные данные должны сохранять актуальность в течение
+ не менее трёх лет со времени последнего распространения
+ соответствующей изменённой версии программы Vim или как можно
+ дольше.
+ e) Если к изменениям, внесённым в программу Vim, применимы условия
+ лицензии GNU General Public License (GNU GPL), допускается
+ распространение изменённой версия программы Vim на условиях
+ лицензии GNU GPL версии 2 или любой более поздней версии этой
+ лицензии.
+ 3) Необходимо добавить соответствующую информацию, которая должна быть
+ выведена в результате выполнения команды ":version" в программе Vim,
+ а также на экране приветствия программы Vim, чтобы пользователь
+ изменённой версии программы Vim имел возможность определить, что он
+ пользуется изменённой версией. При распространении на условиях,
+ указанных в ч. II) п. 2) пп. e) такую информацию требуется добавлять
+ только в том случае, когда она не противоречит лицензии,
+ распространяющейся на эти изменения.
+ 4) Контактная информация, которая указывается по требованию ч. II) п. 2)
+ пп. a) и ч. II) п. 2) пп. d) не должна удаляться или изменяться никем
+ другим, кроме лица, указавшего данную контактную информацию.
+
+III) При распространении изменённой версии программы Vim рекомендуется
+ пользоваться лицензией Vim для произведённых изменений и обеспечить
+ доступ к этим изменениям ответственного разработчика, включая исходный
+ код изменений. Предпочтительным способом предоставления доступа к
+ произведённым изменениям является отправка этих изменений по
+ электронной почте или загрузка файлов на сервер с отправкой URL-адреса
+ по электронной почте. Если количество изменений незначительно
+ (например, изменения в файле Makefile) достаточно будет отправить по
+ электронной почте файл построчного сравнения. Изменения или URL-адреса
+ должны быть отправлены на адрес электронной почты maintainer@vim.org
+
+IV) Не допускается удаление настоящей лицензия из дистрибутива исходного
+ кода программы Vim, его отдельных частей или изменённой версии.
+ Допускается использование настоящей лицензию для предыдущих изменённых
+ выпусков программы Vim, взамен тех лицензий, с которыми они
+ распространялись.
+
+=== конец лицензии ===
+
+Примечание.
+
+- Если вам нравится программа Vim, дочитайте до конца и подумайте над
+ оказанием помощи нуждающимся детям в Уганде.
+
+- При наличии желания поддержать дальнейшую разработку программы Vim,
+ рассмотрите возможность оказания финансовой поддержки (см. раздел
+ |sponsor|). В любом случае деньги отправляются в Уганду.
+
+- Ричард Столлман (Richard Stallman) подтвердил, что лицензия Vim совместима
+ с лицензией GNU GPL. С момента его последней проверки были внесены
+ незначительные изменения, но они не должны оказать на это никакого влияния.
+
+- Если сборка программы Vim осуществляется с использованием библиотеки, на
+ которую распространяется лицензия GNU GPL, дальнейшее распространение
+ программы может осуществляться только на условиях лицензии GNU GPL. Даже
+ если в саму программу Vim не было внесено никаких изменений.
+
+- Если были внесены изменения, на которые распространяется лицензия GNU GPL,
+ все дальнейшие изменения также должны добавляться на условиях лицензии
+ GNU GPL или другой совместимой лицензии.
+
+- При распространении изменённой версии программы Vim, своё имя и контактную
+ информацию можно добавлять с помощью аргумента конфигурации
+ "--with-modified-by" или директивы define MODIFIED_BY.
+
+==============================================================================
+Детский центр в Кибаале *kcc* *Kibaale* *charity*
+
+Детский центр в Кибаале (Kibaale Children's Centre, KCC) находится в гор.
+Кибаал. Это небольшой городок в восточной Африке на юге Уганды недалеко от
+Танзании на территории округа Ракаи. Большая часть населения занимается
+земледелием. Несмотря на бедность жителей, здесь обычно бывает достаточно
+пищи. Однако по числу заболевших СПИД этот округ превосходит любую другую
+точку планеты. Существует мнение, что именно отсюда началось распространение
+этой смертельной болезни. По некоторым оценкам в прошлом от 10 до 30
+процентов жителей Уганды были заражены ВИЧ. Высокая смертность родителей
+стала причиной появления большого количества сирот. При населении округа
+в 350 000 человек, 60 000 детей потеряло одного или обоих родителей. Однако
+даже несомненные успехи в уменьшении масштабов распространения СПИД
+не могут привести к полному исчезновению проблем.
+
+Дети очень нуждаются в помощи. Организация KCC прилагает все усилия для
+предоставления нуждающимся пищи, медицинской помощи и образования. Пища и
+медицинская помощь предоставляются для поддержания здоровья, а образование
+даёт возможность позаботиться о себе в будущем. Организация KCC работает на
+базе христианской миссии, но помощь оказывается всем детям независимо от их
+приверженности к какой-либо религии.
+
+В данном случае ключом к решению проблем является возможность получения
+образования. В последнее время при правлении президента Иди Амина (Idi Amin
+Dada Oumee), а также в ходе последовавших гражданских войн, этой проблеме не
+уделялось достаточно внимания. Однако сейчас после стабилизации деятельности
+правительства детям и их родителям нужно учиться жить и заботиться самим о
+себе, избегая при этом риска заражения инфекционными заболеваниями. Поэтому
+наряду с оказанием помощи больным и голодающим, основной целью миссии
+является предупреждение заболеваемости и прививание навыков по употреблению
+здоровой пищи.
+
+Большинство сирот проживают у близких родственников, воспитываются дядями
+или старшими сёстрами. Вследствие больших размеров семей и низких доходов
+(если таковые имеются), большим везением для ребёнка будет обеспечение
+здоровым питанием. Про одежду, медицинскую помощь и школьное обучение
+говорить уже не приходится. Для оказания помощи таким нуждающимся детям была
+организована программа оказания финансовой помощи. Она позволяет взять
+ребёнка на финансовое обеспечение. За несколько долларов в месяц организация
+KCC обеспечит его необходимыми предметами обихода, будет следить за его
+здоровьем, организует школьное обучение, а также сделает всё необходимое для
+ребёнка и семьи, которая поддерживает его развитие.
+
+Помимо непосредственного оказания помощи ребёнку, необходимо также проводить
+комплексное развитие среды, в которой живут дети. С этой целью организация
+KCC предоставляет школам помощь по улучшению методов обучения. На базе
+центра имеется показательная школа, в которой организуется обучение для
+учителей. Также проводится обучение медицинских работников, прививаются
+санитарно-гигиенические нормы, пропагандируется постройка туалетов
+надлежащей конструкции в местах проживания. Также лично мною была оказана
+помощь в постройке производственного объекта по созданию железобетонных плит,
+которые применяются при постройке туалетов и продаются по сниженным ценам.
+
+На балансе проекта содержится клиника, в которой предоставляется медицинская
+помощь детям и их семьям. В 2020 году было открыто родильное отделение и
+пункт круглосуточного оказания медицинской помощи. При необходимости
+осуществляется доставка в больницу. Проводятся программы иммунизации
+населения, и предоставляется помощь при вспышках эпидемии (случаются вспышки
+кори и холеры).
+ *donate*
+С лета 1994 года до лета 1995 года мне целый год довелось провести в центре,
+работая там в качестве волонтёра. Я помогал в расширении центра и трудился в
+сфере водоснабжения и санитарно-гигиенического контроля. Там я убедился в
+эффективности той помощи, которую оказывает организация KCC. По возвращении
+в Нидерланды утвердилось желание продолжить поддержку организации KCC.
+С этой целью я провожу сбор средств и организую программу оказания
+финансовой помощи. Поэтому предлагаю вам рассмотреть одну из следующих
+возможностей:
+
+1. Предоставить финансовую помощь ребёнку в начальной школе — 17 евро в
+ месяц (или больше).
+2. Предоставить финансовую помощь ребёнку в средней школе — 25 евро в месяц
+ (или больше).
+3. Предоставить финансовую помощь клинике — любая сумма раз в месяц или
+ в квартал.
+4. Единовременное пожертвование.
+
+По сравнению с другими программами оказания финансовой поддержки детям,
+указанные выше суммы выглядят весьма скромно. Причина столь небольшого
+размера пожертвований заключается в том, что деньги направляются
+непосредственно в центр. На администрацию тратиться менее 5 %, что стало
+возможным благодаря малым размерам организации и привлечению волонтёров.
+Если вы предполагаете взять на финансовое обеспечение ребёнка, то важно
+понимать, что регулярное оказание помощи должно осуществляться на протяжении
+не менее одного года.
+
+Я понимаю, что вам нужны гарантии поступления средств по адресу. Прежде
+всего, я готов предоставить свои личные гарантии, как автор программы Vim.
+Я доверяю людям, работающим в этом центре, и знаю их лично. Кроме того,
+финансирование и инспектирование центра осуществлялось совместно с такими
+общеизвестными благотворительными организациями, как «World Vision»,
+«Save the Children», а теперь центр находится на попечении организации
+«Pacific Academy Outreach Society». Посещение центра осуществляется (за свой
+собственный счёт) примерно раз в год для проверки хода выполнения текущих
+задач. Я сам неоднократно посещал этот центр, начиная с 1993 года. Отчёты о
+посещениях размещаются на веб-сайте организации ICCF.
+
+Если у вас остались вопросы, можете задать их по электронной почте
+<Bram@vim.org>.
+
+Адрес центра:
+ Kibaale Children's Centre
+ p.o. box 1658
+ Masaka, Uganda, East Africa
+
+Перечисление средств *iccf-donations*
+
+Самая свежая информация доступна на веб-сайте организации ICCF!
+См. раздел |iccf|.
+
+
+ США
+ Можно использовать методы, перечисленные ниже. Если
+ требуется отправить чек, то отправьте его нашему партнёру в
+ Канаде, адрес: https://www.kuwasha.net/
+
+ Канада
+ Свяжитесь с командой Kuwasha в гор. Сарри, Канада. Они
+ могут оказать содействие благотворителям из Канады для
+ помощи детям в гор. Кибаале. Команда Kuwasha переводит 100%
+ средств, поступивших в пользу проекта в Уганде.
+ Единовременное пожертвование может быть отправлено им
+ напрямую. При этом прошу отправлять мне сообщение, для учёта
+ информации о количестве средств, пожертвованных благодаря
+ программе Vim.
+ На их веб-сайте также можно ознакомиться с информацией по
+ оказанию финансовой поддержки https://www.kuwasha.net/
+ При отправке пожертвований через Kuwasha вы получите
+ налоговое уведомление, которое можно будет подать вместе с
+ налоговой декларацией.
+
+ Нидерланды
+ Перевод на счёт «Stichting ICCF Holland», Amersfoort. Можно
+ будет получить налоговый вычет, если вы проживаете в
+ Нидерландах. Банк ING, IBAN: NL95 INGB 0004 5487 74
+
+ Германия
+ Можно сделать пожертвование, дающее право на налоговый
+ вычет. Ознакомьтесь с последней информацией на веб-сайте
+ организации ICCF
+ https://iccf-holland.org/germany.html
+
+ Европа
+ Банковский перевод. См. далее рубрику «Другие варианты»,
+ где указан код Swift и номер IBAN.
+ Любые другие платёжные методы также должны работать.
+ Проконсультируйтесь по вопросу отправки средств на
+ благотворительные цели.
+
+ Банковская карта
+ Можно воспользоваться платёжной системой PayPal для
+ отправки денег с банковской карты. Это наиболее
+ распространённая и чрезвычайно простая в использовании
+ платёжная система на основе сети Интернет. Больше информации
+ можно найти по адресу
+ https://www.paypal.com/en_US/mrb/pal=XAC62PML3GF8Q
+ Адрес электронной почты для обсуждения вопросов по
+ отправке средств
+ Bram@iccf-holland.org
+
+ Другие варианты
+ Средства можно отправить на указанный ниже счёт.
+ Банк ING. IBAN: NL95 INGB 0004 5487 74
+ Код SWIFT: INGBNL2A
+ на имя «stichting ICCF Holland», Amersfoort
+ Чеки не принимаются.
+
+=============================================================================
+© Казорин Сергей, перевод на русский язык, 2022, <kazorin@basealt.ru>
+© Restorer, редакторская правка, 2022, <restorer@mail2k.ru>
+
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/uganda.txt b/runtime/doc/uganda.txt
index 6b77050..513759f 100644
--- a/runtime/doc/uganda.txt
+++ b/runtime/doc/uganda.txt
@@ -1,4 +1,4 @@
-*uganda.txt* For Vim version 9.1. Last change: 2022 Mar 02
+*uganda.txt* For Vim version 9.1. Last change: 2024 Apr 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -203,7 +203,7 @@ visited about once a year to check the progress (at our own cost). I have
visited the centre myself many times, starting in 1993. The visit reports are
on the ICCF web site.
-If you have any further questions, send me e-mail: <Bram@vim.org>.
+If you have any further questions, send e-mail: <Bram@vim.org>.
The address of the centre is:
Kibaale Children's Centre
@@ -223,9 +223,8 @@ Canada: Contact Kuwasha in Surrey, Canada. They take care of the
Canadian sponsors for the children in Kibaale. Kuwasha
forwards 100% of the money to the project in Uganda. You can
send them a one time donation directly.
- Please send me a note so that I know what has been donated
- because of Vim. Look on their site for information about
- sponsorship: https://www.kuwasha.net/
+ Look on their site for information about sponsorship:
+ https://www.kuwasha.net/
If you make a donation to Kuwasha you will receive a tax
receipt which can be submitted with your tax return.
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 04a9afb..8e71948 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt* For Vim version 9.1. Last change: 2024 Feb 25
+*usr_41.txt* For Vim version 9.1. Last change: 2024 Apr 26
VIM USER MANUAL - by Bram Moolenaar
@@ -1096,7 +1096,7 @@ Syntax and highlighting: *syntax-functions* *highlighting-functions*
synIDattr() get a specific attribute of a syntax ID
synIDtrans() get translated syntax ID
synstack() get list of syntax IDs at a specific position
- synconcealed() get info about concealing
+ synconcealed() get info about (synax) concealing
diff_hlID() get highlight ID for diff mode at a position
matchadd() define a pattern to highlight (a "match")
matchaddpos() define a list of positions to highlight
diff --git a/runtime/doc/usr_51.txt b/runtime/doc/usr_51.txt
index f2b5e13..b0bf792 100644
--- a/runtime/doc/usr_51.txt
+++ b/runtime/doc/usr_51.txt
@@ -1,4 +1,4 @@
-*usr_51.txt* For Vim version 9.1. Last change: 2022 Jun 03
+*usr_51.txt* For Vim version 9.1. Last change: 2024 Apr 04
VIM USER MANUAL - by Bram Moolenaar
@@ -649,13 +649,9 @@ When you write a compiler file and put it in your personal runtime directory
make the default file skip the settings.
*:CompilerSet*
The second mechanism is to use ":set" for ":compiler!" and ":setlocal" for
-":compiler". Vim defines the ":CompilerSet" user command for this. However,
-older Vim versions don't, thus your plugin should define it then. This is an
-example: >
+":compiler". Vim defines the ":CompilerSet" user command for this. This is
+an example: >
- if exists(":CompilerSet") != 2
- command -nargs=* CompilerSet setlocal <args>
- endif
CompilerSet errorformat& " use the default 'errorformat'
CompilerSet makeprg=nmake
diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt
index bf16d49..c277923 100644
--- a/runtime/doc/version9.txt
+++ b/runtime/doc/version9.txt
@@ -1,4 +1,4 @@
-*version9.txt* For Vim version 9.1. Last change: 2024 Mar 03
+*version9.txt* For Vim version 9.1. Last change: 2024 Apr 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -41543,17 +41543,24 @@ and is a work in progress.
Support for Wayland UI.
+Support for the XDG Desktop Specification |xdg-base-dir|
+
Vim9 script
-----------
Add support for internal builtin functions with vim9 objects, see
|builtin-object-methods|
+Enum support for Vim9 script |:enum|
+
Other improvements *new-other-9.2*
------------------
Changed *changed-9.2*
-------
+- use 'smoothscroll' logic for CTRL-F and CTRL-B for pagewise scrolling
+- use 'smoothscroll' logic for CTRL-D and CTRL-U for half-pagewise scrolling
+
Added *added-9.2*
-----
@@ -41570,17 +41577,23 @@ Functions: ~
Autocommands: ~
+|SessionWritePost| after writing the session file |:mksession|
|TermResponseAll| after the terminal response to |t_RV| and others is
received
|WinNewPre| before creating a new window
+Highlighting: ~
+
+|hl-MsgArea| highlighting of the Command-line and messages area.
+
Commands: ~
Options: ~
'winfixbuf' Keep buffer focused in a window
+'t_xo' Terminal uses XON/XOFF handshaking (e.g. vt420).
==============================================================================
INCOMPATIBLE CHANGES *incompatible-9.2*
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index 7dd2ab0..7a49aa0 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt* For Vim version 9.1. Last change: 2024 Jan 12
+*vim9.txt* For Vim version 9.1. Last change: 2024 Apr 13
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -641,6 +641,14 @@ No command can follow the "{", only a comment can be used there.
The block can also be used for defining a user command. Inside the block Vim9
syntax will be used.
+This is an example of using here-docs: >
+ com SomeCommand {
+ g:someVar =<< trim eval END
+ ccc
+ ddd
+ END
+ }
+
If the statements include a dictionary, its closing bracket must not be
written at the start of a line. Otherwise, it would be parsed as the end of
the block. This does not work: >
@@ -1513,7 +1521,6 @@ Custom types can be defined with `:type`: >
:type MyList list<string>
Custom types must start with a capital letter, to avoid name clashes with
builtin types added later, similarly to user functions.
-{not implemented yet}
And classes and interfaces can be used as types: >
:class MyClass
diff --git a/runtime/doc/vim9class.txt b/runtime/doc/vim9class.txt
index a00a5b7..ef96aa9 100644
--- a/runtime/doc/vim9class.txt
+++ b/runtime/doc/vim9class.txt
@@ -1,4 +1,4 @@
-*vim9class.txt* For Vim version 9.1. Last change: 2024 Mar 03
+*vim9class.txt* For Vim version 9.1. Last change: 2024 Apr 13
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -328,10 +328,27 @@ variables but they have no access to the object variables, they cannot use the
enddef
endclass
-Inside the class the class method can be called by name directly, outside the
-class the class name must be prefixed: `OtherThing.ClearTotalSize()`. To use
-a class method from a parent class in a child class, the class name must be
-prefixed.
+Inside the class, the class method can be called by name directly, outside the
+class, the class name must be prefixed: `OtherThing.ClearTotalSize()`. Also,
+the name prefix must be used for public class methods in the special contexts
+of class variable initializers and of lambda expressions and nested functions:
+>
+ class OtherThing
+ static var name: string = OtherThing.GiveName()
+
+ static def GiveName(): string
+ def DoGiveName(): string
+ return OtherThing.NameAny()
+ enddef
+
+ return DoGiveName()
+ enddef
+
+ static def NameAny(): string
+ return "any"
+ enddef
+ endclass
+<
Just like object methods the access can be made protected by using an
underscore as the first character in the method name: >
@@ -576,7 +593,7 @@ A class is defined between `:class` and `:endclass`. The whole class is
defined in one script file. It is not possible to add to a class later.
A class can only be defined in a |Vim9| script file. *E1316*
-A class cannot be defined inside a function.
+A class cannot be defined inside a function. *E1429*
It is possible to define more than one class in a script file. Although it
usually is better to export only one main class. It can be useful to define
@@ -904,19 +921,125 @@ aliased: >
8. Enum *Vim9-enum* *:enum* *:endenum*
-{not implemented yet}
-
+ *enum* *E1418* *E1419* *E1420*
An enum is a type that can have one of a list of values. Example: >
- :enum Color
- White
- Red
- Green
- Blue
- Black
- :endenum
+ :enum Color
+ White,
+ Red,
+ Green, Blue, Black
+ :endenum
+<
+ *enumvalue* *E1422*
+The enum values are separated by commas. More than one enum value can be
+listed in a single line. The final enum value should not be followed by a
+comma.
+
+An enum value is accessed using the enum name followed by the value name: >
+
+ var a: Color = Color.Blue
+<
+Enums are treated as classes, where each enum value is essentially an instance
+of that class. Unlike typical object instantiation with the |new()| method,
+enum instances cannot be created this way.
+
+An enum can only be defined in a |Vim9| script file. *E1414*
+An enum cannot be defined inside a function.
+
+ *E1415*
+An enum name must start with an uppercase letter. The name of an enum value
+in an enum can start with an upper or lowercase letter.
+
+ *E1416*
+An enum can implement an interface but cannot extend a class: >
+ enum MyEnum implements MyIntf
+ Value1,
+ Value2
+ def SomeMethod()
+ enddef
+ endenum
+<
+ *enum-constructor*
+The enum value objects in an enum are constructed like any other objects using
+the |new()| method. Arguments can be passed to the enum constructor by
+specifying them after the enum value name, just like calling a function. The
+default constructor doesn't have any arguments.
+
+ *E1417*
+An enum can contain class variables, class methods, object variables and
+object methods. The methods in an enum cannot be |:abstract| methods.
+
+The following example shows an enum with object variables and methods: >
+
+ vim9script
+ enum Planet
+ Earth(1, false),
+ Jupiter(95, true),
+ Saturn(146, true)
+
+ var moons: number
+ var has_rings: bool
+ def GetMoons(): number
+ return this.moons
+ enddef
+ endenum
+ echo Planet.Jupiter.GetMoons()
+ echo Planet.Earth.has_rings
+<
+ *E1421* *E1423* *E1424* *E1425*
+Enums and their values are immutable. They cannot be utilized as numerical or
+string types. Enum values can declare mutable instance variables.
+
+ *enum-name*
+Each enum value object has a "name" instance variable which contains the name
+of the enum value. This is a readonly variable.
+
+ *enum-ordinal* *E1426*
+Each enum value has an associated ordinal number starting with 0. The ordinal
+number of an enum value can be accessed using the "ordinal" instance variable.
+This is a readonly variable. Note that if the ordering of the enum values in
+an enum is changed, then their ordinal values will also change.
+
+ *enum-values*
+All the values in an enum can be accessed using the "values" class variable
+which is a List of the enum objects. This is a readonly variable.
+
+Example: >
+ enum Planet
+ Mercury,
+ Venus,
+ Earth
+ endenum
+
+ echo Planet.Mercury
+ echo Planet.Venus.name
+ echo Planet.Venus.ordinal
+ for p in Planet.values
+ # ...
+ endfor
+<
+An enum is a class with class variables for the enum value objects and object
+variables for the enum value name and the enum value ordinal: >
+
+ enum Planet
+ Mercury,
+ Venus
+ endenum
+<
+The above enum definition is equivalent to the following class definition: >
+
+ class Planet
+ public static final Mercury: Planet = Planet.new('Mercury', 0)
+ public static final Venus: Planet = Planet.new('Venus', 1)
+
+ public static const values: list<Planet> = [Planet.Mercury, Planet.Venus]
+
+ public const name: string
+ public const ordinal: number
+ endclass
+<
==============================================================================
9. Rationale