diff options
Diffstat (limited to '')
| -rw-r--r-- | README.md | 3 | ||||
| -rw-r--r-- | autoload/vifm/edit.vim | 18 | ||||
| -rw-r--r-- | autoload/vifm/globals.vim | 35 | ||||
| -rw-r--r-- | ftdetect/polyglot.vim | 7 | ||||
| -rw-r--r-- | ftplugin/mail_vifm.vim | 66 | ||||
| -rw-r--r-- | ftplugin/vifm-cmdedit.vim | 23 | ||||
| -rw-r--r-- | ftplugin/vifm-edit.vim | 17 | ||||
| -rw-r--r-- | ftplugin/vifm-rename.vim | 62 | ||||
| -rw-r--r-- | ftplugin/vifm.vim | 50 | ||||
| -rw-r--r-- | packages.yaml | 13 | ||||
| -rwxr-xr-x | scripts/build | 26 | ||||
| -rwxr-xr-x | scripts/test | 12 | ||||
| -rw-r--r-- | scripts/test_filetypes.vim | 189 | ||||
| -rw-r--r-- | syntax/vifm.vim | 485 | 
14 files changed, 218 insertions, 788 deletions
@@ -7,7 +7,7 @@ A collection of language packs for Vim.  > One to rule them all, one to find them, one to bring them all and in the darkness bind them.  - It **won't affect your startup time**, as scripts are loaded only on demand\*. -- It **installs and updates 120+ times faster** than the <!--Package Count-->156<!--/Package Count--> packages it consists of. +- It **installs and updates 120+ times faster** than the <!--Package Count-->155<!--/Package Count--> packages it consists of.  - It is more secure because scripts loaded for all extensions are generated by vim-polyglot (ftdetect).  - Solid syntax and indentation support (other features skipped). Only the best language packs.  - All unnecessary files are ignored (like enormous documentation from php support). @@ -189,7 +189,6 @@ If you need full functionality of any plugin, please use it directly with your p  - [vbnet](https://github.com/vim-scripts/vbnet.vim) (syntax)  - [vcl](https://github.com/smerrill/vcl-vim-plugin) (syntax)  - [velocity](https://github.com/lepture/vim-velocity) (syntax, indent) -- [vifm](https://github.com/vifm/vifm.vim) (syntax, autoload, ftplugin)  - [vue](https://github.com/posva/vim-vue) (syntax, indent, ftplugin)  - [xdc](https://github.com/amal-khailtash/vim-xdc-syntax) (syntax)  - [xml](https://github.com/amadeus/vim-xml) (syntax) diff --git a/autoload/vifm/edit.vim b/autoload/vifm/edit.vim deleted file mode 100644 index 4d97c23b..00000000 --- a/autoload/vifm/edit.vim +++ /dev/null @@ -1,18 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1 - -" common functions for vifm command-line editing buffer filetype plugins -" Maintainer:  xaizek <xaizek@posteo.net> -" Last Change: August 18, 2013 - -" Prepare buffer -function! vifm#edit#Init() -    " Mappings for quick leaving the buffer (behavior similar to Command line -    " buffer in Vim) -    nnoremap <buffer> <cr> :copy 0 \| wq<cr> -    imap <buffer> <cr> <esc><cr> - -    " Start buffer editing in insert mode -    startinsert -endfunction - -endif diff --git a/autoload/vifm/globals.vim b/autoload/vifm/globals.vim deleted file mode 100644 index 5e74abde..00000000 --- a/autoload/vifm/globals.vim +++ /dev/null @@ -1,35 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1 - -" common functions for vifm plugin related to globals -" Maintainer:  xaizek <xaizek@posteo.net> -" Last Change: November 03, 2018 - -" Initializes global variables to defaults unless they are already set -function! vifm#globals#Init() -    if !exists('g:vifm_exec') -        let g:vifm_exec = 'vifm' -    endif - -    if !exists('g:vifm_exec_args') -        let g:vifm_exec_args = '' -    endif - -    if !exists('g:vifm_term') -        if has('win32') -            if filereadable('C:\Windows\system32\cmd.exe') -                let g:vifm_term = 'C:\Windows\system32\cmd.exe /C' -            else -                " If don't find use the integrate shell it work too -                let g:vifm_term = '' -            endif -        else -            let g:vifm_term = 'xterm -e' -        endif -    endif - -    if !exists('g:vifm_embed_term') -        let g:vifm_embed_term = has('gui_running') -    endif -endfunction - -endif diff --git a/ftdetect/polyglot.vim b/ftdetect/polyglot.vim index c1a3fe50..016f1542 100644 --- a/ftdetect/polyglot.vim +++ b/ftdetect/polyglot.vim @@ -1139,13 +1139,6 @@ if index(g:polyglot_disabled, 'vcl') == -1    au BufNewFile,BufRead *.vcl set ft=vcl  endif -if index(g:polyglot_disabled, 'vifm') == -1 -  au BufNewFile,BufRead *.vifm set ft=vifm -  au BufNewFile,BufRead *vifm/colors/* set ft=vifm -  au BufNewFile,BufRead vifmrc set ft=vifm -  au BufNewFile,BufRead vifm.rename* set ft=vifm-rename -endif -  if index(g:polyglot_disabled, 'velocity') == -1    au BufNewFile,BufRead *.vm set ft=velocity  endif diff --git a/ftplugin/mail_vifm.vim b/ftplugin/mail_vifm.vim deleted file mode 100644 index 4896b892..00000000 --- a/ftplugin/mail_vifm.vim +++ /dev/null @@ -1,66 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1 - -" Mail file type extension to pick files for attachments via vifm -" Maintainer:  xaizek <xaizek@posteo.net> -" Last Change: June 22, 2020 - -" Insert attachment picked via vifm after 'Subject' header -function! s:AddMailAttachments() -	call vifm#globals#Init() - -	" XXX: similar code is in plugins/vifm.vim, but it's different in details -	let l:listf = tempname() - -	if !has('nvim') -		if has('gui_running') -			execute 'silent !' g:vifm_term g:vifm_exec -			                 \ '--choose-files' shellescape(l:listf, 1) -			                 \ g:vifm_exec_args -		else -			execute 'silent !' g:vifm_exec -			                 \ '--choose-files' shellescape(l:listf, 1) -			                 \ g:vifm_exec_args -		endif - -		redraw! - -		call s:HandleRunResults(v:shell_error, l:listf) -	else -		" Work around handicapped neovim... -		let callback = { 'listf': l:listf } -		function! callback.on_exit(id, code, event) -			buffer # -			silent! bdelete! # -			call s:HandleRunResults(a:code, self.listf) -		endfunction -		enew -		call termopen(g:vifm_exec . ' --choose-files ' . shellescape(l:listf, 1) -		             \. ' ' . g:vifm_exec_args, callback) - -		startinsert -	endif -endfunction - -function! s:HandleRunResults(exitcode, listf) -	if a:exitcode != 0 -		echoerr 'Got non-zero code from vifm: ' . a:exitcode -		call delete(a:listf) -		return -	endif - -	let l:insert_pos = search('^Subject:', 'nw') - -	if filereadable(a:listf) && l:insert_pos != 0 -		for line in readfile(a:listf) -			call append(l:insert_pos, 'Attach: '.escape(line, " ")) -			let l:insert_pos += 1 -		endfor -	endif -	call delete(a:listf) -endfunction - -nnoremap <buffer> <silent> <localleader>a :call <sid>AddMailAttachments()<cr> - -" vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 : - -endif diff --git a/ftplugin/vifm-cmdedit.vim b/ftplugin/vifm-cmdedit.vim deleted file mode 100644 index 42487b34..00000000 --- a/ftplugin/vifm-cmdedit.vim +++ /dev/null @@ -1,23 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1 - -" vifm command-line editing buffer filetype plugin -" Maintainer:  xaizek <xaizek@posteo.net> -" Last Change: August 18, 2013 - -if exists("b:did_ftplugin") -	finish -endif - -let b:did_ftplugin = 1 - -" Behave as vifm script file -runtime! ftplugin/vifm.vim - -" Use vifm script highlighting -set syntax=vifm - -call vifm#edit#Init() - -" vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 : - -endif diff --git a/ftplugin/vifm-edit.vim b/ftplugin/vifm-edit.vim deleted file mode 100644 index e9362bf7..00000000 --- a/ftplugin/vifm-edit.vim +++ /dev/null @@ -1,17 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1 - -" vifm command-line editing buffer filetype plugin -" Maintainer:  xaizek <xaizek@posteo.net> -" Last Change: August 18, 2013 - -if exists("b:did_ftplugin") -	finish -endif - -let b:did_ftplugin = 1 - -call vifm#edit#Init() - -" vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 : - -endif diff --git a/ftplugin/vifm-rename.vim b/ftplugin/vifm-rename.vim deleted file mode 100644 index 02f6b3c5..00000000 --- a/ftplugin/vifm-rename.vim +++ /dev/null @@ -1,62 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1 - -" Filetype plugin for vifm rename buffer -" Maintainer:  xaizek <xaizek@posteo.net> -" Last Change: October 05, 2014 - -if exists("b:did_ftplugin") -	finish -endif - -let b:did_ftplugin = 1 - -" Copy list of original file names -let s:files = getline(1, '$') - -" Closes window/tab/Vim when buffer is left alone in there -function! s:QuitIfOnlyWindow() -	" Boil out if there is more than one window -	if winbufnr(2) != -1 -		return -	endif - -	" Just close tab with this single window or quit Vim with last tab -	if tabpagenr('$') == 1 -		bdelete -		quit -	else -		close -	endif -endfunction - -" Create a vertical split window for original file names and configure it -belowright vsplit __VifmRenameOrig__ -enew -call setline(1, s:files) -setlocal buftype=nofile -setlocal bufhidden=hide -setlocal noswapfile -setlocal nobuflisted -setlocal cursorbind -setlocal scrollbind -setlocal nocursorline - -" Free now useless list of file names -unlet s:files - -" Setup a hook in auxiliary local window to do not leave it alone, when it's -" useless -augroup VifmRenameAutoCmds -	autocmd! * <buffer> -	autocmd BufEnter <buffer> call s:QuitIfOnlyWindow() -augroup END - -" Go back to the original window and ensure it will remain synchronized with -" the auxiliary one -wincmd w -setlocal cursorbind -setlocal scrollbind - -" vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 : - -endif diff --git a/ftplugin/vifm.vim b/ftplugin/vifm.vim deleted file mode 100644 index abae28b3..00000000 --- a/ftplugin/vifm.vim +++ /dev/null @@ -1,50 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1 - -" vifmrc filetype plugin -" Maintainer:  xaizek <xaizek@posteo.net> -" Last Change: July 08, 2016 -" Based On:    Vim file type file by Bram Moolenaar - -if exists("b:did_ftplugin") -	finish -endif - -let b:did_ftplugin = 1 - -let s:cpo_save = &cpo -set cpo-=C - -let b:undo_ftplugin = "setlocal formatoptions< comments< textwidth< commentstring<" - -" Break comment lines but not other lines -setlocal formatoptions-=t formatoptions+=croql - -" Set comment character -setlocal comments=:\" - -" Format comments to be up to 78 characters long -if &textwidth == 0 -	setlocal textwidth=78 -endif - -" Comments start with a double quote -setlocal commentstring=\"%s - -" Move around comments -nnoremap <silent><buffer> ]" :call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR> -vnoremap <silent><buffer> ]" :<C-U>exe "normal! gv"<Bar>call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR> -nnoremap <silent><buffer> [" :call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR> -vnoremap <silent><buffer> [" :<C-U>exe "normal! gv"<Bar>call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR> - -" Let the matchit plugin know what items can be matched. -if exists("loaded_matchit") -	let b:match_ignorecase = 0 -	let b:match_words = '\<if\>:\<el\%[seif]\>:\<en\%[dif]\>' -endif - -let &cpo = s:cpo_save -unlet s:cpo_save - -" vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 : - -endif diff --git a/packages.yaml b/packages.yaml index 657d2924..dc056fbf 100644 --- a/packages.yaml +++ b/packages.yaml @@ -1215,19 +1215,6 @@ filetypes:  - name: vcl    linguist: VCL  --- -name: vifm -remote: vifm/vifm.vim -filetypes: -- name: vifm -  extensions: -  - vifm -  filenames: -  - vifmrc -  - '*vifm/colors/*' -- name: vifm-rename -  filenames: -  - 'vifm.rename*' ----  name: velocity  remote: lepture/vim-velocity  filetypes: diff --git a/scripts/build b/scripts/build index f1e1a596..54285bfe 100755 --- a/scripts/build +++ b/scripts/build @@ -310,8 +310,34 @@ def generate_ftdetect    File.write('ftdetect/polyglot.vim', output)  end +def generate_tests +  output = <<~EOS +    function! TestFiletype(filetype) +      try +        enew +        exec 'set ft=' . a:filetype +      catch +        echo 'Error loading filetype ' . a:filetype  . ':' +        echo v:exception +        echo v:throwpoint +        exec ':cq!' +      endtry +    endfunction + +  EOS + +  for package in PACKAGES +    for filetype in package.fetch("filetypes", []) +      output << "call TestFiletype('#{filetype["name"]}')\n" +    end +  end + +  File.write('scripts/test_filetypes.vim', output) +end +  download  extract  generate_ftdetect +generate_tests  puts(" Bye! Have a wonderful time!")  FileUtils.rm_rf("tmp") diff --git a/scripts/test b/scripts/test index 853d34b4..084d084a 100755 --- a/scripts/test +++ b/scripts/test @@ -2,18 +2,10 @@  set -e -vim -N --startuptime /dev/stdout -u <( +vim --clean -N -u <(    echo "filetype plugin indent on"    echo "syntax enable"    echo "let &rtp='$PWD,'.&rtp" -  cat ftdetect/polyglot.vim | grep -E 'set ft=[a-z-]+' -o | sort | uniq | awk -F '=' '{ print $2 }' | while read ft; do -    echo "try" -    echo "  enew" -    echo "  set ft=$ft" -    echo "catch" -    echo "  echo v:exception" -    echo "  exec ':cq!'" -    echo "endtry" -  done +  echo "source scripts/test_filetypes.vim"    echo "exec ':q!'"  ) diff --git a/scripts/test_filetypes.vim b/scripts/test_filetypes.vim new file mode 100644 index 00000000..2e9ddf4d --- /dev/null +++ b/scripts/test_filetypes.vim @@ -0,0 +1,189 @@ +function! TestFiletype(filetype) +  try +    enew +    exec 'set ft=' . a:filetype +  catch +    echo 'Error loading filetype ' . a:filetype  . ':' +    echo v:exception +    echo v:throwpoint +    exec ':cq!' +  endtry +endfunction + +call TestFiletype('asl') +call TestFiletype('apiblueprint') +call TestFiletype('applescript') +call TestFiletype('arduino') +call TestFiletype('asciidoc') +call TestFiletype('autohotkey') +call TestFiletype('c') +call TestFiletype('cpp') +call TestFiletype('caddyfile') +call TestFiletype('carp') +call TestFiletype('clojure') +call TestFiletype('cmake') +call TestFiletype('coffee') +call TestFiletype('litcoffee') +call TestFiletype('cryptol') +call TestFiletype('crystal') +call TestFiletype('ecrystal') +call TestFiletype('csv') +call TestFiletype('cucumber') +call TestFiletype('cuesheet') +call TestFiletype('dart') +call TestFiletype('dhall') +call TestFiletype('d') +call TestFiletype('dcov') +call TestFiletype('dd') +call TestFiletype('ddoc') +call TestFiletype('dsdl') +call TestFiletype('Dockerfile') +call TestFiletype('yaml.docker-compose') +call TestFiletype('elixir') +call TestFiletype('elixir') +call TestFiletype('elm') +call TestFiletype('ember-script') +call TestFiletype('emblem') +call TestFiletype('erlang') +call TestFiletype('fennel') +call TestFiletype('ferm') +call TestFiletype('fish') +call TestFiletype('fbs') +call TestFiletype('fsharp') +call TestFiletype('gdscript3') +call TestFiletype('gitconfig') +call TestFiletype('gitrebase') +call TestFiletype('gitsendemail') +call TestFiletype('gitcommit') +call TestFiletype('glsl') +call TestFiletype('gmpl') +call TestFiletype('gnuplot') +call TestFiletype('go') +call TestFiletype('gomod') +call TestFiletype('gohtmltmpl') +call TestFiletype('graphql') +call TestFiletype('groovy') +call TestFiletype('haml') +call TestFiletype('mustache') +call TestFiletype('haproxy') +call TestFiletype('haskell') +call TestFiletype('haxe') +call TestFiletype('hcl') +call TestFiletype('hive') +call TestFiletype('hive') +call TestFiletype('html') +call TestFiletype('i3config') +call TestFiletype('icalendar') +call TestFiletype('idris') +call TestFiletype('ion') +call TestFiletype('javascript') +call TestFiletype('flow') +call TestFiletype('Jenkinsfile') +call TestFiletype('jinja.html') +call TestFiletype('jq') +call TestFiletype('json5') +call TestFiletype('json') +call TestFiletype('jsonnet') +call TestFiletype('jst') +call TestFiletype('javascriptreact') +call TestFiletype('julia') +call TestFiletype('kotlin') +call TestFiletype('ledger') +call TestFiletype('less') +call TestFiletype('lilypond') +call TestFiletype('livescript') +call TestFiletype('llvm') +call TestFiletype('tablegen') +call TestFiletype('log') +call TestFiletype('lua') +call TestFiletype('mako') +call TestFiletype('mma') +call TestFiletype('markdown') +call TestFiletype('markdown.mdx') +call TestFiletype('meson') +call TestFiletype('dosini') +call TestFiletype('moon') +call TestFiletype('nginx') +call TestFiletype('nim') +call TestFiletype('nix') +call TestFiletype('objc') +call TestFiletype('ocaml') +call TestFiletype('omake') +call TestFiletype('opam') +call TestFiletype('oasis') +call TestFiletype('octave') +call TestFiletype('opencl') +call TestFiletype('perl') +call TestFiletype('sql') +call TestFiletype('sql') +call TestFiletype('cql') +call TestFiletype('php') +call TestFiletype('blade') +call TestFiletype('plantuml') +call TestFiletype('pony') +call TestFiletype('powershell') +call TestFiletype('ps1xml') +call TestFiletype('proto') +call TestFiletype('pug') +call TestFiletype('puppet') +call TestFiletype('embeddedpuppet') +call TestFiletype('purescript') +call TestFiletype('python') +call TestFiletype('requirements') +call TestFiletype('qmake') +call TestFiletype('qml') +call TestFiletype('r') +call TestFiletype('rhelp') +call TestFiletype('racket') +call TestFiletype('ragel') +call TestFiletype('raku') +call TestFiletype('raml') +call TestFiletype('razor') +call TestFiletype('reason') +call TestFiletype('rst') +call TestFiletype('ruby') +call TestFiletype('eruby') +call TestFiletype('ruby') +call TestFiletype('brewfile') +call TestFiletype('rust') +call TestFiletype('scala') +call TestFiletype('sbt.scala') +call TestFiletype('scss') +call TestFiletype('sh') +call TestFiletype('zsh') +call TestFiletype('slim') +call TestFiletype('slime') +call TestFiletype('smt2') +call TestFiletype('solidity') +call TestFiletype('stylus') +call TestFiletype('svelte') +call TestFiletype('svg') +call TestFiletype('swift') +call TestFiletype('sxhkdrc') +call TestFiletype('systemd') +call TestFiletype('terraform') +call TestFiletype('textile') +call TestFiletype('thrift') +call TestFiletype('tmux') +call TestFiletype('toml') +call TestFiletype('tptp') +call TestFiletype('html.twig') +call TestFiletype('xml.twig') +call TestFiletype('typescript') +call TestFiletype('typescriptreact') +call TestFiletype('unison') +call TestFiletype('v') +call TestFiletype('vala') +call TestFiletype('vbnet') +call TestFiletype('vcl') +call TestFiletype('velocity') +call TestFiletype('vue') +call TestFiletype('xdc') +call TestFiletype('xml') +call TestFiletype('xsl') +call TestFiletype('yaml') +call TestFiletype('yaml.ansible') +call TestFiletype('helm') +call TestFiletype('zephir') +call TestFiletype('zig') +call TestFiletype('zir') diff --git a/syntax/vifm.vim b/syntax/vifm.vim deleted file mode 100644 index 224cdf48..00000000 --- a/syntax/vifm.vim +++ /dev/null @@ -1,485 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1 - -" vifm syntax file -" Maintainer:  xaizek <xaizek@posteo.net> -" Last Change: August 8, 2020 -" Inspired By: Vim syntax file by Dr. Charles E. Campbell, Jr. - -if exists('b:current_syntax') -	finish -endif - -let b:current_syntax = 'vifm' - -let s:cpo_save = &cpo -set cpo-=C - -" General commands -syntax keyword vifmCommand contained -		\ alink apropos bmark bmarks bmgo cds change chmod chown clone compare -		\ cope[n] co[py] cq[uit] d[elete] delbmarks delm[arks] delsession di[splay] -		\ dirs e[dit] el[se] empty en[dif] exi[t] file fin[d] fini[sh] go[to] gr[ep] -		\ h[elp] hideui histnext his[tory] histprev jobs locate ls lstrash marks -		\ media mes[sages] mkdir m[ove] noh[lsearch] on[ly] popd pushd pu[t] pw[d] -		\ qa[ll] q[uit] redr[aw] reg[isters] regular rename restart restore rlink -		\ screen sh[ell] siblnext siblprev sor[t] sp[lit] s[ubstitute] tabc[lose] -		\ tabm[ove] tabname tabnew tabn[ext] tabo[nly] tabp[revious] touch tr -		\ trashes tree session sync undol[ist] ve[rsion] vie[w] vifm vs[plit] -		\ winc[md] w[rite] wq wqa[ll] xa[ll] x[it] y[ank] -		\ nextgroup=vifmArgs -syntax keyword vifmCommandCN contained -		\ alink apropos bmark bmarks bmgo cds change chmod chown clone compare -		\ cope[n] co[py] cq[uit] d[elete] delbmarks delm[arks] delsession di[splay] -		\ dirs e[dit] el[se] empty en[dif] exi[t] file fin[d] fini[sh] go[to] gr[ep] -		\ h[elp] hideui histnext his[tory] histprev jobs locate ls lstrash marks -		\ media mes[sages] mkdir m[ove] noh[lsearch] on[ly] popd pushd pu[t] pw[d] -		\ qa[ll] q[uit] redr[aw] reg[isters] regular rename restart restore rlink -		\ screen sh[ell] siblnext siblprev sor[t] sp[lit] s[ubstitute] tabc[lose] -		\ tabm[ove] tabname tabnew tabn[ext] tabo[nly] tabp[revious] touch tr -		\ trashes tree session sync undol[ist] ve[rsion] vie[w] vifm vs[plit] -		\ winc[md] w[rite] wq wqa[ll] xa[ll] x[it] y[ank] -		\ nextgroup=vifmArgsCN - -" commands that might be prepended to a command without changing everything else -syntax keyword vifmPrefixCommands contained windo winrun - -" Map commands -syntax keyword vifmMap contained dm[ap] dn[oremap] du[nmap] map mm[ap] -		\ mn[oremap] mu[nmap] nm[ap] nn[oremap] no[remap] nun[map] qm[ap] qn[oremap] -		\ qun[map] unm[ap] vm[ap] vn[oremap] vu[nmap] -		\ skipwhite nextgroup=vifmMapArgs -syntax keyword vifmCMapAbbr contained ca[bbrev] cm[ap] cnorea[bbrev] cno[remap] -		\ cuna[bbrev] cu[nmap] -		\ skipwhite nextgroup=vifmCMapArgs - -" Other commands -syntax keyword vifmAutocmdCommand contained au[tocmd] nextgroup=vifmAutoEvent -syntax keyword vifmCdCommand contained cd -syntax keyword vifmCmdCommand contained com[mand] nextgroup=vifmCmdCommandName -syntax keyword vifmColoCommand contained colo[rscheme] -syntax keyword vifmHiCommand contained hi[ghlight] -syntax keyword vifmInvertCommand contained invert -syntax keyword vifmLetCommand contained let -syntax keyword vifmUnletCommand contained unl[et] -syntax keyword vifmSetCommand contained se[t] setl[ocal] setg[lobal] -syntax keyword vifmSoCommand contained so[urce] -syntax keyword vifmMarkCommand contained ma[rk] -syntax keyword vifmFtCommand contained filet[ype] filex[type] filev[iewer] -syntax keyword vifmExprCommand contained if ec[ho] elsei[f] exe[cute] -syntax keyword vifmNormalCommand contained norm[al] -		\ nextgroup=vifmColonSubcommand -syntax match vifmPatternCommands contained /\<\(filter\(!\|\>\)\|select\(!\|\>\)\|unselect\>\)/ skipwhite -		\ nextgroup=vifmPattern - -" List of event names for autocommands (case insensitive) -syntax case ignore -syntax keyword vifmAutoEvent contained DirEnter nextgroup=vifmStatementC -syntax case match - -" Builtin functions -syntax match vifmBuiltinFunction -		\ '\(chooseopt\|expand\|executable\|extcached\|filetype\|fnameescape\|getpanetype\|has\|layoutis\|paneisat\|system\|tabpagenr\|term\)\ze(' - -" Operators -syntax match vifmOperator "\(==\|!=\|>=\?\|<=\?\|\.\|-\|+\|&&\|||\)" skipwhite - -" Highlight groups -syntax keyword vifmHiArgs contained cterm ctermfg ctermbg -syntax case ignore -syntax keyword vifmHiGroups contained WildMenu Border Win CmdLine CurrLine -		\ OtherLine Directory Link Socket Device Executable Selected BrokenLink -		\ TopLine TopLineSel StatusLine JobLine SuggestBox Fifo ErrorMsg CmpMismatch -		\ AuxWin OtherWin TabLine TabLineSel TabNr TabNrSel HardLink LineNr OddLine -		\ User1 User2 User3 User4 User5 User6 User7 User8 User9 -syntax keyword vifmHiStyles contained -		\ bold underline reverse inverse standout italic none -syntax keyword vifmHiColors contained black red green yellow blue magenta cyan -		\ white default lightblack lightred lightgreen lightyellow lightblue -		\ lightmagenta lightcyan lightwhite Grey0 NavyBlue DarkBlue Blue3 Blue3_2 -		\ Blue1 DarkGreen DeepSkyBlue4 DeepSkyBlue4_2 DeepSkyBlue4_3 DodgerBlue3 -		\ DodgerBlue2 Green4 SpringGreen4 Turquoise4 DeepSkyBlue3 DeepSkyBlue3_2 -		\ DodgerBlue1 Green3 SpringGreen3 DarkCyan LightSeaGreen DeepSkyBlue2 -		\ DeepSkyBlue1 Green3_2 SpringGreen3_2 SpringGreen2 Cyan3 DarkTurquoise -		\ Turquoise2 Green1 SpringGreen2_2 SpringGreen1 MediumSpringGreen Cyan2 -		\ Cyan1 DarkRed DeepPink4 Purple4 Purple4_2 Purple3 BlueViolet Orange4 -		\ Grey37 MediumPurple4 SlateBlue3 SlateBlue3_2 RoyalBlue1 Chartreuse4 -		\ DarkSeaGreen4 PaleTurquoise4 SteelBlue SteelBlue3 CornflowerBlue -		\ Chartreuse3 DarkSeaGreen4_2 CadetBlue CadetBlue_2 SkyBlue3 SteelBlue1 -		\ Chartreuse3_2 PaleGreen3 SeaGreen3 Aquamarine3 MediumTurquoise -		\ SteelBlue1_2 Chartreuse2 SeaGreen2 SeaGreen1 SeaGreen1_2 Aquamarine1 -		\ DarkSlateGray2 DarkRed_2 DeepPink4_2 DarkMagenta DarkMagenta_2 DarkViolet -		\ Purple Orange4_2 LightPink4 Plum4 MediumPurple3 MediumPurple3_2 SlateBlue1 -		\ Yellow4 Wheat4 Grey53 LightSlateGrey MediumPurple LightSlateBlue Yellow4_2 -		\ DarkOliveGreen3 DarkSeaGreen LightSkyBlue3 LightSkyBlue3_2 SkyBlue2 -		\ Chartreuse2_2 DarkOliveGreen3_2 PaleGreen3_2 DarkSeaGreen3 DarkSlateGray3 -		\ SkyBlue1 Chartreuse1 LightGreen_2 LightGreen_3 PaleGreen1 Aquamarine1_2 -		\ DarkSlateGray1 Red3 DeepPink4_3 MediumVioletRed Magenta3 DarkViolet_2 -		\ Purple_2 DarkOrange3 IndianRed HotPink3 MediumOrchid3 MediumOrchid -		\ MediumPurple2 DarkGoldenrod LightSalmon3 RosyBrown Grey63 MediumPurple2_2 -		\ MediumPurple1 Gold3 DarkKhaki NavajoWhite3 Grey69 LightSteelBlue3 -		\ LightSteelBlue Yellow3 DarkOliveGreen3_3 DarkSeaGreen3_2 DarkSeaGreen2 -		\ LightCyan3 LightSkyBlue1 GreenYellow DarkOliveGreen2 PaleGreen1_2 -		\ DarkSeaGreen2_2 DarkSeaGreen1 PaleTurquoise1 Red3_2 DeepPink3 DeepPink3_2 -		\ Magenta3_2 Magenta3_3 Magenta2 DarkOrange3_2 IndianRed_2 HotPink3_2 -		\ HotPink2 Orchid MediumOrchid1 Orange3 LightSalmon3_2 LightPink3 Pink3 -		\ Plum3 Violet Gold3_2 LightGoldenrod3 Tan MistyRose3 Thistle3 Plum2 -		\ Yellow3_2 Khaki3 LightGoldenrod2 LightYellow3 Grey84 LightSteelBlue1 -		\ Yellow2 DarkOliveGreen1 DarkOliveGreen1_2 DarkSeaGreen1_2 Honeydew2 -		\ LightCyan1 Red1 DeepPink2 DeepPink1 DeepPink1_2 Magenta2_2 Magenta1 -		\ OrangeRed1 IndianRed1 IndianRed1_2 HotPink HotPink_2 MediumOrchid1_2 -		\ DarkOrange Salmon1 LightCoral PaleVioletRed1 Orchid2 Orchid1 Orange1 -		\ SandyBrown LightSalmon1 LightPink1 Pink1 Plum1 Gold1 LightGoldenrod2_2 -		\ LightGoldenrod2_3 NavajoWhite1 MistyRose1 Thistle1 Yellow1 LightGoldenrod1 -		\ Khaki1 Wheat1 Cornsilk1 Grey100 Grey3 Grey7 Grey11 Grey15 Grey19 Grey23 -		\ Grey27 Grey30 Grey35 Grey39 Grey42 Grey46 Grey50 Grey54 Grey58 Grey62 -		\ Grey66 Grey70 Grey74 Grey78 Grey82 Grey85 Grey89 Grey93 - -syntax case match - -" Options -syntax keyword vifmOption contained aproposprg autochpos caseoptions cdpath cd -		\ chaselinks classify columns co confirm cf cpoptions cpo cvoptions -		\ deleteprg dotdirs dotfiles dirsize fastrun fillchars fcs findprg -		\ followlinks fusehome gdefault grepprg histcursor history hi hlsearch hls -		\ iec ignorecase ic iooptions incsearch is laststatus lines locateprg ls -		\ lsoptions lsview mediaprg milleroptions millerview mintimeoutlen number nu -		\ numberwidth nuw previewprg quickview relativenumber rnu rulerformat ruf -		\ runexec scrollbind scb scrolloff sessionoptions ssop so sort sortgroups -		\ sortorder sortnumbers shell sh shellflagcmd shcf shortmess shm showtabline -		\ stal sizefmt slowfs smartcase scs statusline stl suggestoptions syncregs -		\ syscalls tablabel tabscope tabstop timefmt timeoutlen title tm trash -		\ trashdir ts tuioptions to undolevels ul vicmd viewcolumns vifminfo vimhelp -		\ vixcmd wildmenu wmnu wildstyle wordchars wrap wrapscan ws - -" Disabled boolean options -syntax keyword vifmOption contained noautochpos nocf nochaselinks nodotfiles -		\ nofastrun nofollowlinks nohlsearch nohls noiec noignorecase noic -		\ noincsearch nois nolaststatus nols nolsview nomillerview nonumber nonu -		\ noquickview norelativenumber nornu noscrollbind noscb norunexec -		\ nosmartcase noscs nosortnumbers nosyscalls notitle notrash novimhelp -		\ nowildmenu nowmnu nowrap nowrapscan nows - -" Inverted boolean options -syntax keyword vifmOption contained invautochpos invcf invchaselinks invdotfiles -		\ invfastrun invfollowlinks invhlsearch invhls inviec invignorecase invic -		\ invincsearch invis invlaststatus invls invlsview invmillerview invnumber -		\ invnu invquickview invrelativenumber invrnu invscrollbind invscb -		\ invrunexec invsmartcase invscs invsortnumbers invsyscalls invtitle -		\ invtrash invvimhelp invwildmenu invwmnu invwrap invwrapscan invws - -" Expressions -syntax region vifmStatement start='^\(\s\|:\)*' -		\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend -		\ contains=vifmCommand,vifmCmdCommand,vifmCmdCommandSt,vifmMarkCommandSt -		\,vifmFtCommandSt,vifmCMapAbbr,vifmMap,vifmMapSt,vifmCMapSt,vifmExecute -		\,vifmComment,vifmInlineComment,vifmNotComment,vifmExprCommandSt,vifmNormalCommandSt -		\,vifmCdCommandSt,vifmSet,vifmArgument,vifmSoCommandSt,vifmPrefixCommands -		\,vifmAutocmdCommand,vifmAutoEvent,vifmPatternCommands -" Contained statement with highlighting of angle-brace notation. -syntax region vifmStatementCN start='\(\s\|:\)*' -		\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend contained -		\ contains=vifmCommandCN,vifmCmdCommand,vifmCmdCommandSt,vifmMarkCommandSt -		\,vifmFtCommandStN,vifmCMapAbbr,vifmMap,vifmMapSt,vifmCMapSt,vifmExecute -		\,vifmComment,vifmInlineComment,vifmNotComment,vifmExprCommandSt,vifmNormalCommandSt -		\,vifmNotation,vifmCdCommandStN,vifmSetN,vifmArgument,vifmSoCommand -		\,vifmSoCommandStN,vifmInvertCommand,vifmInvertCommandStN,vifmPrefixCommands -		\,vifmLetCN -" Contained statement without highlighting of angle-brace notation. -syntax region vifmStatementC start='\(\s\|:\)*' -		\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend contained -		\ contains=vifmCommand,vifmCmdCommand,vifmCmdCommandSt,vifmMarkCommandSt -		\,vifmFtCommandSt,vifmCMapAbbr,vifmMap,vifmMapSt,vifmCMapSt,vifmExecute -		\,vifmComment,vifmInlineComment,vifmNotComment,vifmExprCommandSt,vifmNormalCommandSt -		\,vifmCdCommandSt,vifmSet,vifmArgument,vifmSoCommand,vifmSoCommandSt -		\,vifmInvertCommand,vifmInvertCommandSt,vifmPrefixCommands -		\,vifmAutocmdCommand,vifmAutoEvent,vifmPatternCommands,vifmLetC,vifmUnletC -syntax region vifmCmdCommandSt start='^\(\s\|:\)*com\%[mand]\>' -		\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend -		\ contains=vifmCmdCommand,vifmComment,vifmInlineComment,vifmNotComment -syntax region vifmCmdCommandName contained start='!\?\s\+[a-zA-Z]\+' end='\ze\s' -		\ skip='\(\s*\\\)\|\(\s*".*$\)' -		\ nextgroup=vifmCmdArgs -syntax region vifmCmdArgs start='\(\s*\n\s*\\\)\?\s*\S\+' -		\ end='\s' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' -		\ contained -		\ contains=vifmColonSubcommand,vifmComment -syntax region vifmColoCommandSt start='^\(\s\|:\)*colo\%[rscheme]\>' end='$' -		\ keepend oneline contains=vifmColoCommand -syntax region vifmInvertCommandSt start='\(\s\|:\)*invert\>' end='$\||' -		\ keepend oneline contains=vifmInvertCommand -syntax region vifmInvertCommandStN start='\(\s\|:\)*invert\>' end='$\||' -		\ contained keepend oneline contains=vifmInvertCommand,vifmNotation -syntax region vifmSoCommandSt start='\(\s\|:\)*so\%[urce]\>' end='$\||' -		\ keepend oneline contains=vifmSoCommand,vifmEnvVar,vifmStringInExpr -syntax region vifmSoCommandStN start='\(\s\|:\)*so\%[urce]\>' end='$\||' -		\ contained keepend oneline -		\ contains=vifmSoCommand,vifmEnvVar,vifmNotation,vifmStringInExpr -syntax region vifmMarkCommandSt start='^\(\s\|:\)*ma\%[rk]\>' end='$' keepend -		\ oneline contains=vifmMarkCommand -syntax region vifmCdCommandSt start='\(\s\|:\)*cd\>' end='$\||' keepend oneline -		\ contains=vifmCdCommand,vifmEnvVar,vifmStringInExpr -" Highlight for :cd command with highlighting of angle-brace notation. -syntax region vifmCdCommandStN start='\(\s\|:\)*cd\>' end='$\||' keepend oneline -		\ contained -		\ contains=vifmCdCommand,vifmEnvVar,vifmNotation,vifmStringInExpr -syntax region vifmFtCommandSt start='\(\s\|:\)*file[tvx]' -		\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend -		\ contains=vifmFtCommand,vifmComment,vifmFtBeginning -syntax region vifmFtCommandStN start='\(\s\|:\)*file[tvx]' -		\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$\|\(<[cC][rR]>\)' keepend -		\ contains=vifmComment,vifmNotation,vifmFtBeginning -syntax region vifmMapSt start='^\(\s\|:\)*\(map\|mm\%[ap]\|mn\%[oremap]\|mu\%[nmap]\|nm\%[ap]\|nn\%[oremap]\|no\%[remap]\|nun\%[map]\|qm\%[ap]\|qn\%[oremap]\|qun\%[map]\|unm\%[ap]\|vm\%[ap]\|vn\%[oremap]\|vu\%[nmap]\)' -		\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend -		\ contains=vifmMap -syntax region vifmCMapSt -		\ start='^\(\s\|:\)*\(cm\%[ap]\|cno\%[remap]\|cu\%[nmap]\)' -		\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend -		\ contains=vifmCMapAbbr -syntax region vifmExprCommandSt -		\ start='\<\(if\|ec\%[ho]\|elsei\%[f]\|exe\%[cute]\)\>' -		\ end='$\||' -		\ contains=vifmExprCommand,vifmString,vifmStringInExpr,vifmBuiltinFunction -		\,vifmOperator,vifmEnvVar,vifmNumber -syntax region vifmNormalCommandSt start='\(\s\|:\)*norm\%[al]\>' end='$' keepend -		\ oneline -		\ contains=vifmNormalCommand,vifmComment -syntax region vifmExecute start='!' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' -		\ keepend -		\ contains=vifmNotation,vifmComment -syntax region vifmMapArgs start='\ze\S\+' -		\ end='\ze.' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' -		\ contained -		\ nextgroup=vifmMapArgList -syntax region vifmCMapArgs start='\S\+' -		\ end='\n\s*\\' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' -		\ contained -		\ contains=vifmMapLhs,vifmMapCRhs -syntax region vifmMapLhs start='\S\+' -		\ end='\ze\s' skip='\(\s*\\\)\|\(\s*".*$\)' -		\ contained -		\ contains=vifmNotation,vifmComment -		\ nextgroup=vifmMapRhs -syntax region vifmMapRhs start='.' -		\ end='\ze<[cC][rR]>' skip='\(\s*\\\)\|\(\s*".*$\)' -		\ contained keepend -		\ contains=vifmNotation,vifmComment,vifmColonSubcommandN -		\ nextgroup=vifmMapRhs -syntax region vifmMapCRhs start='\s' -		\ end='<[cC][rR]>' skip='\(\s*\\\)\|\(\s*".*$\)' -		\ contained keepend -		\ contains=vifmNotation,vifmComment,vifmSubcommandN -syntax region vifmColonSubcommand start='\s*\(\s*\n\s*\\\)\?:\s*\S\+' -		\ end='$' skip='\s*\n\(\s*\\\)\|\(\s*".*$\)' -		\ contained -		\ contains=vifmStatementC -" Contained sub command with highlighting of angle-brace notation. -syntax region vifmColonSubcommandN start='\s*\(\s*\n\s*\\\)\?:\s*\S\+' -		\ end='\ze<[cC][rR]>\|$' skip='\s*\n\(\s*\\\)\|\(\s*".*$\)' keepend -		\ contained -		\ contains=vifmStatementCN -syntax region vifmSubcommandN start='\s*\(\s*\n\s*\\\)\?:\?\s*\S\+' -		\ end='\ze<[cC][rR]>\|$' skip='\s*\n\(\s*\\\)\|\(\s*".*$\)' keepend -		\ contained -		\ contains=vifmStatementCN -" Non-empty pattern or form [!][{]{*.ext,*.e}[}], [!][/]/regex/[/][iI] or -" <mime-type-globs>, possibly multi-line. -" [!]/regexp/[iI]+ -syntax region vifmPattern contained -		\ start='!\?/\ze\(\n\s*\\\|\n\s*".*$\|[^/]\|\\/\)\+/' -		\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='/[iI]*\ze\s\|/\ze\S\+\s' keepend -		\ contains=vifmComment,vifmInlineComment,vifmNotComment,vifmNotPattern -" [!]//regexp//[iI]+ -syntax region vifmPattern contained -		\ start='!\?//\ze\(/[^/]\|\n\s*\\\|\n\s*".*$\|[^/]\|\\/\)\+//' -		\ skip='/[^/]\|\(\n\s*\\\)\|\(\n\s*".*$\)' end='//[iI]*' keepend -		\ contains=vifmComment,vifmInlineComment,vifmNotComment,vifmNotPattern -" [!]{regexp} -syntax region vifmPattern contained -		\ start='!\?{[^}]' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='}' keepend -		\ contains=vifmComment,vifmInlineComment,vifmNotComment,vifmNotPattern -" [!]{{regexp}} -syntax region vifmPattern contained -		\ start='!\?{{\ze.\{-}}}' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='}}' keepend -		\ contains=vifmComment,vifmInlineComment,vifmNotComment,vifmNotPattern -" [!]<regexp> -syntax region vifmPattern contained -		\ start='!\?<[^>]' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='>' keepend -		\ contains=vifmComment,vifmInlineComment,vifmNotComment,vifmNotPattern -syntax match vifmNotPattern contained '!\?\({{}}\|\<//\>\|////\)' -syntax region vifmHi -		\ start='^\(\s\|:\)*\<hi\%[ghlight]\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' -		\ end='$' keepend -		\ contains=vifmHiCommand,vifmHiArgs,vifmHiGroups,vifmHiStyles,vifmHiColors -		\,vifmNumber,vifmComment,vifmInlineComment,vifmNotComment,vifmHiClear -		\,vifmPattern -syntax region vifmFtBeginning contained -		\ start='\<\(filet\%[ype]\|filext\%[ype]\|filev\%[iewer]\)\>\s\+\S' -		\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' -		\ end='\s' keepend -		\ contains=vifmFtCommand,vifmPattern - -" common highlight for :command arguments without highlighting of angle-bracket -" notation -syntax region vifmArgs start='!\?\zs\(\s*\S\+\|[^a-zA-Z]\)' -		\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='|\|$' -		\ contained -		\ contains=vifmStringInExpr -" common highlight for :command arguments with highlighting of angle-bracket -" notation -syntax region vifmArgsCN start='!\?\zs\(\s*\S\+\|[^a-zA-Z]\)' -		\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='|\|$' -		\ contained -		\ contains=vifmStringInExpr,vifmNotation - -syntax region vifmSet -		\ start='\(\s\|:\)*\<\(se\%[t]\|setg\%[lobal]\|setl\%[ocal]\)\>' -		\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' -		\ keepend -		\ contains=vifmSetCommand,vifmOption,vifmSetAssignSQS,vifmSetAssignDQS -		\,vifmSetAssignNS,vifmComment,vifmInlineComment,vifmNotComment -syntax region vifmSetN -		\ start='\(\s\|:\)*\<\(se\%[t]\|setg\%[lobal]\|setl\%[ocal]\)\>' -		\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' -		\ keepend -		\ contains=vifmSetCommand,vifmOption,vifmSetAssignSQS,vifmSetAssignDQS -		\,vifmSetAssignNSN,vifmComment,vifmInlineComment,vifmNotComment,vifmNotation -syntax region vifmSet2 contained -		\ start='^\(\s\|:\)*\<\(se\%[t]\|setg\%[lobal]\|setl\%[ocal]\)\>' -		\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' -		\ keepend -		\ contains=vifmSetCommand,vifmOption,vifmSetAssignSQS,vifmSetAssignDQS -		\,vifmSetAssignNSN,vifmComment,vifmInlineComment,vifmNotComment,vifmNotation - -" Highlight for =value part of :set arguments of form option=value - -" For single quoted string (check that it starts with =') -syntax region vifmSetAssignSQS contained -		\ start="='" skip=+\\\\\|\\'+ end=+'+ keepend -		\ contains=vifmString -" For double quoted string (check that it starts with =") -syntax region vifmSetAssignDQS contained -		\ start='="' skip=+\\\\\|\\"+ end=+"+ keepend -		\ contains=vifmString -" For not strings (check that it doesn't start with either =' or =") -syntax region vifmSetAssignNS contained -		\ start='=[^"'' ]' skip='\(\n\s*\\\)\|\(\n\s*".*$\)\|^.*\S.*\\\s' end='^\s*\\\s\|[^\\]\s\|$' -		\ extend -		\ contains=vifmNumber,vifmComment,vifmInlineComment -" For not strings (check that it doesn't start with either =' or =") -syntax region vifmSetAssignNSN contained -		\ start='=[^"'' ]' skip='\(\n\s*\\\)\|\(\n\s*".*$\)\|^.*\S.*\\\s' end='^\s*\\\s\|[^\\]\s\|$' -		\ extend -		\ contains=vifmNumber,vifmComment,vifmInlineComment,vifmNotation - -" :let command with highlighting of angle-brace notation. -syntax region vifmLet -		\ start='^\(\s\|:\)*\<let\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' -		\ keepend -		\ contains=vifmLetCommand,vifmEnvVar,vifmString,vifmStringInExpr,vifmComment -		\,vifmInlineComment,vifmNotComment -" Contained :let command without highlighting of angle-brace notation. -syntax region vifmLetC -		\ start='\<let\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$\||' -		\ keepend -		\ contains=vifmLetCommand,vifmEnvVar,vifmString,vifmStringInExpr,vifmComment -		\,vifmInlineComment,vifmNotComment,vifmBuiltinFunction -" Contained :let command with highlighting of angle-brace notation. -syntax region vifmLetCN -		\ start='\<let\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$\||' -		\ keepend -		\ contains=vifmLetCommand,vifmEnvVar,vifmString,vifmStringInExpr,vifmComment -		\,vifmInlineComment,vifmNotComment,vifmBuiltinFunction,vifmNotation -syntax region vifmUnlet -		\ start='^\(\s\|:\)*\<unl\%[et]\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' -		\ keepend -		\ contains=vifmUnletCommand,vifmEnvVar,vifmComment,vifmInlineComment,vifmNotComment -syntax region vifmUnletC -		\ start='\<unl\%[et]\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$\||' -		\ keepend -		\ contains=vifmUnletCommand,vifmEnvVar,vifmComment,vifmInlineComment,vifmNotComment -syntax region vifmString contained start=+="+hs=s+1 skip=+\\\\\|\\"+  end=+"+ -syntax region vifmString contained start=+='+hs=s+1 skip=+\\\\\|\\'+  end=+'+ -syntax region vifmStringInExpr contained start=+=\@<="+hs=s+1 skip=+\\\\\|\\"+ -		\ end=+"+ -syntax region vifmStringInExpr contained start=+=\@<='+hs=s+1 -		\ skip=+\\\\\|\\'\|''+  end=+'+ -syntax region vifmStringInExpr contained start=+[.( ]"+hs=s+1 skip=+\\\\\|\\"+ -		\ end=+"+ -syntax region vifmStringInExpr contained start=+[.( ]'+hs=s+1 -		\ skip=+\\\\\|\\'\|''+  end=+'+ -syntax region vifmArgument contained start=+"+ skip=+\\\\\|\\"+  end=+"+ -syntax region vifmArgument contained start=+'+ skip=+\\\\\|\\'\|''+  end=+'+ -syntax match vifmEnvVar contained /\$[0-9a-zA-Z_]\+/ -syntax match vifmNumber contained /\d\+/ - -" Optional map arguments right after command name -syntax match vifmMapArgList '\(<\(silent\|wait\)>\s*\)*' contained -		\ nextgroup=vifmMapLhs - -" Ange-bracket notation -syntax case ignore -syntax match vifmNotation '<\(esc\|cr\|space\|del\|nop\|\(s-\)\?tab\|home\|end\|left\|right\|up\|down\|bs\|delete\|insert\|pageup\|pagedown\|\([acms]-\)\?f\d\{1,2\}\|c-s-[a-z[\]^_]\|s-c-[a-z[\]^_]\|c-[a-z[\]^_@]\|[am]-c-[a-z]\|c-[am]-[a-z]\|[am]-[a-z]\)>' -syntax case match - -" Whole line comment -syntax region vifmComment contained contains=@Spell start='^\(\s\|:\)*"' end='$' -" Comment at the end of a line -syntax match vifmInlineComment contained contains=@Spell '\s"[^"]*$' -" This prevents highlighting non-first line of multi-line command -syntax match vifmNotComment contained '\s"[^"]*\(\n\s*\(\\\|"\)\)\@=' - -" Empty line -syntax match vifmEmpty /^\s*$/ - -" :highlight clear -syntax match vifmHiClear contained /\s*\<clear\>\s*/ - -" Check spelling only in syntax elements marked with @Spell -syntax spell notoplevel - -" Highlight -highlight link vifmAutocmdCommand Statement -highlight link vifmPatternCommands Statement -highlight link vifmComment Comment -highlight link vifmInlineComment Comment -highlight link vifmCommand Statement -highlight link vifmCommandCN Statement -highlight link vifmPrefixCommands Statement -highlight link vifmCdCommand Statement -highlight link vifmCmdCommand Statement -highlight link vifmColoCommand Statement -highlight link vifmHiCommand Statement -highlight link vifmHiClear Statement -highlight link vifmInvertCommand Statement -highlight link vifmMarkCommand Statement -highlight link vifmFtCommand Statement -highlight link vifmExprCommand Statement -highlight link vifmNormalCommand Statement -highlight link vifmLetCommand Statement -highlight link vifmUnletCommand Statement -highlight link vifmSetCommand Statement -highlight link vifmSoCommand Statement -highlight link vifmBuiltinFunction Function -highlight link vifmOperator Operator -highlight link vifmMap Statement -highlight link vifmCMapAbbr Statement -highlight link vifmHiArgs Type -highlight link vifmAutoEvent Type -highlight link vifmHiGroups Identifier -highlight link vifmPattern String -highlight link vifmHiStyles PreProc -highlight link vifmHiColors Special -highlight link vifmOption PreProc -highlight link vifmNotation Special -highlight link vifmMapArgList Special -highlight link vifmString String -highlight link vifmStringInExpr String -highlight link vifmEnvVar PreProc -highlight link vifmNumber Number - -let &cpo = s:cpo_save -unlet s:cpo_save - -" vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 : - -endif  | 
