1
0
forked from aniani/vim

Update runtime files

This commit is contained in:
Bram Moolenaar
2020-05-26 21:20:45 +02:00
parent fcb0b61d15
commit 388a5d4f20
25 changed files with 349 additions and 148 deletions

View File

@@ -0,0 +1,16 @@
" Vim compiler file
" Compiler: ESLint for JavaScript
" Maintainer: Romain Lafourcade <romainlafourcade@gmail.com>
" Last Change: 2020 May 17
if exists("current_compiler")
finish
endif
let current_compiler = "eslint"
if exists(":CompilerSet") != 2
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet makeprg=eslint\ --format\ compact
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %m,%-G%.%#

View File

@@ -0,0 +1,16 @@
" Vim compiler file
" Compiler: Standard for JavaScript
" Maintainer: Romain Lafourcade <romainlafourcade@gmail.com>
" Last Change: 2020 May 17
if exists("current_compiler")
finish
endif
let current_compiler = "standard"
if exists(":CompilerSet") != 2
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet makeprg=standard
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %m,%-G%.%#

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 8.2. Last change: 2020 Apr 19 *eval.txt* For Vim version 8.2. Last change: 2020 May 25
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -584,6 +584,8 @@ adict.
Weeding out entries from a Dictionary can be done with |filter()|: > Weeding out entries from a Dictionary can be done with |filter()|: >
:call filter(dict, 'v:val =~ "x"') :call filter(dict, 'v:val =~ "x"')
This removes all entries from "dict" with a value not matching 'x'. This removes all entries from "dict" with a value not matching 'x'.
This can also be used to remove all entries: >
call filter(dict, 0)
Dictionary function ~ Dictionary function ~
@@ -1485,7 +1487,7 @@ the function returns: >
:echo Bar(6) :echo Bar(6)
< 5 < 5
Note that the variables must exist in the outer scope before the lamba is Note that the variables must exist in the outer scope before the lambda is
defined for this to work. See also |:func-closure|. defined for this to work. See also |:func-closure|.
Lambda and closure support can be checked with: > Lambda and closure support can be checked with: >
@@ -2916,6 +2918,7 @@ win_splitmove({nr}, {target} [, {options}])
Number move window {nr} to split of {target} Number move window {nr} to split of {target}
winbufnr({nr}) Number buffer number of window {nr} winbufnr({nr}) Number buffer number of window {nr}
wincol() Number window column of the cursor wincol() Number window column of the cursor
windowsversion() String MS-Windows OS version
winheight({nr}) Number height of window {nr} winheight({nr}) Number height of window {nr}
winlayout([{tabnr}]) List layout of windows in tab {tabnr} winlayout([{tabnr}]) List layout of windows in tab {tabnr}
winline() Number window line of the cursor winline() Number window line of the cursor
@@ -11144,6 +11147,8 @@ See |:verbose-cmd| for more information.
NOTE: Use ! wisely. If used without care it can cause NOTE: Use ! wisely. If used without care it can cause
an existing function to be replaced unexpectedly, an existing function to be replaced unexpectedly,
which is hard to debug. which is hard to debug.
NOTE: In Vim9 script script-local functions cannot be
deleted or redefined.
For the {arguments} see |function-argument|. For the {arguments} see |function-argument|.

View File

@@ -1,4 +1,4 @@
*if_lua.txt* For Vim version 8.2. Last change: 2019 Jul 21 *if_lua.txt* For Vim version 8.2. Last change: 2020 May 17
VIM REFERENCE MANUAL by Luis Carvalho VIM REFERENCE MANUAL by Luis Carvalho

View File

@@ -1,4 +1,4 @@
*index.txt* For Vim version 8.2. Last change: 2020 May 10 *index.txt* For Vim version 8.2. Last change: 2020 May 26
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -828,7 +828,7 @@ tag char note action in Normal mode ~
|zD| zD delete folds recursively |zD| zD delete folds recursively
|zE| zE eliminate all folds |zE| zE eliminate all folds
|zF| zF create a fold for N lines |zF| zF create a fold for N lines
|zG| zG mark word as good spelled word |zG| zG temporarily mark word as good spelled word
|zH| zH when 'wrap' off scroll half a screenwidth |zH| zH when 'wrap' off scroll half a screenwidth
to the right to the right
|zL| zL when 'wrap' off scroll half a screenwidth |zL| zL when 'wrap' off scroll half a screenwidth
@@ -837,7 +837,7 @@ tag char note action in Normal mode ~
|zN| zN set 'foldenable' |zN| zN set 'foldenable'
|zO| zO open folds recursively |zO| zO open folds recursively
|zR| zR set 'foldlevel' to the deepest fold |zR| zR set 'foldlevel' to the deepest fold
|zW| zW mark word as wrong (bad) spelled word |zW| zW temporarily mark word as bad spelled word
|zX| zX re-apply 'foldlevel' |zX| zX re-apply 'foldlevel'
|z^| z^ cursor on line N (default line above |z^| z^ cursor on line N (default line above
window), otherwise like "z-" window), otherwise like "z-"
@@ -849,7 +849,7 @@ tag char note action in Normal mode ~
position the cursor at the end (right side) position the cursor at the end (right side)
of the screen of the screen
|zf| zf{motion} create a fold for Nmove text |zf| zf{motion} create a fold for Nmove text
|zg| zg mark word as good spelled word |zg| zg permanently mark word as good spelled word
|zh| zh when 'wrap' off scroll screen N characters |zh| zh when 'wrap' off scroll screen N characters
to the right to the right
|zi| zi toggle 'foldenable' |zi| zi toggle 'foldenable'
@@ -870,7 +870,7 @@ tag char note action in Normal mode ~
|zuW| zuW undo |zW| |zuW| zuW undo |zW|
|zuG| zuG undo |zG| |zuG| zuG undo |zG|
|zv| zv open enough folds to view the cursor line |zv| zv open enough folds to view the cursor line
|zw| zw mark word as wrong (bad) spelled word |zw| zw permanently mark word as bad spelled word
|zx| zx re-apply 'foldlevel' and do "zv" |zx| zx re-apply 'foldlevel' and do "zv"
|zz| zz redraw, cursor line at center of window |zz| zz redraw, cursor line at center of window
|z<Left>| z<Left> same as "zh" |z<Left>| z<Left> same as "zh"
@@ -1262,6 +1262,7 @@ tag command action ~
|:debug| :deb[ug] run a command in debugging mode |:debug| :deb[ug] run a command in debugging mode
|:debuggreedy| :debugg[reedy] read debug mode commands from normal input |:debuggreedy| :debugg[reedy] read debug mode commands from normal input
|:def| :def define a Vim9 user function |:def| :def define a Vim9 user function
|:defcompile| :defc[ompile] compile Vim9 user functions in current script
|:delcommand| :delc[ommand] delete user-defined command |:delcommand| :delc[ommand] delete user-defined command
|:delfunction| :delf[unction] delete a user function |:delfunction| :delf[unction] delete a user function
|:delmarks| :delm[arks] delete marks |:delmarks| :delm[arks] delete marks

