Update runtime files.
This commit is contained in:
25
runtime/compiler/shellcheck.vim
Normal file
25
runtime/compiler/shellcheck.vim
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
" Vim compiler file
|
||||||
|
" Compiler: ShellCheck
|
||||||
|
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||||
|
" Last Change: 2020 Sep 4
|
||||||
|
|
||||||
|
if exists("current_compiler")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let current_compiler = "shellcheck"
|
||||||
|
|
||||||
|
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||||
|
command -nargs=* CompilerSet setlocal <args>
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:cpo_save = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
CompilerSet makeprg=shellcheck\ -f\ gcc
|
||||||
|
CompilerSet errorformat=%f:%l:%c:\ %trror:\ %m\ [SC%n],
|
||||||
|
\%f:%l:%c:\ %tarning:\ %m\ [SC%n],
|
||||||
|
\%f:%l:%c:\ %tote:\ %m\ [SC%n],
|
||||||
|
\%-G%.%#
|
||||||
|
|
||||||
|
let &cpo = s:cpo_save
|
||||||
|
unlet s:cpo_save
|
||||||
@ -1,4 +1,4 @@
|
|||||||
*autocmd.txt* For Vim version 8.2. Last change: 2020 Aug 02
|
*autocmd.txt* For Vim version 8.2. Last change: 2020 Sep 25
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@ -631,7 +631,7 @@ CompleteDone After Insert mode completion is done. Either
|
|||||||
|
|
||||||
*CursorHold*
|
*CursorHold*
|
||||||
CursorHold When the user doesn't press a key for the time
|
CursorHold When the user doesn't press a key for the time
|
||||||
specified with 'updatetime'. Not re-triggered
|
specified with 'updatetime'. Not triggered
|
||||||
until the user has pressed a key (i.e. doesn't
|
until the user has pressed a key (i.e. doesn't
|
||||||
fire every 'updatetime' ms if you leave Vim to
|
fire every 'updatetime' ms if you leave Vim to
|
||||||
make some coffee. :) See |CursorHold-example|
|
make some coffee. :) See |CursorHold-example|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
*eval.txt* For Vim version 8.2. Last change: 2020 Sep 22
|
*eval.txt* For Vim version 8.2. Last change: 2020 Sep 25
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@ -877,7 +877,7 @@ Example: >
|
|||||||
All expressions within one level are parsed from left to right.
|
All expressions within one level are parsed from left to right.
|
||||||
|
|
||||||
|
|
||||||
expr1 *expr1* *E109*
|
expr1 *expr1* *trinary* *E109*
|
||||||
-----
|
-----
|
||||||
|
|
||||||
expr2 ? expr1 : expr1
|
expr2 ? expr1 : expr1
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
*filetype.txt* For Vim version 8.2. Last change: 2019 Jul 16
|
*filetype.txt* For Vim version 8.2. Last change: 2020 Sep 28
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@ -397,6 +397,13 @@ ways to change this:
|
|||||||
3. Docs for the default filetype plugins. *ftplugin-docs*
|
3. Docs for the default filetype plugins. *ftplugin-docs*
|
||||||
|
|
||||||
|
|
||||||
|
AWK *ft-awk-plugin*
|
||||||
|
|
||||||
|
Support for features specific to GNU Awk, like @include, can be enabled by
|
||||||
|
setting: >
|
||||||
|
let g:awk_is_gawk = 1
|
||||||
|
|
||||||
|
|
||||||
CHANGELOG *ft-changelog-plugin*
|
CHANGELOG *ft-changelog-plugin*
|
||||||
|
|
||||||
Allows for easy entrance of Changelog entries in Changelog files. There are
|
Allows for easy entrance of Changelog entries in Changelog files. There are
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
*gui.txt* For Vim version 8.2. Last change: 2020 Mar 16
|
*gui.txt* For Vim version 8.2. Last change: 2020 Sep 28
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@ -547,15 +547,6 @@ floating menus that do not appear on the main menu bar.
|
|||||||
5.2 Creating New Menus *creating-menus*
|
5.2 Creating New Menus *creating-menus*
|
||||||
|
|
||||||
*:me* *:menu* *:noreme* *:noremenu*
|
*:me* *:menu* *:noreme* *:noremenu*
|
||||||
*:am* *:amenu* *:an* *:anoremenu*
|
|
||||||
*:nme* *:nmenu* *:nnoreme* *:nnoremenu*
|
|
||||||
*:ome* *:omenu* *:onoreme* *:onoremenu*
|
|
||||||
*:vme* *:vmenu* *:vnoreme* *:vnoremenu*
|
|
||||||
*:xme* *:xmenu* *:xnoreme* *:xnoremenu*
|
|
||||||
*:sme* *:smenu* *:snoreme* *:snoremenu*
|
|
||||||
*:ime* *:imenu* *:inoreme* *:inoremenu*
|
|
||||||
*:cme* *:cmenu* *:cnoreme* *:cnoremenu*
|
|
||||||
*:tlm* *:tlmenu* *:tln* *:tlnoremenu*
|
|
||||||
*E330* *E327* *E331* *E336* *E333*
|
*E330* *E327* *E331* *E336* *E333*
|
||||||
*E328* *E329* *E337* *E792*
|
*E328* *E329* *E337* *E792*
|
||||||
To create a new menu item, use the ":menu" commands. They are mostly like
|
To create a new menu item, use the ":menu" commands. They are mostly like
|
||||||
@ -596,6 +587,7 @@ With the shortcut "F" (while keeping the <Alt> key pressed), and then "O",
|
|||||||
this menu can be used. The second part is shown as "Open :e". The ":e"
|
this menu can be used. The second part is shown as "Open :e". The ":e"
|
||||||
is right aligned, and the "O" is underlined, to indicate it is the shortcut.
|
is right aligned, and the "O" is underlined, to indicate it is the shortcut.
|
||||||
|
|
||||||
|
*:am* *:amenu* *:an* *:anoremenu*
|
||||||
The ":amenu" command can be used to define menu entries for all modes at once,
|
The ":amenu" command can be used to define menu entries for all modes at once,
|
||||||
except for Terminal mode. To make the command work correctly, a character is
|
except for Terminal mode. To make the command work correctly, a character is
|
||||||
automatically inserted for some modes:
|
automatically inserted for some modes:
|
||||||
@ -634,6 +626,30 @@ included they make the <> form and raw key codes not being recognized).
|
|||||||
Note that <Esc> in Cmdline mode executes the command, like in a mapping. This
|
Note that <Esc> in Cmdline mode executes the command, like in a mapping. This
|
||||||
is Vi compatible. Use CTRL-C to quit Cmdline mode.
|
is Vi compatible. Use CTRL-C to quit Cmdline mode.
|
||||||
|
|
||||||
|
*:nme* *:nmenu* *:nnoreme* *:nnoremenu* *:nunme* *:nunmenu*
|
||||||
|
Menu commands starting with "n" work in Normal mode. |mapmode-n|
|
||||||
|
|
||||||
|
*:ome* *:omenu* *:onoreme* *:onoremenu* *:ounme* *:ounmenu*
|
||||||
|
Menu commands starting with "o" work in Operator-pending mode. |mapmode-o|
|
||||||
|
|
||||||
|
*:vme* *:vmenu* *:vnoreme* *:vnoremenu* *:vunme* *:vunmenu*
|
||||||
|
Menu commands starting with "v" work in Visual mode. |mapmode-v|
|
||||||
|
|
||||||
|
*:xme* *:xmenu* *:xnoreme* *:xnoremenu* *:xunme* *:xunmenu*
|
||||||
|
Menu commands starting with "x" work in Visual and Select mode. |mapmode-x|
|
||||||
|
|
||||||
|
*:sme* *:smenu* *:snoreme* *:snoremenu* *:sunme* *:sunmenu*
|
||||||
|
Menu commands starting with "s" work in Select mode. |mapmode-s|
|
||||||
|
|
||||||
|
*:ime* *:imenu* *:inoreme* *:inoremenu* *:iunme* *:iunmenu*
|
||||||
|
Menu commands starting with "i" work in Insert mode. |mapmode-i|
|
||||||
|
|
||||||
|
*:cme* *:cmenu* *:cnoreme* *:cnoremenu* *:cunme* *:cunmenu*
|
||||||
|
Menu commands starting with "c" work in Cmdline mode. |mapmode-c|
|
||||||
|
|
||||||
|
*:tlm* *:tlmenu* *:tln* *:tlnoremenu* *:tlu* *:tlunmenu*
|
||||||
|
Menu commands starting with "tl" work in Terminal mode. |mapmode-t|
|
||||||
|
|
||||||
*:menu-<silent>* *:menu-silent*
|
*:menu-<silent>* *:menu-silent*
|
||||||
To define a menu which will not be echoed on the command line, add
|
To define a menu which will not be echoed on the command line, add
|
||||||
"<silent>" as the first argument. Example: >
|
"<silent>" as the first argument. Example: >
|
||||||
@ -897,14 +913,6 @@ using the last visual selection.
|
|||||||
|
|
||||||
*:unme* *:unmenu*
|
*:unme* *:unmenu*
|
||||||
*:aun* *:aunmenu*
|
*:aun* *:aunmenu*
|
||||||
*:nunme* *:nunmenu*
|
|
||||||
*:ounme* *:ounmenu*
|
|
||||||
*:vunme* *:vunmenu*
|
|
||||||
*:xunme* *:xunmenu*
|
|
||||||
*:sunme* *:sunmenu*
|
|
||||||
*:iunme* *:iunmenu*
|
|
||||||
*:cunme* *:cunmenu*
|
|
||||||
*:tlu* *:tlunmenu*
|
|
||||||
To delete a menu item or a whole submenu, use the unmenu commands, which are
|
To delete a menu item or a whole submenu, use the unmenu commands, which are
|
||||||
analogous to the unmap commands. Eg: >
|
analogous to the unmap commands. Eg: >
|
||||||
:unmenu! Edit.Paste
|
:unmenu! Edit.Paste
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
*popup.txt* For Vim version 8.2. Last change: 2020 Sep 08
|
*popup.txt* For Vim version 8.2. Last change: 2020 Sep 27
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@ -711,7 +711,7 @@ The second argument of |popup_create()| is a dictionary with options:
|
|||||||
By default a double line is used all around when
|
By default a double line is used all around when
|
||||||
'encoding' is "utf-8" and 'ambiwidth' is "single",
|
'encoding' is "utf-8" and 'ambiwidth' is "single",
|
||||||
otherwise ASCII characters are used.
|
otherwise ASCII characters are used.
|
||||||
scrollbar non-zero: show a scrollbar when the text doesn't fit.
|
scrollbar 1 or true: show a scrollbar when the text doesn't fit.
|
||||||
zero: do not show a scrollbar. Default is non-zero.
|
zero: do not show a scrollbar. Default is non-zero.
|
||||||
Also see |popup-scrollbar|.
|
Also see |popup-scrollbar|.
|
||||||
scrollbarhighlight Highlight group name for the scrollbar. The
|
scrollbarhighlight Highlight group name for the scrollbar. The
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
*starting.txt* For Vim version 8.2. Last change: 2020 Feb 04
|
*starting.txt* For Vim version 8.2. Last change: 2020 Sep 23
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@ -513,6 +513,8 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
|||||||
'nocompatible': use Vim defaults
|
'nocompatible': use Vim defaults
|
||||||
- no |gvimrc| script is loaded
|
- no |gvimrc| script is loaded
|
||||||
- no viminfo file is read or written
|
- no viminfo file is read or written
|
||||||
|
Note that a following "-u" argument overrules the effect of
|
||||||
|
"-u DEFAULTS".
|
||||||
|
|
||||||
*-x*
|
*-x*
|
||||||
-x Use encryption to read/write files. Will prompt for a key,
|
-x Use encryption to read/write files. Will prompt for a key,
|
||||||
|
|||||||
@ -6461,6 +6461,7 @@ ft-asm68k-syntax syntax.txt /*ft-asm68k-syntax*
|
|||||||
ft-asmh8300-syntax syntax.txt /*ft-asmh8300-syntax*
|
ft-asmh8300-syntax syntax.txt /*ft-asmh8300-syntax*
|
||||||
ft-aspperl-syntax syntax.txt /*ft-aspperl-syntax*
|
ft-aspperl-syntax syntax.txt /*ft-aspperl-syntax*
|
||||||
ft-aspvbs-syntax syntax.txt /*ft-aspvbs-syntax*
|
ft-aspvbs-syntax syntax.txt /*ft-aspvbs-syntax*
|
||||||
|
ft-awk-plugin filetype.txt /*ft-awk-plugin*
|
||||||
ft-bash-syntax syntax.txt /*ft-bash-syntax*
|
ft-bash-syntax syntax.txt /*ft-bash-syntax*
|
||||||
ft-basic-syntax syntax.txt /*ft-basic-syntax*
|
ft-basic-syntax syntax.txt /*ft-basic-syntax*
|
||||||
ft-c-omni insert.txt /*ft-c-omni*
|
ft-c-omni insert.txt /*ft-c-omni*
|
||||||
@ -7756,6 +7757,7 @@ matcharg() eval.txt /*matcharg()*
|
|||||||
matchdelete() eval.txt /*matchdelete()*
|
matchdelete() eval.txt /*matchdelete()*
|
||||||
matchend() eval.txt /*matchend()*
|
matchend() eval.txt /*matchend()*
|
||||||
matchfuzzy() eval.txt /*matchfuzzy()*
|
matchfuzzy() eval.txt /*matchfuzzy()*
|
||||||
|
matchfuzzypos() eval.txt /*matchfuzzypos()*
|
||||||
matchit-install usr_05.txt /*matchit-install*
|
matchit-install usr_05.txt /*matchit-install*
|
||||||
matchlist() eval.txt /*matchlist()*
|
matchlist() eval.txt /*matchlist()*
|
||||||
matchparen pi_paren.txt /*matchparen*
|
matchparen pi_paren.txt /*matchparen*
|
||||||
@ -9649,6 +9651,7 @@ tooltips gui.txt /*tooltips*
|
|||||||
toupper() eval.txt /*toupper()*
|
toupper() eval.txt /*toupper()*
|
||||||
tr() eval.txt /*tr()*
|
tr() eval.txt /*tr()*
|
||||||
trim() eval.txt /*trim()*
|
trim() eval.txt /*trim()*
|
||||||
|
trinary eval.txt /*trinary*
|
||||||
trojan-horse starting.txt /*trojan-horse*
|
trojan-horse starting.txt /*trojan-horse*
|
||||||
true vim9.txt /*true*
|
true vim9.txt /*true*
|
||||||
true-variable eval.txt /*true-variable*
|
true-variable eval.txt /*true-variable*
|
||||||
@ -10040,6 +10043,7 @@ vim9-declaration vim9.txt /*vim9-declaration*
|
|||||||
vim9-declarations usr_46.txt /*vim9-declarations*
|
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-final vim9.txt /*vim9-final*
|
||||||
vim9-gotchas vim9.txt /*vim9-gotchas*
|
vim9-gotchas vim9.txt /*vim9-gotchas*
|
||||||
vim9-import vim9.txt /*vim9-import*
|
vim9-import vim9.txt /*vim9-import*
|
||||||
vim9-rationale vim9.txt /*vim9-rationale*
|
vim9-rationale vim9.txt /*vim9-rationale*
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
*todo.txt* For Vim version 8.2. Last change: 2020 Sep 19
|
*todo.txt* For Vim version 8.2. Last change: 2020 Sep 28
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@ -38,14 +38,19 @@ browser use: https://github.com/vim/vim/issues/1234
|
|||||||
*known-bugs*
|
*known-bugs*
|
||||||
-------------------- Known bugs and current work -----------------------
|
-------------------- Known bugs and current work -----------------------
|
||||||
|
|
||||||
Why does Test_invalid_sid() not work in the GUI?
|
Popup windows: don't send any keys from ":normal" to popup filter?
|
||||||
|
Can drop ex_normal_busy_done then.
|
||||||
|
|
||||||
Add matchfuzzy() and matchfuzzypos() Yegappan, #6947
|
Move Test_let_* from test_vim9_script to test_vim9_assign
|
||||||
should be ready now
|
|
||||||
|
|
||||||
|
Modifiers in GTK: issue #6457. CTRL-6 should work, like CTRL-@ and CTRL-_.
|
||||||
|
|
||||||
|
3 October: remove using :let in Vim9 script.
|
||||||
|
|
||||||
|
Go back to not using string/list/dict as falsy/thruthy boolean?
|
||||||
|
or only make "||" and "&&" result in a boolean?
|
||||||
Making everything work:
|
Making everything work:
|
||||||
- Fix memory leak in test_vim9_func (through compile_nested_function and
|
- Fix memory leaks in test_vim9_assign, remove "if 0"
|
||||||
get_lambda_tv())
|
|
||||||
- Fix memory leaks in test_vim9_script
|
- Fix memory leaks in test_vim9_script
|
||||||
- At the Vim9 script level, keep script variables local to the block they are
|
- At the Vim9 script level, keep script variables local to the block they are
|
||||||
declared in, like in Javascript (using :let).
|
declared in, like in Javascript (using :let).
|
||||||
@ -78,6 +83,7 @@ Making everything work:
|
|||||||
- Make sure that where a callback is expected a function can be used (without
|
- Make sure that where a callback is expected a function can be used (without
|
||||||
quotes). E.g. sort() and map(). Also at the script level.
|
quotes). E.g. sort() and map(). Also at the script level.
|
||||||
- assignment to more complex lval: list[1][2][3] = 8
|
- assignment to more complex lval: list[1][2][3] = 8
|
||||||
|
Also "list[0] += value". test in Test_assign_dict_unknown_type().
|
||||||
- ":put" with ISN_PUT does not handle range correctly, e.g. ":$-2put".
|
- ":put" with ISN_PUT does not handle range correctly, e.g. ":$-2put".
|
||||||
Add command to parse range at runtime?
|
Add command to parse range at runtime?
|
||||||
- Make map() give an error if the resulting type is wrong.
|
- Make map() give an error if the resulting type is wrong.
|
||||||
@ -92,9 +98,10 @@ Making everything work:
|
|||||||
- ISN_CHECKTYPE could use check_argtype()
|
- ISN_CHECKTYPE could use check_argtype()
|
||||||
- give error for variable name:
|
- give error for variable name:
|
||||||
let p = function('NoSuchFunc')
|
let p = function('NoSuchFunc')
|
||||||
- Give runtime error if function argument is wrong.
|
- If a :def function is called with a function reference, compile it to get
|
||||||
def Increment(nr: number)
|
the function type.
|
||||||
range(3)->Increment()
|
def Filter(x: string, Cond: func(string): bool)
|
||||||
|
Filter(x, { v -> v =~ '^b' })
|
||||||
- Expand `=expr` in :next, :argedit, :argadd, :argdelete, :drop
|
- Expand `=expr` in :next, :argedit, :argadd, :argdelete, :drop
|
||||||
- Expand `=expr` in :vimgrep, :vimgrepadd, :lvimgrep, :lvimgrepadd
|
- Expand `=expr` in :vimgrep, :vimgrepadd, :lvimgrep, :lvimgrepadd
|
||||||
- Expand `=expr` in :mkspell
|
- Expand `=expr` in :mkspell
|
||||||
@ -122,6 +129,8 @@ Making everything work:
|
|||||||
- When evaluating constants for script variables, some functions could work:
|
- When evaluating constants for script variables, some functions could work:
|
||||||
has('asdf'), len('string')
|
has('asdf'), len('string')
|
||||||
- Implement "as Name" in "import Item as Name from ..."
|
- Implement "as Name" in "import Item as Name from ..."
|
||||||
|
- Implement using imported items at script level from "import * as X" in
|
||||||
|
eval_variable(). Should pass the ".xxx" that follows and return that.
|
||||||
- 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:
|
||||||
@ -332,6 +341,8 @@ Make it possible to map (console and GUI): #6457
|
|||||||
Patch for Template string: #4634
|
Patch for Template string: #4634
|
||||||
Have another look at the implementation.
|
Have another look at the implementation.
|
||||||
|
|
||||||
|
Valgrind warns for uninitialized values in f_term_dumpwrite().
|
||||||
|
|
||||||
Add the <=> (spaceship) operator and "cond ?< expr ?= expr ?> expr"
|
Add the <=> (spaceship) operator and "cond ?< expr ?= expr ?> expr"
|
||||||
replace this:
|
replace this:
|
||||||
let left = GetLeftFunc()
|
let left = GetLeftFunc()
|
||||||
@ -341,6 +352,8 @@ Add the <=> (spaceship) operator and "cond ?< expr ?= expr ?> expr"
|
|||||||
let res = GetLeftFunc() <=> GetRightFunc() ?< lower ?= equal ?> upper
|
let res = GetLeftFunc() <=> GetRightFunc() ?< lower ?= equal ?> upper
|
||||||
Patch to make :q work with local arglist. (Christian Brabandt, #6286)
|
Patch to make :q work with local arglist. (Christian Brabandt, #6286)
|
||||||
|
|
||||||
|
Why does Test_invalid_sid() not work in the GUI?
|
||||||
|
|
||||||
Lua: updating wrong buffer when using newly created, unloaded buffer.
|
Lua: updating wrong buffer when using newly created, unloaded buffer.
|
||||||
(#6539)
|
(#6539)
|
||||||
|
|
||||||
|
|||||||
@ -65,6 +65,35 @@ rewrite old scripts, they keep working as before. You may want to use a few
|
|||||||
|
|
||||||
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
|
||||||
|
|
||||||
|
Overview ~
|
||||||
|
|
||||||
|
Brief summary of the differences you will most often encounter when using Vim9
|
||||||
|
script and `:def` functions; details are below:
|
||||||
|
- Comments start with #, not ": >
|
||||||
|
echo "hello" # comment
|
||||||
|
- Using a backslash for line continuation is hardly ever needed: >
|
||||||
|
echo "hello "
|
||||||
|
.. yourName
|
||||||
|
.. ", how are you?"
|
||||||
|
- White space is required in many places.
|
||||||
|
- Assign values without `:let`, declare variables with `:var`: >
|
||||||
|
var count = 0
|
||||||
|
count += 3
|
||||||
|
- Constants can be declared with `:final` and `:const`: >
|
||||||
|
final matches = [] # add matches
|
||||||
|
const names = ['Betty', 'Peter'] # cannot be changed
|
||||||
|
- `:final` cannot be used as an abbreviation of `:finally`.
|
||||||
|
- Variables and functions are script-local by default.
|
||||||
|
- Functions are declared with argument types and return type: >
|
||||||
|
def CallMe(count: number, message: string): bool
|
||||||
|
- Call functions without `:call`: >
|
||||||
|
writefile(['done'], 'file.txt')
|
||||||
|
- You cannot use `:xit`, `:t`, `:append`, `:change`, `:insert` or curly-braces
|
||||||
|
names.
|
||||||
|
- A range before a command must be prefixed with a colon: >
|
||||||
|
:%s/this/that
|
||||||
|
|
||||||
|
|
||||||
Comments starting with # ~
|
Comments starting with # ~
|
||||||
|
|
||||||
In legacy Vim script comments start with double quote. In Vim9 script
|
In legacy Vim script comments start with double quote. In Vim9 script
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
" Vim support file to detect file types
|
" Vim support file to detect file types
|
||||||
"
|
"
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last Change: 2020 Aug 04
|
" Last Change: 2020 Sep 28
|
||||||
|
|
||||||
" Listen very carefully, I will say this only once
|
" Listen very carefully, I will say this only once
|
||||||
if exists("did_load_filetypes")
|
if exists("did_load_filetypes")
|
||||||
@ -1203,7 +1203,7 @@ au BufNewFile,BufRead *.pod6 setf pod6
|
|||||||
au BufNewFile,BufRead *.php,*.php\d,*.phtml,*.ctp setf php
|
au BufNewFile,BufRead *.php,*.php\d,*.phtml,*.ctp setf php
|
||||||
|
|
||||||
" PHP config
|
" PHP config
|
||||||
au BufNewFile,BufRead php.ini,php.ini-* setf dosini
|
au BufNewFile,BufRead php.ini-* setf dosini
|
||||||
|
|
||||||
" Pike and Cmod
|
" Pike and Cmod
|
||||||
au BufNewFile,BufRead *.pike,*.pmod setf pike
|
au BufNewFile,BufRead *.pike,*.pmod setf pike
|
||||||
|
|||||||
@ -1,9 +1,10 @@
|
|||||||
" Vim filetype plugin
|
" Vim filetype plugin
|
||||||
" Language: awk, nawk, gawk, mawk
|
" Language: awk, nawk, gawk, mawk
|
||||||
" Maintainer: Antonio Colombo <azc100@gmail.com>
|
" Maintainer: Antonio Colombo <azc100@gmail.com>
|
||||||
" Last Change: 2017 Feb 17
|
" Last Change: 2020 Sep 28
|
||||||
|
|
||||||
" This plugin was prepared by Mark Sikora
|
" This plugin was prepared by Mark Sikora
|
||||||
|
" This plugin was updated as proposed by Doug Kearns
|
||||||
|
|
||||||
" Only do this when not done yet for this buffer
|
" Only do this when not done yet for this buffer
|
||||||
if exists("b:did_ftplugin")
|
if exists("b:did_ftplugin")
|
||||||
@ -13,6 +14,42 @@ endif
|
|||||||
" Don't load another plugin for this buffer
|
" Don't load another plugin for this buffer
|
||||||
let b:did_ftplugin = 1
|
let b:did_ftplugin = 1
|
||||||
|
|
||||||
let b:undo_ftplugin = "setl commentstring<"
|
let s:cpo_save = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
setlocal comments=:#
|
||||||
setlocal commentstring=#\ %s
|
setlocal commentstring=#\ %s
|
||||||
|
setlocal formatoptions-=t formatoptions+=croql
|
||||||
|
|
||||||
|
setlocal define=function
|
||||||
|
setlocal suffixesadd+=.awk
|
||||||
|
|
||||||
|
let b:undo_ftplugin = "setl fo< com< cms< def< sua<" .
|
||||||
|
\ " | unlet! b:browsefilter"
|
||||||
|
|
||||||
|
" TODO: set this in scripts.vim?
|
||||||
|
if exists("g:awk_is_gawk")
|
||||||
|
setlocal include=@include
|
||||||
|
setlocal suffixesadd+=.gawk
|
||||||
|
if has("unix") || has("win32unix")
|
||||||
|
setlocal formatprg=gawk\ -f-\ -o/dev/stdout
|
||||||
|
let b:undo_ftplugin .= " | setl fp<"
|
||||||
|
endif
|
||||||
|
|
||||||
|
let path = system("gawk 'BEGIN { printf ENVIRON[\"AWKPATH\"] }'")
|
||||||
|
let path = substitute(path, '^\.\=:\|:\.\=$\|:\.\=:', ',,', 'g') " POSIX cwd
|
||||||
|
let path = substitute(path, ':', ',', 'g')
|
||||||
|
|
||||||
|
let &l:path = path
|
||||||
|
let b:undo_ftplugin .= " | setl inc< path<"
|
||||||
|
endif
|
||||||
|
|
||||||
|
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||||
|
let b:browsefilter = "Awk Source Files (*.awk,*.gawk)\t*.awk;*.gawk\n" .
|
||||||
|
\ "All Files (*.*)\t*.*\n"
|
||||||
|
endif
|
||||||
|
|
||||||
|
let &cpo = s:cpo_save
|
||||||
|
unlet s:cpo_save
|
||||||
|
|
||||||
|
" vim: nowrap sw=2 sts=2 ts=8
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: Vim script
|
" Language: Vim script
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last Change: 2020 Jul 19
|
" Last Change: 2020 Sep 27
|
||||||
|
|
||||||
" Only load this indent file when no other was loaded.
|
" Only load this indent file when no other was loaded.
|
||||||
if exists("b:did_indent")
|
if exists("b:did_indent")
|
||||||
@ -10,7 +10,7 @@ endif
|
|||||||
let b:did_indent = 1
|
let b:did_indent = 1
|
||||||
|
|
||||||
setlocal indentexpr=GetVimIndent()
|
setlocal indentexpr=GetVimIndent()
|
||||||
setlocal indentkeys+==end,=},=else,=cat,=fina,=END,0\\,0=\"\\\
|
setlocal indentkeys+==end,=},=else,=cat,=finall,=END,0\\,0=\"\\\
|
||||||
setlocal indentkeys-=0#
|
setlocal indentkeys-=0#
|
||||||
|
|
||||||
let b:undo_indent = "setl indentkeys< indentexpr<"
|
let b:undo_indent = "setl indentkeys< indentexpr<"
|
||||||
@ -93,7 +93,7 @@ function GetVimIndentIntern()
|
|||||||
else
|
else
|
||||||
" A line starting with :au does not increment/decrement indent.
|
" A line starting with :au does not increment/decrement indent.
|
||||||
if prev_text !~ '^\s*au\%[tocmd]'
|
if prev_text !~ '^\s*au\%[tocmd]'
|
||||||
let i = match(prev_text, '\(^\||\)\s*\({\|\(if\|wh\%[ile]\|for\|try\|cat\%[ch]\|fina\%[lly]\|fu\%[nction]\|def\|el\%[seif]\)\>\)')
|
let i = match(prev_text, '\(^\||\)\s*\(export\s\+\)\?\({\|\(if\|wh\%[ile]\|for\|try\|cat\%[ch]\|fina\|finall\%[y]\|fu\%[nction]\|def\|el\%[seif]\)\>\)')
|
||||||
if i >= 0
|
if i >= 0
|
||||||
let ind += shiftwidth()
|
let ind += shiftwidth()
|
||||||
if strpart(prev_text, i, 1) == '|' && has('syntax_items')
|
if strpart(prev_text, i, 1) == '|' && has('syntax_items')
|
||||||
@ -117,7 +117,7 @@ function GetVimIndentIntern()
|
|||||||
|
|
||||||
" Subtract a 'shiftwidth' on a :endif, :endwhile, :catch, :finally, :endtry,
|
" Subtract a 'shiftwidth' on a :endif, :endwhile, :catch, :finally, :endtry,
|
||||||
" :endfun, :enddef, :else and :augroup END.
|
" :endfun, :enddef, :else and :augroup END.
|
||||||
if cur_text =~ '^\s*\(ene\@!\|}\|cat\|fina\|el\|aug\%[roup]\s\+[eE][nN][dD]\)'
|
if cur_text =~ '^\s*\(ene\@!\|}\|cat\|finall\|el\|aug\%[roup]\s\+[eE][nN][dD]\)'
|
||||||
let ind = ind - shiftwidth()
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
" Previous Maintainer: SungHyun Nam <goweol@gmail.com>
|
" Previous Maintainer: SungHyun Nam <goweol@gmail.com>
|
||||||
" Previous Maintainer: Gautam H. Mudunuri <gmudunur@informatica.com>
|
" Previous Maintainer: Gautam H. Mudunuri <gmudunur@informatica.com>
|
||||||
" Version Info:
|
" Version Info:
|
||||||
" Last Change: 2020 Apr 30
|
" Last Change: 2020 Sep 19
|
||||||
|
|
||||||
" Additional highlighting by Johannes Tanzler <johannes.tanzler@aon.at>:
|
" Additional highlighting by Johannes Tanzler <johannes.tanzler@aon.at>:
|
||||||
" * manSubHeading
|
" * manSubHeading
|
||||||
@ -21,8 +21,8 @@ runtime! syntax/ctrlh.vim
|
|||||||
syn case ignore
|
syn case ignore
|
||||||
|
|
||||||
syn match manReference "\f\+([1-9][a-z]\=)"
|
syn match manReference "\f\+([1-9][a-z]\=)"
|
||||||
syn match manSectionHeading "^[a-z][a-z -]*[a-z]$"
|
syn match manSectionHeading "^\a.*$"
|
||||||
syn match manSubHeading "^\s\{3\}[a-z][a-z -]*[a-z]$"
|
syn match manSubHeading "^\s\{3\}\a.*$"
|
||||||
syn match manOptionDesc "^\s*[+-][a-z0-9]\S*"
|
syn match manOptionDesc "^\s*[+-][a-z0-9]\S*"
|
||||||
syn match manLongOptionDesc "^\s*--[a-z0-9-]\S*"
|
syn match manLongOptionDesc "^\s*--[a-z0-9-]\S*"
|
||||||
" syn match manHistory "^[a-z].*last change.*$"
|
" syn match manHistory "^[a-z].*last change.*$"
|
||||||
|
|||||||
@ -2,8 +2,8 @@
|
|||||||
" Language: shell (sh) Korn shell (ksh) bash (sh)
|
" Language: shell (sh) Korn shell (ksh) bash (sh)
|
||||||
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||||
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
|
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
|
||||||
" Last Change: Apr 14, 2020
|
" Last Change: Aug 10, 2020
|
||||||
" Version: 190
|
" Version: 193
|
||||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
|
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
|
||||||
" For options and settings, please use: :help ft-sh-syntax
|
" For options and settings, please use: :help ft-sh-syntax
|
||||||
" This file includes many ideas from Eric Brunet (eric.brunet@ens.fr)
|
" This file includes many ideas from Eric Brunet (eric.brunet@ens.fr)
|
||||||
@ -20,8 +20,8 @@ if getline(1) =~ '\<ksh$'
|
|||||||
elseif getline(1) =~ '\<bash$'
|
elseif getline(1) =~ '\<bash$'
|
||||||
let b:is_bash = 1
|
let b:is_bash = 1
|
||||||
elseif getline(1) =~ '\<dash$'
|
elseif getline(1) =~ '\<dash$'
|
||||||
let b:is_posix = 1
|
let b:is_dash = 1
|
||||||
elseif !exists("g:is_kornshell") && !exists("g:is_bash") && !exists("g:is_posix") && !exists("g:is_sh")
|
elseif !exists("g:is_kornshell") && !exists("g:is_bash") && !exists("g:is_posix") && !exists("g:is_sh") && !exists("g:is_dash")
|
||||||
let s:shell = ""
|
let s:shell = ""
|
||||||
if executable("/bin/sh")
|
if executable("/bin/sh")
|
||||||
let s:shell = resolve("/bin/sh")
|
let s:shell = resolve("/bin/sh")
|
||||||
@ -33,7 +33,7 @@ elseif !exists("g:is_kornshell") && !exists("g:is_bash") && !exists("g:is_posix"
|
|||||||
elseif s:shell =~ 'bash$'
|
elseif s:shell =~ 'bash$'
|
||||||
let b:is_bash = 1
|
let b:is_bash = 1
|
||||||
elseif s:shell =~ 'dash$'
|
elseif s:shell =~ 'dash$'
|
||||||
let b:is_posix = 1
|
let b:is_dash = 1
|
||||||
endif
|
endif
|
||||||
unlet s:shell
|
unlet s:shell
|
||||||
endif
|
endif
|
||||||
@ -45,7 +45,7 @@ endif
|
|||||||
" So, when the user sets "g:is_bash", "g:is_kornshell",
|
" So, when the user sets "g:is_bash", "g:is_kornshell",
|
||||||
" or "g:is_posix", a b:is_sh is converted into b:is_bash/b:is_kornshell,
|
" or "g:is_posix", a b:is_sh is converted into b:is_bash/b:is_kornshell,
|
||||||
" respectively.
|
" respectively.
|
||||||
if !exists("b:is_kornshell") && !exists("b:is_bash")
|
if !exists("b:is_kornshell") && !exists("b:is_bash") && !exists("b:is_dash")
|
||||||
if exists("g:is_posix") && !exists("g:is_kornshell")
|
if exists("g:is_posix") && !exists("g:is_kornshell")
|
||||||
let g:is_kornshell= g:is_posix
|
let g:is_kornshell= g:is_posix
|
||||||
endif
|
endif
|
||||||
@ -59,11 +59,21 @@ if !exists("b:is_kornshell") && !exists("b:is_bash")
|
|||||||
if exists("b:is_sh")
|
if exists("b:is_sh")
|
||||||
unlet b:is_sh
|
unlet b:is_sh
|
||||||
endif
|
endif
|
||||||
|
elseif exists("g:is_dash")
|
||||||
|
let b:is_dash= 1
|
||||||
|
if exists("b:is_sh")
|
||||||
|
unlet b:is_sh
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
let b:is_sh= 1
|
let b:is_sh= 1
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" if b:is_dash, set b:is_posix too
|
||||||
|
if exists("b:is_dash")
|
||||||
|
let b:is_posix= 1
|
||||||
|
endif
|
||||||
|
|
||||||
" set up default g:sh_fold_enabled {{{1
|
" set up default g:sh_fold_enabled {{{1
|
||||||
" ================================
|
" ================================
|
||||||
if !exists("g:sh_fold_enabled")
|
if !exists("g:sh_fold_enabled")
|
||||||
@ -133,7 +143,7 @@ syn cluster shCurlyList contains=shNumber,shComma,shDeref,shDerefSimple,shDerefS
|
|||||||
" COMBAK: removing shEscape fromshDblQuoteList fails ksh04:43
|
" COMBAK: removing shEscape fromshDblQuoteList fails ksh04:43
|
||||||
syn cluster shDblQuoteList contains=shArithmetic,shCommandSub,shCommandSubBQ,shDeref,shDerefSimple,shPosnParm,shCtrlSeq,shSpecial,shSpecialDQ
|
syn cluster shDblQuoteList contains=shArithmetic,shCommandSub,shCommandSubBQ,shDeref,shDerefSimple,shPosnParm,shCtrlSeq,shSpecial,shSpecialDQ
|
||||||
syn cluster shDerefList contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError,shDerefPSR,shDerefPPS
|
syn cluster shDerefList contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError,shDerefPSR,shDerefPPS
|
||||||
syn cluster shDerefVarList contains=shDerefOff,shDerefOp,shDerefVarArray,shDerefOpError
|
syn cluster shDerefVarList contains=shDerefOffset,shDerefOp,shDerefVarArray,shDerefOpError
|
||||||
syn cluster shEchoList contains=shArithmetic,shCommandSub,shCommandSubBQ,shDeref,shDerefSimple,shEscape,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq,shEchoQuote
|
syn cluster shEchoList contains=shArithmetic,shCommandSub,shCommandSubBQ,shDeref,shDerefSimple,shEscape,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq,shEchoQuote
|
||||||
syn cluster shExprList1 contains=shCharClass,shNumber,shOperator,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shDblBrace,shDeref,shDerefSimple,shCtrlSeq
|
syn cluster shExprList1 contains=shCharClass,shNumber,shOperator,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shDblBrace,shDeref,shDerefSimple,shCtrlSeq
|
||||||
syn cluster shExprList2 contains=@shExprList1,@shCaseList,shTest
|
syn cluster shExprList2 contains=@shExprList1,@shCaseList,shTest
|
||||||
@ -358,7 +368,7 @@ elseif !exists("g:sh_no_error")
|
|||||||
endif
|
endif
|
||||||
syn region shSingleQuote matchgroup=shQuote start=+'+ end=+'+ contains=@Spell nextgroup=shSpecialStart,shSpecialSQ
|
syn region shSingleQuote matchgroup=shQuote start=+'+ end=+'+ contains=@Spell nextgroup=shSpecialStart,shSpecialSQ
|
||||||
syn region shDoubleQuote matchgroup=shQuote start=+\%(\%(\\\\\)*\\\)\@<!"+ skip=+\\.+ end=+"+ contains=@shDblQuoteList,shStringSpecial,@Spell nextgroup=shSpecialStart
|
syn region shDoubleQuote matchgroup=shQuote start=+\%(\%(\\\\\)*\\\)\@<!"+ skip=+\\.+ end=+"+ contains=@shDblQuoteList,shStringSpecial,@Spell nextgroup=shSpecialStart
|
||||||
syn region shDoubleQuote matchgroup=shQuote start=+"+ matchgroup=shSpecial skip=+\\"+ end=+"+ contained contains=@shDblQuoteList,shStringSpecial,@Spell nextgroup=shSpecialStart
|
syn region shDoubleQuote matchgroup=shQuote start=+"+ matchgroup=shSpecial skip=+\\"+ matchgroup=shQuote end=+"+ contained contains=@shDblQuoteList,shStringSpecial,@Spell nextgroup=shSpecialStart
|
||||||
syn match shStringSpecial "[^[:print:] \t]" contained
|
syn match shStringSpecial "[^[:print:] \t]" contained
|
||||||
syn match shStringSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shComment
|
syn match shStringSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shComment
|
||||||
syn match shSpecialSQ "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" contained nextgroup=shBkslshSnglQuote,@shNoZSList
|
syn match shSpecialSQ "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" contained nextgroup=shBkslshSnglQuote,@shNoZSList
|
||||||
@ -424,6 +434,9 @@ if exists("b:is_bash")
|
|||||||
syn region shSetList oneline matchgroup=shSet start="\<\%(set\|unset\)\>[/a-zA-Z_]\@!" end="\ze[;|#)]\|$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+=" contains=@shIdList nextgroup=shComment
|
syn region shSetList oneline matchgroup=shSet start="\<\%(set\|unset\)\>[/a-zA-Z_]\@!" end="\ze[;|#)]\|$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+=" contains=@shIdList nextgroup=shComment
|
||||||
elseif exists("b:is_kornshell") || exists("b:is_posix")
|
elseif exists("b:is_kornshell") || exists("b:is_posix")
|
||||||
syn match shSet "^\s*set\ze\s\+$"
|
syn match shSet "^\s*set\ze\s\+$"
|
||||||
|
if exists("b:is_dash")
|
||||||
|
syn region shSetList oneline matchgroup=shSet start="\<\%(local\)\>\ze[/]\@!" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
|
||||||
|
endif
|
||||||
syn region shSetList oneline matchgroup=shSet start="\<\(export\)\>\ze[/]\@!" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
|
syn region shSetList oneline matchgroup=shSet start="\<\(export\)\>\ze[/]\@!" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
|
||||||
syn region shSetList oneline matchgroup=shSet start="\<\%(set\|unset\>\)\ze[/a-zA-Z_]\@!" end="\ze[;|#)]\|$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList nextgroup=shComment
|
syn region shSetList oneline matchgroup=shSet start="\<\%(set\|unset\>\)\ze[/a-zA-Z_]\@!" end="\ze[;|#)]\|$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList nextgroup=shComment
|
||||||
else
|
else
|
||||||
@ -471,14 +484,14 @@ endif
|
|||||||
" bash: ${!prefix*} and ${#parameter}: {{{1
|
" bash: ${!prefix*} and ${#parameter}: {{{1
|
||||||
" ====================================
|
" ====================================
|
||||||
if exists("b:is_bash")
|
if exists("b:is_bash")
|
||||||
syn region shDeref matchgroup=PreProc start="\${!" end="\*\=}" contains=@shDerefList,shDerefOff
|
syn region shDeref matchgroup=PreProc start="\${!" end="\*\=}" contains=@shDerefList,shDerefOffset
|
||||||
syn match shDerefVar contained "{\@<=!\h\w*" nextgroup=@shDerefVarList
|
syn match shDerefVar contained "{\@<=!\h\w*" nextgroup=@shDerefVarList
|
||||||
endif
|
endif
|
||||||
if exists("b:is_kornshell")
|
if exists("b:is_kornshell")
|
||||||
syn match shDerefVar contained "{\@<=!\h\w*[[:alnum:]_.]*" nextgroup=@shDerefVarList
|
syn match shDerefVar contained "{\@<=!\h\w*[[:alnum:]_.]*" nextgroup=@shDerefVarList
|
||||||
endif
|
endif
|
||||||
|
|
||||||
syn match shDerefSpecial contained "{\@<=[-*@?0]" nextgroup=shDerefOp,shDerefOpError
|
syn match shDerefSpecial contained "{\@<=[-*@?0]" nextgroup=shDerefOp,shDerefOffset,shDerefOpError
|
||||||
syn match shDerefSpecial contained "\({[#!]\)\@<=[[:alnum:]*@_]\+" nextgroup=@shDerefVarList,shDerefOp
|
syn match shDerefSpecial contained "\({[#!]\)\@<=[[:alnum:]*@_]\+" nextgroup=@shDerefVarList,shDerefOp
|
||||||
syn match shDerefVar contained "{\@<=\h\w*" nextgroup=@shDerefVarList
|
syn match shDerefVar contained "{\@<=\h\w*" nextgroup=@shDerefVarList
|
||||||
syn match shDerefVar contained '\d' nextgroup=@shDerefVarList
|
syn match shDerefVar contained '\d' nextgroup=@shDerefVarList
|
||||||
@ -502,6 +515,7 @@ syn region shDerefVarArray contained matchgroup=shDeref start="\[" end="]" co
|
|||||||
" bash : ${parameter^^pattern} Case modification
|
" bash : ${parameter^^pattern} Case modification
|
||||||
" bash : ${parameter,pattern} Case modification
|
" bash : ${parameter,pattern} Case modification
|
||||||
" bash : ${parameter,,pattern} Case modification
|
" bash : ${parameter,,pattern} Case modification
|
||||||
|
" bash : ${@:start:qty} display command line arguments from start to start+qty-1 (inferred)
|
||||||
syn cluster shDerefPatternList contains=shDerefPattern,shDerefString
|
syn cluster shDerefPatternList contains=shDerefPattern,shDerefString
|
||||||
if !exists("g:sh_no_error")
|
if !exists("g:sh_no_error")
|
||||||
syn match shDerefOpError contained ":[[:punct:]]"
|
syn match shDerefOpError contained ":[[:punct:]]"
|
||||||
@ -522,17 +536,19 @@ syn region shDerefString contained matchgroup=shDerefDelim start=+\%(\\\)\@<!'+
|
|||||||
syn region shDerefString contained matchgroup=shDerefDelim start=+\%(\\\)\@<!"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial
|
syn region shDerefString contained matchgroup=shDerefDelim start=+\%(\\\)\@<!"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial
|
||||||
syn match shDerefString contained "\\["']" nextgroup=shDerefPattern
|
syn match shDerefString contained "\\["']" nextgroup=shDerefPattern
|
||||||
|
|
||||||
if exists("b:is_bash")
|
if exists("b:is_bash") || exists("b:is_kornshell") || exists("b:is_posix")
|
||||||
" bash : ${parameter:offset}
|
" bash ksh posix : ${parameter:offset}
|
||||||
" bash : ${parameter:offset:length}
|
" bash ksh posix : ${parameter:offset:length}
|
||||||
syn region shDerefOff contained start=':[^-=?+]' end='\ze:' end='\ze}' contains=shDeref,shDerefSimple,shDerefEscape nextgroup=shDerefLen,shDeref,shDerefSimple
|
syn region shDerefOffset contained start=':[^-=?+]' end='\ze:' end='\ze}' contains=shDeref,shDerefSimple,shDerefEscape nextgroup=shDerefLen,shDeref,shDerefSimple
|
||||||
syn region shDerefOff contained start=':\s-' end='\ze:' end='\ze}' contains=shDeref,shDerefSimple,shDerefEscape nextgroup=shDerefLen,shDeref,shDerefSimple
|
syn region shDerefOffset contained start=':\s-' end='\ze:' end='\ze}' contains=shDeref,shDerefSimple,shDerefEscape nextgroup=shDerefLen,shDeref,shDerefSimple
|
||||||
syn match shDerefLen contained ":[^}]\+" contains=shDeref,shDerefSimple,shArithmetic
|
syn match shDerefLen contained ":[^}]\+" contains=shDeref,shDerefSimple,shArithmetic
|
||||||
|
endif
|
||||||
|
|
||||||
|
if exists("b:is_bash")
|
||||||
" bash : ${parameter//pattern/string}
|
" bash : ${parameter//pattern/string}
|
||||||
" bash : ${parameter//pattern}
|
" bash : ${parameter//pattern}
|
||||||
syn match shDerefPPS contained '/\{1,2}' nextgroup=shDerefPPSleft
|
syn match shDerefPPS contained '/\{1,2}' nextgroup=shDerefPPSleft
|
||||||
syn region shDerefPPSleft contained start='.' skip=@\%(\\\\\)*\\/@ matchgroup=shDerefOp end='/' end='\ze}' nextgroup=shDerefPPSright contains=@shPPSLeftList
|
syn region shDerefPPSleft contained start='.' skip=@\%(\\\\\)*\\/@ matchgroup=shDerefOp end='/' end='\ze}' end='"' nextgroup=shDerefPPSright contains=@shPPSLeftList
|
||||||
syn region shDerefPPSright contained start='.' skip=@\%(\\\\\)\+@ end='\ze}' contains=@shPPSRightList
|
syn region shDerefPPSright contained start='.' skip=@\%(\\\\\)\+@ end='\ze}' contains=@shPPSRightList
|
||||||
|
|
||||||
" bash : ${parameter/#substring/replacement}
|
" bash : ${parameter/#substring/replacement}
|
||||||
@ -675,8 +691,8 @@ if !exists("skip_sh_syntax_inits")
|
|||||||
hi def link bashSpecialVariables shShellVariables
|
hi def link bashSpecialVariables shShellVariables
|
||||||
hi def link bashStatement shStatement
|
hi def link bashStatement shStatement
|
||||||
hi def link shCharClass shSpecial
|
hi def link shCharClass shSpecial
|
||||||
hi def link shDerefOff shDerefOp
|
hi def link shDerefOffset shDerefOp
|
||||||
hi def link shDerefLen shDerefOff
|
hi def link shDerefLen shDerefOffset
|
||||||
endif
|
endif
|
||||||
if exists("b:is_kornshell") || exists("b:is_posix")
|
if exists("b:is_kornshell") || exists("b:is_posix")
|
||||||
hi def link kshSpecialVariables shShellVariables
|
hi def link kshSpecialVariables shShellVariables
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: Vim 8.0 script
|
" Language: Vim 8.0 script
|
||||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||||
" Last Change: July 15, 2020
|
" Last Change: Aug 30, 2020
|
||||||
" Version: 8.0-41
|
" Version: 8.0-43
|
||||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
|
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
|
||||||
" Automatically generated keyword lists: {{{1
|
" Automatically generated keyword lists: {{{1
|
||||||
|
|
||||||
@ -236,7 +236,7 @@ endif
|
|||||||
" Functions : Tag is provided for those who wish to highlight tagged functions {{{2
|
" Functions : Tag is provided for those who wish to highlight tagged functions {{{2
|
||||||
" =========
|
" =========
|
||||||
syn cluster vimFuncList contains=vimCommand,vimFunctionError,vimFuncKey,Tag,vimFuncSID
|
syn cluster vimFuncList contains=vimCommand,vimFunctionError,vimFuncKey,Tag,vimFuncSID
|
||||||
syn cluster vimFuncBodyList contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vim9Comment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimGlobal,vimHighlight,vimIsCommand,vimLet,vimLetHereDoc,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSearch,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUnmap,vimUserCommand
|
syn cluster vimFuncBodyList contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vim9Comment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimEnvvar,vimExecute,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimGlobal,vimHighlight,vimIsCommand,vimLet,vimLetHereDoc,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSearch,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUnmap,vimUserCommand
|
||||||
syn match vimFunction "\<\(fu\%[nction]\|def\)!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*(" contains=@vimFuncList nextgroup=vimFuncBody
|
syn match vimFunction "\<\(fu\%[nction]\|def\)!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*(" contains=@vimFuncList nextgroup=vimFuncBody
|
||||||
|
|
||||||
if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f'
|
if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f'
|
||||||
@ -266,7 +266,7 @@ syn match vimSpecFileMod "\(:[phtre]\)\+" contained
|
|||||||
" =======================
|
" =======================
|
||||||
syn cluster vimUserCmdList contains=vimAddress,vimSyntax,vimHighlight,vimAutoCmd,vimCmplxRepeat,vimComment,vim9Comment,vimCtrlChar,vimEscapeBrace,vimFunc,vimFuncName,vimFunction,vimFunctionError,vimIsCommand,vimMark,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimLet,vimSet,vimSetEqual,vimSetString,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine
|
syn cluster vimUserCmdList contains=vimAddress,vimSyntax,vimHighlight,vimAutoCmd,vimCmplxRepeat,vimComment,vim9Comment,vimCtrlChar,vimEscapeBrace,vimFunc,vimFuncName,vimFunction,vimFunctionError,vimIsCommand,vimMark,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimLet,vimSet,vimSetEqual,vimSetString,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine
|
||||||
syn keyword vimUserCommand contained com[mand]
|
syn keyword vimUserCommand contained com[mand]
|
||||||
syn match vimUserCmd "\<com\%[mand]!\=\>.*$" contains=vimUserAttrb,vimUserAttrbError,vimUserCommand,@vimUserCmdList
|
syn match vimUserCmd "\<com\%[mand]!\=\>.*$" contains=vimUserAttrb,vimUserAttrbError,vimUserCommand,@vimUserCmdList,vimComFilter
|
||||||
syn match vimUserAttrbError contained "-\a\+\ze\s"
|
syn match vimUserAttrbError contained "-\a\+\ze\s"
|
||||||
syn match vimUserAttrb contained "-nargs=[01*?+]" contains=vimUserAttrbKey,vimOper
|
syn match vimUserAttrb contained "-nargs=[01*?+]" contains=vimUserAttrbKey,vimOper
|
||||||
syn match vimUserAttrb contained "-complete=" contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError
|
syn match vimUserAttrb contained "-complete=" contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError
|
||||||
@ -295,12 +295,13 @@ syn match vimComment +\<endif\s\+".*$+lc=5 contains=@vimCommentGroup,vimCommentS
|
|||||||
syn match vimComment +\<else\s\+".*$+lc=4 contains=@vimCommentGroup,vimCommentString
|
syn match vimComment +\<else\s\+".*$+lc=4 contains=@vimCommentGroup,vimCommentString
|
||||||
syn region vimCommentString contained oneline start='\S\s\+"'ms=e end='"'
|
syn region vimCommentString contained oneline start='\S\s\+"'ms=e end='"'
|
||||||
" Vim9 comments - TODO: might be highlighted while they don't work
|
" Vim9 comments - TODO: might be highlighted while they don't work
|
||||||
syn match vim9Comment excludenl +^#[^{].*$+ contains=@vimCommentGroup,vimCommentString
|
|
||||||
syn match vim9Comment excludenl +\s#[^{].*$+lc=1 contains=@vimCommentGroup,vimCommentString
|
syn match vim9Comment excludenl +\s#[^{].*$+lc=1 contains=@vimCommentGroup,vimCommentString
|
||||||
syn match vim9Comment +\<endif\s\+#[^{].*$+lc=5 contains=@vimCommentGroup,vimCommentString
|
syn match vim9Comment +\<endif\s\+#[^{].*$+lc=5 contains=@vimCommentGroup,vimCommentString
|
||||||
syn match vim9Comment +\<else\s\+#[^{].*$+lc=4 contains=@vimCommentGroup,vimCommentString
|
syn match vim9Comment +\<else\s\+#[^{].*$+lc=4 contains=@vimCommentGroup,vimCommentString
|
||||||
" Vim9 comment inside expression
|
" Vim9 comment inside expression
|
||||||
syn match vim9Comment +\s\zs#[^{].*$+ms=s+1 contains=@vimCommentGroup,vimCommentString
|
syn match vim9Comment +\s\zs#[^{].*$+ms=s+1 contains=@vimCommentGroup,vimCommentString
|
||||||
|
syn match vim9Comment +^\s*#[^{].*$+ contains=@vimCommentGroup,vimCommentString
|
||||||
|
syn match vim9Comment +^\s*#$+ contains=@vimCommentGroup,vimCommentString
|
||||||
|
|
||||||
" Environment Variables: {{{2
|
" Environment Variables: {{{2
|
||||||
" =====================
|
" =====================
|
||||||
@ -370,7 +371,8 @@ syn match vimAddress ",\zs[.$]" skipwhite nextgroup=vimSubst1
|
|||||||
syn match vimAddress "%\ze\a" skipwhite nextgroup=vimString,vimSubst1
|
syn match vimAddress "%\ze\a" skipwhite nextgroup=vimString,vimSubst1
|
||||||
|
|
||||||
syn match vimFilter "^!!\=[^"]\{-}\(|\|\ze\"\|$\)" contains=vimOper,vimSpecFile
|
syn match vimFilter "^!!\=[^"]\{-}\(|\|\ze\"\|$\)" contains=vimOper,vimSpecFile
|
||||||
syn match vimFilter contained "!!\=[^"]\{-}\(|\|\ze\"\|$\)" contains=vimOper,vimSpecFile
|
syn match vimFilter contained "!!\=[^"]\{-}\(|\|\ze\"\|$\)" contains=vimOper,vimSpecFile
|
||||||
|
syn match vimComFilter contained "|!!\=[^"]\{-}\(|\|\ze\"\|$\)" contains=vimOper,vimSpecFile
|
||||||
|
|
||||||
" Complex Repeats: (:h complex-repeat) {{{2
|
" Complex Repeats: (:h complex-repeat) {{{2
|
||||||
" ===============
|
" ===============
|
||||||
@ -386,7 +388,7 @@ syn match vimSetMod contained "&vim\=\|[!&?<]\|all&"
|
|||||||
|
|
||||||
" Let: {{{2
|
" Let: {{{2
|
||||||
" ===
|
" ===
|
||||||
syn keyword vimLet let unl[et] skipwhite nextgroup=vimVar,vimFuncVar,vimLetHereDoc
|
syn keyword vimLet let var unl[et] skipwhite nextgroup=vimVar,vimFuncVar,vimLetHereDoc
|
||||||
VimFoldh syn region vimLetHereDoc matchgroup=vimLetHereDocStart start='=<<\s\+\%(trim\>\)\=\s*\z(\L\S*\)' matchgroup=vimLetHereDocStop end='^\s*\z1\s*$' contains=vimComment,vim9Comment
|
VimFoldh syn region vimLetHereDoc matchgroup=vimLetHereDocStart start='=<<\s\+\%(trim\>\)\=\s*\z(\L\S*\)' matchgroup=vimLetHereDocStop end='^\s*\z1\s*$' contains=vimComment,vim9Comment
|
||||||
|
|
||||||
" Abbreviations: {{{2
|
" Abbreviations: {{{2
|
||||||
@ -397,8 +399,9 @@ syn keyword vimAbb ab[breviate] ca[bbrev] inorea[bbrev] cnorea[bbrev] norea[bbre
|
|||||||
" =======
|
" =======
|
||||||
syn match vimAutoEventList contained "\(!\s\+\)\=\(\a\+,\)*\a\+" contains=vimAutoEvent nextgroup=vimAutoCmdSpace
|
syn match vimAutoEventList contained "\(!\s\+\)\=\(\a\+,\)*\a\+" contains=vimAutoEvent nextgroup=vimAutoCmdSpace
|
||||||
syn match vimAutoCmdSpace contained "\s\+" nextgroup=vimAutoCmdSfxList
|
syn match vimAutoCmdSpace contained "\s\+" nextgroup=vimAutoCmdSfxList
|
||||||
syn match vimAutoCmdSfxList contained "\S*"
|
syn match vimAutoCmdSfxList contained "\S*" skipwhite nextgroup=vimAutoCmdMod
|
||||||
syn keyword vimAutoCmd au[tocmd] do[autocmd] doautoa[ll] skipwhite nextgroup=vimAutoEventList
|
syn keyword vimAutoCmd au[tocmd] do[autocmd] doautoa[ll] skipwhite nextgroup=vimAutoEventList
|
||||||
|
syn match vimAutoCmdMod "\(++\)\=\(once\|nested\)"
|
||||||
|
|
||||||
" Echo And Execute: -- prefer strings! {{{2
|
" Echo And Execute: -- prefer strings! {{{2
|
||||||
" ================
|
" ================
|
||||||
@ -634,7 +637,7 @@ syn match vimCtrlChar "[--]"
|
|||||||
" Beginners - Patterns that involve ^ {{{2
|
" Beginners - Patterns that involve ^ {{{2
|
||||||
" =========
|
" =========
|
||||||
syn match vimLineComment +^[ \t:]*".*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle
|
syn match vimLineComment +^[ \t:]*".*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle
|
||||||
syn match vim9LineComment +^[ \t:]*#.*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle
|
syn match vim9LineComment +^[ \t]*#.*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle
|
||||||
syn match vimCommentTitle '"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1 contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup
|
syn match vimCommentTitle '"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1 contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup
|
||||||
syn match vimContinue "^\s*\\"
|
syn match vimContinue "^\s*\\"
|
||||||
syn region vimString start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue
|
syn region vimString start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue
|
||||||
@ -861,6 +864,7 @@ if !exists("skip_vim_syntax_inits")
|
|||||||
hi def link vimAutoCmdOpt vimOption
|
hi def link vimAutoCmdOpt vimOption
|
||||||
hi def link vimAutoCmd vimCommand
|
hi def link vimAutoCmd vimCommand
|
||||||
hi def link vimAutoEvent Type
|
hi def link vimAutoEvent Type
|
||||||
|
hi def link vimAutoCmdMod Special
|
||||||
hi def link vimAutoSet vimCommand
|
hi def link vimAutoSet vimCommand
|
||||||
hi def link vimBehaveModel vimBehave
|
hi def link vimBehaveModel vimBehave
|
||||||
hi def link vimBehave vimCommand
|
hi def link vimBehave vimCommand
|
||||||
|
|||||||
Reference in New Issue
Block a user