forked from aniani/vim
Update runtime files
This commit is contained in:
@@ -141,6 +141,7 @@ DOCS = \
|
|||||||
usr_43.txt \
|
usr_43.txt \
|
||||||
usr_44.txt \
|
usr_44.txt \
|
||||||
usr_45.txt \
|
usr_45.txt \
|
||||||
|
usr_46.txt \
|
||||||
usr_90.txt \
|
usr_90.txt \
|
||||||
usr_toc.txt \
|
usr_toc.txt \
|
||||||
various.txt \
|
various.txt \
|
||||||
@@ -282,6 +283,7 @@ HTMLS = \
|
|||||||
usr_43.html \
|
usr_43.html \
|
||||||
usr_44.html \
|
usr_44.html \
|
||||||
usr_45.html \
|
usr_45.html \
|
||||||
|
usr_46.html \
|
||||||
usr_90.html \
|
usr_90.html \
|
||||||
usr_toc.html \
|
usr_toc.html \
|
||||||
various.html \
|
various.html \
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*autocmd.txt* For Vim version 8.2. Last change: 2020 Jan 26
|
*autocmd.txt* For Vim version 8.2. Last change: 2020 Jun 10
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*eval.txt* For Vim version 8.2. Last change: 2020 Jun 07
|
*eval.txt* For Vim version 8.2. Last change: 2020 Jun 14
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -1533,6 +1533,7 @@ An internal variable is explicitly destroyed with the ":unlet" command
|
|||||||
Using a name that is not an internal variable or refers to a variable that has
|
Using a name that is not an internal variable or refers to a variable that has
|
||||||
been destroyed results in an error.
|
been destroyed results in an error.
|
||||||
|
|
||||||
|
*variable-scope*
|
||||||
There are several name spaces for variables. Which one is to be used is
|
There are several name spaces for variables. Which one is to be used is
|
||||||
specified by what is prepended:
|
specified by what is prepended:
|
||||||
|
|
||||||
@@ -1551,7 +1552,9 @@ delete all script-local variables: >
|
|||||||
:for k in keys(s:)
|
:for k in keys(s:)
|
||||||
: unlet s:[k]
|
: unlet s:[k]
|
||||||
:endfor
|
:endfor
|
||||||
<
|
|
||||||
|
Note: in Vim9 script this is different, see |vim9-scopes|.
|
||||||
|
|
||||||
*buffer-variable* *b:var* *b:*
|
*buffer-variable* *b:var* *b:*
|
||||||
A variable name that is preceded with "b:" is local to the current buffer.
|
A variable name that is preceded with "b:" is local to the current buffer.
|
||||||
Thus you can have several "b:foo" variables, one for each buffer.
|
Thus you can have several "b:foo" variables, one for each buffer.
|
||||||
@@ -4523,7 +4526,7 @@ flatten({list} [, {maxdepth}]) *flatten()*
|
|||||||
a very large number.
|
a very large number.
|
||||||
The {list} is changed in place, make a copy first if you do
|
The {list} is changed in place, make a copy first if you do
|
||||||
not want that.
|
not want that.
|
||||||
*E964*
|
*E900*
|
||||||
{maxdepth} means how deep in nested lists changes are made.
|
{maxdepth} means how deep in nested lists changes are made.
|
||||||
{list} is not modified when {maxdepth} is 0.
|
{list} is not modified when {maxdepth} is 0.
|
||||||
{maxdepth} must be positive number.
|
{maxdepth} must be positive number.
|
||||||
@@ -6278,10 +6281,11 @@ inputlist({textlist}) *inputlist()*
|
|||||||
displayed, one string per line. The user will be prompted to
|
displayed, one string per line. The user will be prompted to
|
||||||
enter a number, which is returned.
|
enter a number, which is returned.
|
||||||
The user can also select an item by clicking on it with the
|
The user can also select an item by clicking on it with the
|
||||||
mouse. For the first string 0 is returned. When clicking
|
mouse, if the mouse is enabled in the command line ('mouse' is
|
||||||
above the first item a negative number is returned. When
|
"a" or includes "c"). For the first string 0 is returned.
|
||||||
clicking on the prompt one more than the length of {textlist}
|
When clicking above the first item a negative number is
|
||||||
is returned.
|
returned. When clicking on the prompt one more than the
|
||||||
|
length of {textlist} is returned.
|
||||||
Make sure {textlist} has less than 'lines' entries, otherwise
|
Make sure {textlist} has less than 'lines' entries, otherwise
|
||||||
it won't work. It's a good idea to put the entry number at
|
it won't work. It's a good idea to put the entry number at
|
||||||
the start of the string. And put a prompt in the first item.
|
the start of the string. And put a prompt in the first item.
|
||||||
@@ -11783,6 +11787,9 @@ like this: >
|
|||||||
|
|
||||||
:call filename#funcname()
|
:call filename#funcname()
|
||||||
|
|
||||||
|
These functions are always global, in Vim9 script "g:" needs to be used: >
|
||||||
|
:call g:filename#funcname()
|
||||||
|
|
||||||
When such a function is called, and it is not defined yet, Vim will search the
|
When such a function is called, and it is not defined yet, Vim will search the
|
||||||
"autoload" directories in 'runtimepath' for a script file called
|
"autoload" directories in 'runtimepath' for a script file called
|
||||||
"filename.vim". For example "~/.vim/autoload/filename.vim". That file should
|
"filename.vim". For example "~/.vim/autoload/filename.vim". That file should
|
||||||
@@ -11794,7 +11801,11 @@ then define the function like this: >
|
|||||||
|
|
||||||
The file name and the name used before the # in the function must match
|
The file name and the name used before the # in the function must match
|
||||||
exactly, and the defined function must have the name exactly as it will be
|
exactly, and the defined function must have the name exactly as it will be
|
||||||
called.
|
called. In Vim9 script the "g:" prefix must be used: >
|
||||||
|
function g:filename#funcname()
|
||||||
|
|
||||||
|
or for a compiled function: >
|
||||||
|
def g:filename#funcname()
|
||||||
|
|
||||||
It is possible to use subdirectories. Every # in the function name works like
|
It is possible to use subdirectories. Every # in the function name works like
|
||||||
a path separator. Thus when calling a function: >
|
a path separator. Thus when calling a function: >
|
||||||
@@ -11877,6 +11888,9 @@ This does NOT work: >
|
|||||||
==============================================================================
|
==============================================================================
|
||||||
7. Commands *expression-commands*
|
7. Commands *expression-commands*
|
||||||
|
|
||||||
|
Note: in Vim9 script `:let` is used for variable declaration, not assignment.
|
||||||
|
An assignment leaves out the `:let` command. |vim9-declaration|
|
||||||
|
|
||||||
:let {var-name} = {expr1} *:let* *E18*
|
:let {var-name} = {expr1} *:let* *E18*
|
||||||
Set internal variable {var-name} to the result of the
|
Set internal variable {var-name} to the result of the
|
||||||
expression {expr1}. The variable will get the type
|
expression {expr1}. The variable will get the type
|
||||||
@@ -12099,12 +12113,14 @@ text...
|
|||||||
s: script-local variables
|
s: script-local variables
|
||||||
l: local function variables
|
l: local function variables
|
||||||
v: Vim variables.
|
v: Vim variables.
|
||||||
|
This does not work in Vim9 script. |vim9-declaration|
|
||||||
|
|
||||||
:let List the values of all variables. The type of the
|
:let List the values of all variables. The type of the
|
||||||
variable is indicated before the value:
|
variable is indicated before the value:
|
||||||
<nothing> String
|
<nothing> String
|
||||||
# Number
|
# Number
|
||||||
* Funcref
|
* Funcref
|
||||||
|
This does not work in Vim9 script. |vim9-declaration|
|
||||||
|
|
||||||
:unl[et][!] {name} ... *:unlet* *:unl* *E108* *E795*
|
:unl[et][!] {name} ... *:unlet* *:unl* *E108* *E795*
|
||||||
Remove the internal variable {name}. Several variable
|
Remove the internal variable {name}. Several variable
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*options.txt* For Vim version 8.2. Last change: 2020 May 31
|
*options.txt* For Vim version 8.2. Last change: 2020 Jun 10
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -5232,7 +5232,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
< If your terminal can't overrule the mouse events going to the
|
< If your terminal can't overrule the mouse events going to the
|
||||||
application, use: >
|
application, use: >
|
||||||
:set mouse=nvi
|
:set mouse=nvi
|
||||||
< The you can press ":", select text for the system, and press Esc to go
|
< Then you can press ":", select text for the system, and press Esc to go
|
||||||
back to Vim using the mouse events.
|
back to Vim using the mouse events.
|
||||||
In |defaults.vim| "nvi" is used if the 'term' option is not matching
|
In |defaults.vim| "nvi" is used if the 'term' option is not matching
|
||||||
"xterm".
|
"xterm".
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*os_vms.txt* For Vim version 8.2. Last change: 2019 Jan 29
|
*os_vms.txt* For Vim version 8.2. Last change: 2020 Jun 07
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL
|
VIM REFERENCE MANUAL
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*quickref.txt* For Vim version 8.2. Last change: 2020 Jun 02
|
*quickref.txt* For Vim version 8.2. Last change: 2020 Jun 10
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -910,6 +910,7 @@ Short explanation of each option: *option-list*
|
|||||||
'spellcapcheck' 'spc' pattern to locate end of a sentence
|
'spellcapcheck' 'spc' pattern to locate end of a sentence
|
||||||
'spellfile' 'spf' files where |zg| and |zw| store words
|
'spellfile' 'spf' files where |zg| and |zw| store words
|
||||||
'spelllang' 'spl' language(s) to do spell checking for
|
'spelllang' 'spl' language(s) to do spell checking for
|
||||||
|
'spelloptions' 'spo' options for spell checking
|
||||||
'spellsuggest' 'sps' method(s) used to suggest spelling corrections
|
'spellsuggest' 'sps' method(s) used to suggest spelling corrections
|
||||||
'splitbelow' 'sb' new window from split is below the current one
|
'splitbelow' 'sb' new window from split is below the current one
|
||||||
'splitright' 'spr' new window is put right of the current one
|
'splitright' 'spr' new window is put right of the current one
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*spell.txt* For Vim version 8.2. Last change: 2019 Aug 16
|
*spell.txt* For Vim version 8.2. Last change: 2020 Jun 10
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
|
@@ -1214,11 +1214,13 @@ DESKTOP *desktop.vim* *ft-desktop-syntax*
|
|||||||
|
|
||||||
Primary goal of this syntax file is to highlight .desktop and .directory files
|
Primary goal of this syntax file is to highlight .desktop and .directory files
|
||||||
according to freedesktop.org standard:
|
according to freedesktop.org standard:
|
||||||
http://standards.freedesktop.org/desktop-entry-spec/latest/
|
https://specifications.freedesktop.org/desktop-entry-spec/latest/
|
||||||
But actually almost none implements this standard fully. Thus it will
|
To highlight nonstandard extensions that does not begin with X-, set >
|
||||||
highlight all Unix ini files. But you can force strict highlighting according
|
let g:desktop_enable_nonstd = 1
|
||||||
to standard by placing this in your vimrc file: >
|
Note that this may cause wrong highlight.
|
||||||
:let enforce_freedesktop_standard = 1
|
To highlight KDE-reserved features, set >
|
||||||
|
let g:desktop_enable_kde = 1
|
||||||
|
g:desktop_enable_kde follows g:desktop_enable_nonstd if not supplied
|
||||||
|
|
||||||
|
|
||||||
DIFF *diff.vim*
|
DIFF *diff.vim*
|
||||||
|
@@ -915,11 +915,13 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
'spellcapcheck' options.txt /*'spellcapcheck'*
|
'spellcapcheck' options.txt /*'spellcapcheck'*
|
||||||
'spellfile' options.txt /*'spellfile'*
|
'spellfile' options.txt /*'spellfile'*
|
||||||
'spelllang' options.txt /*'spelllang'*
|
'spelllang' options.txt /*'spelllang'*
|
||||||
|
'spelloptions' options.txt /*'spelloptions'*
|
||||||
'spellsuggest' options.txt /*'spellsuggest'*
|
'spellsuggest' options.txt /*'spellsuggest'*
|
||||||
'spf' options.txt /*'spf'*
|
'spf' options.txt /*'spf'*
|
||||||
'spl' options.txt /*'spl'*
|
'spl' options.txt /*'spl'*
|
||||||
'splitbelow' options.txt /*'splitbelow'*
|
'splitbelow' options.txt /*'splitbelow'*
|
||||||
'splitright' options.txt /*'splitright'*
|
'splitright' options.txt /*'splitright'*
|
||||||
|
'spo' options.txt /*'spo'*
|
||||||
'spr' options.txt /*'spr'*
|
'spr' options.txt /*'spr'*
|
||||||
'sps' options.txt /*'sps'*
|
'sps' options.txt /*'sps'*
|
||||||
'sr' options.txt /*'sr'*
|
'sr' options.txt /*'sr'*
|
||||||
@@ -1926,6 +1928,10 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
45.3 usr_45.txt /*45.3*
|
45.3 usr_45.txt /*45.3*
|
||||||
45.4 usr_45.txt /*45.4*
|
45.4 usr_45.txt /*45.4*
|
||||||
45.5 usr_45.txt /*45.5*
|
45.5 usr_45.txt /*45.5*
|
||||||
|
46.1 usr_46.txt /*46.1*
|
||||||
|
46.2 usr_46.txt /*46.2*
|
||||||
|
46.3 usr_46.txt /*46.3*
|
||||||
|
46.? usr_46.txt /*46.?*
|
||||||
8g8 various.txt /*8g8*
|
8g8 various.txt /*8g8*
|
||||||
90.1 usr_90.txt /*90.1*
|
90.1 usr_90.txt /*90.1*
|
||||||
90.2 usr_90.txt /*90.2*
|
90.2 usr_90.txt /*90.2*
|
||||||
@@ -3886,6 +3892,7 @@ E101 diff.txt /*E101*
|
|||||||
E102 diff.txt /*E102*
|
E102 diff.txt /*E102*
|
||||||
E103 diff.txt /*E103*
|
E103 diff.txt /*E103*
|
||||||
E104 digraph.txt /*E104*
|
E104 digraph.txt /*E104*
|
||||||
|
E1042 vim9.txt /*E1042*
|
||||||
E105 mbyte.txt /*E105*
|
E105 mbyte.txt /*E105*
|
||||||
E107 eval.txt /*E107*
|
E107 eval.txt /*E107*
|
||||||
E108 eval.txt /*E108*
|
E108 eval.txt /*E108*
|
||||||
@@ -4732,6 +4739,7 @@ E897 eval.txt /*E897*
|
|||||||
E898 channel.txt /*E898*
|
E898 channel.txt /*E898*
|
||||||
E899 eval.txt /*E899*
|
E899 eval.txt /*E899*
|
||||||
E90 message.txt /*E90*
|
E90 message.txt /*E90*
|
||||||
|
E900 eval.txt /*E900*
|
||||||
E901 channel.txt /*E901*
|
E901 channel.txt /*E901*
|
||||||
E902 channel.txt /*E902*
|
E902 channel.txt /*E902*
|
||||||
E903 channel.txt /*E903*
|
E903 channel.txt /*E903*
|
||||||
@@ -5059,6 +5067,7 @@ SessionLoad-variable starting.txt /*SessionLoad-variable*
|
|||||||
SessionLoadPost autocmd.txt /*SessionLoadPost*
|
SessionLoadPost autocmd.txt /*SessionLoadPost*
|
||||||
ShellCmdPost autocmd.txt /*ShellCmdPost*
|
ShellCmdPost autocmd.txt /*ShellCmdPost*
|
||||||
ShellFilterPost autocmd.txt /*ShellFilterPost*
|
ShellFilterPost autocmd.txt /*ShellFilterPost*
|
||||||
|
SigUSR1 autocmd.txt /*SigUSR1*
|
||||||
SourceCmd autocmd.txt /*SourceCmd*
|
SourceCmd autocmd.txt /*SourceCmd*
|
||||||
SourcePost autocmd.txt /*SourcePost*
|
SourcePost autocmd.txt /*SourcePost*
|
||||||
SourcePre autocmd.txt /*SourcePre*
|
SourcePre autocmd.txt /*SourcePre*
|
||||||
@@ -5450,20 +5459,7 @@ bars help.txt /*bars*
|
|||||||
base_font_name_list mbyte.txt /*base_font_name_list*
|
base_font_name_list mbyte.txt /*base_font_name_list*
|
||||||
basic.vim syntax.txt /*basic.vim*
|
basic.vim syntax.txt /*basic.vim*
|
||||||
beep options.txt /*beep*
|
beep options.txt /*beep*
|
||||||
beos-colors os_beos.txt /*beos-colors*
|
beos os_beos.txt /*beos*
|
||||||
beos-compiling os_beos.txt /*beos-compiling*
|
|
||||||
beos-dragndrop os_beos.txt /*beos-dragndrop*
|
|
||||||
beos-fonts os_beos.txt /*beos-fonts*
|
|
||||||
beos-general os_beos.txt /*beos-general*
|
|
||||||
beos-gui os_beos.txt /*beos-gui*
|
|
||||||
beos-launch os_beos.txt /*beos-launch*
|
|
||||||
beos-meta os_beos.txt /*beos-meta*
|
|
||||||
beos-mouse os_beos.txt /*beos-mouse*
|
|
||||||
beos-perl os_beos.txt /*beos-perl*
|
|
||||||
beos-timeout os_beos.txt /*beos-timeout*
|
|
||||||
beos-unicode os_beos.txt /*beos-unicode*
|
|
||||||
beos-utf8 os_beos.txt /*beos-utf8*
|
|
||||||
beos-vimdir os_beos.txt /*beos-vimdir*
|
|
||||||
better-python-interface version7.txt /*better-python-interface*
|
better-python-interface version7.txt /*better-python-interface*
|
||||||
beval_bufnr-variable eval.txt /*beval_bufnr-variable*
|
beval_bufnr-variable eval.txt /*beval_bufnr-variable*
|
||||||
beval_col-variable eval.txt /*beval_col-variable*
|
beval_col-variable eval.txt /*beval_col-variable*
|
||||||
@@ -6342,6 +6338,7 @@ filetype.txt filetype.txt /*filetype.txt*
|
|||||||
filetypedetect-changed version6.txt /*filetypedetect-changed*
|
filetypedetect-changed version6.txt /*filetypedetect-changed*
|
||||||
filetypes filetype.txt /*filetypes*
|
filetypes filetype.txt /*filetypes*
|
||||||
filewritable() eval.txt /*filewritable()*
|
filewritable() eval.txt /*filewritable()*
|
||||||
|
filler-lines windows.txt /*filler-lines*
|
||||||
filter change.txt /*filter*
|
filter change.txt /*filter*
|
||||||
filter() eval.txt /*filter()*
|
filter() eval.txt /*filter()*
|
||||||
find-manpage usr_12.txt /*find-manpage*
|
find-manpage usr_12.txt /*find-manpage*
|
||||||
@@ -6364,6 +6361,7 @@ fixed-7.1 version7.txt /*fixed-7.1*
|
|||||||
fixed-7.2 version7.txt /*fixed-7.2*
|
fixed-7.2 version7.txt /*fixed-7.2*
|
||||||
fixed-7.3 version7.txt /*fixed-7.3*
|
fixed-7.3 version7.txt /*fixed-7.3*
|
||||||
fixed-7.4 version7.txt /*fixed-7.4*
|
fixed-7.4 version7.txt /*fixed-7.4*
|
||||||
|
flatten() eval.txt /*flatten()*
|
||||||
flexwiki.vim syntax.txt /*flexwiki.vim*
|
flexwiki.vim syntax.txt /*flexwiki.vim*
|
||||||
float-e eval.txt /*float-e*
|
float-e eval.txt /*float-e*
|
||||||
float-functions usr_41.txt /*float-functions*
|
float-functions usr_41.txt /*float-functions*
|
||||||
@@ -8885,6 +8883,7 @@ sound_playevent() eval.txt /*sound_playevent()*
|
|||||||
sound_playfile() eval.txt /*sound_playfile()*
|
sound_playfile() eval.txt /*sound_playfile()*
|
||||||
sound_stop() eval.txt /*sound_stop()*
|
sound_stop() eval.txt /*sound_stop()*
|
||||||
soundfold() eval.txt /*soundfold()*
|
soundfold() eval.txt /*soundfold()*
|
||||||
|
source-vim9-script usr_46.txt /*source-vim9-script*
|
||||||
space intro.txt /*space*
|
space intro.txt /*space*
|
||||||
spec-customizing pi_spec.txt /*spec-customizing*
|
spec-customizing pi_spec.txt /*spec-customizing*
|
||||||
spec-how-to-use-it pi_spec.txt /*spec-how-to-use-it*
|
spec-how-to-use-it pi_spec.txt /*spec-how-to-use-it*
|
||||||
@@ -9525,6 +9524,7 @@ terminal-unix terminal.txt /*terminal-unix*
|
|||||||
terminal-use terminal.txt /*terminal-use*
|
terminal-use terminal.txt /*terminal-use*
|
||||||
terminal-window terminal.txt /*terminal-window*
|
terminal-window terminal.txt /*terminal-window*
|
||||||
terminal.txt terminal.txt /*terminal.txt*
|
terminal.txt terminal.txt /*terminal.txt*
|
||||||
|
terminalprops() eval.txt /*terminalprops()*
|
||||||
terminfo term.txt /*terminfo*
|
terminfo term.txt /*terminfo*
|
||||||
termresponse-variable eval.txt /*termresponse-variable*
|
termresponse-variable eval.txt /*termresponse-variable*
|
||||||
test-functions usr_41.txt /*test-functions*
|
test-functions usr_41.txt /*test-functions*
|
||||||
@@ -9701,6 +9701,7 @@ usr_42.txt usr_42.txt /*usr_42.txt*
|
|||||||
usr_43.txt usr_43.txt /*usr_43.txt*
|
usr_43.txt usr_43.txt /*usr_43.txt*
|
||||||
usr_44.txt usr_44.txt /*usr_44.txt*
|
usr_44.txt usr_44.txt /*usr_44.txt*
|
||||||
usr_45.txt usr_45.txt /*usr_45.txt*
|
usr_45.txt usr_45.txt /*usr_45.txt*
|
||||||
|
usr_46.txt usr_46.txt /*usr_46.txt*
|
||||||
usr_90.txt usr_90.txt /*usr_90.txt*
|
usr_90.txt usr_90.txt /*usr_90.txt*
|
||||||
usr_toc.txt usr_toc.txt /*usr_toc.txt*
|
usr_toc.txt usr_toc.txt /*usr_toc.txt*
|
||||||
utf-8 mbyte.txt /*utf-8*
|
utf-8 mbyte.txt /*utf-8*
|
||||||
@@ -9920,6 +9921,7 @@ val-variable eval.txt /*val-variable*
|
|||||||
valgrind debug.txt /*valgrind*
|
valgrind debug.txt /*valgrind*
|
||||||
values() eval.txt /*values()*
|
values() eval.txt /*values()*
|
||||||
var-functions usr_41.txt /*var-functions*
|
var-functions usr_41.txt /*var-functions*
|
||||||
|
variable-scope eval.txt /*variable-scope*
|
||||||
variables eval.txt /*variables*
|
variables eval.txt /*variables*
|
||||||
various various.txt /*various*
|
various various.txt /*various*
|
||||||
various-cmds various.txt /*various-cmds*
|
various-cmds various.txt /*various-cmds*
|
||||||
@@ -9993,11 +9995,15 @@ vim.vim syntax.txt /*vim.vim*
|
|||||||
vim7 version7.txt /*vim7*
|
vim7 version7.txt /*vim7*
|
||||||
vim8 version8.txt /*vim8*
|
vim8 version8.txt /*vim8*
|
||||||
vim9 vim9.txt /*vim9*
|
vim9 vim9.txt /*vim9*
|
||||||
|
vim9-declaration vim9.txt /*vim9-declaration*
|
||||||
|
vim9-declarations usr_46.txt /*vim9-declarations*
|
||||||
vim9-differences vim9.txt /*vim9-differences*
|
vim9-differences vim9.txt /*vim9-differences*
|
||||||
vim9-export vim9.txt /*vim9-export*
|
vim9-export vim9.txt /*vim9-export*
|
||||||
vim9-import vim9.txt /*vim9-import*
|
vim9-import vim9.txt /*vim9-import*
|
||||||
vim9-rationale vim9.txt /*vim9-rationale*
|
vim9-rationale vim9.txt /*vim9-rationale*
|
||||||
|
vim9-scopes vim9.txt /*vim9-scopes*
|
||||||
vim9-script vim9.txt /*vim9-script*
|
vim9-script vim9.txt /*vim9-script*
|
||||||
|
vim9-script-intro usr_46.txt /*vim9-script-intro*
|
||||||
vim9-types vim9.txt /*vim9-types*
|
vim9-types vim9.txt /*vim9-types*
|
||||||
vim9.txt vim9.txt /*vim9.txt*
|
vim9.txt vim9.txt /*vim9.txt*
|
||||||
vim9script vim9.txt /*vim9script*
|
vim9script vim9.txt /*vim9script*
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*testing.txt* For Vim version 8.2. Last change: 2020 Jun 03
|
*testing.txt* For Vim version 8.2. Last change: 2020 Jun 13
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*todo.txt* For Vim version 8.2. Last change: 2020 Jun 07
|
*todo.txt* For Vim version 8.2. Last change: 2020 Jun 14
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -40,15 +40,17 @@ browser use: https://github.com/vim/vim/issues/1234
|
|||||||
|
|
||||||
Include src/po/vim.pot ?
|
Include src/po/vim.pot ?
|
||||||
|
|
||||||
If there are no complaints, remove more typecasts from vim_strnsave() length
|
|
||||||
argument.
|
|
||||||
|
|
||||||
Vim9 script:
|
Vim9 script:
|
||||||
Making everything work:
|
Making everything work:
|
||||||
|
- assignment to script var should check type
|
||||||
|
- Compile: let [var, var] = expr
|
||||||
|
share code for :let between compiled and uncompiled?
|
||||||
|
- do not allow "let g:var = value", must drop "let"
|
||||||
- possible memory leak in test_vim9_func through compile_nested_function.
|
- possible memory leak in test_vim9_func through compile_nested_function.
|
||||||
- memory leaks in test_vim9_expr
|
- memory leaks in test_vim9_expr
|
||||||
- memory leaks in test_vim9_script
|
- memory leaks in test_vim9_script
|
||||||
- Test that a script-local function in Vim9 script cannot be deleted.
|
- Test that a script-local function in Vim9 script cannot be deleted.
|
||||||
|
- Check that when sourcing a Vim9 script, only the global items can be used.
|
||||||
- Make "true" and "false" work in vim9script
|
- Make "true" and "false" work in vim9script
|
||||||
- Test that a function defined inside a :def function is local to that
|
- Test that a function defined inside a :def function is local to that
|
||||||
function, g: functions can be defined and script-local functions cannot be
|
function, g: functions can be defined and script-local functions cannot be
|
||||||
@@ -56,7 +58,6 @@ Making everything work:
|
|||||||
- make 0 == 'string' fail on the script level, like inside :def.
|
- make 0 == 'string' fail on the script level, like inside :def.
|
||||||
- Check that when using a user function name without prefix, it does not find
|
- Check that when using a user function name without prefix, it does not find
|
||||||
a global function. Prefixing g: is required.
|
a global function. Prefixing g: is required.
|
||||||
- Compile: let [var, var] = expr
|
|
||||||
- Compile: for [key, value] in items(map)
|
- Compile: for [key, value] in items(map)
|
||||||
- Assignment to dict doesn't work:
|
- Assignment to dict doesn't work:
|
||||||
let ret: dict<string> = #{}
|
let ret: dict<string> = #{}
|
||||||
@@ -76,6 +77,7 @@ Making everything work:
|
|||||||
(Ben Jackson, #5671)
|
(Ben Jackson, #5671)
|
||||||
Can we share the code from ex_let_const() between direct execution and
|
Can we share the code from ex_let_const() between direct execution and
|
||||||
compiling?
|
compiling?
|
||||||
|
- Implement "as Name" in "import Item as Name from ..."
|
||||||
- Disallow unlet for local/script/imported vars
|
- Disallow unlet for local/script/imported vars
|
||||||
- Make "++nr" work.
|
- Make "++nr" work.
|
||||||
- Make closures work:
|
- Make closures work:
|
||||||
@@ -88,13 +90,14 @@ Making everything work:
|
|||||||
New syntax and functionality:
|
New syntax and functionality:
|
||||||
Improve error checking:
|
Improve error checking:
|
||||||
- "echo Func()" is an error if Func() does not return anything.
|
- "echo Func()" is an error if Func() does not return anything.
|
||||||
|
Test:
|
||||||
|
- Using a Vim9 autoload script (functions must be global).
|
||||||
Also:
|
Also:
|
||||||
- For range: make table of first ASCII character with flag to quickly check if
|
- For range: make table of first ASCII character with flag to quickly check if
|
||||||
it can be a Vim9 command. E.g. "+" can, but "." can't.
|
it can be a Vim9 command. E.g. "+" can, but "." can't.
|
||||||
- better implementation for partial and tests for that.
|
- better implementation for partial and tests for that.
|
||||||
- Make "g:imported = Export.exported" work in Vim9 script.
|
- Make "g:imported = Export.exported" work in Vim9 script.
|
||||||
- Make Foo.Bar() work to call the dict function. (#5676)
|
- Make Foo.Bar() work to call the dict function. (#5676)
|
||||||
- Check that import in legacy script works and puts item in s:
|
|
||||||
- Error in any command in "vim9script" aborts sourcing.
|
- Error in any command in "vim9script" aborts sourcing.
|
||||||
- Find a way to test expressions in legacy and Vim9 script without duplication
|
- Find a way to test expressions in legacy and Vim9 script without duplication
|
||||||
- Fix memory leaks for test_vim9_disassemble, test_vim9_expr, test_vim9_script
|
- Fix memory leaks for test_vim9_disassemble, test_vim9_expr, test_vim9_script
|
||||||
@@ -237,7 +240,25 @@ Terminal emulator window:
|
|||||||
conversions.
|
conversions.
|
||||||
|
|
||||||
Error numbers available:
|
Error numbers available:
|
||||||
E489, E610, E611, E653, E856, E857, E861, E900
|
E489, E610, E611, E653, E856, E857, E861
|
||||||
|
|
||||||
|
Remove SPACE_IN_FILENAME ? It is only used for completion.
|
||||||
|
|
||||||
|
Can we detect true color support? https://gist.github.com/XVilka/8346728
|
||||||
|
Try setting a color then request the current color, like using t_u7.
|
||||||
|
|
||||||
|
Check out PR #543 (Roland Puntaier).
|
||||||
|
Patch for multi-byte characters in langmap and applying a mapping on them.
|
||||||
|
(Christian Brabandt, 2015 Jun 12, update July 25)
|
||||||
|
Is this the right solution? Need to cleanup langmap behavior:
|
||||||
|
- in vgetorpeek() apply langmap to the typeahead buffer and put the result in
|
||||||
|
a copy-buffer, only when langmap is appropriate for the current mode. Then
|
||||||
|
check for mapping and let gotchars() work on the copy-buffer.
|
||||||
|
- Remove LANGMAP_ADJUST() in other parts of the code. Make sure the mode is
|
||||||
|
covered by the above change.
|
||||||
|
So that replaying the register doesn't use keymap/langmap and still does the
|
||||||
|
same thing.
|
||||||
|
Also see #737: langmap not applied to replaying recording.
|
||||||
|
|
||||||
Buffer autocommands are a bit inconsistent. Add a separate set of
|
Buffer autocommands are a bit inconsistent. Add a separate set of
|
||||||
autocommands for the buffer lifecycle:
|
autocommands for the buffer lifecycle:
|
||||||
@@ -275,6 +296,9 @@ undo result wrong: Masato Nishihata, #4798
|
|||||||
When 'lazyredraw' is set sometimes the title is not updated.
|
When 'lazyredraw' is set sometimes the title is not updated.
|
||||||
(Jason Franklin, 2020 Feb 3) Looks like a race condition.
|
(Jason Franklin, 2020 Feb 3) Looks like a race condition.
|
||||||
|
|
||||||
|
Regexp to search for duplicate lines does not work correctly:
|
||||||
|
/\(^.*\n\)\1 (Chris Morgan, #6239)
|
||||||
|
|
||||||
With bash ":make" does not set v:shell_error. Possible solution: set
|
With bash ":make" does not set v:shell_error. Possible solution: set
|
||||||
'shellpipe' to "2>&1| tee %s; exit ${PIPESTATUS[0]}" #5994
|
'shellpipe' to "2>&1| tee %s; exit ${PIPESTATUS[0]}" #5994
|
||||||
|
|
||||||
@@ -305,6 +329,8 @@ Wrong error when using local arglist. (Harm te Hennepe, #6133)
|
|||||||
Request to support <Cmd> in mappings, similar to how Neovim does this.
|
Request to support <Cmd> in mappings, similar to how Neovim does this.
|
||||||
(Daniel Hahler, #4784)
|
(Daniel Hahler, #4784)
|
||||||
|
|
||||||
|
Test loose_clipboard() by selecting text before suspending.
|
||||||
|
|
||||||
Undo puts cursor in wrong line after "cG<Esc>" undo.
|
Undo puts cursor in wrong line after "cG<Esc>" undo.
|
||||||
|
|
||||||
:unmap <c-n> gives error but does remove the mapping. (Antony Scriven, 2019
|
:unmap <c-n> gives error but does remove the mapping. (Antony Scriven, 2019
|
||||||
@@ -391,7 +417,7 @@ When using :packadd files under "later" are not used, which is inconsistent
|
|||||||
with packages under "start". (xtal8, #1994)
|
with packages under "start". (xtal8, #1994)
|
||||||
|
|
||||||
Patch to add new motion ]( and ]{. (Yasuhiro Matsumoto, #5320)
|
Patch to add new motion ]( and ]{. (Yasuhiro Matsumoto, #5320)
|
||||||
Better: use the "z" prefix.
|
Better: use the "z" prefix. or ]t) and [t(.
|
||||||
|
|
||||||
Modeless selection doesn't work in gvim. (#4783)
|
Modeless selection doesn't work in gvim. (#4783)
|
||||||
Caused by patch 8.1.1534.
|
Caused by patch 8.1.1534.
|
||||||
@@ -439,18 +465,12 @@ Can be used to update highlighting. #3127 #5181
|
|||||||
Incorrect formatting with autoindent. (Sebastian Gniazdowski, #4909)
|
Incorrect formatting with autoindent. (Sebastian Gniazdowski, #4909)
|
||||||
|
|
||||||
Patch to add the :bvimgrep command. (Christian Brabandt, 2014 Nov 12)
|
Patch to add the :bvimgrep command. (Christian Brabandt, 2014 Nov 12)
|
||||||
Updated 2016 Jun 10, #858 Update 2017 Mar 28: use <buffer>
|
Updated 2016 Jun 10, #858 Update 2017 Mar 28: use <buffer>.
|
||||||
|
Better use ":bufgrep" ?
|
||||||
|
|
||||||
Errors found with random data:
|
Errors found with random data:
|
||||||
heap-buffer-overflow in alist_add (#2472)
|
heap-buffer-overflow in alist_add (#2472)
|
||||||
|
|
||||||
Patch to support CamelCase for spell checking: See a lower-to-upper case
|
|
||||||
change as a word boundary. (btucker-MPCData, 2016 Nov 6, #1235)
|
|
||||||
patch for 'spellcamelcase' option: spellcheck each CamelCased word.
|
|
||||||
(Ben Tucker, 2016 Dec 2)
|
|
||||||
|
|
||||||
Patch to add "cmdline" completion to getcompletion(). (Shougo, Oct 1, #1140)
|
|
||||||
|
|
||||||
Improve fallback for menu translations, to avoid having to create lots of
|
Improve fallback for menu translations, to avoid having to create lots of
|
||||||
files that source the actual file. E.g. menu_da_de -> menu_da
|
files that source the actual file. E.g. menu_da_de -> menu_da
|
||||||
Include part of #3242?
|
Include part of #3242?
|
||||||
@@ -466,18 +486,6 @@ Added tests (James McCoy, 2016 Aug 3, #958). Still needs more work.
|
|||||||
window 2. User expects 10 to be added to size of window 2. (Daniel Steinberg,
|
window 2. User expects 10 to be added to size of window 2. (Daniel Steinberg,
|
||||||
#5443)
|
#5443)
|
||||||
|
|
||||||
Patch for multi-byte characters in langmap and applying a mapping on them.
|
|
||||||
(Christian Brabandt, 2015 Jun 12, update July 25)
|
|
||||||
Is this the right solution? Need to cleanup langmap behavior:
|
|
||||||
- in vgetorpeek() apply langmap to the typeahead buffer and put the result in
|
|
||||||
a copy-buffer, only when langmap is appropriate for the current mode. Then
|
|
||||||
check for mapping and let gotchars() work on the copy-buffer.
|
|
||||||
- Remove LANGMAP_ADJUST() in other parts of the code. Make sure the mode is
|
|
||||||
covered by the above change.
|
|
||||||
So that replaying the register doesn't use keymap/langmap and still does the
|
|
||||||
same thing. Remarks on PR #543 (Roland Puntaier).
|
|
||||||
Also see #737: langmap not applied to replaying recording.
|
|
||||||
|
|
||||||
Would be nice to set tab-local values for 'diffexpr' and 'diffopt'. Use
|
Would be nice to set tab-local values for 'diffexpr' and 'diffopt'. Use
|
||||||
t:diffexpr_option t:diffopt_option? (#4782)
|
t:diffexpr_option t:diffopt_option? (#4782)
|
||||||
|
|
||||||
@@ -507,10 +515,10 @@ Give a few examples. (#4288)
|
|||||||
Opening a file with --remote-tab-silent that matches 'wildignore' does not
|
Opening a file with --remote-tab-silent that matches 'wildignore' does not
|
||||||
work, results in (E479: No match". (#4610)
|
work, results in (E479: No match". (#4610)
|
||||||
|
|
||||||
Patch for this (Tristan Konolige, #1011, only adds the option, no implem.):
|
|
||||||
7 Add an option to add one pixel column to the character width? Lucida
|
7 Add an option to add one pixel column to the character width? Lucida
|
||||||
Console italic is wider than the normal font ("d" overlaps with next char).
|
Console italic is wider than the normal font ("d" overlaps with next char).
|
||||||
Opposite of 'linespace': 'columnspace'.
|
Opposite of 'linespace': 'columnspace'.
|
||||||
|
Patch for this (Tristan Konolige, #1011, only added the option, no implem.)
|
||||||
|
|
||||||
Bug: script written with "-W scriptout" contains Key codes, while the script
|
Bug: script written with "-W scriptout" contains Key codes, while the script
|
||||||
read with "-s scriptin" expects escape codes. Probably "scriptout" needs to
|
read with "-s scriptin" expects escape codes. Probably "scriptout" needs to
|
||||||
@@ -583,9 +591,6 @@ C syntax: {} inside () causes following {} to be highlighted as error.
|
|||||||
Check: __attribute__((format(printf, on semsg() and siemsg(). Where was this
|
Check: __attribute__((format(printf, on semsg() and siemsg(). Where was this
|
||||||
added?
|
added?
|
||||||
|
|
||||||
Patch to add a flatten() function. #3676. Check that the doc explains the
|
|
||||||
maxdepth argument (applies to the input "recursiveness").
|
|
||||||
|
|
||||||
Add test for urxvt mouse codes. Also test that mouse coordinates can be
|
Add test for urxvt mouse codes. Also test that mouse coordinates can be
|
||||||
negative. (see #4326)
|
negative. (see #4326)
|
||||||
|
|
||||||
@@ -656,11 +661,6 @@ punctuation is repeated. (Smylers, 2018 Nov 17, #3621)
|
|||||||
|
|
||||||
ml_get error: (Israel Chauca Fuentes, 2018 Oct 17, #3550).
|
ml_get error: (Israel Chauca Fuentes, 2018 Oct 17, #3550).
|
||||||
|
|
||||||
Patch to add more info to OptionSet. Should mention what triggered the change
|
|
||||||
":set", ":setlocal", ":setglobal", "modeline"; and the old global value.
|
|
||||||
#4118. Proposed implementation: 2019 Mar 27.
|
|
||||||
Updated 2019 May 25.
|
|
||||||
|
|
||||||
Using single wide base character with double wide composing character gives
|
Using single wide base character with double wide composing character gives
|
||||||
drawing errors. Fill up the base character? (Dominique, #4328)
|
drawing errors. Fill up the base character? (Dominique, #4328)
|
||||||
|
|
||||||
@@ -711,23 +711,13 @@ Neovim uses "eob:X" in 'fillchars'.
|
|||||||
Sourceforge Vim pages still have content, redirect from empty page.
|
Sourceforge Vim pages still have content, redirect from empty page.
|
||||||
Check for PHP errors. (Wayne Davison, 2018 Oct 26)
|
Check for PHP errors. (Wayne Davison, 2018 Oct 26)
|
||||||
|
|
||||||
Patch to support ":tag <tagkind> <tagname>". (emmrk, 2018 May 7, #2871)
|
|
||||||
Use something like ":tag {kind}/{tagname}".
|
|
||||||
Not ready to include.
|
|
||||||
|
|
||||||
Problem with Visual yank when 'linebreak' and 'showbreak' are set.
|
Problem with Visual yank when 'linebreak' and 'showbreak' are set.
|
||||||
Patch with tests, but it's not clear how it is supposed to work. (tommm, 2018
|
Patch with tests, but it's not clear how it is supposed to work. (tommm, 2018
|
||||||
Nov 17) Asked about this, Dec 22. Christian will have a look.
|
Nov 17) Asked about this, Dec 22. Christian will have a look.
|
||||||
|
|
||||||
Patch for larger icons in installer. (#978) Still not good.
|
|
||||||
|
|
||||||
Patch to fix that using "5gj" starting inside a closed fold does not work on
|
Patch to fix that using "5gj" starting inside a closed fold does not work on
|
||||||
screen lines but on text lines. (Julius Hulsmann, #4095) Lacks a test.
|
screen lines but on text lines. (Julius Hulsmann, #4095) Lacks a test.
|
||||||
|
|
||||||
Patch to implement 'diffref' option. (#3535)
|
|
||||||
Easier to use a 'diffmaster' option, is the extra complexity needed?
|
|
||||||
Not ready to include.
|
|
||||||
|
|
||||||
home_replace() uses $HOME instead of "homedir". (Cesar Martins, 2018 Aug 9)
|
home_replace() uses $HOME instead of "homedir". (Cesar Martins, 2018 Aug 9)
|
||||||
|
|
||||||
When the status line uses term_gettitle(), it does not get updated when the
|
When the status line uses term_gettitle(), it does not get updated when the
|
||||||
@@ -755,7 +745,7 @@ Further xdiff changes:
|
|||||||
Difference between two regexp engines: #3373
|
Difference between two regexp engines: #3373
|
||||||
|
|
||||||
Patch to add ch_listen() (Yasuhiro Matsumoto, 2018 Nov 26, #3639)
|
Patch to add ch_listen() (Yasuhiro Matsumoto, 2018 Nov 26, #3639)
|
||||||
What is the practical use for this?
|
What is the practical use for this? Need an example.
|
||||||
|
|
||||||
When the last line wraps, selecting with the mouse below that line only
|
When the last line wraps, selecting with the mouse below that line only
|
||||||
includes the first screen line. (2018 Aug 23, #3368)
|
includes the first screen line. (2018 Aug 23, #3368)
|
||||||
@@ -779,8 +769,6 @@ when adding a sign for every quickfix entry. (#4557)
|
|||||||
Win32 key codes are messy. Mike Williams tried to fix that, but now old
|
Win32 key codes are messy. Mike Williams tried to fix that, but now old
|
||||||
mappings no longer work. Create a new terminal for the better solution?
|
mappings no longer work. Create a new terminal for the better solution?
|
||||||
|
|
||||||
Patch to "fix" 'visualbell'. Add option to set delay? (#1789)
|
|
||||||
|
|
||||||
Script generated by :mksession does not work well if there are windows with
|
Script generated by :mksession does not work well if there are windows with
|
||||||
modified buffers
|
modified buffers
|
||||||
change "silent only" into "silent only!"
|
change "silent only" into "silent only!"
|
||||||
@@ -870,9 +858,6 @@ deleting autocmds, not when adding them.
|
|||||||
|
|
||||||
Alternative manpager.vim. (Enno, 2018 Jan 5, #2529)
|
Alternative manpager.vim. (Enno, 2018 Jan 5, #2529)
|
||||||
|
|
||||||
Delete all the specific stuff for the Borland compiler? (#3374)
|
|
||||||
Patch in #3377 (Thomas Dziedzic)
|
|
||||||
|
|
||||||
With 'foldmethod' "indent" and appending an empty line, what follows isn't
|
With 'foldmethod' "indent" and appending an empty line, what follows isn't
|
||||||
included in the existing fold. Deleting the empty line and undo fixes it.
|
included in the existing fold. Deleting the empty line and undo fixes it.
|
||||||
(Oleg Koshovetc, 2018 Jul 15, #3214)
|
(Oleg Koshovetc, 2018 Jul 15, #3214)
|
||||||
@@ -1037,6 +1022,7 @@ The ":move" command does not honor closed folds. (Ryan Lue, #2351)
|
|||||||
|
|
||||||
Patch to fix increment/decrement not working properly when 'virtualedit' is
|
Patch to fix increment/decrement not working properly when 'virtualedit' is
|
||||||
set. (Hirohito Higashi, 2016 Aug 1, #923)
|
set. (Hirohito Higashi, 2016 Aug 1, #923)
|
||||||
|
Was this fixed?
|
||||||
|
|
||||||
Cannot copy modeless selection when cursor is inside it. (lkintact, #2300)
|
Cannot copy modeless selection when cursor is inside it. (lkintact, #2300)
|
||||||
|
|
||||||
@@ -1106,8 +1092,6 @@ Or is this not an actual problem?
|
|||||||
|
|
||||||
Better TeX indent file. (Christian Brabandt, 2017 May 3)
|
Better TeX indent file. (Christian Brabandt, 2017 May 3)
|
||||||
|
|
||||||
Patch to use a separate code for BS on Windows. (Linwei, #1823)
|
|
||||||
|
|
||||||
Use gvimext.dll from the nightly build? (Issue #249)
|
Use gvimext.dll from the nightly build? (Issue #249)
|
||||||
|
|
||||||
'synmaxcol' works with bytes instead of screen cells. (Llandon, 2017 May 31,
|
'synmaxcol' works with bytes instead of screen cells. (Llandon, 2017 May 31,
|
||||||
@@ -1216,13 +1200,6 @@ Implement named arguments for functions:
|
|||||||
Add a command to take a range of lines, filter them and put the output
|
Add a command to take a range of lines, filter them and put the output
|
||||||
somewhere else. :{range}copy {dest} !cmd
|
somewhere else. :{range}copy {dest} !cmd
|
||||||
|
|
||||||
Patch to fix that empty first tab is not in session.
|
|
||||||
(Hirohito Higashi, 2016 Nov 25, #1282)
|
|
||||||
|
|
||||||
Patch to fix escaping of job arguments. (Yasuhiro Matsumoto, 2016 Oct 5)
|
|
||||||
Update Oct 14: https://gist.github.com/mattn/d47e7d3bfe5ade4be86062b565a4bfca
|
|
||||||
Update Aug 2017: #1954
|
|
||||||
|
|
||||||
The TermResponse event is not triggered when a plugin has set 'eventignore' to
|
The TermResponse event is not triggered when a plugin has set 'eventignore' to
|
||||||
"all". Netrw does this. (Gary Johnson, 2017 Jan 24)
|
"all". Netrw does this. (Gary Johnson, 2017 Jan 24)
|
||||||
Postpone the event until 'eventignore' is reset.
|
Postpone the event until 'eventignore' is reset.
|
||||||
@@ -1386,11 +1363,6 @@ Undo message is not always properly displayed. Patch by Ken Takata, 2013 oct
|
|||||||
3. Doesn't work properly according to Yukihiro Nakadaira.
|
3. Doesn't work properly according to Yukihiro Nakadaira.
|
||||||
Also see #1635.
|
Also see #1635.
|
||||||
|
|
||||||
Patch for systemlist(), add empty item. (thinca, Sep 30, #1135)
|
|
||||||
Add an argument to choose binary or non-binary (like readfile()), when omitted
|
|
||||||
use the current behavior.
|
|
||||||
Include the test.
|
|
||||||
|
|
||||||
When 'keywordprg' starts with ":" the argument is still escaped as a shell
|
When 'keywordprg' starts with ":" the argument is still escaped as a shell
|
||||||
command argument. (Romain Lafourcade, 2016 Oct 16, #1175)
|
command argument. (Romain Lafourcade, 2016 Oct 16, #1175)
|
||||||
|
|
||||||
@@ -1412,9 +1384,6 @@ synced. (Ryan Carney, 2016 Sep 14)
|
|||||||
Syntax highlighting for messages with RFC3339 timestamp (#946)
|
Syntax highlighting for messages with RFC3339 timestamp (#946)
|
||||||
Did maintainer reply?
|
Did maintainer reply?
|
||||||
|
|
||||||
Patch to avoid problem with special characters in file name.
|
|
||||||
(Shougo, 2016 Sept 19, #1099) Not finished?
|
|
||||||
|
|
||||||
ml_get errors when reloading file. (Chris Desjardins, 2016 Apr 19)
|
ml_get errors when reloading file. (Chris Desjardins, 2016 Apr 19)
|
||||||
Also with latest version.
|
Also with latest version.
|
||||||
|
|
||||||
@@ -1450,8 +1419,6 @@ Filetype plugin for awk. (Doug Kearns, 2016 Sep 5)
|
|||||||
|
|
||||||
Patch to improve map documentation. Issue #799.
|
Patch to improve map documentation. Issue #799.
|
||||||
|
|
||||||
Patch for syntax folding optimization. (Shougo, 2016 Sep 6, #1045)
|
|
||||||
|
|
||||||
We can use '. to go to the last change in the current buffer, but how about
|
We can use '. to go to the last change in the current buffer, but how about
|
||||||
the last change in any buffer? Can we use ', (, is next to .)?
|
the last change in any buffer? Can we use ', (, is next to .)?
|
||||||
|
|
||||||
@@ -1508,11 +1475,6 @@ Mechelynck) Perhaps use exists("::tearoff") to check?
|
|||||||
Use vim.vim syntax highlighting for help file examples, but without ":" in
|
Use vim.vim syntax highlighting for help file examples, but without ":" in
|
||||||
'iskeyword' for syntax.
|
'iskeyword' for syntax.
|
||||||
|
|
||||||
Patch to make "%:h:h" return "." instead of the full path.
|
|
||||||
(Coot, 2016 Jan 24, #592)
|
|
||||||
|
|
||||||
Remove SPACE_IN_FILENAME ? What could possibly go wrong?
|
|
||||||
|
|
||||||
When command names are very long :command output is difficult to read. Use a
|
When command names are very long :command output is difficult to read. Use a
|
||||||
maximum for the column width? (#871)
|
maximum for the column width? (#871)
|
||||||
Patcy by varmanishant, 2016 Jun 18, #876
|
Patcy by varmanishant, 2016 Jun 18, #876
|
||||||
@@ -2107,11 +2069,6 @@ Vim using lots of memory when joining lines. (John Little, 2010 Dec 3)
|
|||||||
BT regexp engine: After trying a \@> match and failing, submatches are not
|
BT regexp engine: After trying a \@> match and failing, submatches are not
|
||||||
cleared. See test64.
|
cleared. See test64.
|
||||||
|
|
||||||
Patch to make "z=" work when 'spell' is off. Does this have nasty side
|
|
||||||
effects? (Christian Brabandt, 2012 Aug 5, Update 2013 Aug 12)
|
|
||||||
Would also need to do this for spellbadword() and spellsuggest().
|
|
||||||
https://github.com/chrisbra/vim-mq-patches/blob/master/enable_spellchecking
|
|
||||||
|
|
||||||
On 64 bit MS-Windows "long" is only 32 bits, but we sometimes need to store a
|
On 64 bit MS-Windows "long" is only 32 bits, but we sometimes need to store a
|
||||||
64 bits value. Change all number options to use nropt_T and define it to the
|
64 bits value. Change all number options to use nropt_T and define it to the
|
||||||
right type.
|
right type.
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*usr_41.txt* For Vim version 8.2. Last change: 2020 Jun 01
|
*usr_41.txt* For Vim version 8.2. Last change: 2020 Jun 13
|
||||||
|
|
||||||
VIM USER MANUAL - by Bram Moolenaar
|
VIM USER MANUAL - by Bram Moolenaar
|
||||||
|
|
||||||
@@ -41,10 +41,11 @@ prefer. And you can use any colon command in it (commands that start with a
|
|||||||
specific file type. A complicated macro can be defined by a separate Vim
|
specific file type. A complicated macro can be defined by a separate Vim
|
||||||
script file. You can think of other uses yourself.
|
script file. You can think of other uses yourself.
|
||||||
|
|
||||||
Note: if you are familiar with Python, you can find a comparison between
|
If you are familiar with Python, you can find a comparison between
|
||||||
Python and Vim script here, with pointers to other documents:
|
Python and Vim script here, with pointers to other documents:
|
||||||
https://gist.github.com/yegappan/16d964a37ead0979b05e655aa036cad0
|
https://gist.github.com/yegappan/16d964a37ead0979b05e655aa036cad0
|
||||||
|
And if you are familiar with Javascript:
|
||||||
|
https://w0rp.com/blog/post/vim-script-for-the-javascripter/
|
||||||
|
|
||||||
Let's start with a simple example: >
|
Let's start with a simple example: >
|
||||||
|
|
||||||
@@ -98,6 +99,8 @@ and the value of the variable i. Since i is one, this will print:
|
|||||||
Then there is the ":let i += 1" command. This does the same thing as
|
Then there is the ":let i += 1" command. This does the same thing as
|
||||||
":let i = i + 1". This adds one to the variable i and assigns the new value
|
":let i = i + 1". This adds one to the variable i and assigns the new value
|
||||||
to the same variable.
|
to the same variable.
|
||||||
|
Note: this is how it works in legacy Vim script, which is what we discuss in
|
||||||
|
this file. In Vim9 script it's a bit different, see |usr_46.txt|.
|
||||||
|
|
||||||
The example was given to explain the commands, but would you really want to
|
The example was given to explain the commands, but would you really want to
|
||||||
make such a loop, it can be written much more compact: >
|
make such a loop, it can be written much more compact: >
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
*usr_45.txt* For Vim version 8.2. Last change: 2008 Nov 15
|
*usr_45.txt* For Vim version 8.2. Last change: 2020 Jun 11
|
||||||
|
|
||||||
VIM USER MANUAL - by Bram Moolenaar
|
VIM USER MANUAL - by Bram Moolenaar
|
||||||
|
|
||||||
Select your language
|
Select your language (locale)
|
||||||
|
|
||||||
|
|
||||||
The messages in Vim can be given in several languages. This chapter explains
|
The messages in Vim can be given in several languages. This chapter explains
|
||||||
@@ -15,7 +15,7 @@ in various languages is explained.
|
|||||||
|45.4| Editing files with a different encoding
|
|45.4| Editing files with a different encoding
|
||||||
|45.5| Entering language text
|
|45.5| Entering language text
|
||||||
|
|
||||||
Next chapter: |usr_90.txt| Installing Vim
|
Next chapter: |usr_46.txt| Write plugins using Vim9 script
|
||||||
Previous chapter: |usr_44.txt| Your own syntax highlighted
|
Previous chapter: |usr_44.txt| Your own syntax highlighted
|
||||||
Table of contents: |usr_toc.txt|
|
Table of contents: |usr_toc.txt|
|
||||||
|
|
||||||
@@ -408,6 +408,6 @@ Don't type the spaces. See |i_CTRL-V_digit| for the details.
|
|||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
|
|
||||||
Next chapter: |usr_90.txt| Installing Vim
|
Next chapter: |usr_46.txt| Write plugins using Vim9 script
|
||||||
|
|
||||||
Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:
|
Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:
|
||||||
|
192
runtime/doc/usr_46.txt
Normal file
192
runtime/doc/usr_46.txt
Normal file
@@ -0,0 +1,192 @@
|
|||||||
|
*usr_46.txt* For Vim version 8.2. Last change: 2020 Jun 14
|
||||||
|
|
||||||
|
VIM USER MANUAL - by Bram Moolenaar
|
||||||
|
|
||||||
|
Write plugins using Vim9 script
|
||||||
|
|
||||||
|
|
||||||
|
The Vim9 script language is used for writing plugins, especially larger ones
|
||||||
|
that use multiple files. This chapter explains how to split up a plugin into
|
||||||
|
modules, import and export items and keep the rest local.
|
||||||
|
|
||||||
|
|46.1| Introduction
|
||||||
|
|46.2| Variable declarations
|
||||||
|
|46.3| Functions and types
|
||||||
|
|46.?| Using a Vim9 script from legacy script
|
||||||
|
|
||||||
|
Next chapter: |usr_90.txt| Installing Vim
|
||||||
|
Previous chapter: |usr_45.txt| Select your language (locale)
|
||||||
|
Table of contents: |usr_toc.txt|
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
*46.1* Introduction *vim9-script-intro*
|
||||||
|
|
||||||
|
Vim9 script was designed to make it easier to write large Vim scripts. It
|
||||||
|
looks more like other script languages, especially Typescript. Also,
|
||||||
|
functions are compiled into instructions that can be executed quickly. This
|
||||||
|
makes Vim9 script a lot faster, up to a 100 times.
|
||||||
|
|
||||||
|
The basic idea is that a script file has items that are private, only used
|
||||||
|
inside the script file, and items that are exported, used outside of the
|
||||||
|
script file. The exported items can then be used by scripts that import them.
|
||||||
|
That makes very clear what is defined where.
|
||||||
|
|
||||||
|
Let's start with an example, a script that exports one function and has one
|
||||||
|
private function: >
|
||||||
|
|
||||||
|
vim9script " This indicates a Vim9 script file,
|
||||||
|
|
||||||
|
export def GetMessage(): string
|
||||||
|
let result = ''
|
||||||
|
...
|
||||||
|
result = GetPart(count)
|
||||||
|
...
|
||||||
|
return result
|
||||||
|
enddef
|
||||||
|
|
||||||
|
def GetPart(nr: number): string
|
||||||
|
if nr == 4
|
||||||
|
return 'yes'
|
||||||
|
else
|
||||||
|
return 'no'
|
||||||
|
endif
|
||||||
|
enddef
|
||||||
|
|
||||||
|
The `vim9script` command must be the very first command in the file. Without
|
||||||
|
it Vim will assume legacy script syntax.
|
||||||
|
|
||||||
|
The `export def GetMessage(): string` line starts with `export`, meaning that
|
||||||
|
this function can be imported and called by other scripts. The line
|
||||||
|
`def GetPart(...` does not start with `export`, this is a script-local
|
||||||
|
function, it can only be used inside this script file.
|
||||||
|
|
||||||
|
In the `export def GetMessage(): string` line you will notice the colon and
|
||||||
|
the return type. Vim9 functions, defined with `def`, require specifying the
|
||||||
|
type of arguments and the return type. That way Vim can compile the code
|
||||||
|
efficiently. The GetPart function defines an argument "nr" of type "number".
|
||||||
|
|
||||||
|
Notice that the assignment `result = GetPart(count)` does not use the `let`
|
||||||
|
command. That is explained in the next section.
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
*46.2* Variable declarations *vim9-declarations*
|
||||||
|
|
||||||
|
In Vim9 script variables are declared once with a `:let` or `:const` command.
|
||||||
|
Assigning a value is done without `:let` and it is not possible to `:unlet`
|
||||||
|
the variable.
|
||||||
|
|
||||||
|
In most cases you will want to declare the variable and initialize it at the
|
||||||
|
same time: >
|
||||||
|
let myText = 'some text'
|
||||||
|
...
|
||||||
|
myText = 'other text'
|
||||||
|
|
||||||
|
The type of the variable will be inferred from the expression. In this case
|
||||||
|
it is a string. If you initialize with a number, then the type is number: >
|
||||||
|
let myNumber = 1234
|
||||||
|
...
|
||||||
|
myNumber = 0
|
||||||
|
|
||||||
|
If you try to assign a string to this variable, you will get an error: >
|
||||||
|
let myNumber = 'this fails!'
|
||||||
|
|
||||||
|
In the rare case you want a variable that can take values of any type, you
|
||||||
|
have to specify the type: >
|
||||||
|
let myVar: any = 1234
|
||||||
|
myVar = 'text also works'
|
||||||
|
|
||||||
|
You can also declare a variable without assigning a value. In that case Vim
|
||||||
|
will initialize it to zero or empty: >
|
||||||
|
let word: string
|
||||||
|
if condition
|
||||||
|
word = 'yes'
|
||||||
|
else
|
||||||
|
word = 'no'
|
||||||
|
endif
|
||||||
|
|
||||||
|
Although it's shorter to do: >
|
||||||
|
let word = condition ? 'yes' : 'no'
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
*46.3* Functions and types
|
||||||
|
|
||||||
|
Legacy Vim script does have type checking, but this happens at runtime, when
|
||||||
|
the code is executed. And it's permissive, often a computation gives an
|
||||||
|
unexpected value instead of reporting an error . Thus you can define a
|
||||||
|
function and think it's fine, but see a problem only later when it is called: >
|
||||||
|
let s:collected = ''
|
||||||
|
func ExtendAndReturn(add)
|
||||||
|
let s:collected += a:add
|
||||||
|
return s:collected
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
Can you spot the error? Try this: >
|
||||||
|
echo ExtendAndReturn('text')
|
||||||
|
And you'll see zero. Why? Because in legacy Vim script "+=" will convert the
|
||||||
|
arguments to numbers, and any string without a number results in zero!
|
||||||
|
|
||||||
|
With `:def` the type checking happens when compiling the function. For that
|
||||||
|
you need to specify the argument types and the return type. Also notice that
|
||||||
|
the argument is used without the "a:" prefix: >
|
||||||
|
let s:collected = ''
|
||||||
|
def ExtendAndReturn(add: string): string
|
||||||
|
s:collected += add
|
||||||
|
return s:collected
|
||||||
|
enddef
|
||||||
|
defcompile
|
||||||
|
|
||||||
|
Here we use `:defcompile` to do the compilation right away, without it the
|
||||||
|
compilation would happen when the function is called. Vim will tell you what
|
||||||
|
you did wrong: >
|
||||||
|
E1013: type mismatch, expected number but got string
|
||||||
|
|
||||||
|
Vim9 script is strict, it uses the "+" operator only for numbers and floats.
|
||||||
|
For string concatenation ".." must be used. This avoids mistakes and avoids
|
||||||
|
the automatic conversion that gave a suprising result above. So you change
|
||||||
|
the first line of the function to: >
|
||||||
|
s:collected ..= add
|
||||||
|
And now it works.
|
||||||
|
|
||||||
|
If the function does not return anything, just leave out the return type: >
|
||||||
|
def ReportResult(result: string)
|
||||||
|
echo 'The result is: ' .. result
|
||||||
|
enddef
|
||||||
|
|
||||||
|
This is also checked, if you try to return a value you'll get an error.
|
||||||
|
|
||||||
|
In case you don't care about types or have a function that does work with
|
||||||
|
multiple types, you can use the "any" type: >
|
||||||
|
def Store(key: string, value: any)
|
||||||
|
resultDict[key] = value
|
||||||
|
enddef
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
*46.?* Using a Vim9 script from legacy script *source-vim9-script*
|
||||||
|
|
||||||
|
In some cases you have a legacy Vim script where you want to use items from a
|
||||||
|
Vim9 script. For example in your .vimrc you want to initialize a plugin. The
|
||||||
|
best way to do this is to use `:import`. For example: >
|
||||||
|
|
||||||
|
import Init as NiceInit from 'myNicePlugin.vim'
|
||||||
|
call NiceInit('today')
|
||||||
|
|
||||||
|
This finds the exported function "Init" in the Vim9 script file and makes it
|
||||||
|
available as script-local item "NiceInit". `:import` always uses the script
|
||||||
|
namespace, even when "s:" is not given. If "myNicePlugin.vim" was already
|
||||||
|
sourced it is not sourced again.
|
||||||
|
|
||||||
|
Besides avoiding putting any items in the global namespace (where name clashes
|
||||||
|
can cause unexpected errors), this also means the script is sourced only once,
|
||||||
|
no matter how many times items from it are imported.
|
||||||
|
|
||||||
|
In some cases, e.g. for testing, you may just want to source the Vim9 script.
|
||||||
|
That is OK, but then only global items will be available. The Vim9 script
|
||||||
|
will have to make sure to use a unique name for these global items. Example: >
|
||||||
|
source ~/.vim/extra/myNicePlugin.vim
|
||||||
|
call g:NicePluginTest()
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
|
||||||
|
Next chapter: |usr_90.txt| Installing Vim
|
||||||
|
|
||||||
|
Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:
|
@@ -1,4 +1,4 @@
|
|||||||
*usr_90.txt* For Vim version 8.2. Last change: 2008 Sep 10
|
*usr_90.txt* For Vim version 8.2. Last change: 2020 Jun 11
|
||||||
|
|
||||||
VIM USER MANUAL - by Bram Moolenaar
|
VIM USER MANUAL - by Bram Moolenaar
|
||||||
|
|
||||||
@@ -15,7 +15,7 @@ upgrading to a new version is done.
|
|||||||
|90.4| Common installation issues
|
|90.4| Common installation issues
|
||||||
|90.5| Uninstalling Vim
|
|90.5| Uninstalling Vim
|
||||||
|
|
||||||
Previous chapter: |usr_45.txt| Select your language
|
Previous chapter: |usr_46.txt| Write plugins using Vim9 script
|
||||||
Table of contents: |usr_toc.txt|
|
Table of contents: |usr_toc.txt|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*usr_toc.txt* For Vim version 8.2. Last change: 2019 May 24
|
*usr_toc.txt* For Vim version 8.2. Last change: 2020 Jun 11
|
||||||
|
|
||||||
VIM USER MANUAL - by Bram Moolenaar
|
VIM USER MANUAL - by Bram Moolenaar
|
||||||
|
|
||||||
@@ -42,7 +42,8 @@ Tuning Vim
|
|||||||
|usr_42.txt| Add new menus
|
|usr_42.txt| Add new menus
|
||||||
|usr_43.txt| Using filetypes
|
|usr_43.txt| Using filetypes
|
||||||
|usr_44.txt| Your own syntax highlighted
|
|usr_44.txt| Your own syntax highlighted
|
||||||
|usr_45.txt| Select your language
|
|usr_45.txt| Select your language (locale)
|
||||||
|
|usr_46.txt| Write plugins using Vim9 script
|
||||||
|
|
||||||
Making Vim Run
|
Making Vim Run
|
||||||
|usr_90.txt| Installing Vim
|
|usr_90.txt| Installing Vim
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*version8.txt* For Vim version 8.2. Last change: 2020 Feb 04
|
*version8.txt* For Vim version 8.2. Last change: 2020 Jun 08
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -30777,7 +30777,7 @@ Solution: Use a double quoted string. Add a test.
|
|||||||
Files: src/ex_docmd.c, src/testdir/test_mksession.vim
|
Files: src/ex_docmd.c, src/testdir/test_mksession.vim
|
||||||
|
|
||||||
Patch 8.1.0804
|
Patch 8.1.0804
|
||||||
Problem: Crash when setting v:errmsg to empty list. (Jaon Franklin)
|
Problem: Crash when setting v:errmsg to empty list. (Jason Franklin)
|
||||||
Solution: Separate getting value and assigning result.
|
Solution: Separate getting value and assigning result.
|
||||||
Files: src/eval.c, src/testdir/test_eval_stuff.vim
|
Files: src/eval.c, src/testdir/test_eval_stuff.vim
|
||||||
|
|
||||||
@@ -33684,8 +33684,8 @@ Solution: Also change the textprop implementation.
|
|||||||
Files: src/textprop.c
|
Files: src/textprop.c
|
||||||
|
|
||||||
Patch 8.1.1279
|
Patch 8.1.1279
|
||||||
Problem: Cannot set 'spellang' to "sr@latin". (Bojan Stipic)
|
Problem: Cannot set 'spelllang' to "sr@latin". (Bojan Stipic)
|
||||||
Solution: Allow using '@' in 'spellang'. (closes #4342)
|
Solution: Allow using '@' in 'spelllang'. (closes #4342)
|
||||||
Files: src/option.c, src/testdir/gen_opt_test.vim
|
Files: src/option.c, src/testdir/gen_opt_test.vim
|
||||||
|
|
||||||
Patch 8.1.1280
|
Patch 8.1.1280
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*vim9.txt* For Vim version 8.2. Last change: 2020 May 25
|
*vim9.txt* For Vim version 8.2. Last change: 2020 Jun 14
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -106,7 +106,7 @@ list type, similar to Typescript. For example, a list of numbers: >
|
|||||||
|
|
||||||
|
|
||||||
Functions and variables are script-local by default ~
|
Functions and variables are script-local by default ~
|
||||||
|
*vim9-scopes*
|
||||||
When using `:function` or `:def` to specify a new function at the script level
|
When using `:function` or `:def` to specify a new function at the script level
|
||||||
in a Vim9 script, the function is local to the script, as if "s:" was
|
in a Vim9 script, the function is local to the script, as if "s:" was
|
||||||
prefixed. Using the "s:" prefix is optional.
|
prefixed. Using the "s:" prefix is optional.
|
||||||
@@ -136,7 +136,7 @@ and cannot be deleted or replaced.
|
|||||||
|
|
||||||
|
|
||||||
Variable declarations with :let and :const ~
|
Variable declarations with :let and :const ~
|
||||||
|
*vim9-declaration*
|
||||||
Local variables need to be declared with `:let`. Local constants need to be
|
Local variables need to be declared with `:let`. Local constants need to be
|
||||||
declared with `:const`. We refer to both as "variables".
|
declared with `:const`. We refer to both as "variables".
|
||||||
|
|
||||||
@@ -388,13 +388,17 @@ THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
|||||||
The second and third form are optional arguments.
|
The second and third form are optional arguments.
|
||||||
When the caller omits an argument the {value} is used.
|
When the caller omits an argument the {value} is used.
|
||||||
|
|
||||||
|
The function will be compiled into instructions when
|
||||||
|
called, or when `:defcompile` is used. Syntax and
|
||||||
|
type errors will be produced at that time.
|
||||||
|
|
||||||
NOTE: It is possible to nest `:def` inside another
|
NOTE: It is possible to nest `:def` inside another
|
||||||
`:def`, but it is not possible to nest `:def` inside
|
`:def`, but it is not possible to nest `:def` inside
|
||||||
`:function`, for backwards compatibility.
|
`:function`, for backwards compatibility.
|
||||||
|
|
||||||
[!] is used as with `:function`. Note that in Vim9
|
[!] is used as with `:function`. Note that in Vim9
|
||||||
script script-local functions cannot be deleted or
|
script script-local functions cannot be deleted or
|
||||||
redefined.
|
redefined later in the same script.
|
||||||
|
|
||||||
*:enddef*
|
*:enddef*
|
||||||
:enddef End of a function defined with `:def`.
|
:enddef End of a function defined with `:def`.
|
||||||
@@ -402,8 +406,9 @@ THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
|||||||
|
|
||||||
If the script the function is defined in is Vim9 script, then script-local
|
If the script the function is defined in is Vim9 script, then script-local
|
||||||
variables can be accessed without the "s:" prefix. They must be defined
|
variables can be accessed without the "s:" prefix. They must be defined
|
||||||
before the function. If the script the function is defined in is legacy
|
before the function is compiled. If the script the function is defined in is
|
||||||
script, then script-local variables must be accessed with the "s:" prefix.
|
legacy script, then script-local variables must be accessed with the "s:"
|
||||||
|
prefix.
|
||||||
|
|
||||||
*:defc* *:defcompile*
|
*:defc* *:defcompile*
|
||||||
:defc[ompile] Compile functions defined in the current script that
|
:defc[ompile] Compile functions defined in the current script that
|
||||||
@@ -555,6 +560,9 @@ be exported.
|
|||||||
Alternatively, an export statement can be used to export several already
|
Alternatively, an export statement can be used to export several already
|
||||||
defined (otherwise script-local) items: >
|
defined (otherwise script-local) items: >
|
||||||
export {EXPORTED_CONST, someValue, MyFunc, MyClass}
|
export {EXPORTED_CONST, someValue, MyFunc, MyClass}
|
||||||
|
<
|
||||||
|
*E1042*
|
||||||
|
`:export` can only be used in Vim9 script, at the script level.
|
||||||
|
|
||||||
|
|
||||||
Import ~
|
Import ~
|
||||||
@@ -629,8 +637,8 @@ actually needed. A recommended mechanism:
|
|||||||
|
|
||||||
Import in legacy Vim script ~
|
Import in legacy Vim script ~
|
||||||
|
|
||||||
If an `import` statement is used in legacy Vim script, for identifier the
|
If an `import` statement is used in legacy Vim script, the script-local "s:"
|
||||||
script-local "s:" namespace will be used, even when "s:" is not specified.
|
namespace will be used for the imported item, even when "s:" is not specified.
|
||||||
|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
@@ -673,12 +681,37 @@ widely used. The type names are what was used in Vim before, with some
|
|||||||
additions such as "void" and "bool".
|
additions such as "void" and "bool".
|
||||||
|
|
||||||
|
|
||||||
JavaScript/TypeScript syntax and semantics ~
|
Compiling functions early ~
|
||||||
|
|
||||||
|
Functions are compiled when called or when `:defcompile` is used. Why not
|
||||||
|
compile them early, so that syntax and type errors are reported early?
|
||||||
|
|
||||||
|
The functions can't be compiled right away when encountered, because there may
|
||||||
|
be forward references to functions defined later. Consider defining functions
|
||||||
|
A, B and C, where A calls B, B calls C, and C calls A again. It's impossible
|
||||||
|
to reorder the functions to avoid forward references.
|
||||||
|
|
||||||
|
An alternative would be to first scan through the file to locate items and
|
||||||
|
figure out their type, so that forward refeferences are found, and only then
|
||||||
|
execute the script and compile the functions. This means the script has to be
|
||||||
|
parsed twice, which is slower, and some conditions at the script level, such
|
||||||
|
as checking if a feature is supported, are hard to use. An attempt was made
|
||||||
|
to see if it works, but it turned out to be impossible to make work nicely.
|
||||||
|
|
||||||
|
It would be possible to compile all the functions at the end of the script.
|
||||||
|
The drawback is that if a function never gets called, the overhead of
|
||||||
|
compiling it counts anyway. Since startup speed is very important, in most
|
||||||
|
cases it's better to do it later and accept that syntax and type errors are
|
||||||
|
only reported then. In case these errors should be found early, e.g. when
|
||||||
|
testing, the `:defcompile` command will help out.
|
||||||
|
|
||||||
|
|
||||||
|
TypeScript syntax and semantics ~
|
||||||
|
|
||||||
Script writers have complained that the Vim script syntax is unexpectedly
|
Script writers have complained that the Vim script syntax is unexpectedly
|
||||||
different from what they are used to. To reduce this complaint popular
|
different from what they are used to. To reduce this complaint popular
|
||||||
languages will be used as an example. At the same time, we do not want to
|
languages are used as an example. At the same time, we do not want to abandon
|
||||||
abandon the well-known parts of legacy Vim script.
|
the well-known parts of legacy Vim script.
|
||||||
|
|
||||||
Since Vim already uses `:let` and `:const` and optional type checking is
|
Since Vim already uses `:let` and `:const` and optional type checking is
|
||||||
desirable, the JavaScript/TypeScript syntax fits best for variable
|
desirable, the JavaScript/TypeScript syntax fits best for variable
|
||||||
@@ -695,7 +728,7 @@ are doing. Some details are unexpected and can be fixed. For example how the
|
|||||||
...
|
...
|
||||||
return result || 0 " returns 1
|
return result || 0 " returns 1
|
||||||
|
|
||||||
Vim9 script works like JavaScript, keep the value: >
|
Vim9 script works like JavaScript/Typescript, keep the value: >
|
||||||
let result = 44
|
let result = 44
|
||||||
...
|
...
|
||||||
return result || 0 " returns 44
|
return result || 0 " returns 44
|
||||||
@@ -727,6 +760,16 @@ that works like one would expect:
|
|||||||
avoided.
|
avoided.
|
||||||
- The Vim-specific use of "s:" to make things script-local can be dropped.
|
- The Vim-specific use of "s:" to make things script-local can be dropped.
|
||||||
|
|
||||||
|
When sourcing a Vim9 script from a legacy script, only the items defined
|
||||||
|
globally can be used, not the exported items. Alternatives considered:
|
||||||
|
- All the exported items become available as script-local items. This makes
|
||||||
|
it uncontrollable what items get defined.
|
||||||
|
- Use the exported items and make them global. Disadvantage is that it's then
|
||||||
|
not possible to avoid name clashes in the global namespace.
|
||||||
|
- Completely disallow sourcing a Vim9 script, require using `:import`. That
|
||||||
|
makes it difficult to use scripts for testing, or sourcing them from the
|
||||||
|
command line to try them out.
|
||||||
|
|
||||||
|
|
||||||
Classes ~
|
Classes ~
|
||||||
|
|
||||||
|
@@ -137,6 +137,12 @@ invert the status line. Now it should be "sr", reverse the status line, as
|
|||||||
status line is inverted anyway; you will only see this problem on terminals
|
status line is inverted anyway; you will only see this problem on terminals
|
||||||
that have termcap codes for italics.
|
that have termcap codes for italics.
|
||||||
|
|
||||||
|
*filler-lines*
|
||||||
|
The lines after the last buffer line in a window are called filler lines.
|
||||||
|
These lines start with a tilde (~) character. By default, these are
|
||||||
|
highlighted as NonText (|hl-NonText|). The EndOfBuffer highlight group
|
||||||
|
(|hl-EndOfBuffer|) can be used to change the highlighting of filler lines.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
3. Opening and closing a window *opening-window* *E36*
|
3. Opening and closing a window *opening-window* *E36*
|
||||||
|
|
||||||
|
@@ -453,12 +453,12 @@ if has("spell")
|
|||||||
an 40.335.260 &Tools.&Spelling.Set\ Language\ to\ "en_us" :set spl=en_us spell<CR>
|
an 40.335.260 &Tools.&Spelling.Set\ Language\ to\ "en_us" :set spl=en_us spell<CR>
|
||||||
an <silent> 40.335.270 &Tools.&Spelling.&Find\ More\ Languages :call <SID>SpellLang()<CR>
|
an <silent> 40.335.270 &Tools.&Spelling.&Find\ More\ Languages :call <SID>SpellLang()<CR>
|
||||||
|
|
||||||
let s:undo_spellang = ['aun &Tools.&Spelling.&Find\ More\ Languages']
|
let s:undo_spelllang = ['aun &Tools.&Spelling.&Find\ More\ Languages']
|
||||||
func s:SpellLang()
|
func s:SpellLang()
|
||||||
for cmd in s:undo_spellang
|
for cmd in s:undo_spelllang
|
||||||
exe "silent! " . cmd
|
exe "silent! " . cmd
|
||||||
endfor
|
endfor
|
||||||
let s:undo_spellang = []
|
let s:undo_spelllang = []
|
||||||
|
|
||||||
if &enc == "iso-8859-15"
|
if &enc == "iso-8859-15"
|
||||||
let enc = "latin1"
|
let enc = "latin1"
|
||||||
@@ -481,7 +481,7 @@ if has("spell")
|
|||||||
let found += 1
|
let found += 1
|
||||||
let menuname = '&Tools.&Spelling.' . escape(g:menutrans_set_lang_to, "\\. \t|") . '\ "' . nm . '"'
|
let menuname = '&Tools.&Spelling.' . escape(g:menutrans_set_lang_to, "\\. \t|") . '\ "' . nm . '"'
|
||||||
exe 'an 40.335.' . n . ' ' . menuname . ' :set spl=' . nm . ' spell<CR>'
|
exe 'an 40.335.' . n . ' ' . menuname . ' :set spl=' . nm . ' spell<CR>'
|
||||||
let s:undo_spellang += ['aun ' . menuname]
|
let s:undo_spelllang += ['aun ' . menuname]
|
||||||
endif
|
endif
|
||||||
let n += 10
|
let n += 10
|
||||||
endfor
|
endfor
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
" These commands create the option window.
|
" These commands create the option window.
|
||||||
"
|
"
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last Change: 2020 Jun 02
|
" Last Change: 2020 Jun 10
|
||||||
|
|
||||||
" If there already is an option window, jump to that one.
|
" If there already is an option window, jump to that one.
|
||||||
let buf = bufnr('option-window')
|
let buf = bufnr('option-window')
|
||||||
@@ -447,6 +447,9 @@ if has("syntax")
|
|||||||
call append("$", "spellcapcheck\tpattern to locate the end of a sentence")
|
call append("$", "spellcapcheck\tpattern to locate the end of a sentence")
|
||||||
call append("$", "\t(local to buffer)")
|
call append("$", "\t(local to buffer)")
|
||||||
call <SID>OptionL("spc")
|
call <SID>OptionL("spc")
|
||||||
|
call append("$", "spelloptions\tflags to change how spell checking works")
|
||||||
|
call append("$", "\t(local to buffer)")
|
||||||
|
call <SID>OptionL("spo")
|
||||||
call append("$", "spellsuggest\tmethods used to suggest corrections")
|
call append("$", "spellsuggest\tmethods used to suggest corrections")
|
||||||
call <SID>OptionG("sps", &sps)
|
call <SID>OptionG("sps", &sps)
|
||||||
call append("$", "mkspellmem\tamount of memory used by :mkspell before compressing")
|
call append("$", "mkspellmem\tamount of memory used by :mkspell before compressing")
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
"
|
"
|
||||||
" Author: Bram Moolenaar
|
" Author: Bram Moolenaar
|
||||||
" Copyright: Vim license applies, see ":help license"
|
" Copyright: Vim license applies, see ":help license"
|
||||||
" Last Change: 2020 May 22
|
" Last Change: 2020 Jun 12
|
||||||
"
|
"
|
||||||
" WORK IN PROGRESS - Only the basics work
|
" WORK IN PROGRESS - Only the basics work
|
||||||
" Note: On MS-Windows you need a recent version of gdb. The one included with
|
" Note: On MS-Windows you need a recent version of gdb. The one included with
|
||||||
@@ -710,7 +710,7 @@ func s:DeleteCommands()
|
|||||||
delcommand Source
|
delcommand Source
|
||||||
delcommand Winbar
|
delcommand Winbar
|
||||||
|
|
||||||
if exists('s:k_map_saved')
|
if exists('s:k_map_saved') && !empty(s:k_map_saved)
|
||||||
call mapset('n', 0, s:k_map_saved)
|
call mapset('n', 0, s:k_map_saved)
|
||||||
unlet s:k_map_saved
|
unlet s:k_map_saved
|
||||||
endif
|
endif
|
||||||
|
@@ -1,107 +1,267 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: .desktop, .directory files
|
" Language: XDG desktop entry
|
||||||
" according to freedesktop.org specification 0.9.4
|
" Filenames: *.desktop, *.directory
|
||||||
" http://pdx.freedesktop.org/Standards/desktop-entry-spec/desktop-entry-spec-0.9.4.html
|
" Maintainer: Eisuke Kawashima ( e.kawaschima+vim AT gmail.com )
|
||||||
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
|
" Previous Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
|
||||||
" Last Change: 2016 Apr 02
|
" Last Change: 2020-06-11
|
||||||
" (added "Keywords")
|
" Version Info: desktop.vim 1.5
|
||||||
" Version Info: desktop.vim 0.9.4-1.2
|
" References:
|
||||||
|
" - https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.5.html (2020-04-27)
|
||||||
|
" - https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-0.11.html (2006-02-07)
|
||||||
|
|
||||||
" 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
|
||||||
|
|
||||||
" This syntax file can be used to all *nix configuration files similar to dos
|
let s:cpo_save = &cpo
|
||||||
" ini format (eg. .xawtv, .radio, kde rc files) - this is default mode. But
|
set cpo&vim
|
||||||
" you can also enforce strict following of freedesktop.org standard for
|
|
||||||
" .desktop and .directory files . Set (eg. in vimrc)
|
|
||||||
" let enforce_freedesktop_standard = 1
|
|
||||||
" and nonstandard extensions not following X- notation will not be highlighted.
|
|
||||||
if exists("enforce_freedesktop_standard")
|
|
||||||
let b:enforce_freedesktop_standard = 1
|
|
||||||
else
|
|
||||||
let b:enforce_freedesktop_standard = 0
|
|
||||||
endif
|
|
||||||
|
|
||||||
" case on
|
|
||||||
syn case match
|
syn case match
|
||||||
|
|
||||||
" General
|
" Variable {{{1
|
||||||
if b:enforce_freedesktop_standard == 0
|
" This syntax file can be used to all *nix configuration files similar to dos
|
||||||
syn match dtNotStLabel "^.\{-}=\@=" nextgroup=dtDelim
|
" ini format (eg. .xawtv, .radio, kde rc files) - this is default mode.
|
||||||
|
" By default strict following of freedesktop.org standard is enforced.
|
||||||
|
" To highlight nonstandard extensions that does not begin with X-, set
|
||||||
|
" let g:desktop_enable_nonstd = v:true
|
||||||
|
" Note that this may cause wrong highlight.
|
||||||
|
" To highlight KDE-reserved features, set
|
||||||
|
" let g:desktop_enable_kde = v:true
|
||||||
|
" g:desktop_enable_kde follows g:desktop_enable_nonstd if not supplied
|
||||||
|
|
||||||
|
if exists("g:desktop_enable_nonstd") && g:desktop_enable_nonstd
|
||||||
|
let s:desktop_enable_nonstd = v:true
|
||||||
|
else
|
||||||
|
let s:desktop_enable_nonstd = v:false
|
||||||
endif
|
endif
|
||||||
|
|
||||||
syn match dtGroup /^\s*\[.*\]/
|
if exists("g:desktop_enable_kde") && g:desktop_enable_kde || s:desktop_enable_nonstd
|
||||||
syn match dtComment /^\s*#.*$/
|
let s:desktop_enable_kde = v:true
|
||||||
syn match dtDelim /=/ contained
|
else
|
||||||
|
let s:desktop_enable_kde = v:false
|
||||||
|
endif
|
||||||
|
|
||||||
" Locale
|
" Comment {{{1
|
||||||
syn match dtLocale /^\s*\<\(Name\|GenericName\|Comment\|SwallowTitle\|Icon\|UnmountIcon\)\>.*/ contains=dtLocaleKey,dtLocaleName,dtDelim transparent
|
syn match dtComment /^#.*$/
|
||||||
syn keyword dtLocaleKey Name GenericName Comment SwallowTitle Icon UnmountIcon nextgroup=dtLocaleName containedin=dtLocale
|
|
||||||
syn match dtLocaleName /\(\[.\{-}\]\s*=\@=\|\)/ nextgroup=dtDelim containedin=dtLocale contained
|
|
||||||
|
|
||||||
" Numeric
|
" Error {{{1
|
||||||
syn match dtNumeric /^\s*\<Version\>/ contains=dtNumericKey,dtDelim
|
syn match dtError /\%(^\s.*\|\s\+$\)/
|
||||||
syn keyword dtNumericKey Version nextgroup=dtDelim containedin=dtNumeric contained
|
|
||||||
|
|
||||||
" Boolean
|
" Group Header {{{1
|
||||||
syn match dtBoolean /^\s*\<\(StartupNotify\|ReadOnly\|Terminal\|Hidden\|NoDisplay\)\>.*/ contains=dtBooleanKey,dtDelim,dtBooleanValue transparent
|
" ASCII printable characters except for brackets [ (0x5B) and ] (0x5D)
|
||||||
syn keyword dtBooleanKey StartupNotify ReadOnly Terminal Hidden NoDisplay nextgroup=dtDelim containedin=dtBoolean contained
|
syn match dtGroup /^\[[\x20-\x5A\x5C\x5E-\x7E]\+\]$/
|
||||||
syn keyword dtBooleanValue true false containedin=dtBoolean contained
|
|
||||||
|
|
||||||
" String
|
" Entries {{{1
|
||||||
syn match dtString /^\s*\<\(Encoding\|Icon\|Path\|Actions\|FSType\|MountPoint\|UnmountIcon\|URL\|Keywords\|Categories\|OnlyShowIn\|NotShowIn\|StartupWMClass\|FilePattern\|MimeType\)\>.*/ contains=dtStringKey,dtDelim transparent
|
syn match dtDelim /=/ contained
|
||||||
syn keyword dtStringKey Type Encoding TryExec Exec Path Actions FSType MountPoint URL Keywords Categories OnlyShowIn NotShowIn StartupWMClass FilePattern MimeType nextgroup=dtDelim containedin=dtString contained
|
" lang_territory.codeset@modifier
|
||||||
|
syn match dtLocaleSuffix
|
||||||
|
\ /\[\%(C\|POSIX\|[a-z]\{2,4}\%(_[A-Z0-9]\{2,3}\)\?\)\%(\.[A-Za-z0-9_-]\+\)\?\%(@[A-Za-z]\+\)\?\]\ze\s*=/
|
||||||
|
\ contained
|
||||||
|
|
||||||
" Exec
|
" Boolean Value {{{2
|
||||||
syn match dtExec /^\s*\<\(Exec\|TryExec\|SwallowExec\)\>.*/ contains=dtExecKey,dtDelim,dtExecParam transparent
|
syn match dtBoolean
|
||||||
syn keyword dtExecKey Exec TryExec SwallowExec nextgroup=dtDelim containedin=dtExec contained
|
\ /^\%(DBusActivatable\|Hidden\|NoDisplay\|PrefersNonDefaultGPU\|StartupNotify\|Terminal\)\s*=\s*\%(true\|false\)/
|
||||||
syn match dtExecParam /%[fFuUnNdDickv]/ containedin=dtExec contained
|
\ contains=dtBooleanKey,dtDelim,dtBooleanValue transparent
|
||||||
|
syn keyword dtBooleanKey
|
||||||
|
\ DBusActivatable Hidden NoDisplay PrefersNonDefaultGPU StartupNotify Terminal
|
||||||
|
\ contained nextgroup=dtDelim
|
||||||
|
|
||||||
" Type
|
if s:desktop_enable_kde
|
||||||
syn match dtType /^\s*\<Type\>.*/ contains=dtTypeKey,dtDelim,dtTypeValue transparent
|
syn match dtBoolean
|
||||||
syn keyword dtTypeKey Type nextgroup=dtDelim containedin=dtType contained
|
\ /^ReadOnly\s*=\s*\%(true\|false\)/
|
||||||
syn keyword dtTypeValue Application Link FSDevice Directory containedin=dtType contained
|
\ contains=dtBooleanKey,dtDelim,dtBooleanValue transparent
|
||||||
|
syn keyword dtBooleanKey
|
||||||
|
\ ReadOnly
|
||||||
|
\ contained nextgroup=dtDelim
|
||||||
|
endif
|
||||||
|
syn keyword dtBooleanValue true false contained
|
||||||
|
|
||||||
" X-Addition
|
" Numeric Value {{{2
|
||||||
syn match dtXAdd /^\s*X-.*/ contains=dtXAddKey,dtDelim transparent
|
" icon theme
|
||||||
syn match dtXAddKey /^\s*X-.\{-}\s*=\@=/ nextgroup=dtDelim containedin=dtXAdd contains=dtXLocale contained
|
syn match dtNumeric /^\%(MaxSize\|MinSize\|Size\|Threshold\)\s*=\s*\d\+/ contains=dtNumericKey,dtDelim,dtNumericDecimal
|
||||||
|
syn keyword dtNumericKey
|
||||||
|
\ MaxSize MinSize Size Threshold
|
||||||
|
\ contained nextgroup=dtDelim
|
||||||
|
|
||||||
" Locale for X-Addition
|
if s:desktop_enable_kde
|
||||||
syn match dtXLocale /\[.\{-}\]\s*=\@=/ containedin=dtXAddKey contained
|
syn match dtNumeric /^InitialPreference\s*=\s*\d\+/ contains=dtNumericKey,dtDelim,dtNumericDecimal
|
||||||
|
syn keyword dtNumericKey
|
||||||
|
\ InitialPreference
|
||||||
|
\ contained nextgroup=dtDelim
|
||||||
|
endif
|
||||||
|
|
||||||
" Locale for all
|
syn match dtNumericDecimal /\<\d\+$/ contained
|
||||||
syn match dtALocale /\[.\{-}\]\s*=\@=/ containedin=ALL
|
|
||||||
|
" String Value {{{2
|
||||||
|
syn match dtString
|
||||||
|
\ /^\%(Actions\|Implements\|MimeType\|NotShowIn\|OnlyShowIn\|Path\|StartupWMClass\|URL\)\s*=.*\S/
|
||||||
|
\ contains=dtStringKey,dtDelim transparent
|
||||||
|
syn keyword dtStringKey
|
||||||
|
\ Actions Implements MimeType NotShowIn OnlyShowIn Path StartupWMClass URL Version
|
||||||
|
\ contained nextgroup=dtDelim
|
||||||
|
|
||||||
|
" icon theme
|
||||||
|
syn match dtString
|
||||||
|
\ /^\%(Context\|Directories\|Example\|Inherits\)\s*=.*\S/
|
||||||
|
\ contains=dtStringKey,dtDelim transparent
|
||||||
|
syn keyword dtStringKey
|
||||||
|
\ Context Directories Example Inherits
|
||||||
|
\ contained nextgroup=dtDelim
|
||||||
|
|
||||||
|
if s:desktop_enable_kde
|
||||||
|
syn match dtString
|
||||||
|
\ /^\%(Dev\|DocPath\|FSType\|MountPoint\|ServiceTypes\)\s*=.*\S/
|
||||||
|
\ contains=dtStringKey,dtDelim transparent
|
||||||
|
syn keyword dtStringKey
|
||||||
|
\ Dev DocPath FSType MountPoint ServiceTypes
|
||||||
|
\ contained nextgroup=dtDelim
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Categories {{{3
|
||||||
|
" https://specifications.freedesktop.org/menu-spec/menu-spec-1.0.html#category-registry
|
||||||
|
syn match dtCategories /^Categories\s*=.\+\S/ contains=dtCategoriesKey,dtDelim,dtCategoriesValue transparent
|
||||||
|
syn keyword dtCategoriesKey
|
||||||
|
\ Categories
|
||||||
|
\ contained nextgroup=dtDelim
|
||||||
|
|
||||||
|
" Main Categories
|
||||||
|
syn keyword dtCategoriesValue
|
||||||
|
\ Audio AudioVideo Development Education Game Graphics Network Office
|
||||||
|
\ Settings System Utility Video
|
||||||
|
\ contained
|
||||||
|
|
||||||
|
" Additional Categories
|
||||||
|
syn keyword dtCategoriesValue
|
||||||
|
\ BoardGame Chat Clock Geoscience Presentation 2DGraphics 3DGraphics
|
||||||
|
\ Accessibility ActionGame AdventureGame Amusement ArcadeGame Archiving
|
||||||
|
\ Art ArtificialIntelligence Astronomy AudioVideoEditing Biology
|
||||||
|
\ BlocksGame BoardGame Building Calculator Calendar CardGame Chart Chat
|
||||||
|
\ Chemistry Clock Compression ComputerScience ConsoleOnly Construction
|
||||||
|
\ ContactManagement Core DataVisualization Database Debugger
|
||||||
|
\ DesktopSettings Dialup Dictionary DiscBurning Documentation Economy
|
||||||
|
\ Electricity Electronics Email Emulator Engineering FileManager
|
||||||
|
\ FileTools FileTransfer Filesystem Finance FlowChart GNOME GTK
|
||||||
|
\ GUIDesigner Geography Geology Geoscience HamRadio HardwareSettings
|
||||||
|
\ History IDE IRCClient ImageProcessing InstantMessaging Java KDE
|
||||||
|
\ KidsGame Languages Literature LogicGame Math MedicalSoftware Midi
|
||||||
|
\ Mixer Monitor Motif Music News NumericalAnalysis OCR P2P PDA
|
||||||
|
\ PackageManager ParallelComputing Photography Physics Player
|
||||||
|
\ Presentation Printing Profiling ProjectManagement Publishing Qt
|
||||||
|
\ RasterGraphics Recorder RemoteAccess RevisionControl Robotics
|
||||||
|
\ RolePlaying Scanning Science Security Sequencer Simulation Sports
|
||||||
|
\ SportsGame Spreadsheet StrategyGame TV Telephony TelephonyTools
|
||||||
|
\ TerminalEmulator TextEditor TextTools Translation Tuner VectorGraphics
|
||||||
|
\ VideoConference Viewer WebBrowser WebDevelopment WordProcessor
|
||||||
|
\ contained
|
||||||
|
|
||||||
|
" Reserved Category
|
||||||
|
syn keyword dtCategoriesValue
|
||||||
|
\ Applet Screensaver Shell TrayIcon
|
||||||
|
\ contained
|
||||||
|
|
||||||
|
" Exec/TryExec {{{3
|
||||||
|
syn match dtExec /^\%(Exec\|TryExec\)\s*=.\+\S/ contains=dtExecKey,dtDelim,dtExecParam transparent
|
||||||
|
syn keyword dtExecKey
|
||||||
|
\ Exec TryExec
|
||||||
|
\ contained nextgroup=dtDelim
|
||||||
|
" code for file(s), URL(s), etc
|
||||||
|
syn match dtExecParam /\s\zs%[fFuUick]\ze\%(\W\|$\)/ contained
|
||||||
|
|
||||||
|
" Type {{{3
|
||||||
|
syn match dtType /^Type\s*=\s*\S\+/ contains=dtTypeKey,dtDelim,dtTypeValue transparent
|
||||||
|
syn keyword dtTypeKey
|
||||||
|
\ Type
|
||||||
|
\ contained nextgroup=dtDelim
|
||||||
|
syn keyword dtTypeValue
|
||||||
|
\ Application Directory Link
|
||||||
|
\ contained
|
||||||
|
|
||||||
|
if s:desktop_enable_kde
|
||||||
|
syn keyword dtTypeValue
|
||||||
|
\ FSDevice Service ServiceType
|
||||||
|
\ contained
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
" Define the default highlighting.
|
" Version {{{3
|
||||||
" Only when an item doesn't have highlighting yet
|
syn match dtVersion /^Version\s*=\s*\S\+/ contains=dtVersionKey,dtDelim,dtVersionValue transparent
|
||||||
|
syn keyword dtVersionKey
|
||||||
|
\ Version
|
||||||
|
\ contained nextgroup=dtDelim
|
||||||
|
syn match dtVersionValue /[0-9]\+\%(\.[0-9]\+\)\{1,2}$/ contained
|
||||||
|
|
||||||
hi def link dtGroup Special
|
" Localestring Value {{{2
|
||||||
hi def link dtComment Comment
|
syn match dtLocalestring
|
||||||
hi def link dtDelim String
|
\ /^\%(Comment\|GenericName\|Keywords\|Name\)\%(\[.\{-}\]\)\?\s*=.*\S/
|
||||||
|
\ contains=dtLocalestringKey,dtLocaleSuffix,dtDelim transparent
|
||||||
|
syn keyword dtLocalestringKey
|
||||||
|
\ Comment GenericName Keywords Name
|
||||||
|
\ contained nextgroup=dtLocaleSuffix,dtDelim skipwhite
|
||||||
|
|
||||||
hi def link dtLocaleKey Type
|
" Iconstring Value {{{2
|
||||||
hi def link dtLocaleName Identifier
|
syn match dtIconstring
|
||||||
hi def link dtXLocale Identifier
|
\ /^Icon\s*=.*\S/
|
||||||
hi def link dtALocale Identifier
|
\ contains=dtIconstringKey,dtDelim transparent
|
||||||
|
syn keyword dtIconstringKey
|
||||||
|
\ Icon
|
||||||
|
\ contained nextgroup=dtDelim skipwhite
|
||||||
|
|
||||||
hi def link dtNumericKey Type
|
if s:desktop_enable_kde
|
||||||
|
syn match dtIconstring
|
||||||
|
\ /^UnmountIcon\>\%(\[.\{-}\]\)\?\s*=.*\S/
|
||||||
|
\ contains=dtIconstringKey,dtLocaleSuffix,dtDelim transparent
|
||||||
|
syn keyword dtIconstringKey
|
||||||
|
\ UnmountIcon
|
||||||
|
\ contained nextgroup=dtLocaleSuffix,dtDelim skipwhite
|
||||||
|
endif
|
||||||
|
|
||||||
hi def link dtBooleanKey Type
|
" X-Extension {{{2
|
||||||
hi def link dtBooleanValue Constant
|
syn match dtXExtension /^X-[0-9A-Za-z-]*\%(\[.\{-}\]\)\?\s*=.*\S/
|
||||||
|
\ contains=dtXExtensionKey,dtLocaleSuffix,dtDelim transparent
|
||||||
|
syn match dtXExtensionKey /^X-[0-9A-Za-z-]*/ contained nextgroup=dtLocaleSuffix,dtDelim
|
||||||
|
|
||||||
hi def link dtStringKey Type
|
" non standard {{{2
|
||||||
|
if s:desktop_enable_nonstd
|
||||||
|
syn match dtNonStdLabel /^[0-9A-Za-z-]\+\%(\[.\{-}\]\)\?\s*=.*\S/
|
||||||
|
\ contains=dtNonStdLabelKey,dtLocaleSuffix,dtDelim transparent
|
||||||
|
syn match dtNonStdLabelKey /^[0-9A-Za-z-]\+/ contained nextgroup=dtLocaleSuffix,dtDelim
|
||||||
|
endif
|
||||||
|
|
||||||
hi def link dtExecKey Type
|
" Highlight {{{1
|
||||||
hi def link dtExecParam Special
|
hi def link dtComment Comment
|
||||||
hi def link dtTypeKey Type
|
hi def link dtError Error
|
||||||
hi def link dtTypeValue Constant
|
|
||||||
hi def link dtNotStLabel Type
|
|
||||||
hi def link dtXAddKey Type
|
|
||||||
|
|
||||||
|
hi def link dtGroup Special
|
||||||
|
|
||||||
|
hi def link dtDelim Delimiter
|
||||||
|
hi def link dtLocaleSuffix Identifier
|
||||||
|
|
||||||
|
hi def link dtBooleanKey Type
|
||||||
|
hi def link dtBooleanValue Boolean
|
||||||
|
|
||||||
|
hi def link dtNumericKey Type
|
||||||
|
hi def link dtNumericDecimal Number
|
||||||
|
|
||||||
|
hi def link dtStringKey Type
|
||||||
|
hi def link dtCategoriesKey Type
|
||||||
|
hi def link dtCategoriesValue Constant
|
||||||
|
hi def link dtExecKey Type
|
||||||
|
hi def link dtExecParam Special
|
||||||
|
hi def link dtTypeKey Type
|
||||||
|
hi def link dtTypeValue Constant
|
||||||
|
hi def link dtVersionKey Type
|
||||||
|
hi def link dtVersionValue Constant
|
||||||
|
|
||||||
|
hi def link dtLocalestringKey Type
|
||||||
|
|
||||||
|
hi def link dtIconStringKey Type
|
||||||
|
|
||||||
|
hi def link dtXExtensionKey Type
|
||||||
|
|
||||||
|
hi def link dtNonStdLabelKey Type
|
||||||
|
|
||||||
|
" Clean Up {{{1
|
||||||
let b:current_syntax = "desktop"
|
let b:current_syntax = "desktop"
|
||||||
|
let &cpo = s:cpo_save
|
||||||
|
|
||||||
" vim:ts=8
|
" vim:ts=8:sw=2:fdm=marker
|
||||||
|
@@ -1,7 +1,8 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: Objective-C
|
" Language: Objective-C
|
||||||
" Maintainer: Kazunobu Kuriyama <kazunobu.kuriyama@gmail.com>
|
" Maintainer: Kazunobu Kuriyama <kazunobu.kuriyama@gmail.com>
|
||||||
" Last Change: 2015 Dec 14
|
" Last Change: 2020 Jun 07
|
||||||
|
" Last Change By Maintainer: 2015 Dec 14
|
||||||
|
|
||||||
""" Preparation for loading ObjC stuff
|
""" Preparation for loading ObjC stuff
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
@@ -24,7 +25,7 @@ syn keyword objcUsefulTerm nil Nil NO YES
|
|||||||
|
|
||||||
" Preprocessor Directives
|
" Preprocessor Directives
|
||||||
syn region objcImported display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
|
syn region objcImported display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||||
syn match objcImported display contained "\(<\h[-a-zA-Z0-9_/]*\.h>\|<[a-z0-9]\+>\)"
|
syn match objcImported display contained "\(<\h[-+a-zA-Z0-9_/]*\.h>\|<[a-z0-9]\+>\)"
|
||||||
syn match objcImport display "^\s*\(%:\|#\)\s*import\>\s*["<]" contains=objcImported
|
syn match objcImport display "^\s*\(%:\|#\)\s*import\>\s*["<]" contains=objcImported
|
||||||
|
|
||||||
" ObjC Compiler Directives
|
" ObjC Compiler Directives
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: TeX
|
" Language: TeX
|
||||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||||
" Last Change: May 19, 2020
|
" Last Change: Jun 07, 2020
|
||||||
" Version: 117
|
" Version: 118
|
||||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
|
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
|
||||||
"
|
"
|
||||||
" Notes: {{{1
|
" Notes: {{{1
|
||||||
@@ -755,6 +755,8 @@ if has("conceal") && &enc == 'utf-8'
|
|||||||
\ ['lceil' , '⌈'],
|
\ ['lceil' , '⌈'],
|
||||||
\ ['ldots' , '…'],
|
\ ['ldots' , '…'],
|
||||||
\ ['le' , '≤'],
|
\ ['le' , '≤'],
|
||||||
|
\ ['left|' , '|'],
|
||||||
|
\ ['left\|' , '‖'],
|
||||||
\ ['left(' , '('],
|
\ ['left(' , '('],
|
||||||
\ ['left\[' , '['],
|
\ ['left\[' , '['],
|
||||||
\ ['left\\{' , '{'],
|
\ ['left\\{' , '{'],
|
||||||
@@ -805,6 +807,8 @@ if has("conceal") && &enc == 'utf-8'
|
|||||||
\ ['quad' , ' '],
|
\ ['quad' , ' '],
|
||||||
\ ['qquad' , ' '],
|
\ ['qquad' , ' '],
|
||||||
\ ['rfloor' , '⌋'],
|
\ ['rfloor' , '⌋'],
|
||||||
|
\ ['right|' , '|'],
|
||||||
|
\ ['right\\|' , '‖'],
|
||||||
\ ['right)' , ')'],
|
\ ['right)' , ')'],
|
||||||
\ ['right]' , ']'],
|
\ ['right]' , ']'],
|
||||||
\ ['right\\}' , '}'],
|
\ ['right\\}' , '}'],
|
||||||
|
Reference in New Issue
Block a user