Files
Doug Kearns 9e4e00710c patch 9.2.0910: runtime(vim): Update syntax, contain Ex commands
Problem:  Vim Syntax Script can be improved
Solution: Rework syntax script, update syntax tests and unit tests
          (Doug Kearns).

- Contain Ex commands to valid syntactic contexts.
- Add full address (:range) matching.
- Match :Next, :Print, :X, :global, :&, :~, :>, :<, :# and := commands.
- Match text input commands with folding.

Use :syn-keyword to match all commands except when immediately following
\w range characters where :syn-match is employed.

fixes:  #20250 (variables with s_ prefix are wrongly highlighted)
fixes:  #17543 (do not highlight vim commands within :runtime)
fixes:  #16937 (do not highlight vim commands after packadd)
fixes:  #14895 (incorrect highlighting of Vim syntax)
fixes:  #14020 (insert commands)
closes: #19331

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-08-04 21:00:38 +00:00

1256 lines
18 KiB
VimL

" Ex commands
:help
:help
: help
: help
:&
:~
:@
" :*
:>
:<
:#
:=
:!
:Next
:Print
:X
:append
text
.
:abbreviate
:abclear
:aboveleft
:all
:amenu
:anoremenu
:argadd
:argdedupe
:argdelete
:argdo
:argedit
:argglobal
:arglocal
:args
:argument
:ascii
:augroup Foo
:augroup END
:aunmenu
:autocmd
:badd
:ball
:balt
:bdelete
:behave mswin
:behave xterm
:belowright
:bfirst
:blast
:bmodified
:bnext
:bNext
:botright
:bprevious
:break
:breakadd
:breakdel
:breaklist
:brewind
:browse
:bufdo
:buffer
:buffers
:bunload
:bwipeout
:change
text
.
:cabbrev
:cabclear
:cabove
:caddbuffer
:caddexpr
:caddfile
:cafter
:call
:catch
:cbefore
:cbelow
:cbottom
:cbuffer
:cc
:cclose
:cd
:cdo
:center
:cexpr
:cfdo
:cfile
:cfirst
:cgetbuffer
:cgetexpr
:cgetfile
:changes
:chdir
:checkpath
:checktime
:chistory
:clast
:clearjumps
:clist
:close
:cmap
:cmapclear
:cmenu
:cnewer
:cnext
:cNext
:cnfile
:cNfile
:cnoreabbrev
:cnoremap
:cnoremenu
:colder
:colorscheme
:comclear
:command
:compiler
:confirm
:const
:continue
:copen
:copy
:cpfile
:cprevious
:cquit
:crewind
:cscope
:cstag
:cunabbrev
:cunmap
:cunmenu
:cwindow
:debug
:debuggreedy
:def
:defcompile
:defer
:delcommand
:delete
:delfunction
:delmarks
:diffget
:diffoff
:diffpatch
:diffput
:diffsplit
:diffthis
:diffupdate
:digraphs
:disassemble
:display
:djump
:dlist
:doautoall
:doautocmd
:drop
:dsearch
:dsplit
:earlier
:echo
:echoconsole
:echoerr
:echohl
:echomsg
:echon
:echowindow
:edit
:else
:elseif
:emenu
:enddef
:endfor
:endfunction
:endif
:endtry
:endwhile
:enew
:eval
:ex
:execute
:exit
:exusage
:file
:files
:filetype
:filter
:final
:finally
:find
:finish
:first
:fixdel
:fold
:foldclose
:folddoclosed
:folddoopen
:foldopen
:for foo in bar | endfor
:function
:global
:goto
:grep
:grepadd
:gui
:gvim
:hardcopy
:help
:helpclose
:helpfind
:helpgrep
:helptags
:hide
:highlight
:history
:horizontal
:insert
text
.
:iabbrev
:iabclear
:if
:ijump
:ilist
:imap
:imapclear
:imenu
:import
:inoreabbrev
:inoremap
:inoremenu
:intro
:isearch
:isplit
:iunabbrev
:iunmap
:iunmenu
:join
:jumps
:k
:keepalt
:keepjumps
:keepmarks
:keeppatterns
:labove
:laddbuffer
:laddexpr
:laddfile
:lafter
:language
:last
:later
:lbefore
:lbelow
:lbottom
:lbuffer
:lcd
:lchdir
:lclose
:lcscope
:ldo
:left
:leftabove
:legacy
:let
:lexpr
:lfdo
:lfile
:lfirst
:lgetbuffer
:lgetexpr
:lgetfile
:lgrep
:lgrepadd
:lhelpgrep
:lhistory
:list
:ll
:llast
:llist
:lmake
:lmap
:lmapclear
:lnewer
:lnext
:lNext
:lnfile
:lNfile
:lnoremap
" :loadkeymap " disabled - runs until EOF
:loadview
:lockmarks
:lockvar
:lolder
:lopen
:lpfile
:lprevious
:lrewind
:ls
:ltag
:lua
:luado
:luafile
:lunmap
:lvimgrep
:lvimgrepadd
:lwindow
:make
:map
:mapclear
:mark
:marks
:match
:menu
:menutranslate
:messages
:mkexrc
:mksession
:mkspell
:mkview
:mkvimrc
:mode
:move
:mzfile
:mzscheme
:nbclose
:nbkey
:nbstart
:new
:next
:nmap
:nmapclear
:nmenu
:nnoremap
:nnoremenu
:noautocmd
:nohlsearch
:noreabbrev
:noremap
:noremenu
:normal
:noswapfile
:number
:nunmap
:nunmenu
:oldfiles
:omap
:omapclear
:omenu
:only
:onoremap
:onoremenu
:open
:options
:ounmap
:ounmenu
:ownsyntax
:packadd
:packloadall
:pclose
:pedit
:perl
:perldo
:pop
:popup
:ppop
:preserve
:previous
:print
:profdel
:profile
:promptfind
:promptrepl
:psearch
:ptag
:ptfirst
:ptjump
:ptlast
:ptnext
:ptNext
:ptprevious
:ptrewind
:ptselect
:put
:pwd
:py3
:py3do
:py3file
:pydo
:pyfile
:python
:python3
:pythonx
:pyx
:pyxdo
:pyxfile
:qall
:quit
:quitall
:read
:recover
:redir
:redo
:redraw
:redrawstatus
:redrawtabline
:registers
:resize
:retab
:return
:rewind
:right
:rightbelow
:ruby
:rubydo
:rubyfile
:rundo
:runtime
:rviminfo
:sall
:sandbox
:sargument
:saveas
:sball
:sbfirst
:sblast
:sbmodified
:sbnext
:sbNext
:sbprevious
:sbrewind
:sbuffer
:scriptencoding
:scriptnames
:scriptversion
:scscope
:set
:setfiletype
:setglobal
:setlocal
:sfind
:sfirst
:shell
:sign
:silent
:simalt
:slast
:sleep
:smagic
:smap
:smapclear
:smenu
:smile
:snext
:sNext
:snomagic
:snoremap
:snoremenu
:sort
:source
:spelldump
:spellgood
:spellinfo
:spellrare
:spellrepall
:spellundo
:spellwrong
:split
:sprevious
:srewind
:stag
:startgreplace
:startinsert
:startreplace
:stjump
:stop
:stopinsert
:stselect
:substitute
:sunhide
:sunmap
:sunmenu
:suspend
:sview
:swapname
:syncbind
:syntax
:syntime
:t
:tab
:tabclose
:tabdo
:tabedit
:tabfind
:tabfirst
:tablast
:tabmove
:tabnew
:tabnext
:tabNext
:tabonly
:tabprevious
:tabrewind
:tabs
:tag
:tags
:tcd
:tchdir
:tcl
:tcldo
:tclfile
:tearoff
:terminal
:tfirst
:throw
:tjump
:tlast
:tlmenu
:tlnoremenu
:tlunmenu
:tmap
:tmapclear
:tmenu
:tnext
:tNext
:tnoremap
:topleft
:tprevious
:trewind
:try
:tselect
:tunmap
:tunmenu
:unabbreviate
:undo
:undojoin
:undolist
:unhide
:uniq
:unlet
:unlockvar
:unmap
:unmenu
:unsilent
:update
:verbose
:version
:vertical
:vglobal
:view
:vim9cmd
:vimgrep
:vimgrepadd
:visual
:viusage
:vmap
:vmapclear
:vmenu
:vnew
:vnoremap
:vnoremenu
:vsplit
:vunmap
:vunmenu
:wall
:while
:wincmd
:windo
:winpos
:winsize
:wnext
:wNext
:wprevious
:wq
:wqall
:write
:wundo
:wviminfo
:xall
:xit
:xmap
:xmapclear
:xmenu
:xnoremap
:xnoremenu
:xrestore
:xunmap
:xunmenu
:yank
:z
call Foo()|help
call Foo() |help
call Foo()| help
call Foo() | help
call Foo() |:help
call Foo() | :help
call Foo() |: help
call Foo() | : help
call Foo() | &
call Foo() | ~
call Foo() | @
" call Foo() | :*
call Foo() | >
call Foo() | <
call Foo() | #
call Foo() | =
call Foo() | !
call Foo() | Next
call Foo() | Print
call Foo() | X
call Foo() | append
text
.
call Foo() | abbreviate
call Foo() | abclear
call Foo() | aboveleft
call Foo() | all
call Foo() | amenu
call Foo() | anoremenu
call Foo() | argadd
call Foo() | argdedupe
call Foo() | argdelete
call Foo() | argdo
call Foo() | argedit
call Foo() | argglobal
call Foo() | arglocal
call Foo() | args
call Foo() | argument
call Foo() | ascii
call Foo() | augroup Foo
call Foo() | augroup END
call Foo() | aunmenu
call Foo() | autocmd
call Foo() | badd
call Foo() | ball
call Foo() | balt
call Foo() | bdelete
call Foo() | behave mswin
call Foo() | behave xterm
call Foo() | belowright
call Foo() | bfirst
call Foo() | blast
call Foo() | bmodified
call Foo() | bnext
call Foo() | bNext
call Foo() | botright
call Foo() | bprevious
call Foo() | break
call Foo() | breakadd
call Foo() | breakdel
call Foo() | breaklist
call Foo() | brewind
call Foo() | browse
call Foo() | bufdo
call Foo() | buffer
call Foo() | buffers
call Foo() | bunload
call Foo() | bwipeout
call Foo() | change
text
.
call Foo() | cabbrev
call Foo() | cabclear
call Foo() | cabove
call Foo() | caddbuffer
call Foo() | caddexpr
call Foo() | caddfile
call Foo() | cafter
call Foo() | call
call Foo() | catch
call Foo() | cbefore
call Foo() | cbelow
call Foo() | cbottom
call Foo() | cbuffer
call Foo() | cc
call Foo() | cclose
call Foo() | cd
call Foo() | cdo
call Foo() | center
call Foo() | cexpr
call Foo() | cfdo
call Foo() | cfile
call Foo() | cfirst
call Foo() | cgetbuffer
call Foo() | cgetexpr
call Foo() | cgetfile
call Foo() | changes
call Foo() | chdir
call Foo() | checkpath
call Foo() | checktime
call Foo() | chistory
call Foo() | clast
call Foo() | clearjumps
call Foo() | clist
call Foo() | close
call Foo() | cmap
call Foo() | cmapclear
call Foo() | cmenu
call Foo() | cnewer
call Foo() | cnext
call Foo() | cNext
call Foo() | cnfile
call Foo() | cNfile
call Foo() | cnoreabbrev
call Foo() | cnoremap
call Foo() | cnoremenu
call Foo() | colder
call Foo() | colorscheme
call Foo() | comclear
call Foo() | command
call Foo() | compiler
call Foo() | confirm
call Foo() | const
call Foo() | continue
call Foo() | copen
call Foo() | copy
call Foo() | cpfile
call Foo() | cprevious
call Foo() | cquit
call Foo() | crewind
call Foo() | cscope
call Foo() | cstag
call Foo() | cunabbrev
call Foo() | cunmap
call Foo() | cunmenu
call Foo() | cwindow
call Foo() | debug
call Foo() | debuggreedy
call Foo() | def
call Foo() | defcompile
call Foo() | defer
call Foo() | delcommand
call Foo() | delete
call Foo() | delfunction
call Foo() | delmarks
call Foo() | diffget
call Foo() | diffoff
call Foo() | diffpatch
call Foo() | diffput
call Foo() | diffsplit
call Foo() | diffthis
call Foo() | diffupdate
call Foo() | digraphs
call Foo() | disassemble
call Foo() | display
call Foo() | djump
call Foo() | dlist
call Foo() | doautoall
call Foo() | doautocmd
call Foo() | drop
call Foo() | dsearch
call Foo() | dsplit
call Foo() | earlier
call Foo() | echo
call Foo() | echoconsole
call Foo() | echoerr
call Foo() | echohl
call Foo() | echomsg
call Foo() | echon
call Foo() | echowindow
call Foo() | edit
call Foo() | else
call Foo() | elseif
call Foo() | emenu
call Foo() | enddef
call Foo() | endfor
call Foo() | endfunction
call Foo() | endif
call Foo() | endtry
call Foo() | endwhile
call Foo() | enew
call Foo() | eval
call Foo() | ex
call Foo() | execute
call Foo() | exit
call Foo() | exusage
call Foo() | file
call Foo() | files
call Foo() | filetype
call Foo() | filter
call Foo() | final
call Foo() | finally
call Foo() | find
call Foo() | finish
call Foo() | first
call Foo() | fixdel
call Foo() | fold
call Foo() | foldclose
call Foo() | folddoclosed
call Foo() | folddoopen
call Foo() | foldopen
call Foo() | for foo in bar | endfor
call Foo() | function
call Foo() | global
call Foo() | goto
call Foo() | grep
call Foo() | grepadd
call Foo() | gui
call Foo() | gvim
call Foo() | hardcopy
call Foo() | help
call Foo() | helpclose
call Foo() | helpfind
call Foo() | helpgrep
call Foo() | helptags
call Foo() | hide
call Foo() | highlight
call Foo() | history
call Foo() | horizontal
call Foo() | insert
text
.
call Foo() | iabbrev
call Foo() | iabclear
call Foo() | if
call Foo() | ijump
call Foo() | ilist
call Foo() | imap
call Foo() | imapclear
call Foo() | imenu
call Foo() | import
call Foo() | inoreabbrev
call Foo() | inoremap
call Foo() | inoremenu
call Foo() | intro
call Foo() | isearch
call Foo() | isplit
call Foo() | iunabbrev
call Foo() | iunmap
call Foo() | iunmenu
call Foo() | join
call Foo() | jumps
call Foo() | k
call Foo() | keepalt
call Foo() | keepjumps
call Foo() | keepmarks
call Foo() | keeppatterns
call Foo() | labove
call Foo() | laddbuffer
call Foo() | laddexpr
call Foo() | laddfile
call Foo() | lafter
call Foo() | language
call Foo() | last
call Foo() | later
call Foo() | lbefore
call Foo() | lbelow
call Foo() | lbottom
call Foo() | lbuffer
call Foo() | lcd
call Foo() | lchdir
call Foo() | lclose
call Foo() | lcscope
call Foo() | ldo
call Foo() | left
call Foo() | leftabove
call Foo() | legacy
call Foo() | let
call Foo() | lexpr
call Foo() | lfdo
call Foo() | lfile
call Foo() | lfirst
call Foo() | lgetbuffer
call Foo() | lgetexpr
call Foo() | lgetfile
call Foo() | lgrep
call Foo() | lgrepadd
call Foo() | lhelpgrep
call Foo() | lhistory
call Foo() | list
call Foo() | ll
call Foo() | llast
call Foo() | llist
call Foo() | lmake
call Foo() | lmap
call Foo() | lmapclear
call Foo() | lnewer
call Foo() | lnext
call Foo() | lNext
call Foo() | lnfile
call Foo() | lNfile
call Foo() | lnoremap
" :loadkeymap " disabled - runs until EOF
call Foo() | loadview
call Foo() | lockmarks
call Foo() | lockvar
call Foo() | lolder
call Foo() | lopen
call Foo() | lpfile
call Foo() | lprevious
call Foo() | lrewind
call Foo() | ls
call Foo() | ltag
call Foo() | lua
call Foo() | luado
call Foo() | luafile
call Foo() | lunmap
call Foo() | lvimgrep
call Foo() | lvimgrepadd
call Foo() | lwindow
call Foo() | make
call Foo() | map
call Foo() | mapclear
call Foo() | mark
call Foo() | marks
call Foo() | match
call Foo() | menu
call Foo() | menutranslate
call Foo() | messages
call Foo() | mkexrc
call Foo() | mksession
call Foo() | mkspell
call Foo() | mkview
call Foo() | mkvimrc
call Foo() | mode
call Foo() | move
call Foo() | mzfile
call Foo() | mzscheme
call Foo() | nbclose
call Foo() | nbkey
call Foo() | nbstart
call Foo() | new
call Foo() | next
call Foo() | nmap
call Foo() | nmapclear
call Foo() | nmenu
call Foo() | nnoremap
call Foo() | nnoremenu
call Foo() | noautocmd
call Foo() | nohlsearch
call Foo() | noreabbrev
call Foo() | noremap
call Foo() | noremenu
call Foo() | normal
call Foo() | noswapfile
call Foo() | number
call Foo() | nunmap
call Foo() | nunmenu
call Foo() | oldfiles
call Foo() | omap
call Foo() | omapclear
call Foo() | omenu
call Foo() | only
call Foo() | onoremap
call Foo() | onoremenu
call Foo() | open
call Foo() | options
call Foo() | ounmap
call Foo() | ounmenu
call Foo() | ownsyntax
call Foo() | packadd
call Foo() | packloadall
call Foo() | pclose
call Foo() | pedit
call Foo() | perl
call Foo() | perldo
call Foo() | pop
call Foo() | popup
call Foo() | ppop
call Foo() | preserve
call Foo() | previous
call Foo() | print
call Foo() | profdel
call Foo() | profile
call Foo() | promptfind
call Foo() | promptrepl
call Foo() | psearch
call Foo() | ptag
call Foo() | ptfirst
call Foo() | ptjump
call Foo() | ptlast
call Foo() | ptnext
call Foo() | ptNext
call Foo() | ptprevious
call Foo() | ptrewind
call Foo() | ptselect
call Foo() | put
call Foo() | pwd
call Foo() | py3
call Foo() | py3do
call Foo() | py3file
call Foo() | pydo
call Foo() | pyfile
call Foo() | python
call Foo() | python3
call Foo() | pythonx
call Foo() | pyx
call Foo() | pyxdo
call Foo() | pyxfile
call Foo() | qall
call Foo() | quit
call Foo() | quitall
call Foo() | read
call Foo() | recover
call Foo() | redir
call Foo() | redo
call Foo() | redraw
call Foo() | redrawstatus
call Foo() | redrawtabline
call Foo() | registers
call Foo() | resize
call Foo() | retab
call Foo() | return
call Foo() | rewind
call Foo() | right
call Foo() | rightbelow
call Foo() | ruby
call Foo() | rubydo
call Foo() | rubyfile
call Foo() | rundo
call Foo() | runtime
call Foo() | rviminfo
call Foo() | sall
call Foo() | sandbox
call Foo() | sargument
call Foo() | saveas
call Foo() | sball
call Foo() | sbfirst
call Foo() | sblast
call Foo() | sbmodified
call Foo() | sbnext
call Foo() | sbNext
call Foo() | sbprevious
call Foo() | sbrewind
call Foo() | sbuffer
call Foo() | scriptencoding
call Foo() | scriptnames
call Foo() | scriptversion
call Foo() | scscope
call Foo() | set
call Foo() | setfiletype
call Foo() | setglobal
call Foo() | setlocal
call Foo() | sfind
call Foo() | sfirst
call Foo() | shell
call Foo() | sign
call Foo() | silent
call Foo() | simalt
call Foo() | slast
call Foo() | sleep
call Foo() | smagic
call Foo() | smap
call Foo() | smapclear
call Foo() | smenu
call Foo() | smile
call Foo() | snext
call Foo() | sNext
call Foo() | snomagic
call Foo() | snoremap
call Foo() | snoremenu
call Foo() | sort
call Foo() | source
call Foo() | spelldump
call Foo() | spellgood
call Foo() | spellinfo
call Foo() | spellrare
call Foo() | spellrepall
call Foo() | spellundo
call Foo() | spellwrong
call Foo() | split
call Foo() | sprevious
call Foo() | srewind
call Foo() | stag
call Foo() | startgreplace
call Foo() | startinsert
call Foo() | startreplace
call Foo() | stjump
call Foo() | stop
call Foo() | stopinsert
call Foo() | stselect
call Foo() | substitute
call Foo() | sunhide
call Foo() | sunmap
call Foo() | sunmenu
call Foo() | suspend
call Foo() | sview
call Foo() | swapname
call Foo() | syncbind
call Foo() | syntax
call Foo() | syntime
call Foo() | t
call Foo() | tab
call Foo() | tabclose
call Foo() | tabdo
call Foo() | tabedit
call Foo() | tabfind
call Foo() | tabfirst
call Foo() | tablast
call Foo() | tabmove
call Foo() | tabnew
call Foo() | tabnext
call Foo() | tabNext
call Foo() | tabonly
call Foo() | tabprevious
call Foo() | tabrewind
call Foo() | tabs
call Foo() | tag
call Foo() | tags
call Foo() | tcd
call Foo() | tchdir
call Foo() | tcl
call Foo() | tcldo
call Foo() | tclfile
call Foo() | tearoff
call Foo() | terminal
call Foo() | tfirst
call Foo() | throw
call Foo() | tjump
call Foo() | tlast
call Foo() | tlmenu
call Foo() | tlnoremenu
call Foo() | tlunmenu
call Foo() | tmap
call Foo() | tmapclear
call Foo() | tmenu
call Foo() | tnext
call Foo() | tNext
call Foo() | tnoremap
call Foo() | topleft
call Foo() | tprevious
call Foo() | trewind
call Foo() | try
call Foo() | tselect
call Foo() | tunmap
call Foo() | tunmenu
call Foo() | unabbreviate
call Foo() | undo
call Foo() | undojoin
call Foo() | undolist
call Foo() | unhide
call Foo() | uniq
call Foo() | unlet
call Foo() | unlockvar
call Foo() | unmap
call Foo() | unmenu
call Foo() | unsilent
call Foo() | update
call Foo() | verbose
call Foo() | version
call Foo() | vertical
call Foo() | vglobal
call Foo() | view
call Foo() | vim9cmd
call Foo() | vimgrep
call Foo() | vimgrepadd
call Foo() | visual
call Foo() | viusage
call Foo() | vmap
call Foo() | vmapclear
call Foo() | vmenu
call Foo() | vnew
call Foo() | vnoremap
call Foo() | vnoremenu
call Foo() | vsplit
call Foo() | vunmap
call Foo() | vunmenu
call Foo() | wall
call Foo() | while
call Foo() | wincmd
call Foo() | windo
call Foo() | winpos
call Foo() | winsize
call Foo() | wnext
call Foo() | wNext
call Foo() | wprevious
call Foo() | wq
call Foo() | wqall
call Foo() | write
call Foo() | wundo
call Foo() | wviminfo
call Foo() | xall
call Foo() | xit
call Foo() | xmap
call Foo() | xmapclear
call Foo() | xmenu
call Foo() | xnoremap
call Foo() | xnoremenu
call Foo() | xrestore
call Foo() | xunmap
call Foo() | xunmenu
call Foo() | yank
call Foo() | z
" Vim9-script only
:abstract
:class
:endclass
:endinterface
:endenum
:enum
:export
:final
:interface
:public
:static
:type
:var
call Foo() | abstract
call Foo() | class
call Foo() | endclass
call Foo() | endenum
call Foo() | endinterface
call Foo() | enum
call Foo() | export
call Foo() | final
call Foo() | interface
call Foo() | public
call Foo() | static
call Foo() | type
call Foo() | var
" User commands
Foobar
Foobar!
Foobar123
Foobar123!
Foo123bar
Foo123bar!
:Foobar
:Foobar!
:Foobar123
:Foobar123!
:Foo123bar
:Foo123bar!
call Foo() | Foobar
call Foo() | Foobar!
call Foo() | Foobar123
call Foo() | Foobar123!
call Foo() | Foo123bar
call Foo() | Foo123bar!
call Foo() | :Foobar
call Foo() | :Foobar!
call Foo() | :Foobar123
call Foo() | :Foobar123!
call Foo() | :Foo123bar
call Foo() | :Foo123bar!