View File

@@ -58,7 +58,7 @@ substr($0,length($0),1) == "~" { print "<B><FONT COLOR=\"PURPLE\">" substr($0,1,
# #
#ad hoc code #ad hoc code
# #
/^"\|\& / {gsub(/\|/,"\\&#124;"); } /^"\|& / {gsub(/\|/,"\\&#124;"); }
/ = b / {gsub(/ b /," \\&#98; "); } / = b / {gsub(/ b /," \\&#98; "); }
# #
# one letter tag # one letter tag

View File

@@ -1,4 +1,4 @@
*os_haiku.txt* For Vim version 8.2. Last change: 2020 Apr 30 *os_haiku.txt* For Vim version 8.2. Last change: 2020 May 13
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -84,9 +84,6 @@ Stuff that does not work yet:
in when the window is activated or deactivated (so it works best with focus- in when the window is activated or deactivated (so it works best with focus-
follows-mouse turned on). follows-mouse turned on).
- The cursor does not flash. - The cursor does not flash.
- Built-in terminal is not available in GUI, and does not work reliably on
console version as well; e.g. it is not possible to exit using the 'exit'
command. If you need to use it, enable at your own risk.
4. The $VIM directory *haiku-vimdir* 4. The $VIM directory *haiku-vimdir*

View File

@@ -1,4 +1,4 @@
*popup.txt* For Vim version 8.2. Last change: 2020 May 12 *popup.txt* For Vim version 8.2. Last change: 2020 May 18
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar

View File

@@ -1,4 +1,4 @@
*repeat.txt* For Vim version 8.2. Last change: 2020 Apr 26 *repeat.txt* For Vim version 8.2. Last change: 2020 May 14
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -126,6 +126,11 @@ q{0-9a-zA-Z"} Record typed characters into register {0-9a-zA-Z"}
recorded macro and the yank will overwrite the recorded macro and the yank will overwrite the
recorded macro. recorded macro.
Note: The recording happens while you type, replaying
the register happens as if the keys come from a
mapping. This matters, for example, for undo, which
only syncs when commands were typed.
q Stops recording. (Implementation note: The 'q' that q Stops recording. (Implementation note: The 'q' that
stops recording is not stored in the register, unless stops recording is not stored in the register, unless
it was the result of a mapping) it was the result of a mapping)
@@ -137,7 +142,7 @@ q Stops recording. (Implementation note: The 'q' that
used. used.
The register is executed like a mapping, that means The register is executed like a mapping, that means
that the difference between 'wildchar' and 'wildcharm' that the difference between 'wildchar' and 'wildcharm'
applies. applies, and undo might not be synced in the same way.
For "@=" you are prompted to enter an expression. The For "@=" you are prompted to enter an expression. The
result of the expression is then executed. result of the expression is then executed.
See also |@:|. See also |@:|.

View File

@@ -2317,6 +2317,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:debugg repeat.txt /*:debugg* :debugg repeat.txt /*:debugg*
:debuggreedy repeat.txt /*:debuggreedy* :debuggreedy repeat.txt /*:debuggreedy*
:def vim9.txt /*:def* :def vim9.txt /*:def*
:defc vim9.txt /*:defc*
:defcompile vim9.txt /*:defcompile*
:del change.txt /*:del* :del change.txt /*:del*
:delc map.txt /*:delc* :delc map.txt /*:delc*
:delcommand map.txt /*:delcommand* :delcommand map.txt /*:delcommand*
@@ -4253,6 +4255,7 @@ E457 print.txt /*E457*
E458 message.txt /*E458* E458 message.txt /*E458*
E459 message.txt /*E459* E459 message.txt /*E459*
E46 message.txt /*E46* E46 message.txt /*E46*
E460 eval.txt /*E460*
E461 eval.txt /*E461* E461 eval.txt /*E461*
E462 editing.txt /*E462* E462 editing.txt /*E462*
E463 netbeans.txt /*E463* E463 netbeans.txt /*E463*
@@ -4678,6 +4681,7 @@ E855 autocmd.txt /*E855*
E858 eval.txt /*E858* E858 eval.txt /*E858*
E859 eval.txt /*E859* E859 eval.txt /*E859*
E86 windows.txt /*E86* E86 windows.txt /*E86*
E861 popup.txt /*E861*
E862 eval.txt /*E862* E862 eval.txt /*E862*
E863 popup.txt /*E863* E863 popup.txt /*E863*
E864 pattern.txt /*E864* E864 pattern.txt /*E864*
@@ -7700,6 +7704,7 @@ mapmode-v map.txt /*mapmode-v*
mapmode-x map.txt /*mapmode-x* mapmode-x map.txt /*mapmode-x*
mapping map.txt /*mapping* mapping map.txt /*mapping*
mapping-functions usr_41.txt /*mapping-functions* mapping-functions usr_41.txt /*mapping-functions*
mapset() eval.txt /*mapset()*
mark motion.txt /*mark* mark motion.txt /*mark*
mark-functions usr_41.txt /*mark-functions* mark-functions usr_41.txt /*mark-functions*
mark-motions motion.txt /*mark-motions* mark-motions motion.txt /*mark-motions*
@@ -8383,6 +8388,7 @@ popup_findpreview() popup.txt /*popup_findpreview()*
popup_getoptions() popup.txt /*popup_getoptions()* popup_getoptions() popup.txt /*popup_getoptions()*
popup_getpos() popup.txt /*popup_getpos()* popup_getpos() popup.txt /*popup_getpos()*
popup_hide() popup.txt /*popup_hide()* popup_hide() popup.txt /*popup_hide()*
popup_list() popup.txt /*popup_list()*
popup_locate() popup.txt /*popup_locate()* popup_locate() popup.txt /*popup_locate()*
popup_menu() popup.txt /*popup_menu()* popup_menu() popup.txt /*popup_menu()*
popup_menu-shortcut-example popup.txt /*popup_menu-shortcut-example* popup_menu-shortcut-example popup.txt /*popup_menu-shortcut-example*
@@ -9460,6 +9466,7 @@ termdebug-prompt terminal.txt /*termdebug-prompt*
termdebug-starting terminal.txt /*termdebug-starting* termdebug-starting terminal.txt /*termdebug-starting*
termdebug-stepping terminal.txt /*termdebug-stepping* termdebug-stepping terminal.txt /*termdebug-stepping*
termdebug-variables terminal.txt /*termdebug-variables* termdebug-variables terminal.txt /*termdebug-variables*
termdebug_map_K terminal.txt /*termdebug_map_K*
termdebug_popup terminal.txt /*termdebug_popup* termdebug_popup terminal.txt /*termdebug_popup*
termdebug_shortcuts terminal.txt /*termdebug_shortcuts* termdebug_shortcuts terminal.txt /*termdebug_shortcuts*
termdebug_use_prompt terminal.txt /*termdebug_use_prompt* termdebug_use_prompt terminal.txt /*termdebug_use_prompt*

View File

@@ -1,4 +1,4 @@
*terminal.txt* For Vim version 8.2. Last change: 2020 Apr 23 *terminal.txt* For Vim version 8.2. Last change: 2020 May 24
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -161,6 +161,7 @@ terminal windows may be configured using the variable
hexadecimal color codes, similar to those accepted by |highlight-guifg|. When hexadecimal color codes, similar to those accepted by |highlight-guifg|. When
not using GUI colors, the terminal window always uses the 16 ANSI colors of not using GUI colors, the terminal window always uses the 16 ANSI colors of
the underlying terminal. the underlying terminal.
When using `term_start()` the colors can be set with the "ansi_colors" option.
The |term_setansicolors()| function can be used to change the colors, and The |term_setansicolors()| function can be used to change the colors, and
|term_getansicolors()| to get the currently used colors. |term_getansicolors()| to get the currently used colors.
@@ -1305,7 +1306,7 @@ breakpoint, or use the "Clear breakpoint" right-click menu entry.
Inspecting variables ~ Inspecting variables ~
*termdebug-variables* *:Evaluate* *termdebug-variables* *:Evaluate*
`:Evaluate` evaluate the expression under the cursor `:Evaluate` evaluate the expression under the cursor
`K` same `K` same (see |termdebug_map_K| to disable)
`:Evaluate` {expr} evaluate {expr} `:Evaluate` {expr} evaluate {expr}
`:'<,'>Evaluate` evaluate the Visually selected text `:'<,'>Evaluate` evaluate the Visually selected text
@@ -1336,6 +1337,10 @@ in a buffer with 'buftype' set to "prompt". This works slightly differently:
*termdebug_use_prompt* *termdebug_use_prompt*
Prompt mode can be used even when the |+terminal| feature is present with: > Prompt mode can be used even when the |+terminal| feature is present with: >
let g:termdebug_use_prompt = 1 let g:termdebug_use_prompt = 1
<
*termdebug_map_K*
The K key is normally mapped to :Evaluate. If you do not want this use: >
let g:termdebug_map_K = 0
Communication ~ Communication ~

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 8.2. Last change: 2020 May 11 *todo.txt* For Vim version 8.2. Last change: 2020 May 26
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -38,27 +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 -----------------------
Patch to test TERM signal. (Dominique, #6055) Include src/po/vim.pot ?
Include src/po/vim.pot
Vim9 script: Vim9 script:
Make closures work:
- call closure from not compiled context
- Create closure in a loop. Need to make a list of them.
Forward declarations:
- Cleanup when sourcing a script again: all script-local variables, imports
and functions are deleted.
- make sure only constants in declarations are executed, no function calls.
- Declare a variable at script level without an assignment.
let var: string
Error without a type or assignment
let var # error!
Making everything work: Making everything work:
- possible memory leak in test_vim9_func through compile_nested_function.
- memory leaks in test_vim9_expr
- 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.
- 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
defined. defined.
- 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: let [var, var] = expr
@@ -75,16 +67,21 @@ Making everything work:
- 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
- When evaluating constants for script variables, some functions could work:
has('asdf'), len('string')
- Support type for ":let"/":const" at script level for Vim9 script. - Support type for ":let"/":const" at script level for Vim9 script.
(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?
- Disallow unlet for local/script/imported vars - Disallow unlet for local/script/imported vars
- Make "++nr" work. - Make "++nr" work.
- Make closures work:
- Create closure in a loop. Need to make a list of them.
- expandcmd() with `=expr` in filename uses legacy expression. - expandcmd() with `=expr` in filename uses legacy expression.
- eval_expr() in ex_cexpr() - eval_expr() in ex_cexpr()
- eval_expr() call in dbg_parsearg() and debuggy_find() - eval_expr() call in dbg_parsearg() and debuggy_find()
- Make "true" and "false" work in vim9script - has() is compiled as a constant, but some checks are dynamic.
Check for dynamic values, such as "gui_running".
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.
@@ -113,6 +110,7 @@ Also:
- implement class - implement class
- implement interface - implement interface
- predefined class: Promise<T> - predefined class: Promise<T>
- implement enum
- Make accessing varargs faster: arg[expr] - Make accessing varargs faster: arg[expr]
EVAL expr EVAL expr
LOADVARARG (varags idx) LOADVARARG (varags idx)
@@ -125,10 +123,12 @@ Further improvements:
body body
enddef enddef
- compile get_lambda_tv() in popup_add_timeout() - compile get_lambda_tv() in popup_add_timeout()
- inline call to map() and filter()
- compile "skip" argument of searchpair() - compile "skip" argument of searchpair()
- compile "expr" and "call" expression of a channel in channel_exe_cmd()? - compile "expr" and "call" expression of a channel in channel_exe_cmd()?
Popup windows: Popup windows:
- Can put focus in another window using API and "drop". (#6077)
- With some sequence get get hidden finished terminal buffer. (#5768) - With some sequence get get hidden finished terminal buffer. (#5768)
Cannot close popup terminal (#5744) Cannot close popup terminal (#5744)
Buffer can't be wiped, gets status "aF". (#5764) Buffer can't be wiped, gets status "aF". (#5764)
@@ -201,8 +201,12 @@ Terminal emulator window:
background process, the window remains open, because the channel still background process, the window remains open, because the channel still
exists (and output still shows). Perhaps close the window when an explicit exists (and output still shows). Perhaps close the window when an explicit
++close was used? (#5931) ++close was used? (#5931)
- Using "CTRL-W :confirm quite" and selecting "yes" should work like ":quit!".
(Harm te Hennepe, #6129)
- When the job in the terminal doesn't use mouse events, let the scroll wheel - When the job in the terminal doesn't use mouse events, let the scroll wheel
scroll the scrollback, like a terminal does at the shell prompt. #2490 scroll the scrollback, like a terminal does at the shell prompt. #2490
A bit like using CTRL-W N first.
Jump back like with "a" when any key is typed.
And use modeless selection. #2962 And use modeless selection. #2962
- Use CTRL-W CTRL-K to enter a digraph? #5371 - Use CTRL-W CTRL-K to enter a digraph? #5371
- When Vim runs in the terminal and changes the title, the statusline needs to - When Vim runs in the terminal and changes the title, the statusline needs to
@@ -232,8 +236,10 @@ Terminal emulator window:
conversions. conversions.
Error numbers available: Error numbers available:
E453, E454, E460, E489, E491, E610, E611, E653, E453, E454, E489, E610, E611, E653, E856, E857, E861, E900
E856, E857, E861, E900
Patch to fix that typval related code is spread out. (Yegappan Lakshmanan,
#6093)
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:
@@ -254,6 +260,10 @@ Patch to explain use of "%" in :!. (David Briscoe, #5591)
Patch to improve Windows terminal support. (Nobuhiro Takasaki, #5546) Patch to improve Windows terminal support. (Nobuhiro Takasaki, #5546)
Ready to include. Ready to include.
Patch to improve use of Lua path. (Prabir Shrestha, #6098)
Patch to make exepath() work better on MS-Windows. (#6115)
Patch to add "-d" to xxd. (#5616) Patch to add "-d" to xxd. (#5616)
Patch for the Haiku port: #5961 Patch for the Haiku port: #5961
@@ -271,12 +281,17 @@ Patch to support different color for undercurl in cterm.
Patch to support cindent option to handle pragmas differently. Patch to support cindent option to handle pragmas differently.
(Max Rumpf, #5468) (Max Rumpf, #5468)
Patch to add ":syn foldlevel" to use fold level further down the line.
(Brad King, 2016 Oct 19, update 2017 Jan 30, now in #6087)
File marks merging has duplicates since 7.4.1925. (Ingo Karkat, #5733) File marks merging has duplicates since 7.4.1925. (Ingo Karkat, #5733)
Running test_gui and test_gui_init with Motif sometimes kills the window "make test_gui" crashed in submenu_change(). Fix and remove workaround in
manager. Problem with Motif? Now test_gui crashes in submenu_change(). add_pixmap_args().
Athena is OK. Athena is OK.
Motif: Build on Ubuntu can't enter any text in dialog text fields. Motif: Build on Ubuntu can't enter any text in dialog text fields.
Running test_gui and test_gui_init with Motif sometimes kills the window
manager. Problem with Motif?
:map output does not clear the reset of the command line. :map output does not clear the reset of the command line.
(#5623, also see #5962) (#5623, also see #5962)
@@ -287,6 +302,9 @@ Flag in 'formatoptions' is not used in the tests.
Patch to add 'vtp' option. (#5344) Patch to add 'vtp' option. (#5344)
Needs better docs. Is there a better name? Needs better docs. Is there a better name?
Patch to add argument to trim() to only trim start or end of a string.
(Yegappan, #6126)
undo result wrong: Masato Nishihata, #4798 undo result wrong: Masato Nishihata, #4798
Patch for Template string: #4491. New pull: #4634 Patch for Template string: #4491. New pull: #4634
@@ -300,6 +318,14 @@ Patch to delete BeOS code. (#5817) Anyone who wants to keep it?
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
Using mode() when "/pat" is used in Visual mode returns "v" instead of "c",
which is not useful. Return "c/v" instead. And "c/o" when using "d/pat".
#6127
When 'fileignorecase' is set ":e testfile.c" works to edit TestFile.c, but
":find testfile.c" does not ignore case.
Might be related to #6088.
When changing the crypt key the buffer should be considered modified. When changing the crypt key the buffer should be considered modified.
Like when changing 'fileformat'. Save the old key in save_file_ff(). Like when changing 'fileformat'. Save the old key in save_file_ff().
(Ninu-Ciprian Marginean) (Ninu-Ciprian Marginean)
@@ -319,6 +345,8 @@ Patch to add function to return the text used in the quickfix window.
Patch to add readdirex() (Ken Takata, #5619) Patch to add readdirex() (Ken Takata, #5619)
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)
@@ -389,6 +417,9 @@ support combining characters. (Charles Campbell) Also #4687
Add "t" action to settagstack(): truncate and add new entries. (#5405) Add "t" action to settagstack(): truncate and add new entries. (#5405)
When 'relativenumber' is set the line just below a diff change doesn't get
updated. (#6138)
Result of synID() sometimes wrong in help files. (#5252) Result of synID() sometimes wrong in help files. (#5252)
Status line is nut updated when splitting windows. (Marcin Szamotulski, #5496) Status line is nut updated when splitting windows. (Marcin Szamotulski, #5496)
@@ -1329,6 +1360,8 @@ sort() is not stable when using numeric/float sort (Nikolay Pavlov, 2016 Sep
- Add ch_readlines(): for a channel in NL mode, reads as many lines as are - Add ch_readlines(): for a channel in NL mode, reads as many lines as are
available. Should be more efficient than looping over ch_read() with available. Should be more efficient than looping over ch_read() with
ch_status() to check for more. ch_status() to check for more.
- If buffer contents is changed in a callback, set w_redr_status so that it
gets redrawn in redraw_after_callback(). #6120
- Add a separate timeout for opening a socket. Currently it's fixed at 50 - Add a separate timeout for opening a socket. Currently it's fixed at 50
msec, which is too small for a remote connection. (tverniquet, #2130) msec, which is too small for a remote connection. (tverniquet, #2130)
- Problem with stderr on Windows? (Vincent Rischmann, 2016 Aug 31, #1026) - Problem with stderr on Windows? (Vincent Rischmann, 2016 Aug 31, #1026)
@@ -1452,9 +1485,6 @@ Also with latest version.
Cannot delete a file with square brackets with delete(). (#696) Cannot delete a file with square brackets with delete(). (#696)
Patch to add ":syn foldlevel" to use fold level further down the line.
(Brad King, 2016 Oct 19, update 2017 Jan 30)
Completion for input() does not expand environment variables. (chdiza, 2016 Completion for input() does not expand environment variables. (chdiza, 2016
Jul 25, #948) Jul 25, #948)

View File

@@ -1,4 +1,4 @@
*vim9.txt* For Vim version 8.2. Last change: 2020 May 09 *vim9.txt* For Vim version 8.2. Last change: 2020 May 25
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -41,9 +41,10 @@ A secondary goal is to avoid Vim-specific constructs and get closer to
commonly used programming languages, such as JavaScript, TypeScript and Java. commonly used programming languages, such as JavaScript, TypeScript and Java.
The performance improvements can only be achieved by not being 100% backwards The performance improvements can only be achieved by not being 100% backwards
compatible. For example, in a function the arguments are not available in the compatible. For example, making function arguments available in the
"a:" dictionary, because creating that dictionary adds quite a lot of "a:" dictionary adds quite a lot of overhead. In a Vim9 function this
overhead. Other differences are more subtle, such as how errors are handled. dictionary is not available. Other differences are more subtle, such as how
errors are handled.
The Vim9 script syntax and semantics are used in: The Vim9 script syntax and semantics are used in:
- a function defined with the `:def` command - a function defined with the `:def` command
@@ -79,12 +80,16 @@ Vim9 functions ~
A function defined with `:def` is compiled. Execution is many times faster, A function defined with `:def` is compiled. Execution is many times faster,
often 10x to 100x times. often 10x to 100x times.
Many errors are already found when compiling, before the function is called. Many errors are already found when compiling, before the function is executed.
The syntax is strict, to enforce code that is easy to read and understand. The syntax is strict, to enforce code that is easy to read and understand.
`:def` has no extra arguments like `:function` does: "range", "abort", "dict" Compilation is done when the function is first called, or when the
or "closure". A `:def` function always aborts on an error, does not get a `:defcompile` command is encountered in the script where the function was
range passed and cannot be a "dict" function. defined.
`:def` has no options like `:function` does: "range", "abort", "dict" or
"closure". A `:def` function always aborts on an error, does not get a range
passed and cannot be a "dict" function.
The argument types and return type need to be specified. The "any" type can The argument types and return type need to be specified. The "any" type can
be used, type checking will then be done at runtime, like with legacy be used, type checking will then be done at runtime, like with legacy
@@ -118,8 +123,8 @@ search for the function in this order:
- Local to the current scope and outer scopes up to the function scope. - Local to the current scope and outer scopes up to the function scope.
- Local to the current script file. - Local to the current script file.
- Imported functions, see `:import`. - Imported functions, see `:import`.
In all cases the function must be defined before used. To make a call cycle a In all cases the function must be defined before used. That is when it is
global function needs to be used. (TODO: can we fix this?) first called or when `:defcompile` causes the call to be compiled.
The result is that functions and variables without a namespace can always be The result is that functions and variables without a namespace can always be
found in the script, either defined there or imported. Global functions and found in the script, either defined there or imported. Global functions and
@@ -127,57 +132,7 @@ variables could be defined anywhere (good luck finding where!).
Global functions can be still be defined and deleted at nearly any time. In Global functions can be still be defined and deleted at nearly any time. In
Vim9 script script-local functions are defined once when the script is sourced Vim9 script script-local functions are defined once when the script is sourced
and cannot be deleted. and cannot be deleted or replaced.
Four phases when loading a Vim9 script ~
In legacy script the functions are created when encountered, but parsed only
when used. This allows for defining functions in any order and having them
call each other, so long as the function is defined when it is called: >
func One()
call Two()
endfunc
func Two()
if cond
call One() " recursive call
endif
endfunc
call One()
In Vim9 script the functions are compiled. When using the same functions as
the above example it is not possible to compile function One without knowing
that function Two exists. Or this would require a runtime check, which is slow
and does not allow for compile time type checking.
When sourcing a Vim9 script this happens in four phases:
1. Cleanup: If the script was sourced before all script-local variables,
imports and functions are deleted.
2. Discovery: The script is read and declarations of functions, imports and
variables are recognized and the type is parsed. Variable initializers
that are a constant are evaluated, this can also give the type of the
variable.
3. Compilation: Functions are compiled. The script-local functions, imports
and variables from the discovery phase are found and types are checked.
4. Execution: the commands in the script are executed, top to bottom.
Functions are skipped over, they do do not need to be processed again.
Variable initializers are evaluated when encountered. Note that if a
function called earlier has set the value this will be over-written. It is
best to declare variables before where they are used to avoid confusion.
The result is that items defined at the script level can be used anywhere in
the script. This allows for putting the main function at the top: >
def Main()
SubOne()
SubTwo()
enddef
def SubOne()
...
def SubTwo()
...
Note that script-local variables should either have a type defined or have a
constant initializer. Otherwise an error is given for the type being unknown.
Variable declarations with :let and :const ~ Variable declarations with :let and :const ~
@@ -212,8 +167,8 @@ The declaration must be done earlier: >
endif endif
echo inner echo inner
To intentionally use a variable that won't be available later, a block can be To intentionally avoid a variable being available later, a block can be used:
used: > >
{ {
let temp = 'temp' let temp = 'temp'
... ...
@@ -437,7 +392,9 @@ THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
`: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`. [!] is used as with `:function`. Note that in Vim9
script script-local functions cannot be deleted or
redefined.
*:enddef* *:enddef*
:enddef End of a function defined with `:def`. :enddef End of a function defined with `:def`.
@@ -448,6 +405,10 @@ 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. If the script the function is defined in is legacy
script, then script-local variables must be accessed with the "s:" prefix. script, then script-local variables must be accessed with the "s:" prefix.
*:defc* *:defcompile*
:defc[ompile] Compile functions defined in the current script that
were not compiled yet.
This will report errors found during the compilation.
*:disa* *:disassemble* *:disa* *:disassemble*
:disa[ssemble] {func} Show the instructions generated for {func}. :disa[ssemble] {func} Show the instructions generated for {func}.

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin " Vim filetype plugin
" Language: Vim " Language: Vim
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2018 Aug 07 " Last Change: 2020 May 17
" 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")
@@ -12,7 +12,7 @@ endif
let b:did_ftplugin = 1 let b:did_ftplugin = 1
let s:cpo_save = &cpo let s:cpo_save = &cpo
set cpo-=C set cpo&vim
if !exists('*VimFtpluginUndo') if !exists('*VimFtpluginUndo')
func VimFtpluginUndo() func VimFtpluginUndo()
@@ -63,14 +63,14 @@ if !exists("no_plugin_maps") && !exists("no_vim_maps")
let b:did_add_maps = 1 let b:did_add_maps = 1
" Move around functions. " Move around functions.
nnoremap <silent><buffer> [[ m':call search('^\s*fu\%[nction]\>', "bW")<CR> nnoremap <silent><buffer> [[ m':call search('^\s*\(fu\%[nction]\\|def\)\>', "bW")<CR>
vnoremap <silent><buffer> [[ m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "bW")<CR> vnoremap <silent><buffer> [[ m':<C-U>exe "normal! gv"<Bar>call search('^\s*\(fu\%[nction]\\|def\)\>', "bW")<CR>
nnoremap <silent><buffer> ]] m':call search('^\s*fu\%[nction]\>', "W")<CR> nnoremap <silent><buffer> ]] m':call search('^\s*\(fu\%[nction]\\|def\)\>', "W")<CR>
vnoremap <silent><buffer> ]] m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "W")<CR> vnoremap <silent><buffer> ]] m':<C-U>exe "normal! gv"<Bar>call search('^\s*\(fu\%[nction]\\|def\)\>', "W")<CR>
nnoremap <silent><buffer> [] m':call search('^\s*endf\%[unction]\>', "bW")<CR> nnoremap <silent><buffer> [] m':call search('^\s*end\(f\%[unction]\\|def\)\>', "bW")<CR>
vnoremap <silent><buffer> [] m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf\%[unction]\>', "bW")<CR> vnoremap <silent><buffer> [] m':<C-U>exe "normal! gv"<Bar>call search('^\s*end\(f\%[unction]\\|def\)\>', "bW")<CR>
nnoremap <silent><buffer> ][ m':call search('^\s*endf\%[unction]\>', "W")<CR> nnoremap <silent><buffer> ][ m':call search('^\s*end\(f\%[unction]\\|def\)\>', "W")<CR>
vnoremap <silent><buffer> ][ m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf\%[unction]\>', "W")<CR> vnoremap <silent><buffer> ][ m':<C-U>exe "normal! gv"<Bar>call search('^\s*end\(f\%[unction]\\|def\)\>', "W")<CR>
" Move around comments " Move around comments
nnoremap <silent><buffer> ]" :call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR> nnoremap <silent><buffer> ]" :call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>

View File

@@ -0,0 +1,34 @@
" Vim indent file
" Language: ssh config file
" Maintainer: JasonKim <git@jasonk.me>
" Last Change: 2020 May 16
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal autoindent
setlocal indentexpr=GetSshconfigIndent(v:lnum)
setlocal indentkeys=o,O,*<Return>,0=~host\ ,0=~match\ ,0#,!^F
let b:undo_indent = "setlocal autoindent< indentexpr< indentkeys<"
if exists("*GetSshconfigIndent")
finish
endif
function GetSshconfigIndent(lnum)
let sw = shiftwidth()
let prev_lnum = prevnonblank(a:lnum - 1)
let curr_lnum = a:lnum
let prev_line = getline(prev_lnum)
let curr_line = getline(curr_lnum)
if curr_line =~? '^\s*\(host\|match\)\s'
return 0
elseif prev_line =~? '^\s*\(host\|match\)\s'
return sw
else
return indent(prev_lnum)
endif
endfunction

View File

@@ -0,0 +1,53 @@
# vim: set filetype=sshconfig shiftwidth=4 expandtab :
# START_INDENT
Host myhost
User myuser
PasswordAuthentication no
# END_INDENT
# START_INDENT
Host aaa
User bbb
Host ccc
Host ddd
# END_INDENT
# START_INDENT
host aaa
HOST bbb
hoSt ccc
match ddd
MATCH eee
MatCH fff
# END_INDENT
# START_INDENT
Host aaa
User host
PasswordAuthentication no
Host *
User user
PasswordAuthentication no
Host match
User bbb
# END_INDENT
# START_INDENT
Host tab
User myuser
# END_INDENT
# START_INDENT
Host mix
User myuser
# END_INDENT
# START_INDENT
Host aaa
User bbb
Match ccc
User ddd
HostKeyAlgorithms ssh-ed25519
Match eee
# END_INDENT

View File

@@ -0,0 +1,53 @@
# vim: set filetype=sshconfig shiftwidth=4 expandtab :
# START_INDENT
Host myhost
User myuser
PasswordAuthentication no
# END_INDENT
# START_INDENT
Host aaa
User bbb
Host ccc
Host ddd
# END_INDENT
# START_INDENT
host aaa
HOST bbb
hoSt ccc
match ddd
MATCH eee
MatCH fff
# END_INDENT
# START_INDENT
Host aaa
User host
PasswordAuthentication no
Host *
User user
PasswordAuthentication no
Host match
User bbb
# END_INDENT
# START_INDENT
Host tab
User myuser
# END_INDENT
# START_INDENT
Host mix
User myuser
# END_INDENT
# START_INDENT
Host aaa
User bbb
Match ccc
User ddd
HostKeyAlgorithms ssh-ed25519
Match eee
# END_INDENT

View File

@@ -64,14 +64,17 @@
" style) is supported. Thanks Miles Wheeler for reporting. " style) is supported. Thanks Miles Wheeler for reporting.
" 2018/02/07 by Yichao Zhou <broken.zhou AT gmail.com> " 2018/02/07 by Yichao Zhou <broken.zhou AT gmail.com>
" (*) Make indentation more smart in the normal mode " (*) Make indentation more smart in the normal mode
" 2020/04/26 by Yichao Zhou <broken.zhou AT gmail.com>
" (*) Fix a bug related to \[ & \]. Thanks Manuel Boni for
" reporting.
" "
" }}} " }}}
" Document: {{{ " Document: {{{
" "
" To set the following options (ok, currently it's just one), add a line like " For proper latex experience, please put
" let g:tex_indent_items = 1 " let g:tex_flavor = "latex"
" to your ~/.vimrc. " into your vimrc.
" "
" * g:tex_indent_brace " * g:tex_indent_brace
" "
@@ -184,13 +187,18 @@ function! GetTeXIndent() " {{{
let line = substitute(getline(lnum), '\s*%.*', '','g') " last line let line = substitute(getline(lnum), '\s*%.*', '','g') " last line
let cline = substitute(getline(v:lnum), '\s*%.*', '', 'g') " current line let cline = substitute(getline(v:lnum), '\s*%.*', '', 'g') " current line
let ccol = 1
while cline[ccol] =~ '\s'
let ccol += 1
endwhile
" We are in verbatim, so do what our user what. " We are in verbatim, so do what our user what.
if synIDattr(synID(v:lnum, indent(v:lnum), 1), "name") == "texZone" if synIDattr(synID(v:lnum, ccol, 1), "name") == "texZone"
if empty(cline) if empty(cline)
return indent(lnum) return indent(lnum)
else else
return indent(v:lnum) return indent(v:lnum)
end endif
endif endif
if lnum == 0 if lnum == 0
@@ -253,13 +261,13 @@ function! GetTeXIndent() " {{{
let stay = 0 let stay = 0
endif endif
if cline =~ '^\s*\\\?[\]}]' && s:CheckPairedIsLastCharacter(v:lnum, indent(v:lnum)) if cline =~ '^\s*\\\?[\]}]' && s:CheckPairedIsLastCharacter(v:lnum, ccol)
let ind -= shiftwidth() let ind -= shiftwidth()
let stay = 0 let stay = 0
endif endif
if line !~ '^\s*\\\?[\]}]' if line !~ '^\s*\\\?[\]}]'
for i in range(indent(lnum)+1, strlen(line)-1) for i in range(1, strlen(line)-1)
let char = line[i] let char = line[i]
if char == ']' || char == '}' if char == ']' || char == '}'
if s:CheckPairedIsLastCharacter(lnum, i) if s:CheckPairedIsLastCharacter(lnum, i)

View File

@@ -1,6 +1,6 @@
" Vim script to work like "less" " Vim script to work like "less"
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2017 Mar 31 " Last Change: 2020 May 18
" Avoid loading this file twice, allow the user to define his own script. " Avoid loading this file twice, allow the user to define his own script.
if exists("loaded_less") if exists("loaded_less")
@@ -66,8 +66,8 @@ endif
" When reading from stdin don't consider the file modified. " When reading from stdin don't consider the file modified.
au VimEnter * set nomod au VimEnter * set nomod
" Can't modify the text " Can't modify the text or write the file.
set noma set nomodifiable readonly
" Give help " Give help
noremap h :call <SID>Help()<CR> noremap h :call <SID>Help()<CR>

View File

@@ -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 Feb 19 " Last Change: 2020 May 22
" "
" 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
@@ -657,8 +657,10 @@ func s:InstallCommands()
command Source call s:GotoSourcewinOrCreateIt() command Source call s:GotoSourcewinOrCreateIt()
command Winbar call s:InstallWinbar() command Winbar call s:InstallWinbar()
" TODO: can the K mapping be restored? if !exists('g:termdebug_map_K') || g:termdebug_map_K
let s:k_map_saved = maparg('K', 'n', 0, 1)
nnoremap K :Evaluate<CR> nnoremap K :Evaluate<CR>
endif
if has('menu') && &mouse != '' if has('menu') && &mouse != ''
call s:InstallWinbar() call s:InstallWinbar()
@@ -708,7 +710,10 @@ func s:DeleteCommands()
delcommand Source delcommand Source
delcommand Winbar delcommand Winbar
nunmap K if exists('s:k_map_saved')
call mapset('n', 0, s:k_map_saved)
unlet s:k_map_saved
endif
if has('menu') if has('menu')
" Remove the WinBar entries from all windows where it was added. " Remove the WinBar entries from all windows where it was added.

View File

@@ -1,10 +1,10 @@
" Vim syntax file " Vim syntax file
" Language: Groovy " Language: Groovy
" Original Author: Alessio Pace <billy.corgan@tiscali.it> " Original Author: Alessio Pace <billy.corgan AT tiscali.it>
" Maintainer: Tobias Rapp <yahuxo@gmx.de> " Maintainer: Tobias Rapp <yahuxo+vim AT mailbox.org>
" Version: 0.1.16 " Version: 0.1.17
" URL: http://www.vim.org/scripts/script.php?script_id=945 " URL: http://www.vim.org/scripts/script.php?script_id=945
" Last Change: 2016 May 23 " Last Change: 2020 May 26
" THE ORIGINAL AUTHOR'S NOTES: " THE ORIGINAL AUTHOR'S NOTES:
" "
@@ -253,7 +253,7 @@ if exists("groovy_regex_strings")
endif endif
" syn region groovyELExpr start=+${+ end=+}+ keepend contained " syn region groovyELExpr start=+${+ end=+}+ keepend contained
syn match groovyELExpr /\${.\{-}}/ contained syn match groovyELExpr /\${.\{-}}/ contained
syn match groovyELExpr /\$[a-zA-Z_][a-zA-Z0-9_.]*/ contained syn match groovyELExpr /\$[a-zA-Z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\uFFFE_][a-zA-Z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\uFFFE0-9_.]*/ contained
hi def link groovyELExpr Identifier hi def link groovyELExpr Identifier
" TODO: better matching. I am waiting to understand how it really works in groovy " TODO: better matching. I am waiting to understand how it really works in groovy

View File

@@ -7,7 +7,7 @@
" (ss) repaired several quoting and grouping glitches " (ss) repaired several quoting and grouping glitches
" (ss) fixed regex parsing issue with multiple qualifiers [gi] " (ss) fixed regex parsing issue with multiple qualifiers [gi]
" (ss) additional factoring of keywords, globals, and members " (ss) additional factoring of keywords, globals, and members
" Last Change: 2019 Sep 27 " Last Change: 2020 May 14
" 2013 Jun 12: adjusted javaScriptRegexpString (Kevin Locke) " 2013 Jun 12: adjusted javaScriptRegexpString (Kevin Locke)
" 2018 Apr 14: adjusted javaScriptRegexpString (LongJohnCoder) " 2018 Apr 14: adjusted javaScriptRegexpString (LongJohnCoder)
@@ -77,10 +77,10 @@ else
syn match javaScriptParens "[()]" syn match javaScriptParens "[()]"
endif endif
syn sync fromstart
syn sync maxlines=100
if main_syntax == "javascript" if main_syntax == "javascript"
syn sync fromstart
syn sync maxlines=100
syn sync ccomment javaScriptComment syn sync ccomment javaScriptComment
endif endif

View File

@@ -3,7 +3,7 @@
" Language: SPEC: Build/install scripts for Linux RPM packages " Language: SPEC: Build/install scripts for Linux RPM packages
" Maintainer: Igor Gnatenko i.gnatenko.brain@gmail.com " Maintainer: Igor Gnatenko i.gnatenko.brain@gmail.com
" Former Maintainer: Donovan Rebbechi elflord@panix.com (until March 2014) " Former Maintainer: Donovan Rebbechi elflord@panix.com (until March 2014)
" Last Change: 2020 Feb 07 " Last Change: 2020 May 25
" 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")
@@ -128,6 +128,8 @@ syn case match
"sh-like comment stile, only valid in script part "sh-like comment stile, only valid in script part
syn match shComment contained '#.*$' syn match shComment contained '#.*$'
syn region dnlComment matchgroup=specComment start=+%dnl+ end=+$+
syn region shQuote1 contained matchgroup=shQuoteDelim start=+'+ skip=+\\'+ end=+'+ contains=specMacroIdentifier syn region shQuote1 contained matchgroup=shQuoteDelim start=+'+ skip=+\\'+ end=+'+ contains=specMacroIdentifier
syn region shQuote2 contained matchgroup=shQuoteDelim start=+"+ skip=+\\"+ end=+"+ contains=specVariables,specMacroIdentifier syn region shQuote2 contained matchgroup=shQuoteDelim start=+"+ skip=+\\"+ end=+"+ contains=specVariables,specMacroIdentifier
@@ -173,6 +175,7 @@ endif
"sh colors "sh colors
hi def link shComment Comment hi def link shComment Comment
hi def link dnlComment Comment
hi def link shIf Statement hi def link shIf Statement
hi def link shOperator Special hi def link shOperator Special
hi def link shQuote1 String hi def link shQuote1 String

View File

@@ -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: Jan 24, 2020 " Last Change: May 19, 2020
" Version: 116 " Version: 117
" 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
@@ -1057,6 +1057,7 @@ if has("conceal") && &enc == 'utf-8'
call s:SuperSub('texSuperscript','\^','R','ᴿ') call s:SuperSub('texSuperscript','\^','R','ᴿ')
call s:SuperSub('texSuperscript','\^','T','ᵀ') call s:SuperSub('texSuperscript','\^','T','ᵀ')
call s:SuperSub('texSuperscript','\^','U','ᵁ') call s:SuperSub('texSuperscript','\^','U','ᵁ')
call s:SuperSub('texSuperscript','\^','V','ⱽ')
call s:SuperSub('texSuperscript','\^','W','ᵂ') call s:SuperSub('texSuperscript','\^','W','ᵂ')
call s:SuperSub('texSuperscript','\^',',','︐') call s:SuperSub('texSuperscript','\^',',','︐')
call s:SuperSub('texSuperscript','\^',':','︓') call s:SuperSub('texSuperscript','\^',':','︓')

View File

@@ -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 <NcampObell@SdrPchip.AorgM-NOSPAM>
" Last Change: Apr 15, 2020 " Last Change: May 26, 2020
" Version: 8.0-33 " Version: 8.0-35
" 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
@@ -228,7 +228,7 @@ syn cluster vimOperGroup contains=vimEnvvar,vimFunc,vimFuncVar,vimOper,vimOperPa
syn match vimOper "\%#=1\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile syn match vimOper "\%#=1\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile
syn match vimOper "\(\<is\|\<isnot\)[?#]\{0,2}\>" skipwhite nextgroup=vimString,vimSpecFile syn match vimOper "\(\<is\|\<isnot\)[?#]\{0,2}\>" skipwhite nextgroup=vimString,vimSpecFile
syn match vimOper "||\|&&\|[-+.!]" skipwhite nextgroup=vimString,vimSpecFile syn match vimOper "||\|&&\|[-+.!]" skipwhite nextgroup=vimString,vimSpecFile
syn region vimOperParen matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup syn region vimOperParen matchgroup=vimParenSep start="(" end=")" contains=vimoperStar,@vimOperGroup
syn region vimOperParen matchgroup=vimSep start="{" end="}" contains=@vimOperGroup nextgroup=vimVar,vimFuncVar syn region vimOperParen matchgroup=vimSep start="{" end="}" contains=@vimOperGroup nextgroup=vimVar,vimFuncVar
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noopererror") if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noopererror")
syn match vimOperError ")" syn match vimOperError ")"
@@ -300,7 +300,7 @@ syn match vimComment excludenl +\s#[^{].*$+lc=1 contains=@vimCommentGroup,vimCom
syn match vimComment +\<endif\s\+#[^{].*$+lc=5 contains=@vimCommentGroup,vimCommentString syn match vimComment +\<endif\s\+#[^{].*$+lc=5 contains=@vimCommentGroup,vimCommentString
syn match vimComment +\<else\s\+#[^{].*$+lc=4 contains=@vimCommentGroup,vimCommentString syn match vimComment +\<else\s\+#[^{].*$+lc=4 contains=@vimCommentGroup,vimCommentString
" Vim9 comment inside expression " Vim9 comment inside expression
syn match vim9Comment +\s\zs#[^{].*$+ contains=@vimCommentGroup,vimCommentString syn match vim9Comment +\s\zs#[^{].*$+ms=s+1 contains=@vimCommentGroup,vimCommentString
" Environment Variables: {{{2 " Environment Variables: {{{2
" ===================== " =====================
@@ -321,7 +321,7 @@ syn region vimString oneline keepend start=+[^a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"
syn region vimString oneline keepend start=+[^a-zA-Z>!\\@]'+lc=1 end=+'+ syn region vimString oneline keepend start=+[^a-zA-Z>!\\@]'+lc=1 end=+'+
syn region vimString oneline start=+=!+lc=1 skip=+\\\\\|\\!+ end=+!+ contains=@vimStringGroup syn region vimString oneline start=+=!+lc=1 skip=+\\\\\|\\!+ end=+!+ contains=@vimStringGroup
syn region vimString oneline start="=+"lc=1 skip="\\\\\|\\+" end="+" contains=@vimStringGroup syn region vimString oneline start="=+"lc=1 skip="\\\\\|\\+" end="+" contains=@vimStringGroup
syn region vimString oneline start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/" contains=@vimStringGroup "syn region vimString oneline start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/" contains=@vimStringGroup
syn match vimString contained +"[^"]*\\$+ skipnl nextgroup=vimStringCont syn match vimString contained +"[^"]*\\$+ skipnl nextgroup=vimStringCont
syn match vimStringCont contained +\(\\\\\|.\)\{-}[^\\]"+ syn match vimStringCont contained +\(\\\\\|.\)\{-}[^\\]"+
@@ -932,6 +932,7 @@ if !exists("skip_vim_syntax_inits")
hi def link vimNumber Number hi def link vimNumber Number
hi def link vimOperError Error hi def link vimOperError Error
hi def link vimOper Operator hi def link vimOper Operator
hi def link vimOperStar vimOper
hi def link vimOption PreProc hi def link vimOption PreProc
hi def link vimParenSep Delimiter hi def link vimParenSep Delimiter
hi def link vimPatSepErr vimError hi def link vimPatSepErr vimError