1" Vim syntax file 2" Language: Vim 7.3 script 3" Maintainer: Charles E. Campbell <[email protected]> 4" Last Change: Nov 14, 2012 5" Version: 7.3-20 6" Automatically generated keyword lists: {{{1 7 8" Quit when a syntax file was already loaded {{{2 9if exists("b:current_syntax") 10 finish 11endif 12let s:keepcpo= &cpo 13set cpo&vim 14 15" vimTodo: contains common special-notices for comments {{{2 16" Use the vimCommentGroup cluster to add your own. 17syn keyword vimTodo contained COMBAK FIXME TODO XXX 18syn cluster vimCommentGroup contains=vimTodo,@Spell 19 20" regular vim commands {{{2 21syn keyword vimCommand contained a arga[dd] argu[ment] bd[elete] bN[ext] breakd[el] buf c cal[l] ce[nter] cg[etfile] cl cn cNf comc[lear] cope[n] cr[ewind] d d[elete] diffo diffsplit di[splay] ds[earch] ec e:e:e en endt[ry] exu[sage] filetype fix[del] for go[to] h hi if intro k la lan[guage] lch[dir] let@ lg[etfile] lla[st] lnew[er] lNf[ile] loc[kmarks] lr[ewind] lv[imgrep] ma[rk] messages mkv mv n new noautocmd on[ly] p:~ perld[o] popu[p] p[rint] promptr[epl] ptl[ast] ptr[ewind] py3file q[uit] r[ead] redraws[tatus] ret[ab] r:r:r ru[ntime] sba[ll] sbp[revious] scs sf[ind] sil[ent] sm[ap] sno[magic] so[urce] spellr[epall] st startr[eplace] sunme sw[apname] t tabf[ind] tabn[ext] ta[g] tf[irst] tn tp[revious] tu undoj[oin] up[date] vi vmapc[lear] win wN[ext] wundo xmapc[lear] xnoremenu 22syn keyword vimCommand contained ab argd[elete] as[cii] bel[owright] bo[tright] breakl[ist] bufdo cabc[lear] cat[ch] cex[pr] c[hange] cla[st] cN cnf[ile] comment co[py] cs de delf diffoff difft dj[ump] dsp[lit] echoe[rr] e:e:r endf endw[hile] f fin fo[ld] fu gr[ep] ha[rdcopy] hid[e] ij[ump] is[earch] keepa lad la[st] lcl[ose] lex[pr] lgr[ep] lli[st] lne[xt] lo lockv[ar] ls lvimgrepa[dd] marks mk mkvie[w] Mycmd N n[ext] noh[lsearch] o[pen] P p:gs? pp[op] P[rint] ps[earch] ptn pts[elect] pyf[ile] quita[ll] rec[over] reg[isters] retu[rn] ru rv[iminfo] sbf[irst] sbr[ewind] scscope sfir[st] sim[alt] sme snoreme s?pat?sub? spellu[ndo] sta[g] stj[ump] sunmenu sy ta tabfir[st] tabN[ext] tags th[row] tN tr tu[nmenu] undol[ist] v vie[w] vne[w] winc[md] wp[revious] wv[iminfo] xme xterm 23syn keyword vimCommand contained abc[lear] argdo au bf[irst] bp[revious] br[ewind] b[uffer] cad cb[uffer] cf[ile] changes cl[ist] cnew[er] cNf[ile] comp[iler] count cscope debug delf[unction] DiffOrig diffthis dl[ist] dwim echom[sg] el[se] endfo[r] ene[w] f[ile] fina[lly] foldc[lose] fun grepa[dd] h[elp] his[tory] il[ist] isp[lit] keepalt laddb[uffer] lat lcs lf[ile] lgrepa[dd] lmak[e] lN[ext] loadk lol[der] lt[ag] lw[indow] mat[ch] mkdir mkv[imrc] MyCommand nbc[lose] N[ext] nu[mber] opt[ions] pc[lose] p:h pr pro p:t ptN pu[t] py[thon] quote red Ren rew[ind] rub[y] sal[l] sbl[ast] sb[uffer] se[t] sh[ell] sl smenu snoremenu spe spellw[rong] star st[op] sus[pend] syn tab tabl[ast] tabo[nly] tc[l] tj[ump] tn[ext] t:r u unh[ide] ve vim[grep] vs[plit] windo wq x xmenu xunme 24syn keyword vimCommand contained abo[veleft] arge[dit] bad[d] bl[ast] br bro[wse] buffers caddb[uffer] cc cfir[st] chd[ir] clo[se] cn[ext] col[der] con cpf[ile] cstag debugg[reedy] delm[arks] diffp diffu[pdate] do e echon elsei[f] endfun Error filename fin[d] folddoc[losed] fu[nction] gs?pat?sub? helpf[ind] i imapc[lear] iuna[bbrev] keepj[umps] lad[dexpr] later lcscope lfir[st] lh[elpgrep] lmapc[lear] lnf loadkeymap lop[en] lua ma menut mk[exrc] mo mz nb[key] nkf o ownsyntax pe p:h:h p:r profd[el] pta[g] ptn[ext] pw[d] python3 r redi[r] Rena ri[ght] rubyd[o] san[dbox] sbm[odified] scrip setf[iletype] si sla[st] sn[ext] s@\n@\=\r" spelld[ump] sp[lit] start stopi[nsert] s?version?main? sync tabc[lose] tabm[ove] tabp[revious] tcld[o] tl[ast] tN[ext] tr[ewind] un unl verb[ose] vimgrepa[dd] w winp[os] wqa[ll] X XMLent xunmenu 25syn keyword vimCommand contained al[l] argg[lobal] ba[ll] bm[odified] brea[k] browseset bun[load] cad[dexpr] ccl[ose] cgetb[uffer] che[ckpath] cmapc[lear] cN[ext] colo[rscheme] conf[irm] cp[revious] cuna[bbrev] del di diffpatch dig doau ea e[dit] em[enu] endf[unction] ex files fini[sh] foldd[oopen] g gui helpg[rep] ia in j[oin] kee[pmarks] laddf[ile] lb[uffer] le[ft] lgetb[uffer] l[ist] lN lNf lo[adview] lpf[ile] luado mak[e] menut[ranslate] mks[ession] mod[e] mzf[ile] nbs[tart] nmapc[lear] ol[dfiles] p ped[it] po[p] pre[serve] prof[ile] ptf[irst] ptN[ext] py q re red[o] Renu rightb[elow] rubyf[ile] sa[rgument] sbn[ext] scripte[ncoding] setg[lobal] sig sl[eep] sN[ext] so spe[llgood] spr[evious] startg[replace] sts[elect] s?version?main?:p syncbind tabd[o] tabN tabr[ewind] tclf[ile] tm TOhtml try una[bbreviate] unlo[ckvar] ve[rsion] vi[sual] wa[ll] win[size] w[rite] xa[ll] XMLns xwininfo 26syn keyword vimCommand contained Allargs argl[ocal] bar bn[ext] breaka[dd] bu bw[ipeout] caddf[ile] cd cgete[xpr] checkt[ime] cmdname cnf com con[tinue] cq[uit] cw[indow] delc[ommand] diffg[et] diffpu[t] dig[raphs] dr[op] earlier e:e emenu* en[dif] exi[t] filet fir[st] foldo[pen] get gvim helpt[ags] iabc[lear] index ju[mps] l lan lc[d] lefta[bove] lgete[xpr] ll lne lnf[ile] locale lp[revious] luafile Man mes mksp[ell] m[ove] mz[scheme] ne noa omapc[lear] p: pe[rl] popu prev[ious] promptf[ind] ptj[ump] ptp[revious] py3 qa[ll] r:e redr[aw] res[ize] r:r rundo sav[eas] sbN[ext] scrip[tnames] setl[ocal] sign sm[agic] sni[ff] sor[t] spelli[nfo] sre[wind] star[tinsert] sun[hide] sv[iew] synlist tabe[dit] tabnew tabs te[aroff] tm[enu] to[pleft] ts[elect] u[ndo] uns[ilent] vert[ical] viu[sage] wh[ile] wn[ext] ws[verb] x[it] xnoreme y[ank] 27syn keyword vimCommand contained ar ar[gs] 28syn match vimCommand contained "\<z[-+^.=]\=" 29 30" vimOptions are caught only when contained in a vimSet {{{2 31syn keyword vimOption contained acd ambiwidth arabicshape autowriteall backupdir bdlay binary breakat bufhidden cd ci cinw co commentstring confirm cpoptions cscoperelative csre cursorcolumn delcombine diffopt ea efm ep et fdc fdo ffs fk foldcolumn foldmethod formatoptions gd go guifont guitabtooltip hid hkp iconstring imd include inex isi js kp linebreak lm lz matchpairs maxmemtot mkspellmem mod mousef mouset nf oft pa path pheader previewheight printmbcharset pvw remap rl ruf sc scrollopt selectmode shellpipe shiftround showfulltag sidescrolloff smarttab sp spf srr startofline suffixes switchbuf tabline tags tbs textmode timeout tl tpm ttimeoutlen ttymouse udf undoreload vbs vi vop wcm whichwrap wildignore winaltkeys winminwidth wmnu write 32syn keyword vimOption contained ai ambw ari aw backupext beval biosk brk buflisted cdpath cin cinwords cocu compatible consk cpt cscopetag cst cursorline dex digraph ead ei equalalways eventignore fde fdt fileencoding fkmap foldenable foldminlines formatprg gdefault gp guifontset helpfile hidden hl ignorecase imdisable includeexpr inf isident key langmap lines lmap ma matchtime mco ml modeline mousefocus mousetime nrformats ofu para pdev pi previewwindow printmbfont qe report rlc ruler scb scs sessionoptions shellquote shiftwidth showmatch siso smc spc spl ss statusline suffixesadd sws tabpagemax tagstack tenc textwidth timeoutlen tm tr ttm ttyscroll udir updatecount vdir viewdir wa wd wi wildignorecase window winwidth wmw writeany 33syn keyword vimOption contained akm anti arshape awa backupskip bex bioskey browsedir buftype cedit cindent clipboard cole complete conskey crb cscopetagorder csto cwh dg dip eadirection ek equalprg ex fdi fen fileencodings flp foldexpr foldnestmax fp gfm grepformat guifontwide helpheight highlight hlg im imi incsearch infercase isk keymap langmenu linespace loadplugins macatsui maxcombine mef mls modelines mousehide mp nu omnifunc paragraphs penc pm printdevice printoptions quoteescape restorescreen rnu rulerformat scr sect sft shellredir shm showmode sj smd spell splitbelow ssl stl sw sxq tabstop tal term tf title to ts tty ttytype ul updatetime ve viewoptions wak weirdinvert wic wildmenu winfixheight wiv wop writebackup 34syn keyword vimOption contained al antialias autochdir background balloondelay bexpr bk bs casemap cf cink cmdheight colorcolumn completefunc copyindent cryptmethod cscopeverbose csverb debug dict dir eb enc errorbells expandtab fdl fenc fileformat fml foldignore foldopen fs gfn grepprg guiheadroom helplang history hls imactivatekey iminsert inde insertmode iskeyword keymodel laststatus lisp lpl magic maxfuncdepth menuitems mm modifiable mousem mps number opendevice paste pex pmbcs printencoding prompt rdt revins ro runtimepath scroll sections sh shellslash shortmess showtabline slm sn spellcapcheck splitright ssop stmp swapfile syn tag tb termbidi tgst titlelen toolbar tsl ttybuiltin tw undodir ur verbose viminfo warn wfh wig wildmode winfixwidth wiw wrap writedelay 35syn keyword vimOption contained aleph ar autoindent backspace ballooneval bg bkc bsdir cb cfu cinkeys cmdwinheight columns completeopt cot cscopepathcomp cspc cuc deco dictionary directory ed encoding errorfile exrc fdls fencs fileformats fmr foldlevel foldtext fsync gfs gtl guioptions hf hk hlsearch imak ims indentexpr is isp keywordprg lazyredraw lispwords ls makeef maxmapdepth mfd mmd modified mousemodel msm numberwidth operatorfunc pastetoggle pexpr pmbfn printexpr pt readonly ri rs sb scrollbind secure shcf shelltemp shortname shq sm so spellfile spr st sts swapsync synmaxcol tagbsearch tbi termencoding thesaurus titleold toolbariconsize tsr ttyfast tx undofile ut verbosefile virtualedit wb wfw wildchar wildoptions winheight wm wrapmargin ws 36syn keyword vimOption contained allowrevins arab autoread backup balloonexpr bh bl bsk cc ch cino cmp com concealcursor cp cscopeprg csprg cul def diff display edcompatible endofline errorformat fcl fdm fex filetype fo foldlevelstart formatexpr ft gfw gtt guipty hh hkmap ic imc imsearch indentkeys isf isprint km lbr list lsp makeprg maxmem mh mmp more mouses mzq nuw opfunc patchexpr pfn popt printfont pumheight redrawtime rightleft rtp sbo scrolljump sel shell shelltype showbreak si smartcase softtabstop spelllang sps sta su swb syntax taglength tbidi terse tildeop titlestring top ttimeout ttym uc undolevels vb vfile visualbell wc wh wildcharm wim winminheight wmh wrapscan ww 37syn keyword vimOption contained altkeymap arabic autowrite backupcopy bdir bin bomb bt ccv charconvert cinoptions cms comments conceallevel cpo cscopequickfix csqf cursorbind define diffexpr dy ef eol esckeys fcs fdn ff fillchars foldclose foldmarker formatlistpat gcr ghr guicursor guitablabel hi hkmapp icon imcmdline inc indk isfname joinspaces kmp lcs listchars lw mat maxmempattern mis mmt mouse mouseshape mzquantum odev osfiletype patchmode ph preserveindent printheader pvh relativenumber rightleftcmd ru sbr scrolloff selection shellcmdflag shellxquote showcmd sidescroll smartindent sol spellsuggest sr stal sua swf ta tagrelative tbis textauto 38 39" vimOptions: These are the turn-off setting variants {{{2 40syn keyword vimOption contained noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobinary nobk nobuflisted nocin noconfirm nocopyindent nocscopetag nocsverb nocursorbind nodeco nodiff noeb noek noequalalways noesckeys noex noexrc nofk nofoldenable nogdefault nohid nohk nohkmapp nohls noic noignorecase noimc noimd noincsearch noinfercase nois nojs nolbr nolisp noloadplugins nolz nomacatsui nomh nomod nomodifiable nomore nomousefocus nonu noodev nopaste nopreserveindent noprompt noreadonly noremap norevins norightleft nornu nors noruler nosc noscrollbind nosecure noshellslash noshiftround noshowcmd noshowmatch nosi nosmartcase nosmarttab nosn nospell nosplitright nosr nosta nostmp noswf notagbsearch notagstack notbidi notermbidi notextauto notf notildeop notitle notop nottimeout nottyfast novb nowa nowb nowfh nowildignorecase* * nowinfixheight nowiv nowrap nowrite nowritebackup 41syn keyword vimOption contained noai noaltkeymap noar noarabicshape noautochdir noautowrite noawa nobeval nobiosk nobl nocf nocindent noconsk nocp nocscopeverbose nocuc nocursorcolumn nodelcombine nodigraph noed noendofline noerrorbells noet noexpandtab nofen nofkmap nogd noguipty nohidden nohkmap nohkp nohlsearch noicon noim noimcmdline noimdisable noinf noinsertmode nojoinspaces nolazyredraw nolinebreak nolist nolpl noma nomagic noml nomodeline nomodified nomousef nomousehide nonumber noopendevice nopi nopreviewwindow nopvw norelativenumber norestorescreen nori norl noro noru nosb noscb noscs nosft noshelltemp noshortname noshowfulltag noshowmode nosm nosmartindent nosmd nosol nosplitbelow nospr nossl nostartofline noswapfile nota notagrelative notbi notbs noterse notextmode notgst notimeout noto notr nottybuiltin notx novisualbell nowarn noweirdinvert nowfw nowildmenu nowinfixwidth nowmnu nowrapscan nowriteany nows 42syn keyword vimOption contained noakm noanti noarab noari noautoindent noautowriteall nobackup nobin nobioskey nobomb noci nocompatible noconskey nocrb nocst nocul nocursorline nodg noea noedcompatible noeol 43 44" vimOptions: These are the invertible variants {{{2 45syn keyword vimOption contained invacd invallowrevins invantialias invarabic invarshape invautoread invaw invballooneval invbinary invbk invbuflisted invcin invconfirm invcopyindent invcscopetag invcsverb invcursorbind invdeco invdiff inveb invek invequalalways invesckeys invex invexrc invfk invfoldenable invgdefault invhid invhk invhkmapp invhls invic invignorecase invimc invimd invincsearch invinfercase invis invjs invlbr invlisp invloadplugins invlz invmacatsui invmh invmod invmodifiable invmore invmousefocus invnu invodev invpaste invpreserveindent invprompt invreadonly invremap invrevins invrightleft invrnu invrs invruler invsc invscrollbind invsecure invshellslash invshiftround invshowcmd invshowmatch invsi invsmartcase invsmarttab invsn invspell invsplitright invsr invsta invstmp invswf invtagbsearch invtagstack invtbidi invtermbidi invtextauto invtf invtildeop invtitle invtop invttimeout invttyfast invvb invwa invwb invwfh invwildignorecase* * invwinfixheight invwiv invwrap invwrite invwritebackup 46syn keyword vimOption contained invai invaltkeymap invar invarabicshape invautochdir invautowrite invawa invbeval invbiosk invbl invcf invcindent invconsk invcp invcscopeverbose invcuc invcursorcolumn invdelcombine invdigraph inved invendofline inverrorbells invet invexpandtab invfen invfkmap invgd invguipty invhidden invhkmap invhkp invhlsearch invicon invim invimcmdline invimdisable invinf invinsertmode invjoinspaces invlazyredraw invlinebreak invlist invlpl invma invmagic invml invmodeline invmodified invmousef invmousehide invnumber invopendevice invpi invpreviewwindow invpvw invrelativenumber invrestorescreen invri invrl invro invru invsb invscb invscs invsft invshelltemp invshortname invshowfulltag invshowmode invsm invsmartindent invsmd invsol invsplitbelow invspr invssl invstartofline invswapfile invta invtagrelative invtbi invtbs invterse invtextmode invtgst invtimeout invto invtr invttybuiltin invtx invvisualbell invwarn invweirdinvert invwfw invwildmenu invwinfixwidth invwmnu invwrapscan invwriteany invws 47syn keyword vimOption contained invakm invanti invarab invari invautoindent invautowriteall invbackup invbin invbioskey invbomb invci invcompatible invconskey invcrb invcst invcul invcursorline invdg invea invedcompatible inveol 48 49" termcap codes (which can also be set) {{{2 50syn keyword vimOption contained t_AB t_al t_bc t_ce t_cl t_Co t_cs t_Cs t_CS t_CV t_da t_db t_dl t_DL t_EI t_F1 t_F2 t_F3 t_F4 t_F5 t_F6 t_F7 t_F8 t_F9 t_fs t_IE t_IS t_k1 t_K1 t_k2 t_k3 t_K3 t_k4 t_K4 t_k5 t_K5 t_k6 t_K6 t_k7 t_K7 t_k8 t_K8 t_k9 t_K9 t_KA t_kb t_kB t_KB t_KC t_kd t_kD t_KD t_ke t_KE t_KF t_KG t_kh t_KH t_kI t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ks t_ku t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_RI t_RV t_Sb t_se t_Sf t_SI t_so t_sr t_te t_ti t_ts t_ue t_us t_ut t_vb t_ve t_vi t_vs t_WP t_WS t_xs t_ZH t_ZR 51syn keyword vimOption contained t_AF t_AL t_cd t_Ce t_cm 52syn match vimOption contained "t_%1" 53syn match vimOption contained "t_#2" 54syn match vimOption contained "t_#4" 55syn match vimOption contained "t_@7" 56syn match vimOption contained "t_*7" 57syn match vimOption contained "t_&8" 58syn match vimOption contained "t_%i" 59syn match vimOption contained "t_k;" 60 61" unsupported settings: these are supported by vi but don't do anything in vim {{{2 62syn keyword vimErrSetting contained hardtabs ht w1200 w300 w9600 63 64" AutoCmd Events {{{2 65syn case ignore 66syn keyword vimAutoEvent contained BufAdd BufCreate BufDelete BufEnter BufFilePost BufFilePre BufHidden BufLeave BufNew BufNewFile BufRead BufReadCmd BufReadPost BufReadPre BufUnload BufWinEnter BufWinLeave BufWipeout BufWrite BufWriteCmd BufWritePost BufWritePre Cmd-event CmdwinEnter CmdwinLeave ColorScheme CursorHold CursorHoldI CursorMoved CursorMovedI EncodingChanged FileAppendCmd FileAppendPost FileAppendPre FileChangedRO FileChangedShell FileChangedShellPost FileEncoding FileReadCmd FileReadPost FileReadPre FileType FileWriteCmd FileWritePost FileWritePre FilterReadPost FilterReadPre FilterWritePost FilterWritePre FocusGained FocusLost FuncUndefined GUIEnter GUIFailed InsertChange InsertCharPre InsertEnter InsertLeave MenuPopup QuickFixCmdPost QuickFixCmdPre RemoteReply SessionLoadPost ShellCmdPost ShellFilterPost SourceCmd SourcePre SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax TabEnter TabLeave TermChanged TermResponse User UserGettingBored VimEnter VimLeave VimLeavePre VimResized WinEnter WinLeave 67 68" Highlight commonly used Groupnames {{{2 69syn keyword vimGroup contained Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo 70 71" Default highlighting groups {{{2 72syn keyword vimHLGroup contained ColorColumn Cursor CursorColumn CursorIM CursorLine DiffAdd DiffChange DiffDelete DiffText Directory ErrorMsg FoldColumn Folded IncSearch LineNr MatchParen Menu ModeMsg MoreMsg NonText Normal Pmenu PmenuSbar PmenuSel PmenuThumb Question Scrollbar Search SignColumn SpecialKey SpellBad SpellCap SpellLocal SpellRare StatusLine StatusLineNC TabLine TabLineFill TabLineSel Title Tooltip VertSplit Visual VisualNOS WarningMsg WildMenu 73syn match vimHLGroup contained "Conceal" 74syn case match 75 76" Function Names {{{2 77syn keyword vimFuncName contained abs append argv atan2 bufexists bufname byte2line ceil cindent complete confirm cosh cursor did_filetype empty eventhandler exp extend filewritable findfile fmod foldclosed foldtext function getbufline getcharmod getcmdtype getfperm getftype getmatches getqflist gettabvar getwinposy globpath haslocaldir histdel hlexists iconv input inputrestore insert items len line localtime map match matchdelete matchstr min mode nextnonblank pathshorten prevnonblank pumvisible readfile reltimestr remote_foreground remote_read remove repeat reverse search searchpair searchpos serverlist setcmdpos setloclist setpos setreg settabwinvar shellescape sin sort spellbadword split str2float strchars strftime string strpart strtrans submatch synconcealed synIDattr synstack tabpagebuflist tabpagewinnr taglist tanh tolower tr type undotree virtcol winbufnr winheight winnr winrestview winwidth 78syn keyword vimFuncName contained acos argc asin browse buflisted bufnr byteidx changenr clearmatches complete_add copy count deepcopy diff_filler escape executable expand feedkeys filter float2nr fnameescape foldclosedend foldtextresult garbagecollect getbufvar getcmdline getcwd getfsize getline getpid getreg gettabwinvar getwinvar has hasmapto histget hlID indent inputdialog inputsave isdirectory join libcall line2byte log maparg matchadd matchend max mkdir mzeval nr2char pow printf range reltime remote_expr remote_peek remote_send rename resolve round searchdecl searchpairpos server2client setbufvar setline setmatches setqflist settabvar setwinvar simplify sinh soundfold spellsuggest sqrt str2nr strdisplaywidth stridx strlen strridx strwidth substitute synID synIDtrans system tabpagenr tagfiles tan tempname toupper trunc undofile values visualmode wincol winline winrestcmd winsaveview writefile 79syn keyword vimFuncName contained add argidx atan browsedir bufloaded bufwinnr call char2nr col complete_check cos cscope_connection delete diff_hlID eval exists expr8 filereadable finddir floor fnamemodify foldlevel foreground get getchar getcmdpos getfontname getftime getloclist getpos getregtype getwinposx glob has_key histadd histnr hostname index inputlist inputsecret islocked keys libcallnr lispindent log10 mapcheck matcharg matchlist 80 81"--- syntax above generated by mkvimvim --- 82" Special Vim Highlighting (not automatic) {{{1 83 84" commands not picked up by the generator (due to non-standard format) 85syn keyword vimCommand contained py3 86 87" Deprecated variable options {{{2 88if exists("g:vim_minlines") 89 let g:vimsyn_minlines= g:vim_minlines 90endif 91if exists("g:vim_maxlines") 92 let g:vimsyn_maxlines= g:vim_maxlines 93endif 94if exists("g:vimsyntax_noerror") 95 let g:vimsyn_noerror= g:vimsyntax_noerror 96endif 97 98" Numbers {{{2 99" ======= 100syn match vimNumber "\<\d\+\([lL]\|\.\d\+\)\=" 101syn match vimNumber "-\d\+\([lL]\|\.\d\+\)\=" 102syn match vimNumber "\<0[xX]\x\+" 103syn match vimNumber "#\x\{6}" 104 105" All vimCommands are contained by vimIsCommands. {{{2 106syn match vimCmdSep "[:|]\+" skipwhite nextgroup=vimAddress,vimAutoCmd,vimCommand,vimExtCmd,vimFilter,vimLet,vimMap,vimMark,vimSet,vimSyntax,vimUserCmd 107syn match vimIsCommand "\<\h\w*\>" contains=vimCommand 108syn match vimVar "\<[bwglsav]:\K\k*\>" 109syn match vimVar contained "\<\K\k*\>" 110syn match vimFBVar contained "\<[bwglsav]:\K\k*\>" 111syn keyword vimCommand contained in 112 113" Insertions And Appends: insert append {{{2 114" ======================= 115syn region vimInsert matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=a\%[ppend]$" matchgroup=vimCommand end="^\.$"" 116syn region vimInsert matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=c\%[hange]$" matchgroup=vimCommand end="^\.$"" 117syn region vimInsert matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=i\%[nsert]$" matchgroup=vimCommand end="^\.$"" 118 119" Behave! {{{2 120" ======= 121syn match vimBehave "\<be\%[have]\>" skipwhite nextgroup=vimBehaveModel,vimBehaveError 122syn keyword vimBehaveModel contained mswin xterm 123if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_nobehaveerror") 124 syn match vimBehaveError contained "[^ ]\+" 125endif 126 127" Filetypes {{{2 128" ========= 129syn match vimFiletype "\<filet\%[ype]\(\s\+\I\i*\)*" skipwhite contains=vimFTCmd,vimFTOption,vimFTError 130if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_vimFTError") 131 syn match vimFTError contained "\I\i*" 132endif 133syn keyword vimFTCmd contained filet[ype] 134syn keyword vimFTOption contained detect indent off on plugin 135 136" Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2 137" ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking. 138syn cluster vimAugroupList contains=vimIsCommand,vimCommand,vimUserCmd,vimExecute,vimNotFunc,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue 139if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'a' 140 syn region vimAugroup fold start="\<aug\%[roup]\>\s\+\K\k*" end="\<aug\%[roup]\>\s\+[eE][nN][dD]\>" contains=vimAugroupKey,vimAutoCmd,@vimAugroupList keepend 141else 142 syn region vimAugroup start="\<aug\%[roup]\>\s\+\K\k*" end="\<aug\%[roup]\>\s\+[eE][nN][dD]\>" contains=vimAugroupKey,vimAutoCmd,@vimAugroupList keepend 143endif 144syn match vimAugroup "aug\%[roup]!" contains=vimAugroupKey 145if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noaugrouperror") 146 syn match vimAugroupError "\<aug\%[roup]\>\s\+[eE][nN][dD]\>" 147endif 148syn keyword vimAugroupKey contained aug[roup] 149 150" Operators: {{{2 151" ========= 152" COMBAK: vimOperParen used to have "oneline" 153syn cluster vimOperGroup contains=vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue 154syn match vimOper "\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile 155syn match vimOper "||\|&&\|[-+.]" skipwhite nextgroup=vimString,vimSpecFile 156syn region vimOperParen matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup 157syn region vimOperParen matchgroup=vimSep start="{" end="}" contains=@vimOperGroup nextgroup=vimVar,vimFuncVar 158if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noopererror") 159 syn match vimOperError ")" 160endif 161 162" Functions : Tag is provided for those who wish to highlight tagged functions {{{2 163" ========= 164syn cluster vimFuncList contains=vimCommand,vimFunctionError,vimFuncKey,Tag,vimFuncSID 165syn cluster vimFuncBodyList contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIf,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimHighlight,vimIsCommand,vimLet,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUserCommand 166syn match vimFunction "\<fu\%[nction]!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*(" contains=@vimFuncList nextgroup=vimFuncBody 167 168if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'f' 169 syn region vimFuncBody contained fold start="\ze(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList 170else 171 syn region vimFuncBody contained start="\ze(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList 172endif 173syn match vimFuncVar contained "a:\(\K\k*\|\d\+\)" 174syn match vimFuncSID contained "\c<sid>\|\<s:" 175syn keyword vimFuncKey contained fu[nction] 176syn match vimFuncBlank contained "\s\+" 177 178syn keyword vimPattern contained start skip end 179 180" Special Filenames, Modifiers, Extension Removal: {{{2 181" =============================================== 182syn match vimSpecFile "<c\(word\|WORD\)>" nextgroup=vimSpecFileMod,vimSubst 183syn match vimSpecFile "<\([acs]file\|amatch\|abuf\)>" nextgroup=vimSpecFileMod,vimSubst 184syn match vimSpecFile "\s%[ \t:]"ms=s+1,me=e-1 nextgroup=vimSpecFileMod,vimSubst 185syn match vimSpecFile "\s%$"ms=s+1 nextgroup=vimSpecFileMod,vimSubst 186syn match vimSpecFile "\s%<"ms=s+1,me=e-1 nextgroup=vimSpecFileMod,vimSubst 187syn match vimSpecFile "#\d\+\|[#%]<\>" nextgroup=vimSpecFileMod,vimSubst 188syn match vimSpecFileMod "\(:[phtre]\)\+" contained 189 190" User-Specified Commands: {{{2 191" ======================= 192syn cluster vimUserCmdList contains=vimAddress,vimSyntax,vimHighlight,vimAutoCmd,vimCmplxRepeat,vimComment,vimCtrlChar,vimEscapeBrace,vimFilter,vimFunc,vimFuncName,vimFunction,vimFunctionError,vimIsCommand,vimMark,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimLet,vimSet,vimSetEqual,vimSetString,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine 193syn keyword vimUserCommand contained com[mand] 194syn match vimUserCmd "\<com\%[mand]!\=\>.*$" contains=vimUserAttrb,vimUserCommand,@vimUserCmdList 195syn match vimUserAttrb contained "-n\%[args]=[01*?+]" contains=vimUserAttrbKey,vimOper 196syn match vimUserAttrb contained "-com\%[plete]=" contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError 197syn match vimUserAttrb contained "-ra\%[nge]\(=%\|=\d\+\)\=" contains=vimNumber,vimOper,vimUserAttrbKey 198syn match vimUserAttrb contained "-cou\%[nt]=\d\+" contains=vimNumber,vimOper,vimUserAttrbKey 199syn match vimUserAttrb contained "-bang\=\>" contains=vimOper,vimUserAttrbKey 200syn match vimUserAttrb contained "-bar\>" contains=vimOper,vimUserAttrbKey 201syn match vimUserAttrb contained "-re\%[gister]\>" contains=vimOper,vimUserAttrbKey 202if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_nousercmderror") 203 syn match vimUserCmdError contained "\S\+\>" 204endif 205syn case ignore 206syn keyword vimUserAttrbKey contained bar ban[g] cou[nt] ra[nge] com[plete] n[args] re[gister] 207syn keyword vimUserAttrbCmplt contained augroup buffer color command compiler cscope dir environment event expression file file_in_path filetype function help highlight locale mapping menu option shellcmd sign syntax tag tag_listfiles var 208syn keyword vimUserAttrbCmplt contained custom customlist nextgroup=vimUserAttrbCmpltFunc,vimUserCmdError 209syn match vimUserAttrbCmpltFunc contained ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%(#\u\w*\)\+\|\u\w*\)"hs=s+1 nextgroup=vimUserCmdError 210 211syn case match 212syn match vimUserAttrbCmplt contained "custom,\u\w*" 213 214" Lower Priority Comments: after some vim commands... {{{2 215" ======================= 216syn match vimComment excludenl +\s"[^\-:.%#=*].*$+lc=1 contains=@vimCommentGroup,vimCommentString 217syn match vimComment +\<endif\s\+".*$+lc=5 contains=@vimCommentGroup,vimCommentString 218syn match vimComment +\<else\s\+".*$+lc=4 contains=@vimCommentGroup,vimCommentString 219syn region vimCommentString contained oneline start='\S\s\+"'ms=e end='"' 220 221" Environment Variables: {{{2 222" ===================== 223syn match vimEnvvar "\$\I\i*" 224syn match vimEnvvar "\${\I\i*}" 225 226" In-String Specials: {{{2 227" Try to catch strings, if nothing else matches (therefore it must precede the others!) 228" vimEscapeBrace handles ["] []"] (ie. "s don't terminate string inside []) 229syn region vimEscapeBrace oneline contained transparent start="[^\\]\(\\\\\)*\[\zs\^\=\]\=" skip="\\\\\|\\\]" end="]"me=e-1 230syn match vimPatSepErr contained "\\)" 231syn match vimPatSep contained "\\|" 232syn region vimPatSepZone oneline contained matchgroup=vimPatSepZ start="\\%\=\ze(" skip="\\\\" end="\\)\|[^\]['"]" contains=@vimStringGroup 233syn region vimPatRegion contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)" contains=@vimSubstList oneline 234syn match vimNotPatSep contained "\\\\" 235syn cluster vimStringGroup contains=vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell 236syn region vimString oneline keepend start=+[^:a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ end=+"+ contains=@vimStringGroup 237syn region vimString oneline keepend start=+[^:a-zA-Z>!\\@]'+lc=1 end=+'+ 238syn region vimString oneline start=+=!+lc=1 skip=+\\\\\|\\!+ end=+!+ contains=@vimStringGroup 239syn region vimString oneline start="=+"lc=1 skip="\\\\\|\\+" end="+" contains=@vimStringGroup 240syn region vimString oneline start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/" contains=@vimStringGroup 241syn match vimString contained +"[^"]*\\$+ skipnl nextgroup=vimStringCont 242syn match vimStringCont contained +\(\\\\\|.\)\{-}[^\\]"+ 243 244" Substitutions: {{{2 245" ============= 246syn cluster vimSubstList contains=vimPatSep,vimPatRegion,vimPatSepErr,vimSubstTwoBS,vimSubstRange,vimNotation 247syn cluster vimSubstRepList contains=vimSubstSubstr,vimSubstTwoBS,vimNotation 248syn cluster vimSubstList add=vimCollection 249syn match vimSubst "\(:\+\s*\|^\s*\||\s*\)\<s\%[ubstitute][:[:alpha:]]\@!" nextgroup=vimSubstPat 250syn match vimSubst "s\%[ubstitute][:#[:alpha:]]\@!" nextgroup=vimSubstPat contained 251syn match vimSubst "/\zss\%[ubstitute]\ze/" nextgroup=vimSubstPat 252syn match vimSubst1 contained "s\%[ubstitute]\>" nextgroup=vimSubstPat 253syn region vimSubstPat contained matchgroup=vimSubstDelim start="\z([^a-zA-Z( \t[\]&]\)"rs=s+1 skip="\\\\\|\\\z1" end="\z1"re=e-1,me=e-1 contains=@vimSubstList nextgroup=vimSubstRep4 oneline 254syn region vimSubstRep4 contained matchgroup=vimSubstDelim start="\z(.\)" skip="\\\\\|\\\z1" end="\z1" matchgroup=vimNotation end="<[cC][rR]>" contains=@vimSubstRepList nextgroup=vimSubstFlagErr oneline 255syn region vimCollection contained transparent start="\\\@<!\[" skip="\\\[" end="\]" contains=vimCollClass 256syn match vimCollClassErr contained "\[:.\{-\}:\]" 257syn match vimCollClass contained transparent "\[:\(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\|return\|tab\|escape\|backspace\):\]" 258syn match vimSubstSubstr contained "\\z\=\d" 259syn match vimSubstTwoBS contained "\\\\" 260syn match vimSubstFlagErr contained "[^< \t\r|]\+" contains=vimSubstFlags 261syn match vimSubstFlags contained "[&cegiIpr]\+" 262 263" 'String': {{{2 264syn match vimString "[^(,]'[^']\{-}\zs'" 265 266" Marks, Registers, Addresses, Filters: {{{2 267syn match vimMark "'[a-zA-Z0-9]\ze[-+,!]" nextgroup=vimOper,vimMarkNumber,vimSubst 268syn match vimMark "'[<>]\ze[-+,!]" nextgroup=vimOper,vimMarkNumber,vimSubst 269syn match vimMark ",\zs'[<>]\ze" nextgroup=vimOper,vimMarkNumber,vimSubst 270syn match vimMark "[!,:]\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumber,vimSubst 271syn match vimMark "\<norm\%[al]\s\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumber,vimSubst 272syn match vimMarkNumber "[-+]\d\+" nextgroup=vimSubst contained contains=vimOper 273syn match vimPlainMark contained "'[a-zA-Z0-9]" 274 275syn match vimRegister '[^,;[{]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":0-9]' 276syn match vimRegister '\<norm\s\+\zs"[a-zA-Z0-9]' 277syn match vimRegister '\<normal\s\+\zs"[a-zA-Z0-9]' 278syn match vimRegister '@"' 279syn match vimPlainRegister contained '"[a-zA-Z0-9\-:.%#*+=]' 280 281syn match vimAddress ",\zs[.$]" skipwhite nextgroup=vimSubst1 282syn match vimAddress "%\ze\a" skipwhite nextgroup=vimString,vimSubst1 283 284syn match vimFilter contained "^!.\{-}\(|\|$\)" contains=vimSpecFile 285syn match vimFilter contained "\A!.\{-}\(|\|$\)"ms=s+1 contains=vimSpecFile,vimFunction,vimFuncName,vimOperParen 286 287" Complex repeats (:h complex-repeat) {{{2 288syn match vimCmplxRepeat '[^a-zA-Z_/\\()]q[0-9a-zA-Z"]\>'lc=1 289syn match vimCmplxRepeat '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)' 290 291" Set command and associated set-options (vimOptions) with comment {{{2 292syn region vimSet matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skip="\%(\\\\\)*\\." end="$" matchgroup=vimNotation end="<[cC][rR]>" keepend oneline contains=vimSetEqual,vimOption,vimErrSetting,vimComment,vimSetString,vimSetMod 293syn region vimSetEqual contained start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]\|$"me=e-1 contains=vimCtrlChar,vimSetSep,vimNotation oneline 294syn region vimSetString contained start=+="+hs=s+1 skip=+\\\\\|\\"+ end=+"+ contains=vimCtrlChar 295syn match vimSetSep contained "[,:]" 296syn match vimSetMod contained "&vim\=\|[!&?<]\|all&" 297 298" Let {{{2 299" === 300syn keyword vimLet let unl[et] skipwhite nextgroup=vimVar,vimFuncVar 301 302" Abbreviations {{{2 303" ============= 304syn keyword vimAbb ab[breviate] ca[bbrev] inorea[bbrev] cnorea[bbrev] norea[bbrev] ia[bbrev] skipwhite nextgroup=vimMapMod,vimMapLhs 305 306" Autocmd {{{2 307" ======= 308syn match vimAutoEventList contained "\(!\s\+\)\=\(\a\+,\)*\a\+" contains=vimAutoEvent nextgroup=vimAutoCmdSpace 309syn match vimAutoCmdSpace contained "\s\+" nextgroup=vimAutoCmdSfxList 310syn match vimAutoCmdSfxList contained "\S*" 311syn keyword vimAutoCmd au[tocmd] do[autocmd] doautoa[ll] skipwhite nextgroup=vimAutoEventList 312 313" Echo and Execute -- prefer strings! {{{2 314" ================ 315syn region vimEcho oneline excludenl matchgroup=vimCommand start="\<ec\%[ho]\>" skip="\(\\\\\)*\\|" end="$\||" contains=vimFunc,vimFuncVar,vimString,vimVar 316syn region vimExecute oneline excludenl matchgroup=vimCommand start="\<exe\%[cute]\>" skip="\(\\\\\)*\\|" end="$\||\|<[cC][rR]>" contains=vimFuncVar,vimIsCommand,vimOper,vimNotation,vimOperParen,vimString,vimVar 317syn match vimEchoHL "echohl\=" skipwhite nextgroup=vimGroup,vimHLGroup,vimEchoHLNone 318syn case ignore 319syn keyword vimEchoHLNone none 320syn case match 321 322" Maps {{{2 323" ==== 324syn match vimMap "\<map\>!\=\ze\s*[^(]" skipwhite nextgroup=vimMapMod,vimMapLhs 325syn keyword vimMap cm[ap] cno[remap] im[ap] ino[remap] lm[ap] ln[oremap] nm[ap] nn[oremap] no[remap] om[ap] ono[remap] smap snor[emap] vm[ap] vn[oremap] xm[ap] xn[oremap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs 326syn keyword vimMap mapc[lear] smapc[lear] 327syn keyword vimUnmap cu[nmap] iu[nmap] lu[nmap] nun[map] ou[nmap] sunm[ap] unm[ap] unm[ap] vu[nmap] xu[nmap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs 328syn match vimMapLhs contained "\S\+" contains=vimNotation,vimCtrlChar skipwhite nextgroup=vimMapRhs 329syn match vimMapBang contained "!" skipwhite nextgroup=vimMapMod,vimMapLhs 330syn match vimMapMod contained "\c<\(buffer\|expr\|\(local\)\=leader\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs 331syn match vimMapRhs contained ".*" contains=vimNotation,vimCtrlChar skipnl nextgroup=vimMapRhsExtend 332syn match vimMapRhsExtend contained "^\s*\\.*$" contains=vimNotation,vimCtrlChar,vimContinue skipnl nextgroup=vimMapRhsExtend 333syn case ignore 334syn keyword vimMapModKey contained buffer expr leader localleader plug script sid silent unique 335syn case match 336 337" Menus {{{2 338" ===== 339syn cluster vimMenuList contains=vimMenuBang,vimMenuPriority,vimMenuName,vimMenuMod 340syn keyword vimCommand am[enu] an[oremenu] aun[menu] cme[nu] cnoreme[nu] cunme[nu] ime[nu] inoreme[nu] iunme[nu] me[nu] nme[nu] nnoreme[nu] noreme[nu] nunme[nu] ome[nu] onoreme[nu] ounme[nu] unme[nu] vme[nu] vnoreme[nu] vunme[nu] skipwhite nextgroup=@vimMenuList 341syn match vimMenuName "[^ \t\\<]\+" contained nextgroup=vimMenuNameMore,vimMenuMap 342syn match vimMenuPriority "\d\+\(\.\d\+\)*" contained skipwhite nextgroup=vimMenuName 343syn match vimMenuNameMore "\c\\\s\|<tab>\|\\\." contained nextgroup=vimMenuName,vimMenuNameMore contains=vimNotation 344syn match vimMenuMod contained "\c<\(script\|silent\)\+>" skipwhite contains=vimMapModKey,vimMapModErr nextgroup=@vimMenuList 345syn match vimMenuMap "\s" contained skipwhite nextgroup=vimMenuRhs 346syn match vimMenuRhs ".*$" contained contains=vimString,vimComment,vimIsCommand 347syn match vimMenuBang "!" contained skipwhite nextgroup=@vimMenuList 348 349" Angle-Bracket Notation (tnx to Michael Geddes) {{{2 350" ====================== 351syn case ignore 352syn match vimNotation "\(\\\|<lt>\)\=<\([scamd]-\)\{0,4}x\=\(f\d\{1,2}\|[^ \t:]\|cr\|lf\|linefeed\|return\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|right\|left\|help\|undo\|insert\|ins\|k\=home\|k\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|space\|k\=\(page\)\=\(\|down\|up\)\)>" contains=vimBracket 353syn match vimNotation "\(\\\|<lt>\)\=<\([scam2-4]-\)\{0,4}\(right\|left\|middle\)\(mouse\)\=\(drag\|release\)\=>" contains=vimBracket 354syn match vimNotation "\(\\\|<lt>\)\=<\(bslash\|plug\|sid\|space\|bar\|nop\|nul\|lt\)>" contains=vimBracket 355syn match vimNotation '\(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1 contains=vimBracket 356syn match vimNotation '\(\\\|<lt>\)\=<\%(q-\)\=\(line[12]\|count\|bang\|reg\|args\|f-args\|lt\)>' contains=vimBracket 357syn match vimNotation "\(\\\|<lt>\)\=<\([cas]file\|abuf\|amatch\|cword\|cWORD\|client\)>" contains=vimBracket 358syn match vimBracket contained "[\\<>]" 359syn case match 360 361" User Function Highlighting {{{2 362" (following Gautam Iyer's suggestion) 363" ========================== 364syn match vimFunc "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_]\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*(" contains=vimFuncName,vimUserFunc,vimExecute 365syn match vimUserFunc contained "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_]\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>" contains=vimNotation 366syn match vimNotFunc "\<if\>\|\<el\%[seif]\>\|\<return\>\|\<while\>" 367 368" Errors And Warnings: {{{2 369" ==================== 370if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimfunctionerror") 371 syn match vimFunctionError "\s\zs[a-z0-9]\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank 372" syn match vimFunctionError "\s\zs\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)[0-9]\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank 373 syn match vimElseIfErr "\<else\s\+if\>" 374 syn match vimBufnrWarn /\<bufnr\s*(\s*["']\.['"]\s*)/ 375endif 376 377" Norm {{{2 378" ==== 379syn match vimNorm "\<norm\%[al]!\=" skipwhite nextgroup=vimNormCmds 380syn match vimNormCmds contained ".*$" 381 382" Syntax {{{2 383"======= 384syn match vimGroupList contained "@\=[^ \t,]*" contains=vimGroupSpecial,vimPatSep 385syn match vimGroupList contained "@\=[^ \t,]*," nextgroup=vimGroupList contains=vimGroupSpecial,vimPatSep 386syn keyword vimGroupSpecial contained ALL ALLBUT CONTAINED TOP 387if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimsynerror") 388 syn match vimSynError contained "\i\+" 389 syn match vimSynError contained "\i\+=" nextgroup=vimGroupList 390endif 391syn match vimSynContains contained "\<contain\(s\|edin\)=" nextgroup=vimGroupList 392syn match vimSynKeyContainedin contained "\<containedin=" nextgroup=vimGroupList 393syn match vimSynNextgroup contained "nextgroup=" nextgroup=vimGroupList 394 395syn match vimSyntax "\<sy\%[ntax]\>" contains=vimCommand skipwhite nextgroup=vimSynType,vimComment 396syn match vimAuSyntax contained "\s+sy\%[ntax]" contains=vimCommand skipwhite nextgroup=vimSynType,vimComment 397syn cluster vimFuncBodyList add=vimSyntax 398 399" Syntax: case {{{2 400syn keyword vimSynType contained case skipwhite nextgroup=vimSynCase,vimSynCaseError 401if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimsyncaseerror") 402 syn match vimSynCaseError contained "\i\+" 403endif 404syn keyword vimSynCase contained ignore match 405 406" Syntax: clear {{{2 407syn keyword vimSynType contained clear skipwhite nextgroup=vimGroupList 408 409" Syntax: cluster {{{2 410syn keyword vimSynType contained cluster skipwhite nextgroup=vimClusterName 411syn region vimClusterName contained matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="$\||" contains=vimGroupAdd,vimGroupRem,vimSynContains,vimSynError 412syn match vimGroupAdd contained "add=" nextgroup=vimGroupList 413syn match vimGroupRem contained "remove=" nextgroup=vimGroupList 414syn cluster vimFuncBodyList add=vimSynType,vimGroupAdd,vimGroupRem 415 416" Syntax: include {{{2 417syn keyword vimSynType contained include skipwhite nextgroup=vimGroupList 418syn cluster vimFuncBodyList add=vimSynType 419 420" Syntax: keyword {{{2 421syn cluster vimSynKeyGroup contains=vimSynNextgroup,vimSynKeyOpt,vimSynKeyContainedin 422syn keyword vimSynType contained keyword skipwhite nextgroup=vimSynKeyRegion 423syn region vimSynKeyRegion contained oneline keepend matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="|\|$" contains=@vimSynKeyGroup 424syn match vimSynKeyOpt contained "\<\(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>" 425syn cluster vimFuncBodyList add=vimSynType 426 427" Syntax: match {{{2 428syn cluster vimSynMtchGroup contains=vimMtchComment,vimSynContains,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation 429syn keyword vimSynType contained match skipwhite nextgroup=vimSynMatchRegion 430syn region vimSynMatchRegion contained keepend matchgroup=vimGroupName start="\k\+" matchgroup=vimSep end="|\|$" contains=@vimSynMtchGroup 431syn match vimSynMtchOpt contained "\<\(conceal\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>" 432if has("conceal") 433 syn match vimSynMtchOpt contained "\<cchar=" nextgroup=vimSynMtchCchar 434 syn match vimSynMtchCchar contained "\S" 435endif 436syn cluster vimFuncBodyList add=vimSynMtchGroup 437 438" Syntax: off and on {{{2 439syn keyword vimSynType contained enable list manual off on reset 440 441" Syntax: region {{{2 442syn cluster vimSynRegPatGroup contains=vimPatSep,vimNotPatSep,vimSynPatRange,vimSynNotPatRange,vimSubstSubstr,vimPatRegion,vimPatSepErr,vimNotation 443syn cluster vimSynRegGroup contains=vimSynContains,vimSynNextgroup,vimSynRegOpt,vimSynReg,vimSynMtchGrp 444syn keyword vimSynType contained region skipwhite nextgroup=vimSynRegion 445syn region vimSynRegion contained keepend matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" end="|\|$" contains=@vimSynRegGroup 446syn match vimSynRegOpt contained "\<\(conceal\(ends\)\=\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|keepend\|oneline\|extend\|skipnl\|fold\)\>" 447syn match vimSynReg contained "\(start\|skip\|end\)="he=e-1 nextgroup=vimSynRegPat 448syn match vimSynMtchGrp contained "matchgroup=" nextgroup=vimGroup,vimHLGroup 449syn region vimSynRegPat contained extend start="\z([-`~!@#$%^&*_=+;:'",./?]\)" skip="\\\\\|\\\z1" end="\z1" contains=@vimSynRegPatGroup skipwhite nextgroup=vimSynPatMod,vimSynReg 450syn match vimSynPatMod contained "\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=" 451syn match vimSynPatMod contained "\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=," nextgroup=vimSynPatMod 452syn match vimSynPatMod contained "lc=\d\+" 453syn match vimSynPatMod contained "lc=\d\+," nextgroup=vimSynPatMod 454syn region vimSynPatRange contained start="\[" skip="\\\\\|\\]" end="]" 455syn match vimSynNotPatRange contained "\\\\\|\\\[" 456syn match vimMtchComment contained '"[^"]\+$' 457syn cluster vimFuncBodyList add=vimSynType 458 459" Syntax: sync {{{2 460" ============ 461syn keyword vimSynType contained sync skipwhite nextgroup=vimSyncC,vimSyncLines,vimSyncMatch,vimSyncError,vimSyncLinebreak,vimSyncLinecont,vimSyncRegion 462if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimsyncerror") 463 syn match vimSyncError contained "\i\+" 464endif 465syn keyword vimSyncC contained ccomment clear fromstart 466syn keyword vimSyncMatch contained match skipwhite nextgroup=vimSyncGroupName 467syn keyword vimSyncRegion contained region skipwhite nextgroup=vimSynReg 468syn match vimSyncLinebreak contained "\<linebreaks=" skipwhite nextgroup=vimNumber 469syn keyword vimSyncLinecont contained linecont skipwhite nextgroup=vimSynRegPat 470syn match vimSyncLines contained "\(min\|max\)\=lines=" nextgroup=vimNumber 471syn match vimSyncGroupName contained "\k\+" skipwhite nextgroup=vimSyncKey 472syn match vimSyncKey contained "\<groupthere\|grouphere\>" skipwhite nextgroup=vimSyncGroup 473syn match vimSyncGroup contained "\k\+" skipwhite nextgroup=vimSynRegPat,vimSyncNone 474syn keyword vimSyncNone contained NONE 475 476" Additional IsCommand, here by reasons of precedence {{{2 477" ==================== 478syn match vimIsCommand "<Bar>\s*\a\+" transparent contains=vimCommand,vimNotation 479 480" Highlighting {{{2 481" ============ 482syn cluster vimHighlightCluster contains=vimHiLink,vimHiClear,vimHiKeyList,vimComment 483if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimhictermerror") 484 syn match vimHiCtermError contained "[^0-9]\i*" 485endif 486syn match vimHighlight "\<hi\%[ghlight]\>" skipwhite nextgroup=vimHiBang,@vimHighlightCluster 487syn match vimHiBang contained "!" skipwhite nextgroup=@vimHighlightCluster 488 489syn match vimHiGroup contained "\i\+" 490syn case ignore 491syn keyword vimHiAttrib contained none bold inverse italic reverse standout underline undercurl 492syn keyword vimFgBgAttrib contained none bg background fg foreground 493syn case match 494syn match vimHiAttribList contained "\i\+" contains=vimHiAttrib 495syn match vimHiAttribList contained "\i\+,"he=e-1 contains=vimHiAttrib nextgroup=vimHiAttribList 496syn case ignore 497syn keyword vimHiCtermColor contained black blue brown cyan darkblue darkcyan darkgray darkgreen darkgrey darkmagenta darkred darkyellow gray green grey lightblue lightcyan lightgray lightgreen lightgrey lightmagenta lightred magenta red white yellow 498syn match vimHiCtermColor contained "\<color\d\{1,3}\>" 499 500syn case match 501syn match vimHiFontname contained "[a-zA-Z\-*]\+" 502syn match vimHiGuiFontname contained "'[a-zA-Z\-* ]\+'" 503syn match vimHiGuiRgb contained "#\x\{6}" 504 505" Highlighting: hi group key=arg ... {{{2 506syn cluster vimHiCluster contains=vimGroup,vimHiGroup,vimHiTerm,vimHiCTerm,vimHiStartStop,vimHiCtermFgBg,vimHiGui,vimHiGuiFont,vimHiGuiFgBg,vimHiKeyError,vimNotation 507syn region vimHiKeyList contained oneline start="\i\+" skip="\\\\\|\\|" end="$\||" contains=@vimHiCluster 508if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_vimhikeyerror") 509 syn match vimHiKeyError contained "\i\+="he=e-1 510endif 511syn match vimHiTerm contained "\cterm="he=e-1 nextgroup=vimHiAttribList 512syn match vimHiStartStop contained "\c\(start\|stop\)="he=e-1 nextgroup=vimHiTermcap,vimOption 513syn match vimHiCTerm contained "\ccterm="he=e-1 nextgroup=vimHiAttribList 514syn match vimHiCtermFgBg contained "\ccterm[fb]g="he=e-1 nextgroup=vimHiNmbr,vimHiCtermColor,vimFgBgAttrib,vimHiCtermError 515syn match vimHiGui contained "\cgui="he=e-1 nextgroup=vimHiAttribList 516syn match vimHiGuiFont contained "\cfont="he=e-1 nextgroup=vimHiFontname 517syn match vimHiGuiFgBg contained "\cgui\%([fb]g\|sp\)="he=e-1 nextgroup=vimHiGroup,vimHiGuiFontname,vimHiGuiRgb,vimFgBgAttrib 518syn match vimHiTermcap contained "\S\+" contains=vimNotation 519syn match vimHiNmbr contained '\d\+' 520 521" Highlight: clear {{{2 522syn keyword vimHiClear contained clear nextgroup=vimHiGroup 523 524" Highlight: link {{{2 525syn region vimHiLink contained oneline matchgroup=vimCommand start="\(\<hi\%[ghlight]\s\+\)\@<=\(\(def\%[ault]\s\+\)\=link\>\|\<def\>\)" end="$" contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation 526syn cluster vimFuncBodyList add=vimHiLink 527 528" Control Characters {{{2 529" ================== 530syn match vimCtrlChar "[--]" 531 532" Beginners - Patterns that involve ^ {{{2 533" ========= 534syn match vimLineComment +^[ \t:]*".*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle 535syn match vimCommentTitle '"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1 contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup 536syn match vimContinue "^\s*\\" 537syn region vimString start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue 538syn match vimCommentTitleLeader '"\s\+'ms=s+1 contained 539 540" Searches And Globals: {{{2 541" ==================== 542syn match vimSearch '^\s*[/?].*' contains=vimSearchDelim 543syn match vimSearchDelim '^\s*\zs[/?]\|[/?]$' contained 544syn region vimGlobal matchgroup=Statement start='\<g\%[lobal]!\=/' skip='\\.' end='/' 545syn region vimGlobal matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/' 546 547" Scripts : perl,ruby : Benoit Cerrina {{{2 548" ======= python,tcl: Johannes Zellner 549" lua 550 551" Allows users to specify the type of embedded script highlighting 552" they want: (perl/python/ruby/tcl support) 553" g:vimsyn_embed == 0 : don't embed any scripts 554" g:vimsyn_embed ~= 'l' : embed lua (but only if vim supports it) 555" g:vimsyn_embed ~= 'm' : embed mzscheme (but only if vim supports it) 556" g:vimsyn_embed ~= 'p' : embed perl (but only if vim supports it) 557" g:vimsyn_embed ~= 'P' : embed python (but only if vim supports it) 558" g:vimsyn_embed ~= 'r' : embed ruby (but only if vim supports it) 559" g:vimsyn_embed ~= 't' : embed tcl (but only if vim supports it) 560if !exists("g:vimsyn_embed") 561 let g:vimsyn_embed= "lmpPr" 562endif 563 564" [-- lua --] {{{3 565let s:luapath= fnameescape(expand("<sfile>:p:h")."/lua.vim") 566if !filereadable(s:luapath) 567 for s:luapath in split(globpath(&rtp,"syntax/lua.vim"),"\n") 568 if filereadable(fnameescape(s:luapath)) 569 let s:luapath= fnameescape(s:luapath) 570 break 571 endif 572 endfor 573endif 574if (g:vimsyn_embed =~ 'l' && has("lua")) && filereadable(s:luapath) 575 unlet! b:current_syntax 576 exe "syn include @vimLuaScript ".s:luapath 577 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'l' 578 syn region vimLuaRegion fold matchgroup=vimScriptDelim start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimLuaScript 579 syn region vimLuaRegion fold matchgroup=vimScriptDelim start=+lua\s*<<\s*$+ end=+\.$+ contains=@vimLuaScript 580 else 581 syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimLuaScript 582 syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*$+ end=+\.$+ contains=@vimLuaScript 583 endif 584 syn cluster vimFuncBodyList add=vimLuaRegion 585else 586 syn region vimEmbedError start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+ 587 syn region vimEmbedError start=+lua\s*<<\s*$+ end=+\.$+ 588endif 589unlet s:luapath 590 591" [-- perl --] {{{3 592let s:perlpath= fnameescape(expand("<sfile>:p:h")."/perl.vim") 593if !filereadable(s:perlpath) 594 for s:perlpath in split(globpath(&rtp,"syntax/perl.vim"),"\n") 595 if filereadable(fnameescape(s:perlpath)) 596 let s:perlpath= fnameescape(s:perlpath) 597 break 598 endif 599 endfor 600endif 601if (g:vimsyn_embed =~ 'p' && has("perl")) && filereadable(s:perlpath) 602 unlet! b:current_syntax 603 exe "syn include @vimPerlScript ".s:perlpath 604 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'p' 605 syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPerlScript 606 syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ contains=@vimPerlScript 607 else 608 syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPerlScript 609 syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ contains=@vimPerlScript 610 endif 611 syn cluster vimFuncBodyList add=vimPerlRegion 612else 613 syn region vimEmbedError start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ 614 syn region vimEmbedError start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ 615endif 616unlet s:perlpath 617 618" [-- ruby --] {{{3 619let s:rubypath= fnameescape(expand("<sfile>:p:h")."/ruby.vim") 620if !filereadable(s:rubypath) 621 for s:rubypath in split(globpath(&rtp,"syntax/ruby.vim"),"\n") 622 if filereadable(fnameescape(s:rubypath)) 623 let s:rubypath= fnameescape(s:rubypath) 624 break 625 endif 626 endfor 627endif 628if (g:vimsyn_embed =~ 'r' && has("ruby")) && filereadable(s:rubypath) 629 unlet! b:current_syntax 630 exe "syn include @vimRubyScript ".s:rubypath 631 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'r' 632 syn region vimRubyRegion fold matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimRubyScript 633 else 634 syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimRubyScript 635 endif 636 syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*$+ end=+\.$+ contains=@vimRubyScript 637 syn cluster vimFuncBodyList add=vimRubyRegion 638else 639 syn region vimEmbedError start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ 640 syn region vimEmbedError start=+rub[y]\s*<<\s*$+ end=+\.$+ 641endif 642unlet s:rubypath 643 644" [-- python --] {{{3 645let s:pythonpath= fnameescape(expand("<sfile>:p:h")."/python.vim") 646if !filereadable(s:pythonpath) 647 for s:pythonpath in split(globpath(&rtp,"syntax/python.vim"),"\n") 648 if filereadable(fnameescape(s:pythonpath)) 649 let s:pythonpath= fnameescape(s:pythonpath) 650 break 651 endif 652 endfor 653endif 654if g:vimsyn_embed =~ 'P' && (has("python") || has("python3")) && filereadable(s:pythonpath) 655 unlet! b:current_syntax 656 exe "syn include @vimPythonScript ".s:pythonpath 657 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'P' 658 syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript 659 syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript 660 else 661 syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript 662 syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript 663 endif 664 syn cluster vimFuncBodyList add=vimPythonRegion 665else 666 syn region vimEmbedError start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ 667 syn region vimEmbedError start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+ 668endif 669unlet s:pythonpath 670 671" [-- tcl --] {{{3 672if has("win32") || has("win95") || has("win64") || has("win16") 673 " apparently has("tcl") has been hanging vim on some windows systems with cygwin 674 let s:trytcl= (&shell !~ '\<\%(bash\>\|4[nN][tT]\|\<zsh\)\>\%(\.exe\)\=$') 675else 676 let s:trytcl= 1 677endif 678if s:trytcl 679 let s:tclpath= fnameescape(expand("<sfile>:p:h")."/tcl.vim") 680 if !filereadable(s:tclpath) 681 for s:tclpath in split(globpath(&rtp,"syntax/tcl.vim"),"\n") 682 if filereadable(fnameescape(s:tclpath)) 683 let s:tclpath= fnameescape(s:tclpath) 684 break 685 endif 686 endfor 687 endif 688 if (g:vimsyn_embed =~ 't' && has("tcl")) && filereadable(s:tclpath) 689 unlet! b:current_syntax 690 exe "syn include @vimTclScript ".s:tclpath 691 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 't' 692 syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript 693 syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript 694 else 695 syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript 696 syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript 697 endif 698 syn cluster vimFuncBodyList add=vimTclScript 699 else 700 syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ 701 syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+ 702 endif 703 unlet s:tclpath 704else 705 syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ 706 syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+ 707endif 708unlet s:trytcl 709 710" [-- mzscheme --] {{{3 711let s:mzschemepath= fnameescape(expand("<sfile>:p:h")."/scheme.vim") 712if !filereadable(s:mzschemepath) 713 for s:mzschemepath in split(globpath(&rtp,"syntax/mzscheme.vim"),"\n") 714 if filereadable(fnameescape(s:mzschemepath)) 715 let s:mzschemepath= fnameescape(s:mzschemepath) 716 break 717 endif 718 endfor 719endif 720if (g:vimsyn_embed =~ 'm' && has("mzscheme")) && filereadable(s:mzschemepath) 721 unlet! b:current_syntax 722 let iskKeep= &isk 723 exe "syn include @vimMzSchemeScript ".s:mzschemepath 724 let &isk= iskKeep 725 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'm' 726 syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimMzSchemeScript 727 syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ contains=@vimMzSchemeScript 728 else 729 syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimMzSchemeScript 730 syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ contains=@vimMzSchemeScript 731 endif 732 syn cluster vimFuncBodyList add=vimMzSchemeRegion 733else 734 syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ 735 syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ 736endif 737unlet s:mzschemepath 738 739" Synchronize (speed) {{{2 740"============ 741if exists("g:vimsyn_minlines") 742 exe "syn sync minlines=".g:vimsyn_minlines 743endif 744if exists("g:vimsyn_maxlines") 745 exe "syn sync maxlines=".g:vimsyn_maxlines 746else 747 syn sync maxlines=60 748endif 749syn sync linecont "^\s\+\\" 750syn sync match vimAugroupSyncA groupthere NONE "\<aug\%[roup]\>\s\+[eE][nN][dD]" 751 752" ==================== 753" Highlighting Settings {{{2 754" ==================== 755 756hi def link vimAuHighlight vimHighlight 757hi def link vimSubst1 vimSubst 758hi def link vimBehaveModel vimBehave 759 760if !exists("g:vimsyn_noerror") 761 hi def link vimBehaveError vimError 762 hi def link vimCollClassErr vimError 763 hi def link vimErrSetting vimError 764 hi def link vimEmbedError vimError 765 hi def link vimFTError vimError 766 hi def link vimFunctionError vimError 767 hi def link vimFunc vimError 768 hi def link vimHiAttribList vimError 769 hi def link vimHiCtermError vimError 770 hi def link vimHiKeyError vimError 771 hi def link vimKeyCodeError vimError 772 hi def link vimMapModErr vimError 773 hi def link vimSubstFlagErr vimError 774 hi def link vimSynCaseError vimError 775 hi def link vimBufnrWarn vimWarn 776endif 777 778hi def link vimAbb vimCommand 779hi def link vimAddress vimMark 780hi def link vimAugroupKey vimCommand 781hi def link vimAutoCmdOpt vimOption 782hi def link vimAutoCmd vimCommand 783hi def link vimAutoSet vimCommand 784hi def link vimBehave vimCommand 785hi def link vimCommentString vimString 786hi def link vimCondHL vimCommand 787hi def link vimEchoHLNone vimGroup 788hi def link vimEchoHL vimCommand 789hi def link vimElseif vimCondHL 790hi def link vimFgBgAttrib vimHiAttrib 791hi def link vimFTCmd vimCommand 792hi def link vimFTOption vimSynType 793hi def link vimFuncKey vimCommand 794hi def link vimGroupAdd vimSynOption 795hi def link vimGroupName vimGroup 796hi def link vimGroupRem vimSynOption 797hi def link vimHiClear vimHighlight 798hi def link vimHiCtermFgBg vimHiTerm 799hi def link vimHiCTerm vimHiTerm 800hi def link vimHighlight vimCommand 801hi def link vimHiGroup vimGroupName 802hi def link vimHiGuiFgBg vimHiTerm 803hi def link vimHiGuiFont vimHiTerm 804hi def link vimHiGuiRgb vimNumber 805hi def link vimHiGui vimHiTerm 806hi def link vimHiStartStop vimHiTerm 807hi def link vimHLGroup vimGroup 808hi def link vimInsert vimString 809hi def link vimKeyCode vimSpecFile 810hi def link vimLet vimCommand 811hi def link vimLineComment vimComment 812hi def link vimMapBang vimCommand 813hi def link vimMapModKey vimFuncSID 814hi def link vimMapMod vimBracket 815hi def link vimMap vimCommand 816hi def link vimMarkNumber vimNumber 817hi def link vimMenuMod vimMapMod 818hi def link vimMenuNameMore vimMenuName 819hi def link vimMtchComment vimComment 820hi def link vimNorm vimCommand 821hi def link vimNotFunc vimCommand 822hi def link vimNotPatSep vimString 823hi def link vimPatSepErr vimPatSep 824hi def link vimPatSepR vimPatSep 825hi def link vimPatSepZone vimString 826hi def link vimPatSepZ vimPatSep 827hi def link vimPlainMark vimMark 828hi def link vimPlainRegister vimRegister 829hi def link vimSearch vimString 830hi def link vimSetMod vimOption 831hi def link vimSetString vimString 832hi def link vimSpecFileMod vimSpecFile 833hi def link vimStringCont vimString 834hi def link vimSubstTwoBS vimString 835hi def link vimSubst vimCommand 836hi def link vimSyncGroupName vimGroupName 837hi def link vimSyncGroup vimGroupName 838hi def link vimSynContains vimSynOption 839hi def link vimSynKeyContainedin vimSynContains 840hi def link vimSynKeyOpt vimSynOption 841hi def link vimSynMtchGrp vimSynOption 842hi def link vimSynMtchOpt vimSynOption 843hi def link vimSynNextgroup vimSynOption 844hi def link vimSynNotPatRange vimSynRegPat 845hi def link vimSynPatRange vimString 846hi def link vimSynRegOpt vimSynOption 847hi def link vimSynRegPat vimString 848hi def link vimSyntax vimCommand 849hi def link vimSynType vimSpecial 850hi def link vimUnmap vimMap 851hi def link vimUserAttrbCmplt vimSpecial 852hi def link vimUserAttrbKey vimOption 853hi def link vimUserAttrb vimSpecial 854hi def link vimUserCommand vimCommand 855 856hi def link vimAutoEvent Type 857hi def link vimBracket Delimiter 858hi def link vimCmplxRepeat SpecialChar 859hi def link vimCommand Statement 860hi def link vimComment Comment 861hi def link vimCommentTitle PreProc 862hi def link vimContinue Special 863hi def link vimCtrlChar SpecialChar 864hi def link vimElseIfErr Error 865hi def link vimEnvvar PreProc 866hi def link vimError Error 867hi def link vimFold Folded 868hi def link vimFuncName Function 869hi def link vimFuncSID Special 870hi def link vimFuncVar Identifier 871hi def link vimGroupSpecial Special 872hi def link vimGroup Type 873hi def link vimHiAttrib PreProc 874hi def link vimHiTerm Type 875hi def link vimHLMod PreProc 876hi def link vimKeyword Statement 877hi def link vimMark Number 878hi def link vimMenuName PreProc 879hi def link vimNotation Special 880hi def link vimNumber Number 881hi def link vimOperError Error 882hi def link vimOper Operator 883hi def link vimOption PreProc 884hi def link vimParenSep Delimiter 885hi def link vimPatSep SpecialChar 886hi def link vimPattern Type 887hi def link vimRegister SpecialChar 888hi def link vimScriptDelim Comment 889hi def link vimSearchDelim Statement 890hi def link vimSep Delimiter 891hi def link vimSetSep Statement 892hi def link vimSpecFile Identifier 893hi def link vimSpecial Type 894hi def link vimStatement Statement 895hi def link vimString String 896hi def link vimSubstDelim Delimiter 897hi def link vimSubstFlags Special 898hi def link vimSubstSubstr SpecialChar 899hi def link vimSynCaseError Error 900hi def link vimSynCase Type 901hi def link vimSyncC Type 902hi def link vimSyncError Error 903hi def link vimSyncKey Type 904hi def link vimSyncNone Type 905hi def link vimSynError Error 906hi def link vimSynOption Special 907hi def link vimSynReg Type 908hi def link vimTodo Todo 909hi def link vimUserAttrbCmpltFunc Special 910hi def link vimUserCmdError Error 911hi def link vimUserFunc Normal 912hi def link vimVar Identifier 913hi def link vimWarn WarningMsg 914hi def link vimHiNmbr Number 915 916" Current Syntax Variable: {{{2 917let b:current_syntax = "vim" 918 919" --------------------------------------------------------------------- 920" Cleanup: {{{1 921let &cpo = s:keepcpo 922unlet s:keepcpo 923" vim:ts=18 fdm=marker 924