1" Vim syntax file 2" Language: Vim 7.3 script 3" Maintainer: Dr. Charles E. Campbell, Jr. <[email protected]> 4" Last Change: May 29, 2013 5" Version: 7.3-25 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] ar[gs] 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 el[se] endfo[r] ene[w] filename fin[d] folddoc[losed] fu[nction] 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] n new noautocmd on[ly] pc[lose] popu p[rint] promptr[epl] ptn pts[elect] py[thon] quote redi[r] res[ize] ru rv[iminfo] sbf[irst] sbr[ewind] scscope sfir[st] sim[alt] sme snoreme spe spellw[rong] star st[op] sunmenu syn ta tabf[ind] tabnew tabr[ewind] tcld[o] tj[ump] tN tp[revious] tu u[ndo] unlo[ckvar] verb[ose] vim[grep] vne[w] win wn[ext] w[rite] xa[ll] XMLent xunme 22syn keyword vimCommand contained ab argd[elete] 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 elsei[f] endfun ex files fini[sh] foldd[oopen] g 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] N n[ext] noh[lsearch] o[pen] pe popu[p] P[rint] ps[earch] ptN pu[t] python3 r red[o] ret[ab] rub[y] sal[l] sbl[ast] sb[uffer] se[t] sh[ell] sl smenu snoremenu spelld[ump] sp[lit] start stopi[nsert] sus[pend] sync tab tabfir[st] tabn[ext] tabs tclf[ile] tl[ast] tn[ext] tr tu[nmenu] undoj[oin] uns[ilent] ve[rsion] vimgrepa[dd] vs[plit] winc[md] wN[ext] ws[verb] x[it] XMLns xunmenu 23syn keyword vimCommand contained abc[lear] argdo 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] em[enu] endf[unction] exi[t] filet fir[st] foldo[pen] get 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 nbc[lose] N[ext] nu[mber] opt[ions] ped[it] pp[op] pro pta[g] ptn[ext] pw[d] q re redr[aw] retu[rn] rubyd[o] san[dbox] sbm[odified] scrip setf[iletype] si sla[st] sn[ext] s@\n@\=\r" spe[llgood] spr[evious] startg[replace] sts[elect] sv[iew] syncbind tabc[lose] tabl[ast] tabN[ext] ta[g] te[aroff] tm tN[ext] tr[ewind] u undol[ist] up[date] vert[ical] vi[sual] w windo wp[revious] wundo xmapc[lear] xnoreme xwininfo 24syn keyword vimCommand contained abo[veleft] arge[dit] 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] emenu* en[dif] exu[sage] filetype fix[del] for go[to] 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] mz nb[key] nkf o ownsyntax pe[rl] pr profd[el] ptf[irst] ptN[ext] py qa[ll] r[ead] redraws[tatus] rew[ind] rubyf[ile] sa[rgument] sbn[ext] scripte[ncoding] setg[lobal] sig sl[eep] sN[ext] so spelli[nfo] sre[wind] star[tinsert] sun[hide] sw[apname] synlist tabd[o] tabm[ove] tabo[nly] tags tf[irst] tm[enu] TOhtml try un unh[ide] v vi viu[sage] wa[ll] winp[os] wq wv[iminfo] xme xnoremenu y[ank] 25syn keyword vimCommand contained al[l] argg[lobal] 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 en endt[ry] f fin fo[ld] fu gr[ep] 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] mzf[ile] nbs[tart] nmapc[lear] ol[dfiles] p perld[o] pre[serve] prof[ile] ptj[ump] ptp[revious] py3 q[uit] rec[over] reg[isters] ri[ght] rundo sav[eas] sbN[ext] scrip[tnames] setl[ocal] sign sm[agic] sni[ff] sor[t] spellr[epall] st startr[eplace] sunme sy t tabe[dit] tabN tabp[revious] tc[l] th[row] tn to[pleft] ts[elect] una[bbreviate] unl ve vie[w] vmapc[lear] wh[ile] win[size] wqa[ll] x xmenu xterm errormsg 26syn keyword vimCommand contained ar argl[ocal] 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] endf endw[hile] f[ile] fina[lly] foldc[lose] fun grepa[dd] 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[scheme] ne noa omapc[lear] P po[p] prev[ious] promptf[ind] ptl[ast] ptr[ewind] pyf[ile] quita[ll] red Ren rightb[elow] ru[ntime] sba[ll] sbp[revious] scs sf[ind] sil[ent] sm[ap] sno[magic] so[urce] spellu[ndo] sta[g] stj[ump] 27syn match vimCommand contained "\<z[-+^.=]\=" 28 29" vimOptions are caught only when contained in a vimSet {{{2 30syn 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 shellxquote showcmd sidescroll smartindent sol spellsuggest sr stal sua swf syntax taglength tbidi terse tildeop tl tpm ttimeoutlen ttymouse udf undoreload vbs vi vop wcm whichwrap wildignore winaltkeys winminwidth wmnu write 31syn 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 shiftround showfulltag sidescrolloff smarttab sp spf srr startofline suffixes switchbuf ta tagrelative tbis textauto timeout tm tr ttm ttyscroll udir updatecount vdir viewdir wa wd wi wildignorecase window winwidth wmw writeany 32syn 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 shiftwidth showmatch siso smc spc spl ss statusline suffixesadd sws tabline tags tbs textmode timeoutlen to ts tty ttytype ul updatetime ve viewoptions wak weirdinvert wic wildmenu winfixheight wiv wop writebackup 33syn 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 shm showmode sj smd spell splitbelow ssl stl sw sxe tabpagemax tagstack tenc textwidth title toolbar tsl ttybuiltin tw undodir ur verbose viminfo warn wfh wig wildmode winfixwidth wiw wrap writedelay 34syn 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 shortmess showtabline slm sn spellcapcheck splitright ssop stmp swapfile sxq tabstop tal term tf titlelen toolbariconsize tsr ttyfast tx undofile ut verbosefile virtualedit wb wfw wildchar wildoptions winheight wm wrapmargin ws 35syn 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 shortname shq sm so spellfile spr st sts swapsync syn tag tb termbidi tgst titleold top ttimeout ttym uc undolevels vb vfile visualbell wc wh wildcharm wim winminheight wmh wrapscan ww 36syn 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 shellxescape showbreak si smartcase softtabstop spelllang sps sta su swb synmaxcol tagbsearch tbi termencoding thesaurus titlestring 37 38" vimOptions: These are the turn-off setting variants {{{2 39syn 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 40syn 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 41syn keyword vimOption contained noakm noanti noarab noari noautoindent noautowriteall nobackup nobin nobioskey nobomb noci nocompatible noconskey nocrb nocst nocul nocursorline nodg noea noedcompatible noeol 42 43" vimOptions: These are the invertible variants {{{2 44syn 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 45syn 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 46syn keyword vimOption contained invakm invanti invarab invari invautoindent invautowriteall invbackup invbin invbioskey invbomb invci invcompatible invconskey invcrb invcst invcul invcursorline invdg invea invedcompatible inveol 47 48" termcap codes (which can also be set) {{{2 49syn 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 50syn keyword vimOption contained t_AF t_AL t_cd t_Ce t_cm 51syn match vimOption contained "t_%1" 52syn match vimOption contained "t_#2" 53syn match vimOption contained "t_#4" 54syn match vimOption contained "t_@7" 55syn match vimOption contained "t_*7" 56syn match vimOption contained "t_&8" 57syn match vimOption contained "t_%i" 58syn match vimOption contained "t_k;" 59 60" unsupported settings: these are supported by vi but don't do anything in vim {{{2 61syn keyword vimErrSetting contained hardtabs ht w1200 w300 w9600 62 63" AutoCmd Events {{{2 64syn case ignore 65syn 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 66 67" Highlight commonly used Groupnames {{{2 68syn 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 69 70" Default highlighting groups {{{2 71syn 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 72syn match vimHLGroup contained "Conceal" 73syn case match 74 75" Function Names {{{2 76syn keyword vimFuncName contained abs and 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 isdirectory join libcall line2byte log map match matchdelete matchstr mkdir nextnonblank pathshorten printf pyeval reltime remote_foreground remote_read remove repeat reverse search searchpair searchpos serverlist setcmdpos setloclist setpos setreg settabwinvar shellescape 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 77syn keyword vimFuncName contained acos 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 islocked keys libcallnr lispindent log10 maparg matchadd matchend max mode nr2char pow pumvisible range reltimestr remote_peek remote_send rename resolve round searchdecl searchpairpos server2client setbufvar setline setmatches setqflist settabvar setwinvar shiftwidth 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 xor 78syn keyword vimFuncName contained add 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 invert items len line localtime luaeval mapcheck matcharg matchlist min mzeval or prevnonblank py3eval readfile remote_expr 79 80"--- syntax here and above generated by mkvimvim --- 81" Special Vim Highlighting (not automatic) {{{1 82 83" commands not picked up by the generator (due to non-standard format) 84syn keyword vimCommand contained py3 85 86" Deprecated variable options {{{2 87if exists("g:vim_minlines") 88 let g:vimsyn_minlines= g:vim_minlines 89endif 90if exists("g:vim_maxlines") 91 let g:vimsyn_maxlines= g:vim_maxlines 92endif 93if exists("g:vimsyntax_noerror") 94 let g:vimsyn_noerror= g:vimsyntax_noerror 95endif 96 97" Numbers {{{2 98" ======= 99syn match vimNumber "\<\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand 100syn match vimNumber "-\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand 101syn match vimNumber "\<0[xX]\x\+" 102syn match vimNumber "#\x\{6}" 103 104" All vimCommands are contained by vimIsCommands. {{{2 105syn match vimCmdSep "[:|]\+" skipwhite nextgroup=vimAddress,vimAutoCmd,vimCommand,vimExtCmd,vimFilter,vimLet,vimMap,vimMark,vimSet,vimSyntax,vimUserCmd 106syn match vimIsCommand "\<\h\w*\>" contains=vimCommand 107syn match vimVar contained "\<\h\w*\>" 108syn match vimVar "\<[bwglsav]:\h\w*\>" 109syn match vimFBVar contained "\<[bwglsav]:\h\w*\>" 110syn keyword vimCommand contained in 111 112" Insertions And Appends: insert append {{{2 113" ======================= 114syn region vimInsert matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=a\%[ppend]$" matchgroup=vimCommand end="^\.$"" 115syn region vimInsert matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=c\%[hange]$" matchgroup=vimCommand end="^\.$"" 116syn region vimInsert matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=i\%[nsert]$" matchgroup=vimCommand end="^\.$"" 117 118" Behave! {{{2 119" ======= 120syn match vimBehave "\<be\%[have]\>" skipwhite nextgroup=vimBehaveModel,vimBehaveError 121syn keyword vimBehaveModel contained mswin xterm 122if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_nobehaveerror") 123 syn match vimBehaveError contained "[^ ]\+" 124endif 125 126" Filetypes {{{2 127" ========= 128syn match vimFiletype "\<filet\%[ype]\(\s\+\I\i*\)*" skipwhite contains=vimFTCmd,vimFTOption,vimFTError 129if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_vimFTError") 130 syn match vimFTError contained "\I\i*" 131endif 132syn keyword vimFTCmd contained filet[ype] 133syn keyword vimFTOption contained detect indent off on plugin 134 135" Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2 136" ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking. 137syn 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 138if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'a' 139 syn region vimAugroup fold start="\<aug\%[roup]\>\s\+\h\w*" end="\<aug\%[roup]\>\s\+[eE][nN][dD]\>" contains=vimAugroupKey,vimAutoCmd,@vimAugroupList keepend 140else 141 syn region vimAugroup start="\<aug\%[roup]\>\s\+\h\w*" end="\<aug\%[roup]\>\s\+[eE][nN][dD]\>" contains=vimAugroupKey,vimAutoCmd,@vimAugroupList keepend 142endif 143syn match vimAugroup "aug\%[roup]!" contains=vimAugroupKey 144if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noaugrouperror") 145 syn match vimAugroupError "\<aug\%[roup]\>\s\+[eE][nN][dD]\>" 146endif 147syn keyword vimAugroupKey contained aug[roup] 148 149" Operators: {{{2 150" ========= 151" COMBAK: vimOperParen used to have "oneline" 152syn cluster vimOperGroup contains=vimEnvvar,vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue 153syn match vimOper "\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile 154syn match vimOper "||\|&&\|[-+.]" skipwhite nextgroup=vimString,vimSpecFile 155syn region vimOperParen matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup 156syn region vimOperParen matchgroup=vimSep start="{" end="}" contains=@vimOperGroup nextgroup=vimVar,vimFuncVar 157if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noopererror") 158 syn match vimOperError ")" 159endif 160 161" Functions : Tag is provided for those who wish to highlight tagged functions {{{2 162" ========= 163syn cluster vimFuncList contains=vimCommand,vimFunctionError,vimFuncKey,Tag,vimFuncSID 164syn 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,vimUnmap,vimUserCommand 165syn match vimFunction "\<fu\%[nction]!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*(" contains=@vimFuncList nextgroup=vimFuncBody 166 167if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'f' 168 syn region vimFuncBody contained fold start="\ze(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList 169else 170 syn region vimFuncBody contained start="\ze(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList 171endif 172syn match vimFuncVar contained "a:\(\h\w*\|\d\+\)" 173syn match vimFuncSID contained "\c<sid>\|\<s:" 174syn keyword vimFuncKey contained fu[nction] 175syn match vimFuncBlank contained "\s\+" 176 177syn keyword vimPattern contained start skip end 178 179" Special Filenames, Modifiers, Extension Removal: {{{2 180" =============================================== 181syn match vimSpecFile "<c\(word\|WORD\)>" nextgroup=vimSpecFileMod,vimSubst 182syn match vimSpecFile "<\([acs]file\|amatch\|abuf\)>" nextgroup=vimSpecFileMod,vimSubst 183syn match vimSpecFile "\s%[ \t:]"ms=s+1,me=e-1 nextgroup=vimSpecFileMod,vimSubst 184syn match vimSpecFile "\s%$"ms=s+1 nextgroup=vimSpecFileMod,vimSubst 185syn match vimSpecFile "\s%<"ms=s+1,me=e-1 nextgroup=vimSpecFileMod,vimSubst 186syn match vimSpecFile "#\d\+\|[#%]<\>" nextgroup=vimSpecFileMod,vimSubst 187syn match vimSpecFileMod "\(:[phtre]\)\+" contained 188 189" User-Specified Commands: {{{2 190" ======================= 191syn 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 192syn keyword vimUserCommand contained com[mand] 193syn match vimUserCmd "\<com\%[mand]!\=\>.*$" contains=vimUserAttrb,vimUserCommand,@vimUserCmdList 194syn match vimUserAttrb contained "-n\%[args]=[01*?+]" contains=vimUserAttrbKey,vimOper 195syn match vimUserAttrb contained "-com\%[plete]=" contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError 196syn match vimUserAttrb contained "-ra\%[nge]\(=%\|=\d\+\)\=" contains=vimNumber,vimOper,vimUserAttrbKey 197syn match vimUserAttrb contained "-cou\%[nt]=\d\+" contains=vimNumber,vimOper,vimUserAttrbKey 198syn match vimUserAttrb contained "-bang\=\>" contains=vimOper,vimUserAttrbKey 199syn match vimUserAttrb contained "-bar\>" contains=vimOper,vimUserAttrbKey 200syn match vimUserAttrb contained "-re\%[gister]\>" contains=vimOper,vimUserAttrbKey 201if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_nousercmderror") 202 syn match vimUserCmdError contained "\S\+\>" 203endif 204syn case ignore 205syn keyword vimUserAttrbKey contained bar ban[g] cou[nt] ra[nge] com[plete] n[args] re[gister] 206syn 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 207syn keyword vimUserAttrbCmplt contained custom customlist nextgroup=vimUserAttrbCmpltFunc,vimUserCmdError 208syn match vimUserAttrbCmpltFunc contained ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%(#\u\w*\)\+\|\u\w*\)"hs=s+1 nextgroup=vimUserCmdError 209 210syn case match 211syn match vimUserAttrbCmplt contained "custom,\u\w*" 212 213" Lower Priority Comments: after some vim commands... {{{2 214" ======================= 215syn match vimComment excludenl +\s"[^\-:.%#=*].*$+lc=1 contains=@vimCommentGroup,vimCommentString 216syn match vimComment +\<endif\s\+".*$+lc=5 contains=@vimCommentGroup,vimCommentString 217syn match vimComment +\<else\s\+".*$+lc=4 contains=@vimCommentGroup,vimCommentString 218syn region vimCommentString contained oneline start='\S\s\+"'ms=e end='"' 219 220" Environment Variables: {{{2 221" ===================== 222syn match vimEnvvar "\$\I\i*" 223syn match vimEnvvar "\${\I\i*}" 224 225" In-String Specials: {{{2 226" Try to catch strings, if nothing else matches (therefore it must precede the others!) 227" vimEscapeBrace handles ["] []"] (ie. "s don't terminate string inside []) 228syn region vimEscapeBrace oneline contained transparent start="[^\\]\(\\\\\)*\[\zs\^\=\]\=" skip="\\\\\|\\\]" end="]"me=e-1 229syn match vimPatSepErr contained "\\)" 230syn match vimPatSep contained "\\|" 231syn region vimPatSepZone oneline contained matchgroup=vimPatSepZ start="\\%\=\ze(" skip="\\\\" end="\\)\|[^\]['"]" contains=@vimStringGroup 232syn region vimPatRegion contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)" contains=@vimSubstList oneline 233syn match vimNotPatSep contained "\\\\" 234syn cluster vimStringGroup contains=vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell 235syn region vimString oneline keepend start=+[^:a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ end=+"+ contains=@vimStringGroup 236syn region vimString oneline keepend start=+[^:a-zA-Z>!\\@]'+lc=1 end=+'+ 237syn region vimString oneline start=+=!+lc=1 skip=+\\\\\|\\!+ end=+!+ contains=@vimStringGroup 238syn region vimString oneline start="=+"lc=1 skip="\\\\\|\\+" end="+" contains=@vimStringGroup 239syn region vimString oneline start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/" contains=@vimStringGroup 240syn match vimString contained +"[^"]*\\$+ skipnl nextgroup=vimStringCont 241syn match vimStringCont contained +\(\\\\\|.\)\{-}[^\\]"+ 242 243" Substitutions: {{{2 244" ============= 245syn cluster vimSubstList contains=vimPatSep,vimPatRegion,vimPatSepErr,vimSubstTwoBS,vimSubstRange,vimNotation 246syn cluster vimSubstRepList contains=vimSubstSubstr,vimSubstTwoBS,vimNotation 247syn cluster vimSubstList add=vimCollection 248syn match vimSubst "\(:\+\s*\|^\s*\||\s*\)\<\%(s\%[ubstitute]\|sm\%[agic]\|sno\%[magic]\)[:[:alpha:]]\@!" nextgroup=vimSubstPat 249syn match vimSubst "s\%[ubstitute][:#[:alpha:]]\@!" nextgroup=vimSubstPat contained 250syn match vimSubst "/\zss\%[ubstitute]\ze/" nextgroup=vimSubstPat 251syn match vimSubst1 contained "s\%[ubstitute]\>" nextgroup=vimSubstPat 252syn 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 253syn region vimSubstRep4 contained matchgroup=vimSubstDelim start="\z(.\)" skip="\\\\\|\\\z1" end="\z1" matchgroup=vimNotation end="<[cC][rR]>" contains=@vimSubstRepList nextgroup=vimSubstFlagErr oneline 254syn region vimCollection contained transparent start="\\\@<!\[" skip="\\\[" end="\]" contains=vimCollClass 255syn match vimCollClassErr contained "\[:.\{-\}:\]" 256syn match vimCollClass contained transparent "\[:\(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\|return\|tab\|escape\|backspace\):\]" 257syn match vimSubstSubstr contained "\\z\=\d" 258syn match vimSubstTwoBS contained "\\\\" 259syn match vimSubstFlagErr contained "[^< \t\r|]\+" contains=vimSubstFlags 260syn match vimSubstFlags contained "[&cegiIpr]\+" 261 262" 'String': {{{2 263syn match vimString "[^(,]'[^']\{-}\zs'" 264 265" Marks, Registers, Addresses, Filters: {{{2 266syn match vimMark "'[a-zA-Z0-9]\ze[-+,!]" nextgroup=vimOper,vimMarkNumber,vimSubst 267syn match vimMark "'[<>]\ze[-+,!]" nextgroup=vimOper,vimMarkNumber,vimSubst 268syn match vimMark ",\zs'[<>]\ze" nextgroup=vimOper,vimMarkNumber,vimSubst 269syn match vimMark "[!,:]\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumber,vimSubst 270syn match vimMark "\<norm\%[al]\s\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumber,vimSubst 271syn match vimMarkNumber "[-+]\d\+" nextgroup=vimSubst contained contains=vimOper 272syn match vimPlainMark contained "'[a-zA-Z0-9]" 273 274syn match vimRegister '[^,;[{]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":0-9]' 275syn match vimRegister '\<norm\s\+\zs"[a-zA-Z0-9]' 276syn match vimRegister '\<normal\s\+\zs"[a-zA-Z0-9]' 277syn match vimRegister '@"' 278syn match vimPlainRegister contained '"[a-zA-Z0-9\-:.%#*+=]' 279 280syn match vimAddress ",\zs[.$]" skipwhite nextgroup=vimSubst1 281syn match vimAddress "%\ze\a" skipwhite nextgroup=vimString,vimSubst1 282 283syn match vimFilter contained "^!.\{-}\(|\|$\)" contains=vimSpecFile 284syn match vimFilter contained "\A!.\{-}\(|\|$\)"ms=s+1 contains=vimSpecFile,vimFunction,vimFuncName,vimOperParen 285 286" Complex repeats (:h complex-repeat) {{{2 287syn match vimCmplxRepeat '[^a-zA-Z_/\\()]q[0-9a-zA-Z"]\>'lc=1 288syn match vimCmplxRepeat '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)' 289 290" Set command and associated set-options (vimOptions) with comment {{{2 291syn 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 292syn region vimSetEqual contained start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]\|$"me=e-1 contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar oneline 293syn region vimSetString contained start=+="+hs=s+1 skip=+\\\\\|\\"+ end=+"+ contains=vimCtrlChar 294syn match vimSetSep contained "[,:]" 295syn match vimSetMod contained "&vim\=\|[!&?<]\|all&" 296 297" Let {{{2 298" === 299syn keyword vimLet let unl[et] skipwhite nextgroup=vimVar,vimFuncVar 300 301" Abbreviations {{{2 302" ============= 303syn keyword vimAbb ab[breviate] ca[bbrev] inorea[bbrev] cnorea[bbrev] norea[bbrev] ia[bbrev] skipwhite nextgroup=vimMapMod,vimMapLhs 304 305" Autocmd {{{2 306" ======= 307syn match vimAutoEventList contained "\(!\s\+\)\=\(\a\+,\)*\a\+" contains=vimAutoEvent nextgroup=vimAutoCmdSpace 308syn match vimAutoCmdSpace contained "\s\+" nextgroup=vimAutoCmdSfxList 309syn match vimAutoCmdSfxList contained "\S*" 310syn keyword vimAutoCmd au[tocmd] do[autocmd] doautoa[ll] skipwhite nextgroup=vimAutoEventList 311 312" Echo and Execute -- prefer strings! {{{2 313" ================ 314syn region vimEcho oneline excludenl matchgroup=vimCommand start="\<ec\%[ho]\>" skip="\(\\\\\)*\\|" end="$\||" contains=vimFunc,vimFuncVar,vimString,vimVar 315syn region vimExecute oneline excludenl matchgroup=vimCommand start="\<exe\%[cute]\>" skip="\(\\\\\)*\\|" end="$\||\|<[cC][rR]>" contains=vimFuncVar,vimIsCommand,vimOper,vimNotation,vimOperParen,vimString,vimVar 316syn match vimEchoHL "echohl\=" skipwhite nextgroup=vimGroup,vimHLGroup,vimEchoHLNone 317syn case ignore 318syn keyword vimEchoHLNone none 319syn case match 320 321" Maps {{{2 322" ==== 323syn match vimMap "\<map\>!\=\ze\s*[^(]" skipwhite nextgroup=vimMapMod,vimMapLhs 324syn 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 325syn keyword vimMap mapc[lear] smapc[lear] 326syn 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 327syn match vimMapLhs contained "\S\+" contains=vimNotation,vimCtrlChar skipwhite nextgroup=vimMapRhs 328syn match vimMapBang contained "!" skipwhite nextgroup=vimMapMod,vimMapLhs 329syn match vimMapMod contained "\c<\(buffer\|expr\|\(local\)\=leader\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs 330syn match vimMapRhs contained ".*" contains=vimNotation,vimCtrlChar skipnl nextgroup=vimMapRhsExtend 331syn match vimMapRhsExtend contained "^\s*\\.*$" contains=vimNotation,vimCtrlChar,vimContinue skipnl nextgroup=vimMapRhsExtend 332syn case ignore 333syn keyword vimMapModKey contained buffer expr leader localleader plug script sid silent unique 334syn case match 335 336" Menus {{{2 337" ===== 338syn cluster vimMenuList contains=vimMenuBang,vimMenuPriority,vimMenuName,vimMenuMod 339syn 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 340syn match vimMenuName "[^ \t\\<]\+" contained nextgroup=vimMenuNameMore,vimMenuMap 341syn match vimMenuPriority "\d\+\(\.\d\+\)*" contained skipwhite nextgroup=vimMenuName 342syn match vimMenuNameMore "\c\\\s\|<tab>\|\\\." contained nextgroup=vimMenuName,vimMenuNameMore contains=vimNotation 343syn match vimMenuMod contained "\c<\(script\|silent\)\+>" skipwhite contains=vimMapModKey,vimMapModErr nextgroup=@vimMenuList 344syn match vimMenuMap "\s" contained skipwhite nextgroup=vimMenuRhs 345syn match vimMenuRhs ".*$" contained contains=vimString,vimComment,vimIsCommand 346syn match vimMenuBang "!" contained skipwhite nextgroup=@vimMenuList 347 348" Angle-Bracket Notation (tnx to Michael Geddes) {{{2 349" ====================== 350syn case ignore 351syn 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\|kpoint\|space\|k\=\(page\)\=\(\|down\|up\|k\d\>\)\)>" contains=vimBracket 352syn match vimNotation "\(\\\|<lt>\)\=<\([scam2-4]-\)\{0,4}\(right\|left\|middle\)\(mouse\)\=\(drag\|release\)\=>" contains=vimBracket 353syn match vimNotation "\(\\\|<lt>\)\=<\(bslash\|plug\|sid\|space\|bar\|nop\|nul\|lt\)>" contains=vimBracket 354syn match vimNotation '\(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1 contains=vimBracket 355syn match vimNotation '\(\\\|<lt>\)\=<\%(q-\)\=\(line[12]\|count\|bang\|reg\|args\|f-args\|lt\)>' contains=vimBracket 356syn match vimNotation "\(\\\|<lt>\)\=<\([cas]file\|abuf\|amatch\|cword\|cWORD\|client\)>" contains=vimBracket 357syn match vimBracket contained "[\\<>]" 358syn case match 359 360" User Function Highlighting {{{2 361" (following Gautam Iyer's suggestion) 362" ========================== 363syn match vimFunc "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_]\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*(" contains=vimFuncName,vimUserFunc,vimExecute 364syn match vimUserFunc contained "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_]\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>" contains=vimNotation 365syn match vimNotFunc "\<if\>\|\<el\%[seif]\>\|\<return\>\|\<while\>" 366 367" Errors And Warnings: {{{2 368" ==================== 369if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimfunctionerror") 370 syn match vimFunctionError "\s\zs[a-z0-9]\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank 371" syn match vimFunctionError "\s\zs\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)[0-9]\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank 372 syn match vimElseIfErr "\<else\s\+if\>" 373 syn match vimBufnrWarn /\<bufnr\s*(\s*["']\.['"]\s*)/ 374endif 375 376" Norm {{{2 377" ==== 378syn match vimNorm "\<norm\%[al]!\=" skipwhite nextgroup=vimNormCmds 379syn match vimNormCmds contained ".*$" 380 381" Syntax {{{2 382"======= 383syn match vimGroupList contained "@\=[^ \t,]*" contains=vimGroupSpecial,vimPatSep 384syn match vimGroupList contained "@\=[^ \t,]*," nextgroup=vimGroupList contains=vimGroupSpecial,vimPatSep 385syn keyword vimGroupSpecial contained ALL ALLBUT CONTAINED TOP 386if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimsynerror") 387 syn match vimSynError contained "\i\+" 388 syn match vimSynError contained "\i\+=" nextgroup=vimGroupList 389endif 390syn match vimSynContains contained "\<contain\(s\|edin\)=" nextgroup=vimGroupList 391syn match vimSynKeyContainedin contained "\<containedin=" nextgroup=vimGroupList 392syn match vimSynNextgroup contained "nextgroup=" nextgroup=vimGroupList 393 394syn match vimSyntax "\<sy\%[ntax]\>" contains=vimCommand skipwhite nextgroup=vimSynType,vimComment 395syn match vimAuSyntax contained "\s+sy\%[ntax]" contains=vimCommand skipwhite nextgroup=vimSynType,vimComment 396syn cluster vimFuncBodyList add=vimSyntax 397 398" Syntax: case {{{2 399syn keyword vimSynType contained case skipwhite nextgroup=vimSynCase,vimSynCaseError 400if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimsyncaseerror") 401 syn match vimSynCaseError contained "\i\+" 402endif 403syn keyword vimSynCase contained ignore match 404 405" Syntax: clear {{{2 406syn keyword vimSynType contained clear skipwhite nextgroup=vimGroupList 407 408" Syntax: cluster {{{2 409syn keyword vimSynType contained cluster skipwhite nextgroup=vimClusterName 410syn region vimClusterName contained matchgroup=vimGroupName start="\h\w*" skip="\\\\\|\\|" matchgroup=vimSep end="$\||" contains=vimGroupAdd,vimGroupRem,vimSynContains,vimSynError 411syn match vimGroupAdd contained "add=" nextgroup=vimGroupList 412syn match vimGroupRem contained "remove=" nextgroup=vimGroupList 413syn cluster vimFuncBodyList add=vimSynType,vimGroupAdd,vimGroupRem 414 415" Syntax: include {{{2 416syn keyword vimSynType contained include skipwhite nextgroup=vimGroupList 417syn cluster vimFuncBodyList add=vimSynType 418 419" Syntax: keyword {{{2 420syn cluster vimSynKeyGroup contains=vimSynNextgroup,vimSynKeyOpt,vimSynKeyContainedin 421syn keyword vimSynType contained keyword skipwhite nextgroup=vimSynKeyRegion 422syn region vimSynKeyRegion contained oneline keepend matchgroup=vimGroupName start="\h\w*" skip="\\\\\|\\|" matchgroup=vimSep end="|\|$" contains=@vimSynKeyGroup 423syn match vimSynKeyOpt contained "\<\(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>" 424syn cluster vimFuncBodyList add=vimSynType 425 426" Syntax: match {{{2 427syn cluster vimSynMtchGroup contains=vimMtchComment,vimSynContains,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation 428syn keyword vimSynType contained match skipwhite nextgroup=vimSynMatchRegion 429syn region vimSynMatchRegion contained keepend matchgroup=vimGroupName start="\h\w*" matchgroup=vimSep end="|\|$" contains=@vimSynMtchGroup 430syn match vimSynMtchOpt contained "\<\(conceal\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>" 431if has("conceal") 432 syn match vimSynMtchOpt contained "\<cchar=" nextgroup=vimSynMtchCchar 433 syn match vimSynMtchCchar contained "\S" 434endif 435syn cluster vimFuncBodyList add=vimSynMtchGroup 436 437" Syntax: off and on {{{2 438syn keyword vimSynType contained enable list manual off on reset 439 440" Syntax: region {{{2 441syn cluster vimSynRegPatGroup contains=vimPatSep,vimNotPatSep,vimSynPatRange,vimSynNotPatRange,vimSubstSubstr,vimPatRegion,vimPatSepErr,vimNotation 442syn cluster vimSynRegGroup contains=vimSynContains,vimSynNextgroup,vimSynRegOpt,vimSynReg,vimSynMtchGrp 443syn keyword vimSynType contained region skipwhite nextgroup=vimSynRegion 444syn region vimSynRegion contained keepend matchgroup=vimGroupName start="\h\w*" skip="\\\\\|\\|" end="|\|$" contains=@vimSynRegGroup 445syn match vimSynRegOpt contained "\<\(conceal\(ends\)\=\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|keepend\|oneline\|extend\|skipnl\|fold\)\>" 446syn match vimSynReg contained "\(start\|skip\|end\)="he=e-1 nextgroup=vimSynRegPat 447syn match vimSynMtchGrp contained "matchgroup=" nextgroup=vimGroup,vimHLGroup 448syn region vimSynRegPat contained extend start="\z([-`~!@#$%^&*_=+;:'",./?]\)" skip="\\\\\|\\\z1" end="\z1" contains=@vimSynRegPatGroup skipwhite nextgroup=vimSynPatMod,vimSynReg 449syn match vimSynPatMod contained "\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=" 450syn match vimSynPatMod contained "\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=," nextgroup=vimSynPatMod 451syn match vimSynPatMod contained "lc=\d\+" 452syn match vimSynPatMod contained "lc=\d\+," nextgroup=vimSynPatMod 453syn region vimSynPatRange contained start="\[" skip="\\\\\|\\]" end="]" 454syn match vimSynNotPatRange contained "\\\\\|\\\[" 455syn match vimMtchComment contained '"[^"]\+$' 456syn cluster vimFuncBodyList add=vimSynType 457 458" Syntax: sync {{{2 459" ============ 460syn keyword vimSynType contained sync skipwhite nextgroup=vimSyncC,vimSyncLines,vimSyncMatch,vimSyncError,vimSyncLinebreak,vimSyncLinecont,vimSyncRegion 461if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimsyncerror") 462 syn match vimSyncError contained "\i\+" 463endif 464syn keyword vimSyncC contained ccomment clear fromstart 465syn keyword vimSyncMatch contained match skipwhite nextgroup=vimSyncGroupName 466syn keyword vimSyncRegion contained region skipwhite nextgroup=vimSynReg 467syn match vimSyncLinebreak contained "\<linebreaks=" skipwhite nextgroup=vimNumber 468syn keyword vimSyncLinecont contained linecont skipwhite nextgroup=vimSynRegPat 469syn match vimSyncLines contained "\(min\|max\)\=lines=" nextgroup=vimNumber 470syn match vimSyncGroupName contained "\h\w*" skipwhite nextgroup=vimSyncKey 471syn match vimSyncKey contained "\<groupthere\|grouphere\>" skipwhite nextgroup=vimSyncGroup 472syn match vimSyncGroup contained "\h\w*" skipwhite nextgroup=vimSynRegPat,vimSyncNone 473syn keyword vimSyncNone contained NONE 474 475" Additional IsCommand, here by reasons of precedence {{{2 476" ==================== 477syn match vimIsCommand "<Bar>\s*\a\+" transparent contains=vimCommand,vimNotation 478 479" Highlighting {{{2 480" ============ 481syn cluster vimHighlightCluster contains=vimHiLink,vimHiClear,vimHiKeyList,vimComment 482if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimhictermerror") 483 syn match vimHiCtermError contained "[^0-9]\i*" 484endif 485syn match vimHighlight "\<hi\%[ghlight]\>" skipwhite nextgroup=vimHiBang,@vimHighlightCluster 486syn match vimHiBang contained "!" skipwhite nextgroup=@vimHighlightCluster 487 488syn match vimHiGroup contained "\i\+" 489syn case ignore 490syn keyword vimHiAttrib contained none bold inverse italic reverse standout underline undercurl 491syn keyword vimFgBgAttrib contained none bg background fg foreground 492syn case match 493syn match vimHiAttribList contained "\i\+" contains=vimHiAttrib 494syn match vimHiAttribList contained "\i\+,"he=e-1 contains=vimHiAttrib nextgroup=vimHiAttribList 495syn case ignore 496syn 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 497syn match vimHiCtermColor contained "\<color\d\{1,3}\>" 498 499syn case match 500syn match vimHiFontname contained "[a-zA-Z\-*]\+" 501syn match vimHiGuiFontname contained "'[a-zA-Z\-* ]\+'" 502syn match vimHiGuiRgb contained "#\x\{6}" 503 504" Highlighting: hi group key=arg ... {{{2 505syn cluster vimHiCluster contains=vimGroup,vimHiGroup,vimHiTerm,vimHiCTerm,vimHiStartStop,vimHiCtermFgBg,vimHiGui,vimHiGuiFont,vimHiGuiFgBg,vimHiKeyError,vimNotation 506syn region vimHiKeyList contained oneline start="\i\+" skip="\\\\\|\\|" end="$\||" contains=@vimHiCluster 507if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_vimhikeyerror") 508 syn match vimHiKeyError contained "\i\+="he=e-1 509endif 510syn match vimHiTerm contained "\cterm="he=e-1 nextgroup=vimHiAttribList 511syn match vimHiStartStop contained "\c\(start\|stop\)="he=e-1 nextgroup=vimHiTermcap,vimOption 512syn match vimHiCTerm contained "\ccterm="he=e-1 nextgroup=vimHiAttribList 513syn match vimHiCtermFgBg contained "\ccterm[fb]g="he=e-1 nextgroup=vimHiNmbr,vimHiCtermColor,vimFgBgAttrib,vimHiCtermError 514syn match vimHiGui contained "\cgui="he=e-1 nextgroup=vimHiAttribList 515syn match vimHiGuiFont contained "\cfont="he=e-1 nextgroup=vimHiFontname 516syn match vimHiGuiFgBg contained "\cgui\%([fb]g\|sp\)="he=e-1 nextgroup=vimHiGroup,vimHiGuiFontname,vimHiGuiRgb,vimFgBgAttrib 517syn match vimHiTermcap contained "\S\+" contains=vimNotation 518syn match vimHiNmbr contained '\d\+' 519 520" Highlight: clear {{{2 521syn keyword vimHiClear contained clear nextgroup=vimHiGroup 522 523" Highlight: link {{{2 524syn region vimHiLink contained oneline matchgroup=vimCommand start="\(\<hi\%[ghlight]\s\+\)\@<=\(\(def\%[ault]\s\+\)\=link\>\|\<def\>\)" end="$" contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation 525syn cluster vimFuncBodyList add=vimHiLink 526 527" Control Characters {{{2 528" ================== 529syn match vimCtrlChar "[--]" 530 531" Beginners - Patterns that involve ^ {{{2 532" ========= 533syn match vimLineComment +^[ \t:]*".*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle 534syn match vimCommentTitle '"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1 contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup 535syn match vimContinue "^\s*\\" 536syn region vimString start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue 537syn match vimCommentTitleLeader '"\s\+'ms=s+1 contained 538 539" Searches And Globals: {{{2 540" ==================== 541syn match vimSearch '^\s*[/?].*' contains=vimSearchDelim 542syn match vimSearchDelim '^\s*\zs[/?]\|[/?]$' contained 543syn region vimGlobal matchgroup=Statement start='\<g\%[lobal]!\=/' skip='\\.' end='/' skipwhite nextgroup=vimSubst 544syn region vimGlobal matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/' skipwhite nextgroup=vimSubst 545 546" Scripts : perl,ruby : Benoit Cerrina {{{2 547" ======= python,tcl: Johannes Zellner 548" lua 549 550" Allows users to specify the type of embedded script highlighting 551" they want: (perl/python/ruby/tcl support) 552" g:vimsyn_embed == 0 : don't embed any scripts 553" g:vimsyn_embed ~= 'l' : embed lua (but only if vim supports it) 554" g:vimsyn_embed ~= 'm' : embed mzscheme (but only if vim supports it) 555" g:vimsyn_embed ~= 'p' : embed perl (but only if vim supports it) 556" g:vimsyn_embed ~= 'P' : embed python (but only if vim supports it) 557" g:vimsyn_embed ~= 'r' : embed ruby (but only if vim supports it) 558" g:vimsyn_embed ~= 't' : embed tcl (but only if vim supports it) 559if !exists("g:vimsyn_embed") 560 let g:vimsyn_embed= "lmpPr" 561endif 562 563" [-- lua --] {{{3 564let s:luapath= fnameescape(expand("<sfile>:p:h")."/lua.vim") 565if !filereadable(s:luapath) 566 for s:luapath in split(globpath(&rtp,"syntax/lua.vim"),"\n") 567 if filereadable(fnameescape(s:luapath)) 568 let s:luapath= fnameescape(s:luapath) 569 break 570 endif 571 endfor 572endif 573if (g:vimsyn_embed =~ 'l' && has("lua")) && filereadable(s:luapath) 574 unlet! b:current_syntax 575 exe "syn include @vimLuaScript ".s:luapath 576 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'l' 577 syn region vimLuaRegion fold matchgroup=vimScriptDelim start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimLuaScript 578 syn region vimLuaRegion fold matchgroup=vimScriptDelim start=+lua\s*<<\s*$+ end=+\.$+ contains=@vimLuaScript 579 else 580 syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimLuaScript 581 syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*$+ end=+\.$+ contains=@vimLuaScript 582 endif 583 syn cluster vimFuncBodyList add=vimLuaRegion 584else 585 syn region vimEmbedError start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+ 586 syn region vimEmbedError start=+lua\s*<<\s*$+ end=+\.$+ 587endif 588unlet s:luapath 589 590" [-- perl --] {{{3 591let s:perlpath= fnameescape(expand("<sfile>:p:h")."/perl.vim") 592if !filereadable(s:perlpath) 593 for s:perlpath in split(globpath(&rtp,"syntax/perl.vim"),"\n") 594 if filereadable(fnameescape(s:perlpath)) 595 let s:perlpath= fnameescape(s:perlpath) 596 break 597 endif 598 endfor 599endif 600if (g:vimsyn_embed =~ 'p' && has("perl")) && filereadable(s:perlpath) 601 unlet! b:current_syntax 602 exe "syn include @vimPerlScript ".s:perlpath 603 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'p' 604 syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPerlScript 605 syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ contains=@vimPerlScript 606 else 607 syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPerlScript 608 syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ contains=@vimPerlScript 609 endif 610 syn cluster vimFuncBodyList add=vimPerlRegion 611else 612 syn region vimEmbedError start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ 613 syn region vimEmbedError start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ 614endif 615unlet s:perlpath 616 617" [-- ruby --] {{{3 618let s:rubypath= fnameescape(expand("<sfile>:p:h")."/ruby.vim") 619if !filereadable(s:rubypath) 620 for s:rubypath in split(globpath(&rtp,"syntax/ruby.vim"),"\n") 621 if filereadable(fnameescape(s:rubypath)) 622 let s:rubypath= fnameescape(s:rubypath) 623 break 624 endif 625 endfor 626endif 627if (g:vimsyn_embed =~ 'r' && has("ruby")) && filereadable(s:rubypath) 628 unlet! b:current_syntax 629 exe "syn include @vimRubyScript ".s:rubypath 630 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'r' 631 syn region vimRubyRegion fold matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimRubyScript 632 else 633 syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimRubyScript 634 endif 635 syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*$+ end=+\.$+ contains=@vimRubyScript 636 syn cluster vimFuncBodyList add=vimRubyRegion 637else 638 syn region vimEmbedError start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ 639 syn region vimEmbedError start=+rub[y]\s*<<\s*$+ end=+\.$+ 640endif 641unlet s:rubypath 642 643" [-- python --] {{{3 644let s:pythonpath= fnameescape(expand("<sfile>:p:h")."/python.vim") 645if !filereadable(s:pythonpath) 646 for s:pythonpath in split(globpath(&rtp,"syntax/python.vim"),"\n") 647 if filereadable(fnameescape(s:pythonpath)) 648 let s:pythonpath= fnameescape(s:pythonpath) 649 break 650 endif 651 endfor 652endif 653if g:vimsyn_embed =~ 'P' && (has("python") || has("python3")) && filereadable(s:pythonpath) 654 unlet! b:current_syntax 655 exe "syn include @vimPythonScript ".s:pythonpath 656 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'P' 657 syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript 658 syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript 659 else 660 syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript 661 syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript 662 endif 663 syn cluster vimFuncBodyList add=vimPythonRegion 664else 665 syn region vimEmbedError start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ 666 syn region vimEmbedError start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+ 667endif 668unlet s:pythonpath 669 670" [-- tcl --] {{{3 671if has("win32") || has("win95") || has("win64") || has("win16") 672 " apparently has("tcl") has been hanging vim on some windows systems with cygwin 673 let s:trytcl= (&shell !~ '\<\%(bash\>\|4[nN][tT]\|\<zsh\)\>\%(\.exe\)\=$') 674else 675 let s:trytcl= 1 676endif 677if s:trytcl 678 let s:tclpath= fnameescape(expand("<sfile>:p:h")."/tcl.vim") 679 if !filereadable(s:tclpath) 680 for s:tclpath in split(globpath(&rtp,"syntax/tcl.vim"),"\n") 681 if filereadable(fnameescape(s:tclpath)) 682 let s:tclpath= fnameescape(s:tclpath) 683 break 684 endif 685 endfor 686 endif 687 if (g:vimsyn_embed =~ 't' && has("tcl")) && filereadable(s:tclpath) 688 unlet! b:current_syntax 689 exe "syn include @vimTclScript ".s:tclpath 690 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 't' 691 syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript 692 syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript 693 else 694 syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript 695 syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript 696 endif 697 syn cluster vimFuncBodyList add=vimTclScript 698 else 699 syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ 700 syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+ 701 endif 702 unlet s:tclpath 703else 704 syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ 705 syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+ 706endif 707unlet s:trytcl 708 709" [-- mzscheme --] {{{3 710let s:mzschemepath= fnameescape(expand("<sfile>:p:h")."/scheme.vim") 711if !filereadable(s:mzschemepath) 712 for s:mzschemepath in split(globpath(&rtp,"syntax/mzscheme.vim"),"\n") 713 if filereadable(fnameescape(s:mzschemepath)) 714 let s:mzschemepath= fnameescape(s:mzschemepath) 715 break 716 endif 717 endfor 718endif 719if (g:vimsyn_embed =~ 'm' && has("mzscheme")) && filereadable(s:mzschemepath) 720 unlet! b:current_syntax 721 let iskKeep= &isk 722 exe "syn include @vimMzSchemeScript ".s:mzschemepath 723 let &isk= iskKeep 724 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'm' 725 syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimMzSchemeScript 726 syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ contains=@vimMzSchemeScript 727 else 728 syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimMzSchemeScript 729 syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ contains=@vimMzSchemeScript 730 endif 731 syn cluster vimFuncBodyList add=vimMzSchemeRegion 732else 733 syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ 734 syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ 735endif 736unlet s:mzschemepath 737 738" Synchronize (speed) {{{2 739"============ 740if exists("g:vimsyn_minlines") 741 exe "syn sync minlines=".g:vimsyn_minlines 742endif 743if exists("g:vimsyn_maxlines") 744 exe "syn sync maxlines=".g:vimsyn_maxlines 745else 746 syn sync maxlines=60 747endif 748syn sync linecont "^\s\+\\" 749syn sync match vimAugroupSyncA groupthere NONE "\<aug\%[roup]\>\s\+[eE][nN][dD]" 750 751" ==================== 752" Highlighting Settings {{{2 753" ==================== 754 755 756if !exists("g:vimsyn_noerror") 757 hi def link vimBehaveError vimError 758 hi def link vimCollClassErr vimError 759 hi def link vimErrSetting vimError 760 hi def link vimEmbedError vimError 761 hi def link vimFTError vimError 762 hi def link vimFunctionError vimError 763 hi def link vimFunc vimError 764 hi def link vimHiAttribList vimError 765 hi def link vimHiCtermError vimError 766 hi def link vimHiKeyError vimError 767 hi def link vimKeyCodeError vimError 768 hi def link vimMapModErr vimError 769 hi def link vimSubstFlagErr vimError 770 hi def link vimSynCaseError vimError 771 hi def link vimBufnrWarn vimWarn 772endif 773 774hi def link vimAbb vimCommand 775hi def link vimAddress vimMark 776hi def link vimAugroupKey vimCommand 777hi def link vimAuHighlight vimHighlight 778hi def link vimAutoCmdOpt vimOption 779hi def link vimAutoCmd vimCommand 780hi def link vimAutoEvent Type 781hi def link vimAutoSet vimCommand 782hi def link vimBehaveModel vimBehave 783hi def link vimBehave vimCommand 784hi def link vimBracket Delimiter 785hi def link vimCmplxRepeat SpecialChar 786hi def link vimCommand Statement 787hi def link vimComment Comment 788hi def link vimCommentString vimString 789hi def link vimCommentTitle PreProc 790hi def link vimCondHL vimCommand 791hi def link vimContinue Special 792hi def link vimCtrlChar SpecialChar 793hi def link vimEchoHLNone vimGroup 794hi def link vimEchoHL vimCommand 795hi def link vimElseIfErr Error 796hi def link vimElseif vimCondHL 797hi def link vimEnvvar PreProc 798hi def link vimError Error 799hi def link vimFBVar vimVar 800hi def link vimFgBgAttrib vimHiAttrib 801hi def link vimFold Folded 802hi def link vimFTCmd vimCommand 803hi def link vimFTOption vimSynType 804hi def link vimFuncKey vimCommand 805hi def link vimFuncName Function 806hi def link vimFuncSID Special 807hi def link vimFuncVar Identifier 808hi def link vimGroupAdd vimSynOption 809hi def link vimGroupName vimGroup 810hi def link vimGroupRem vimSynOption 811hi def link vimGroupSpecial Special 812hi def link vimGroup Type 813hi def link vimHiAttrib PreProc 814hi def link vimHiClear vimHighlight 815hi def link vimHiCtermFgBg vimHiTerm 816hi def link vimHiCTerm vimHiTerm 817hi def link vimHighlight vimCommand 818hi def link vimHiGroup vimGroupName 819hi def link vimHiGuiFgBg vimHiTerm 820hi def link vimHiGuiFont vimHiTerm 821hi def link vimHiGuiRgb vimNumber 822hi def link vimHiGui vimHiTerm 823hi def link vimHiNmbr Number 824hi def link vimHiStartStop vimHiTerm 825hi def link vimHiTerm Type 826hi def link vimHLGroup vimGroup 827hi def link vimHLMod PreProc 828hi def link vimInsert vimString 829hi def link vimKeyCode vimSpecFile 830hi def link vimKeyword Statement 831hi def link vimLet vimCommand 832hi def link vimLineComment vimComment 833hi def link vimMapBang vimCommand 834hi def link vimMapModKey vimFuncSID 835hi def link vimMapMod vimBracket 836hi def link vimMap vimCommand 837hi def link vimMark Number 838hi def link vimMarkNumber vimNumber 839hi def link vimMenuMod vimMapMod 840hi def link vimMenuNameMore vimMenuName 841hi def link vimMenuName PreProc 842hi def link vimMtchComment vimComment 843hi def link vimNorm vimCommand 844hi def link vimNotation Special 845hi def link vimNotFunc vimCommand 846hi def link vimNotPatSep vimString 847hi def link vimNumber Number 848hi def link vimOperError Error 849hi def link vimOper Operator 850hi def link vimOption PreProc 851hi def link vimParenSep Delimiter 852hi def link vimPatSepErr vimPatSep 853hi def link vimPatSepR vimPatSep 854hi def link vimPatSep SpecialChar 855hi def link vimPatSepZone vimString 856hi def link vimPatSepZ vimPatSep 857hi def link vimPattern Type 858hi def link vimPlainMark vimMark 859hi def link vimPlainRegister vimRegister 860hi def link vimRegister SpecialChar 861hi def link vimScriptDelim Comment 862hi def link vimSearchDelim Statement 863hi def link vimSearch vimString 864hi def link vimSep Delimiter 865hi def link vimSetMod vimOption 866hi def link vimSetSep Statement 867hi def link vimSetString vimString 868hi def link vimSpecFile Identifier 869hi def link vimSpecFileMod vimSpecFile 870hi def link vimSpecial Type 871hi def link vimStatement Statement 872hi def link vimStringCont vimString 873hi def link vimString String 874hi def link vimSubst1 vimSubst 875hi def link vimSubstDelim Delimiter 876hi def link vimSubstFlags Special 877hi def link vimSubstSubstr SpecialChar 878hi def link vimSubstTwoBS vimString 879hi def link vimSubst vimCommand 880hi def link vimSynCaseError Error 881hi def link vimSynCase Type 882hi def link vimSyncC Type 883hi def link vimSyncError Error 884hi def link vimSyncGroupName vimGroupName 885hi def link vimSyncGroup vimGroupName 886hi def link vimSyncKey Type 887hi def link vimSyncNone Type 888hi def link vimSynContains vimSynOption 889hi def link vimSynError Error 890hi def link vimSynKeyContainedin vimSynContains 891hi def link vimSynKeyOpt vimSynOption 892hi def link vimSynMtchGrp vimSynOption 893hi def link vimSynMtchOpt vimSynOption 894hi def link vimSynNextgroup vimSynOption 895hi def link vimSynNotPatRange vimSynRegPat 896hi def link vimSynOption Special 897hi def link vimSynPatRange vimString 898hi def link vimSynRegOpt vimSynOption 899hi def link vimSynRegPat vimString 900hi def link vimSynReg Type 901hi def link vimSyntax vimCommand 902hi def link vimSynType vimSpecial 903hi def link vimTodo Todo 904hi def link vimUnmap vimMap 905hi def link vimUserAttrbCmpltFunc Special 906hi def link vimUserAttrbCmplt vimSpecial 907hi def link vimUserAttrbKey vimOption 908hi def link vimUserAttrb vimSpecial 909hi def link vimUserCmdError Error 910hi def link vimUserCommand vimCommand 911hi def link vimUserFunc Normal 912hi def link vimVar Identifier 913hi def link vimWarn WarningMsg 914 915" Current Syntax Variable: {{{2 916let b:current_syntax = "vim" 917 918" --------------------------------------------------------------------- 919" Cleanup: {{{1 920let &cpo = s:keepcpo 921unlet s:keepcpo 922" vim:ts=18 fdm=marker 923