1" Vim syntax file 2" Language: Vim 7.3 script 3" Maintainer: Dr. Charles E. Campbell, Jr. <[email protected]> 4" Last Change: Jul 19, 2010 5" Version: 7.3-02 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 12 13" vimTodo: contains common special-notices for comments {{{2 14" Use the vimCommentGroup cluster to add your own. 15syn keyword vimTodo contained COMBAK FIXME TODO XXX 16syn cluster vimCommentGroup contains=vimTodo,@Spell 17 18" regular vim commands {{{2 19syn keyword vimCommand contained abc[lear] argdo argu[ment] bel[owright] bN[ext] breakd[el] b[uffer] caddb[uffer] cb[uffer] cex[pr] cg[etfile] checkt[ime] cnew[er] col[der] con[tinue] cq[uit] delc[ommand] diffoff diffu[pdate] dr[op] echom[sg] em[enu] endt[ry] exi[t] fina[lly] fix[del] foldd[oopen] go[to] hid[e] ij[ump] isp[lit] k laddb[uffer] la[st] lch[dir] lex[pr] lgete[xpr] l[ist] lmak[e] lN[ext] loc[kmarks] lpf[ile] lt[ag] lv[imgrep] ma[rk] mk[exrc] mkv[imrc] mz[scheme] new noh[lsearch] on[ly] ped[it] popu prev[ious] prof[ile] pta[g] ptn[ext] pts[elect] py[thon] r[ead] redr[aw] ret[ab] rightb[elow] rundo san[dbox] sbf[irst] sbN[ext] scripte[ncoding] setg[lobal] sh[ell] sla[st] sme sni[ff] sor[t] spelli[nfo] sp[lit] startg[replace] st[op] sunme syncbind tabd[o] tabl[ast] tabN[ext] tabs tcld[o] th[row] tm[enu] tp[revious] tu undoj[oin] uns[ilent] vert[ical] vi[sual] wa[ll] winp[os] wp[revious] ws[verb] xa[ll] xmenu xnoremenu 20syn keyword vimCommand contained abo[veleft] arge[dit] as[cii] bf[irst] bo[tright] breakl[ist] buffers cad[dexpr] cc cf[ile] c[hange] cla[st] cn[ext] colo[rscheme] cope[n] cr[ewind] d[elete] diffpatch dig[raphs] ds[earch] echon emenu* endw[hile] f[ile] fin[d] fo[ld] foldo[pen] gr[ep] his[tory] il[ist] iuna[bbrev] keepalt lad[dexpr] later lcl[ose] lf[ile] lg[etfile] ll lmapc[lear] lnf[ile] lockv[ar] lp[revious] lua lvimgrepa[dd] marks mks[ession] mod[e] nbc[lose] n[ext] nu[mber] o[pen] pe[rl] popu[p] p[rint] promptf[ind] ptf[irst] ptN[ext] pu[t] qa[ll] rec[over] redraws[tatus] retu[rn] rub[y] ru[ntime] sa[rgument] sbl[ast] sbp[revious] scrip[tnames] setl[ocal] sign sl[eep] smenu sno[magic] so[urce] spellr[epall] spr[evious] star[tinsert] stopi[nsert] sunmenu t tabe[dit] tabm[ove] tabo[nly] ta[g] tclf[ile] tj[ump] tn[ext] tr[ewind] tu[nmenu] undol[ist] up[date] vie[w] vmapc[lear] wh[ile] win[size] wq wundo x[it] XMLent xunme 21syn keyword vimCommand contained al[l] argg[lobal] bad[d] bl[ast] bp[revious] br[ewind] bun[load] caddf[ile] ccl[ose] cfir[st] changes cl[ist] cN[ext] comc[lear] co[py] cuna[bbrev] delf[unction] diffpu[t] di[splay] dsp[lit] e[dit] endfo[r] ene[w] files fini[sh] foldc[lose] for grepa[dd] iabc[lear] imapc[lear] j[oin] keepj[umps] laddf[ile] lb[uffer] le[ft] lfir[st] lgr[ep] lla[st] lnew[er] lNf[ile] lol[der] lr[ewind] luado lw[indow] mat[ch] mksp[ell] m[ove] nb[key] N[ext] ol[dfiles] opt[ions] perld[o] pp[op] P[rint] promptr[epl] ptj[ump] ptp[revious] pw[d] q[uit] redi[r] reg[isters] rew[ind] rubyd[o] rv[iminfo] sav[eas] sbm[odified] sbr[ewind] se[t] sf[ind] sil[ent] sm[agic] sn[ext] snoreme spelld[ump] spellu[ndo] sre[wind] startr[eplace] sts[elect] sus[pend] tab tabf[ind] tabnew tabp[revious] tags te[aroff] tl[ast] tN[ext] try una[bbreviate] unh[ide] verb[ose] vim[grep] vne[w] winc[md] wn[ext] wqa[ll] wv[iminfo] xmapc[lear] XMLns xunmenu 22syn keyword vimCommand contained arga[dd] argl[ocal] ba[ll] bm[odified] brea[k] bro[wse] bw[ipeout] cal[l] cd cgetb[uffer] chd[ir] clo[se] cnf[ile] comp[iler] cpf[ile] cw[indow] delm[arks] diffsplit dj[ump] earlier el[se] endf[unction] ex filetype fir[st] folddoc[losed] fu[nction] ha[rdcopy] if is[earch] ju[mps] kee[pmarks] lan[guage] lc[d] lefta[bove] lgetb[uffer] lgrepa[dd] lli[st] lne[xt] lo[adview] lop[en] ls luafile mak[e] menut[ranslate] mkvie[w] mzf[ile] nbs[tart] nmapc[lear] omapc[lear] pc[lose] po[p] pre[serve] profd[el] ps[earch] ptl[ast] ptr[ewind] pyf[ile] quita[ll] red[o] res[ize] ri[ght] rubyf[ile] sal[l] sba[ll] sbn[ext] sb[uffer] setf[iletype] sfir[st] sim[alt] sm[ap] sN[ext] snoremenu spe[llgood] spellw[rong] sta[g] stj[ump] sun[hide] sv[iew] tabc[lose] tabfir[st] tabn[ext] tabr[ewind] tc[l] tf[irst] tm to[pleft] ts[elect] u[ndo] unlo[ckvar] ve[rsion] vimgrepa[dd] vs[plit] windo wN[ext] w[rite] X xme xnoreme y[ank] 23syn keyword vimCommand contained argd[elete] ar[gs] bd[elete] bn[ext] breaka[dd] bufdo cabc[lear] cat[ch] ce[nter] cgete[xpr] che[ckpath] cmapc[lear] cNf[ile] conf[irm] cp[revious] debugg[reedy] diffg[et] diffthis dl[ist] echoe[rr] elsei[f] en[dif] 24syn match vimCommand contained "\<z[-+^.=]" 25 26" vimOptions are caught only when contained in a vimSet {{{2 27syn keyword vimOption contained acd ambiwidth arabicshape autowriteall backupdir bdlay binary breakat bufhidden cd ci cinw co complete conskey crb cscopeverbose 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 ssop stl suffixesadd switchbuf ta taglength tbi termbidi tf title to ts tty ttytype ul ut verbosefile virtualedit wb wfw wildcharm winaltkeys winminwidth wmnu write 28syn keyword vimOption contained ai ambw ari aw backupext beval biosk brk buflisted cdpath cin cinwords colorcolumn completefunc copyindent cryptmethod cspc 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 st stmp sw sws tabline tagrelative tbidi termencoding tgst titlelen toolbar tsl ttybuiltin tw undodir vb vfile visualbell wc wh wildignore window winwidth wmw writeany 29syn keyword vimOption contained akm anti arshape awa backupskip bex bioskey browsedir buftype cedit cindent clipboard columns completeopt cot cscopepathcomp csprg 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 sta sts swapfile sxq tabpagemax tags tbis terse thesaurus titleold toolbariconsize tsr ttyfast tx undofile vbs vi vop wcm whichwrap wildmenu winfixheight wiv wop writebackup 30syn keyword vimOption contained al antialias autochdir background balloondelay bexpr bk bs casemap cf cink cmdheight com conc cp cscopeprg csqf 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 stal su swapsync syn tabstop tagstack tbs textauto tildeop titlestring top ttimeout ttym uc undolevels vdir viewdir wa wd wi wildmode winfixwidth wiw wrap writedelay 31syn keyword vimOption contained aleph ar autoindent backspace ballooneval bg bkc bsdir cb cfu cinkeys cmdwinheight comments conceallevel cpo cscopequickfix 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 startofline sua swb synmaxcol tag tal tenc textmode timeout tl tpm ttimeoutlen ttymouse udf updatecount ve viewoptions wak weirdinvert wig wildoptions winheight wm wrapmargin ws 32syn keyword vimOption contained allowrevins arab autoread backup balloonexpr bh bl bsk cc ch cino cmp commentstring confirm cpoptions cscopetag 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 statusline suffixes swf syntax tagbsearch tb term textwidth timeoutlen tm tr ttm ttyscroll udir updatetime verbose viminfo warn wfh wildchar wim winminheight wmh wrapscan ww 33syn keyword vimOption contained altkeymap arabic autowrite backupcopy bdir bin bomb bt ccv charconvert cinoptions cms compatible consk cpt cscopetagorder 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 34 35" vimOptions: These are the turn-off setting variants {{{2 36syn keyword vimOption contained noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobinary nobk nobuflisted nocin noconfirm nocopyindent nocscopetag nocsverb nocursorbind nodeco nodiff noeb noek noeol 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 nowinfixheight nowiv nowrap nowrite nowritebackup 37syn keyword vimOption contained noai noaltkeymap noar noarabicshape noautochdir noautowrite noawa nobeval nobiosk nobl nocf nocindent noconsk nocp nocscopeverbose nocuc nocursorcolumn nodelcombine nodigraph noed noendofline 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 nowildmenu nowinfixwidth nowmnu nowrapscan nowriteany nows 38syn keyword vimOption contained noakm noanti noarab noari noautoindent noautowriteall nobackup nobin nobioskey nobomb noci nocompatible noconskey nocrb nocst nocul nocursorline nodg noea noedcompatible 39 40" vimOptions: These are the invertible variants {{{2 41syn keyword vimOption contained invacd invallowrevins invantialias invarabic invarshape invautoread invaw invballooneval invbinary invbk invbuflisted invcin invconfirm invcopyindent invcscopetag invcsverb invcursorbind invdeco invdiff inveb invek inveol 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 invwinfixheight invwiv invwrap invwrite invwritebackup 42syn keyword vimOption contained invai invaltkeymap invar invarabicshape invautochdir invautowrite invawa invbeval invbiosk invbl invcf invcindent invconsk invcp invcscopeverbose invcuc invcursorcolumn invdelcombine invdigraph inved invendofline 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 invwildmenu invwinfixwidth invwmnu invwrapscan invwriteany invws 43syn keyword vimOption contained invakm invanti invarab invari invautoindent invautowriteall invbackup invbin invbioskey invbomb invci invcompatible invconskey invcrb invcst invcul invcursorline invdg invea invedcompatible 44 45" termcap codes (which can also be set) {{{2 46syn 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 47syn keyword vimOption contained t_AF t_AL t_cd t_Ce t_cm 48syn match vimOption contained "t_%1" 49syn match vimOption contained "t_#2" 50syn match vimOption contained "t_#4" 51syn match vimOption contained "t_@7" 52syn match vimOption contained "t_*7" 53syn match vimOption contained "t_&8" 54syn match vimOption contained "t_%i" 55syn match vimOption contained "t_k;" 56 57" unsupported settings: these are supported by vi but don't do anything in vim {{{2 58syn keyword vimErrSetting contained hardtabs ht w1200 w300 w9600 59 60" AutoCmd Events {{{2 61syn case ignore 62syn 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 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 63 64" Highlight commonly used Groupnames {{{2 65syn 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 66 67" Default highlighting groups {{{2 68syn 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 69syn match vimHLGroup contained "Conceal" 70syn case match 71 72" Function Names {{{2 73syn 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 matchlist 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 synIDattr synstack tabpagebuflist tabpagewinnr taglist tanh tolower tr type undotree virtcol winbufnr winheight winnr winrestview winwidth 74syn 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 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 synID synIDtrans system tabpagenr tagfiles tan tempname toupper trunc undofile values visualmode wincol winline winrestcmd winsaveview writefile 75syn 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 76 77"--- syntax above generated by mkvimvim --- 78" Special Vim Highlighting (not automatic) {{{1 79 80" commands not picked up by the generator (due to non-standard format) 81syn keyword vimCommand contained py3 82 83" Deprecated variable options {{{2 84if exists("g:vim_minlines") 85 let g:vimsyn_minlines= g:vim_minlines 86endif 87if exists("g:vim_maxlines") 88 let g:vimsyn_maxlines= g:vim_maxlines 89endif 90if exists("g:vimsyntax_noerror") 91 let g:vimsyn_noerror= g:vimsyntax_noerror 92endif 93 94" Numbers {{{2 95" ======= 96syn match vimNumber "\<\d\+\([lL]\|\.\d\+\)\=" 97syn match vimNumber "-\d\+\([lL]\|\.\d\+\)\=" 98syn match vimNumber "\<0[xX]\x\+" 99syn match vimNumber "#\x\{6}" 100 101" All vimCommands are contained by vimIsCommands. {{{2 102syn match vimCmdSep "[:|]\+" skipwhite nextgroup=vimAddress,vimAutoCmd,vimCommand,vimExtCmd,vimFilter,vimLet,vimMap,vimMark,vimSet,vimSyntax,vimUserCmd 103syn match vimIsCommand "\<\h\w*\>" contains=vimCommand 104syn match vimVar "\<[bwglsav]:\K\k*\>" 105syn match vimVar contained "\<\K\k*\>" 106syn match vimFBVar contained "\<[bwglsav]:\K\k*\>" 107syn keyword vimCommand contained in 108 109" Insertions And Appends: insert append {{{2 110" ======================= 111syn region vimInsert matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=a\%[ppend]$" matchgroup=vimCommand end="^\.$"" 112syn region vimInsert matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=c\%[hange]$" matchgroup=vimCommand end="^\.$"" 113syn region vimInsert matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=i\%[nsert]$" matchgroup=vimCommand end="^\.$"" 114 115" Behave! {{{2 116" ======= 117syn match vimBehave "\<be\%[have]\>" skipwhite nextgroup=vimBehaveModel,vimBehaveError 118syn keyword vimBehaveModel contained mswin xterm 119if !exists("g:vimsyn_noerror") 120 syn match vimBehaveError contained "[^ ]\+" 121endif 122 123" Filetypes {{{2 124" ========= 125syn match vimFiletype "\<filet\%[ype]\(\s\+\I\i*\)*" skipwhite contains=vimFTCmd,vimFTOption,vimFTError 126if !exists("g:vimsyn_noerror") 127 syn match vimFTError contained "\I\i*" 128endif 129syn keyword vimFTCmd contained filet[ype] 130syn keyword vimFTOption contained detect indent off on plugin 131 132" Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2 133" ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking. 134syn cluster vimAugroupList contains=vimIsCommand,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 135if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'a' 136 syn region vimAugroup fold start="\<aug\%[roup]\>\s\+\K\k*" end="\<aug\%[roup]\>\s\+[eE][nN][dD]\>" contains=vimAugroupKey,vimAutoCmd,@vimAugroupList keepend 137else 138 syn region vimAugroup start="\<aug\%[roup]\>\s\+\K\k*" end="\<aug\%[roup]\>\s\+[eE][nN][dD]\>" contains=vimAugroupKey,vimAutoCmd,@vimAugroupList keepend 139endif 140syn match vimAugroup "aug\%[roup]!" contains=vimAugroupKey 141if !exists("g:vimsyn_noerror") 142 syn match vimAugroupError "\<aug\%[roup]\>\s\+[eE][nN][dD]\>" 143endif 144syn keyword vimAugroupKey contained aug[roup] 145 146" Operators: {{{2 147" ========= 148syn cluster vimOperGroup contains=vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue 149syn match vimOper "\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile 150syn match vimOper "||\|&&\|[-+.]" skipwhite nextgroup=vimString,vimSpecFile 151syn region vimOperParen oneline matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup 152syn region vimOperParen oneline matchgroup=vimSep start="{" end="}" contains=@vimOperGroup nextgroup=vimVar,vimFuncVar 153if !exists("g:vimsyn_noerror") 154 syn match vimOperError ")" 155endif 156 157" Functions : Tag is provided for those who wish to highlight tagged functions {{{2 158" ========= 159syn cluster vimFuncList contains=vimCommand,vimFunctionError,vimFuncKey,Tag,vimFuncSID 160syn 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 161syn match vimFunction "\<fu\%[nction]!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*(" contains=@vimFuncList nextgroup=vimFuncBody 162 163if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'f' 164 syn region vimFuncBody contained fold start="\ze(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList 165else 166 syn region vimFuncBody contained start="\ze(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList 167endif 168syn match vimFuncVar contained "a:\(\K\k*\|\d\+\)" 169syn match vimFuncSID contained "\c<sid>\|\<s:" 170syn keyword vimFuncKey contained fu[nction] 171syn match vimFuncBlank contained "\s\+" 172 173syn keyword vimPattern contained start skip end 174 175" Special Filenames, Modifiers, Extension Removal: {{{2 176" =============================================== 177syn match vimSpecFile "<c\(word\|WORD\)>" nextgroup=vimSpecFileMod,vimSubst 178syn match vimSpecFile "<\([acs]file\|amatch\|abuf\)>" nextgroup=vimSpecFileMod,vimSubst 179syn match vimSpecFile "\s%[ \t:]"ms=s+1,me=e-1 nextgroup=vimSpecFileMod,vimSubst 180syn match vimSpecFile "\s%$"ms=s+1 nextgroup=vimSpecFileMod,vimSubst 181syn match vimSpecFile "\s%<"ms=s+1,me=e-1 nextgroup=vimSpecFileMod,vimSubst 182syn match vimSpecFile "#\d\+\|[#%]<\>" nextgroup=vimSpecFileMod,vimSubst 183syn match vimSpecFileMod "\(:[phtre]\)\+" contained 184 185" User-Specified Commands: {{{2 186" ======================= 187syn 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 188syn keyword vimUserCommand contained com[mand] 189syn match vimUserCmd "\<com\%[mand]!\=\>.*$" contains=vimUserAttrb,vimUserCommand,@vimUserCmdList 190syn match vimUserAttrb contained "-n\%[args]=[01*?+]" contains=vimUserAttrbKey,vimOper 191syn match vimUserAttrb contained "-com\%[plete]=" contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError 192syn match vimUserAttrb contained "-ra\%[nge]\(=%\|=\d\+\)\=" contains=vimNumber,vimOper,vimUserAttrbKey 193syn match vimUserAttrb contained "-cou\%[nt]=\d\+" contains=vimNumber,vimOper,vimUserAttrbKey 194syn match vimUserAttrb contained "-bang\=\>" contains=vimOper,vimUserAttrbKey 195syn match vimUserAttrb contained "-bar\>" contains=vimOper,vimUserAttrbKey 196syn match vimUserAttrb contained "-re\%[gister]\>" contains=vimOper,vimUserAttrbKey 197if !exists("g:vimsyn_noerror") 198 syn match vimUserCmdError contained "\S\+\>" 199endif 200syn case ignore 201syn keyword vimUserAttrbKey contained bar ban[g] cou[nt] ra[nge] com[plete] n[args] re[gister] 202syn keyword vimUserAttrbCmplt contained augroup buffer command dir environment event expression file function help highlight mapping menu option shellcmd something tag tag_listfiles var 203syn keyword vimUserAttrbCmplt contained custom customlist nextgroup=vimUserAttrbCmpltFunc,vimUserCmdError 204syn match vimUserAttrbCmpltFunc contained ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%(#\u\w*\)\+\|\u\w*\)"hs=s+1 nextgroup=vimUserCmdError 205 206syn case match 207syn match vimUserAttrbCmplt contained "custom,\u\w*" 208 209" Lower Priority Comments: after some vim commands... {{{2 210" ======================= 211syn match vimComment excludenl +\s"[^\-:.%#=*].*$+lc=1 contains=@vimCommentGroup,vimCommentString 212syn match vimComment +\<endif\s\+".*$+lc=5 contains=@vimCommentGroup,vimCommentString 213syn match vimComment +\<else\s\+".*$+lc=4 contains=@vimCommentGroup,vimCommentString 214syn region vimCommentString contained oneline start='\S\s\+"'ms=e end='"' 215 216" Environment Variables: {{{2 217" ===================== 218syn match vimEnvvar "\$\I\i*" 219syn match vimEnvvar "\${\I\i*}" 220 221" In-String Specials: {{{2 222" Try to catch strings, if nothing else matches (therefore it must precede the others!) 223" vimEscapeBrace handles ["] []"] (ie. "s don't terminate string inside []) 224syn region vimEscapeBrace oneline contained transparent start="[^\\]\(\\\\\)*\[\zs\^\=\]\=" skip="\\\\\|\\\]" end="]"me=e-1 225syn match vimPatSepErr contained "\\)" 226syn match vimPatSep contained "\\|" 227syn region vimPatSepZone oneline contained matchgroup=vimPatSepZ start="\\%\=\ze(" skip="\\\\" end="\\)\|[^\]['"]" contains=@vimStringGroup 228syn region vimPatRegion contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)" contains=@vimSubstList oneline 229syn match vimNotPatSep contained "\\\\" 230syn cluster vimStringGroup contains=vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell 231syn region vimString oneline keepend start=+[^:a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ end=+"+ contains=@vimStringGroup 232syn region vimString oneline keepend start=+[^:a-zA-Z>!\\@]'+lc=1 end=+'+ 233syn region vimString oneline start=+=!+lc=1 skip=+\\\\\|\\!+ end=+!+ contains=@vimStringGroup 234syn region vimString oneline start="=+"lc=1 skip="\\\\\|\\+" end="+" contains=@vimStringGroup 235syn region vimString oneline start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/" contains=@vimStringGroup 236syn match vimString contained +"[^"]*\\$+ skipnl nextgroup=vimStringCont 237syn match vimStringCont contained +\(\\\\\|.\)\{-}[^\\]"+ 238 239" Substitutions: {{{2 240" ============= 241syn cluster vimSubstList contains=vimPatSep,vimPatRegion,vimPatSepErr,vimSubstTwoBS,vimSubstRange,vimNotation 242syn cluster vimSubstRepList contains=vimSubstSubstr,vimSubstTwoBS,vimNotation 243syn cluster vimSubstList add=vimCollection 244syn match vimSubst "\(:\+\s*\|^\s*\||\s*\)\<s\%[ubstitute][:[:alpha:]]\@!" nextgroup=vimSubstPat 245syn match vimSubst "s\%[ubstitute][:#[:alpha:]]\@!" nextgroup=vimSubstPat contained 246syn match vimSubst "/\zss\%[ubstitute]\ze/" nextgroup=vimSubstPat 247syn match vimSubst1 contained "s\%[ubstitute]\>" nextgroup=vimSubstPat 248syn 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 249syn region vimSubstRep4 contained matchgroup=vimSubstDelim start="\z(.\)" skip="\\\\\|\\\z1" end="\z1" matchgroup=vimNotation end="<[cC][rR]>" contains=@vimSubstRepList nextgroup=vimSubstFlagErr oneline 250syn region vimCollection contained transparent start="\\\@<!\[" skip="\\\[" end="\]" contains=vimCollClass 251syn match vimCollClassErr contained "\[:.\{-\}:\]" 252syn match vimCollClass contained transparent "\[:\(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\|return\|tab\|escape\|backspace\):\]" 253syn match vimSubstSubstr contained "\\z\=\d" 254syn match vimSubstTwoBS contained "\\\\" 255syn match vimSubstFlagErr contained "[^< \t\r|]\+" contains=vimSubstFlags 256syn match vimSubstFlags contained "[&cegiIpr]\+" 257 258" 'String': {{{2 259syn match vimString "[^(,]'[^']\{-}\zs'" 260 261" Marks, Registers, Addresses, Filters: {{{2 262syn match vimMark "'[a-zA-Z0-9]\ze[-+,!]" nextgroup=vimOper,vimMarkNumber,vimSubst 263syn match vimMark "'[<>]\ze[-+,!]" nextgroup=vimOper,vimMarkNumber,vimSubst 264syn match vimMark ",\zs'[<>]\ze" nextgroup=vimOper,vimMarkNumber,vimSubst 265syn match vimMark "[!,:]\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumber,vimSubst 266syn match vimMark "\<norm\%[al]\s\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumber,vimSubst 267syn match vimMarkNumber "[-+]\d\+" nextgroup=vimSubst contained contains=vimOper 268syn match vimPlainMark contained "'[a-zA-Z0-9]" 269 270syn match vimRegister '[^,;[{]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":]' 271syn match vimRegister '\<norm\s\+\zs"[a-zA-Z0-9]' 272syn match vimRegister '\<normal\s\+\zs"[a-zA-Z0-9]' 273syn match vimRegister '@"' 274syn match vimPlainRegister contained '"[a-zA-Z0-9\-:.%#*+=]' 275 276syn match vimAddress ",\zs[.$]" skipwhite nextgroup=vimSubst1 277syn match vimAddress "%\ze\a" skipwhite nextgroup=vimString,vimSubst1 278 279syn match vimFilter contained "^!.\{-}\(|\|$\)" contains=vimSpecFile 280syn match vimFilter contained "\A!.\{-}\(|\|$\)"ms=s+1 contains=vimSpecFile 281 282" Complex repeats (:h complex-repeat) {{{2 283syn match vimCmplxRepeat '[^a-zA-Z_/\\()]q[0-9a-zA-Z"]'lc=1 284syn match vimCmplxRepeat '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\)' 285 286" Set command and associated set-options (vimOptions) with comment {{{2 287syn region vimSet matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|set\)\>" skip="\%(\\\\\)*\\." end="$" matchgroup=vimNotation end="<[cC][rR]>" keepend oneline contains=vimSetEqual,vimOption,vimErrSetting,vimComment,vimSetString,vimSetMod 288syn region vimSetEqual contained start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]\|$"me=e-1 contains=vimCtrlChar,vimSetSep,vimNotation oneline 289syn region vimSetString contained start=+="+hs=s+1 skip=+\\\\\|\\"+ end=+"+ contains=vimCtrlChar 290syn match vimSetSep contained "[,:]" 291syn match vimSetMod contained "&vim\=\|[!&?<]\|all&" 292 293" Let {{{2 294" === 295syn keyword vimLet let unl[et] skipwhite nextgroup=vimVar,vimFuncVar 296 297" Abbreviations {{{2 298" ============= 299syn keyword vimAbb ab[breviate] ca[bbrev] inorea[bbrev] cnorea[bbrev] norea[bbrev] ia[bbrev] skipwhite nextgroup=vimMapMod,vimMapLhs 300 301" Autocmd {{{2 302" ======= 303syn match vimAutoEventList contained "\(!\s\+\)\=\(\a\+,\)*\a\+" contains=vimAutoEvent nextgroup=vimAutoCmdSpace 304syn match vimAutoCmdSpace contained "\s\+" nextgroup=vimAutoCmdSfxList 305syn match vimAutoCmdSfxList contained "\S*" 306syn keyword vimAutoCmd au[tocmd] do[autocmd] doautoa[ll] skipwhite nextgroup=vimAutoEventList 307 308" Echo and Execute -- prefer strings! {{{2 309" ================ 310syn region vimEcho oneline excludenl matchgroup=vimCommand start="\<ec\%[ho]\>" skip="\(\\\\\)*\\|" end="$\||" contains=vimFunc,vimFuncVar,vimString,vimVar 311syn region vimExecute oneline excludenl matchgroup=vimCommand start="\<exe\%[cute]\>" skip="\(\\\\\)*\\|" end="$\||\|<[cC][rR]>" contains=vimFuncVar,vimIsCommand,vimOper,vimNotation,vimOperParen,vimString,vimVar 312syn match vimEchoHL "echohl\=" skipwhite nextgroup=vimGroup,vimHLGroup,vimEchoHLNone 313syn case ignore 314syn keyword vimEchoHLNone none 315syn case match 316 317" Maps {{{2 318" ==== 319syn match vimMap "\<map\>!\=\ze\s*[^(]" skipwhite nextgroup=vimMapMod,vimMapLhs 320syn 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 321syn keyword vimMap mapc[lear] 322syn 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 323syn match vimMapLhs contained "\S\+" contains=vimNotation,vimCtrlChar skipwhite nextgroup=vimMapRhs 324syn match vimMapBang contained "!" skipwhite nextgroup=vimMapMod,vimMapLhs 325syn match vimMapMod contained "\c<\(buffer\|expr\|\(local\)\=leader\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs 326syn match vimMapRhs contained ".*" contains=vimNotation,vimCtrlChar skipnl nextgroup=vimMapRhsExtend 327syn match vimMapRhsExtend contained "^\s*\\.*$" contains=vimContinue 328syn case ignore 329syn keyword vimMapModKey contained buffer expr leader localleader plug script sid silent unique 330syn case match 331 332" Menus {{{2 333" ===== 334syn cluster vimMenuList contains=vimMenuBang,vimMenuPriority,vimMenuName,vimMenuMod 335syn 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 336syn match vimMenuName "[^ \t\\<]\+" contained nextgroup=vimMenuNameMore,vimMenuMap 337syn match vimMenuPriority "\d\+\(\.\d\+\)*" contained skipwhite nextgroup=vimMenuName 338syn match vimMenuNameMore "\c\\\s\|<tab>\|\\\." contained nextgroup=vimMenuName,vimMenuNameMore contains=vimNotation 339syn match vimMenuMod contained "\c<\(script\|silent\)\+>" skipwhite contains=vimMapModKey,vimMapModErr nextgroup=@vimMenuList 340syn match vimMenuMap "\s" contained skipwhite nextgroup=vimMenuRhs 341syn match vimMenuRhs ".*$" contained contains=vimString,vimComment,vimIsCommand 342syn match vimMenuBang "!" contained skipwhite nextgroup=@vimMenuList 343 344" Angle-Bracket Notation (tnx to Michael Geddes) {{{2 345" ====================== 346syn case ignore 347syn 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 348syn match vimNotation "\(\\\|<lt>\)\=<\([scam2-4]-\)\{0,4}\(right\|left\|middle\)\(mouse\)\=\(drag\|release\)\=>" contains=vimBracket 349syn match vimNotation "\(\\\|<lt>\)\=<\(bslash\|plug\|sid\|space\|bar\|nop\|nul\|lt\)>" contains=vimBracket 350syn match vimNotation '\(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1 contains=vimBracket 351syn match vimNotation '\(\\\|<lt>\)\=<\%(q-\)\=\(line[12]\|count\|bang\|reg\|args\|f-args\|lt\)>' contains=vimBracket 352syn match vimNotation "\(\\\|<lt>\)\=<\([cas]file\|abuf\|amatch\|cword\|cWORD\|client\)>" contains=vimBracket 353syn match vimBracket contained "[\\<>]" 354syn case match 355 356" User Function Highlighting {{{2 357" (following Gautam Iyer's suggestion) 358" ========================== 359syn match vimFunc "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_.]\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*(" contains=vimFuncName,vimUserFunc,vimExecute 360syn match vimUserFunc contained "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_.]\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>" contains=vimNotation 361syn match vimNotFunc "\<if\>\|\<el\%[seif]\>\|\<return\>\|\<while\>" 362 363" Errors And Warnings: {{{2 364" ==================== 365if !exists("g:vimsyn_noerror") 366 syn match vimFunctionError "\s\zs[a-z0-9]\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank 367" syn match vimFunctionError "\s\zs\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)[0-9]\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank 368 syn match vimElseIfErr "\<else\s\+if\>" 369 syn match vimBufnrWarn /\<bufnr\s*(\s*["']\.['"]\s*)/ 370endif 371 372" Norm {{{2 373" ==== 374syn match vimNorm "\<norm\%[al]!\=" skipwhite nextgroup=vimNormCmds 375syn match vimNormCmds contained ".*$" 376 377" Syntax {{{2 378"======= 379syn match vimGroupList contained "@\=[^ \t,]*" contains=vimGroupSpecial,vimPatSep 380syn match vimGroupList contained "@\=[^ \t,]*," nextgroup=vimGroupList contains=vimGroupSpecial,vimPatSep 381syn keyword vimGroupSpecial contained ALL ALLBUT CONTAINED TOP 382if !exists("g:vimsyn_noerror") 383 syn match vimSynError contained "\i\+" 384 syn match vimSynError contained "\i\+=" nextgroup=vimGroupList 385endif 386syn match vimSynContains contained "\<contain\(s\|edin\)=" nextgroup=vimGroupList 387syn match vimSynKeyContainedin contained "\<containedin=" nextgroup=vimGroupList 388syn match vimSynNextgroup contained "nextgroup=" nextgroup=vimGroupList 389 390syn match vimSyntax "\<sy\%[ntax]\>" contains=vimCommand skipwhite nextgroup=vimSynType,vimComment 391syn match vimAuSyntax contained "\s+sy\%[ntax]" contains=vimCommand skipwhite nextgroup=vimSynType,vimComment 392 393" Syntax: case {{{2 394syn keyword vimSynType contained case skipwhite nextgroup=vimSynCase,vimSynCaseError 395if !exists("g:vimsyn_noerror") 396 syn match vimSynCaseError contained "\i\+" 397endif 398syn keyword vimSynCase contained ignore match 399 400" Syntax: clear {{{2 401syn keyword vimSynType contained clear skipwhite nextgroup=vimGroupList 402 403" Syntax: cluster {{{2 404syn keyword vimSynType contained cluster skipwhite nextgroup=vimClusterName 405syn region vimClusterName contained matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="$\||" contains=vimGroupAdd,vimGroupRem,vimSynContains,vimSynError 406syn match vimGroupAdd contained "add=" nextgroup=vimGroupList 407syn match vimGroupRem contained "remove=" nextgroup=vimGroupList 408 409" Syntax: include {{{2 410syn keyword vimSynType contained include skipwhite nextgroup=vimGroupList 411 412" Syntax: keyword {{{2 413syn cluster vimSynKeyGroup contains=vimSynNextgroup,vimSynKeyOpt,vimSynKeyContainedin 414syn keyword vimSynType contained keyword skipwhite nextgroup=vimSynKeyRegion 415syn region vimSynKeyRegion contained oneline keepend matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="|\|$" contains=@vimSynKeyGroup 416syn match vimSynKeyOpt contained "\<\(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>" 417 418" Syntax: match {{{2 419syn cluster vimSynMtchGroup contains=vimMtchComment,vimSynContains,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation 420syn keyword vimSynType contained match skipwhite nextgroup=vimSynMatchRegion 421syn region vimSynMatchRegion contained keepend matchgroup=vimGroupName start="\k\+" matchgroup=vimSep end="|\|$" contains=@vimSynMtchGroup 422syn match vimSynMtchOpt contained "\<\(conceal\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>" 423if has("conceal") 424 syn match vimSynMtchOpt contained "\<cchar=" nextgroup=VimSynMtchCchar 425 syn match vimSynMtchCchar contained "\S" 426endif 427 428" Syntax: off and on {{{2 429syn keyword vimSynType contained enable list manual off on reset 430 431" Syntax: region {{{2 432syn cluster vimSynRegPatGroup contains=vimPatSep,vimNotPatSep,vimSynPatRange,vimSynNotPatRange,vimSubstSubstr,vimPatRegion,vimPatSepErr,vimNotation 433syn cluster vimSynRegGroup contains=vimSynContains,vimSynNextgroup,vimSynRegOpt,vimSynReg,vimSynMtchGrp 434syn keyword vimSynType contained region skipwhite nextgroup=vimSynRegion 435syn region vimSynRegion contained keepend matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" end="|\|$" contains=@vimSynRegGroup 436syn match vimSynRegOpt contained "\<\(conceal\(ends\)\=\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|keepend\|oneline\|extend\|skipnl\|fold\)\>" 437syn match vimSynReg contained "\(start\|skip\|end\)="he=e-1 nextgroup=vimSynRegPat 438syn match vimSynMtchGrp contained "matchgroup=" nextgroup=vimGroup,vimHLGroup 439syn region vimSynRegPat contained extend start="\z([-`~!@#$%^&*_=+;:'",./?]\)" skip="\\\\\|\\\z1" end="\z1" contains=@vimSynRegPatGroup skipwhite nextgroup=vimSynPatMod,vimSynReg 440syn match vimSynPatMod contained "\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=" 441syn match vimSynPatMod contained "\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=," nextgroup=vimSynPatMod 442syn match vimSynPatMod contained "lc=\d\+" 443syn match vimSynPatMod contained "lc=\d\+," nextgroup=vimSynPatMod 444syn region vimSynPatRange contained start="\[" skip="\\\\\|\\]" end="]" 445syn match vimSynNotPatRange contained "\\\\\|\\\[" 446syn match vimMtchComment contained '"[^"]\+$' 447 448" Syntax: sync {{{2 449" ============ 450syn keyword vimSynType contained sync skipwhite nextgroup=vimSyncC,vimSyncLines,vimSyncMatch,vimSyncError,vimSyncLinebreak,vimSyncLinecont,vimSyncRegion 451if !exists("g:vimsyn_noerror") 452 syn match vimSyncError contained "\i\+" 453endif 454syn keyword vimSyncC contained ccomment clear fromstart 455syn keyword vimSyncMatch contained match skipwhite nextgroup=vimSyncGroupName 456syn keyword vimSyncRegion contained region skipwhite nextgroup=vimSynReg 457syn match vimSyncLinebreak contained "\<linebreaks=" skipwhite nextgroup=vimNumber 458syn keyword vimSyncLinecont contained linecont skipwhite nextgroup=vimSynRegPat 459syn match vimSyncLines contained "\(min\|max\)\=lines=" nextgroup=vimNumber 460syn match vimSyncGroupName contained "\k\+" skipwhite nextgroup=vimSyncKey 461syn match vimSyncKey contained "\<groupthere\|grouphere\>" skipwhite nextgroup=vimSyncGroup 462syn match vimSyncGroup contained "\k\+" skipwhite nextgroup=vimSynRegPat,vimSyncNone 463syn keyword vimSyncNone contained NONE 464 465" Additional IsCommand, here by reasons of precedence {{{2 466" ==================== 467syn match vimIsCommand "<Bar>\s*\a\+" transparent contains=vimCommand,vimNotation 468 469" Highlighting {{{2 470" ============ 471syn cluster vimHighlightCluster contains=vimHiLink,vimHiClear,vimHiKeyList,vimComment 472syn match vimHighlight "\<hi\%[ghlight]\>" skipwhite nextgroup=vimHiBang,@vimHighlightCluster 473syn match vimHiBang contained "!" skipwhite nextgroup=@vimHighlightCluster 474 475syn match vimHiGroup contained "\i\+" 476syn case ignore 477syn keyword vimHiAttrib contained none bold inverse italic reverse standout underline undercurl 478syn keyword vimFgBgAttrib contained none bg background fg foreground 479syn case match 480syn match vimHiAttribList contained "\i\+" contains=vimHiAttrib 481syn match vimHiAttribList contained "\i\+,"he=e-1 contains=vimHiAttrib nextgroup=vimHiAttribList 482syn case ignore 483syn 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 484 485syn case match 486syn match vimHiFontname contained "[a-zA-Z\-*]\+" 487syn match vimHiGuiFontname contained "'[a-zA-Z\-* ]\+'" 488syn match vimHiGuiRgb contained "#\x\{6}" 489if !exists("g:vimsyn_noerror") 490 syn match vimHiCtermError contained "[^0-9]\i*" 491endif 492 493" Highlighting: hi group key=arg ... {{{2 494syn cluster vimHiCluster contains=vimGroup,vimHiGroup,vimHiTerm,vimHiCTerm,vimHiStartStop,vimHiCtermFgBg,vimHiGui,vimHiGuiFont,vimHiGuiFgBg,vimHiKeyError,vimNotation 495syn region vimHiKeyList contained oneline start="\i\+" skip="\\\\\|\\|" end="$\||" contains=@vimHiCluster 496if !exists("g:vimsyn_noerror") 497 syn match vimHiKeyError contained "\i\+="he=e-1 498endif 499syn match vimHiTerm contained "\cterm="he=e-1 nextgroup=vimHiAttribList 500syn match vimHiStartStop contained "\c\(start\|stop\)="he=e-1 nextgroup=vimHiTermcap,vimOption 501syn match vimHiCTerm contained "\ccterm="he=e-1 nextgroup=vimHiAttribList 502syn match vimHiCtermFgBg contained "\ccterm[fb]g="he=e-1 nextgroup=vimNumber,vimHiCtermColor,vimFgBgAttrib,vimHiCtermError 503syn match vimHiGui contained "\cgui="he=e-1 nextgroup=vimHiAttribList 504syn match vimHiGuiFont contained "\cfont="he=e-1 nextgroup=vimHiFontname 505syn match vimHiGuiFgBg contained "\cgui\%([fb]g\|sp\)="he=e-1 nextgroup=vimHiGroup,vimHiGuiFontname,vimHiGuiRgb,vimFgBgAttrib 506syn match vimHiTermcap contained "\S\+" contains=vimNotation 507 508" Highlight: clear {{{2 509syn keyword vimHiClear contained clear nextgroup=vimHiGroup 510 511" Highlight: link {{{2 512syn region vimHiLink contained oneline matchgroup=vimCommand start="\<\(def\s\+\)\=link\>\|\<def\>" end="$" contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation 513 514" Control Characters {{{2 515" ================== 516syn match vimCtrlChar "[--]" 517 518" Beginners - Patterns that involve ^ {{{2 519" ========= 520syn match vimLineComment +^[ \t:]*".*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle 521syn match vimCommentTitle '"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1 contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup 522syn match vimContinue "^\s*\\" 523syn region vimString start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue 524syn match vimCommentTitleLeader '"\s\+'ms=s+1 contained 525 526" Searches And Globals: {{{2 527" ==================== 528syn match vimSearch '^\s*[/?].*' contains=vimSearchDelim 529syn match vimSearchDelim '^\s*\zs[/?]\|[/?]$' contained 530syn region vimGlobal matchgroup=Statement start='\<g\%[lobal]!\=/' skip='\\.' end='/' 531syn region vimGlobal matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/' 532 533" Scripts : perl,ruby : Benoit Cerrina {{{2 534" ======= python,tcl: Johannes Zellner 535 536" Allows users to specify the type of embedded script highlighting 537" they want: (perl/python/ruby/tcl support) 538" g:vimsyn_embed == 0 : don't embed any scripts 539" g:vimsyn_embed ~= 'm' : embed mzscheme (but only if vim supports it) 540" g:vimsyn_embed ~= 'p' : embed perl (but only if vim supports it) 541" g:vimsyn_embed ~= 'P' : embed python (but only if vim supports it) 542" g:vimsyn_embed ~= 'r' : embed ruby (but only if vim supports it) 543" g:vimsyn_embed ~= 't' : embed tcl (but only if vim supports it) 544if !exists("g:vimsyn_embed") 545 let g:vimsyn_embed= "mpPr" 546endif 547 548" [-- perl --] {{{3 549let s:perlpath= expand("<sfile>:p:h")."/perl.vim" 550if !filereadable(s:perlpath) 551 let s:perlpath= globpath(&rtp,"syntax/perl.vim") 552endif 553if (g:vimsyn_embed =~ 'p' && has("perl")) && filereadable(s:perlpath) 554 unlet! b:current_syntax 555 exe "syn include @vimPerlScript ".s:perlpath 556 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'p' 557 syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPerlScript 558 syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ contains=@vimPerlScript 559 else 560 syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPerlScript 561 syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ contains=@vimPerlScript 562 endif 563 syn cluster vimFuncBodyList add=vimPerlRegion 564else 565 syn region vimEmbedError start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ 566 syn region vimEmbedError start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ 567endif 568unlet s:perlpath 569 570" [-- ruby --] {{{3 571let s:rubypath= expand("<sfile>:p:h")."/ruby.vim" 572if !filereadable(s:rubypath) 573 let s:rubypath= globpath(&rtp,"syntax/ruby.vim") 574endif 575if (g:vimsyn_embed =~ 'r' && has("ruby")) && filereadable(s:rubypath) 576 unlet! b:current_syntax 577 exe "syn include @vimRubyScript ".s:rubypath 578 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'r' 579 syn region vimRubyRegion fold matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimRubyScript 580 else 581 syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimRubyScript 582 endif 583 syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*$+ end=+\.$+ contains=@vimRubyScript 584 syn cluster vimFuncBodyList add=vimRubyRegion 585else 586 syn region vimEmbedError start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ 587 syn region vimEmbedError start=+rub[y]\s*<<\s*$+ end=+\.$+ 588endif 589unlet s:rubypath 590 591" [-- python --] {{{3 592let s:pythonpath= expand("<sfile>:p:h")."/python.vim" 593if !filereadable(s:pythonpath) 594 let s:pythonpath= globpath(&rtp,"syntax/python.vim") 595endif 596if (g:vimsyn_embed =~ 'P' && has("python")) && filereadable(s:pythonpath) 597 unlet! b:current_syntax 598 exe "syn include @vimPythonScript ".s:pythonpath 599 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'P' 600 syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript 601 syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript 602 else 603 syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript 604 syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript 605 endif 606 syn cluster vimFuncBodyList add=vimPythonRegion 607else 608 syn region vimEmbedError start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ 609 syn region vimEmbedError start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+ 610endif 611unlet s:pythonpath 612 613" [-- tcl --] {{{3 614if has("win32") || has("win95") || has("win64") || has("win16") 615 " apparently has("tcl") has been hanging vim on some windows systems with cygwin 616 let s:trytcl= (&shell !~ '\<\%(bash\>\|4[nN][tT]\|\<zsh\)\>\%(\.exe\)\=$') 617else 618 let s:trytcl= 1 619endif 620if s:trytcl 621 let s:tclpath= expand("<sfile>:p:h")."/tcl.vim" 622 if !filereadable(s:tclpath) 623 let s:tclpath= globpath(&rtp,"syntax/tcl.vim") 624 endif 625 if (g:vimsyn_embed =~ 't' && has("tcl")) && filereadable(s:tclpath) 626 unlet! b:current_syntax 627 exe "syn include @vimTclScript ".s:tclpath 628 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 't' 629 syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript 630 syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript 631 else 632 syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript 633 syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript 634 endif 635 syn cluster vimFuncBodyList add=vimTclScript 636 else 637 syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ 638 syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+ 639 endif 640 unlet s:tclpath 641else 642 syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ 643 syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+ 644endif 645unlet s:trytcl 646 647" [-- mzscheme --] {{{3 648let s:mzschemepath= expand("<sfile>:p:h")."/scheme.vim" 649if !filereadable(s:mzschemepath) 650 let s:mzschemepath= globpath(&rtp,"syntax/scheme.vim") 651endif 652if (g:vimsyn_embed =~ 'm' && has("mzscheme")) && filereadable(s:mzschemepath) 653 unlet! b:current_syntax 654 let iskKeep= &isk 655 exe "syn include @vimMzSchemeScript ".s:mzschemepath 656 let &isk= iskKeep 657 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'm' 658 syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimMzSchemeScript 659 syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ contains=@vimMzSchemeScript 660 else 661 syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimMzSchemeScript 662 syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ contains=@vimMzSchemeScript 663 endif 664 syn cluster vimFuncBodyList add=vimMzSchemeRegion 665else 666 syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ 667 syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ 668endif 669unlet s:mzschemepath 670 671" Synchronize (speed) {{{2 672"============ 673if exists("g:vimsyn_minlines") 674 exe "syn sync minlines=".g:vimsyn_minlines 675endif 676if exists("g:vimsyn_maxlines") 677 exe "syn sync maxlines=".g:vimsyn_maxlines 678else 679 syn sync maxlines=60 680endif 681syn sync linecont "^\s\+\\" 682syn sync match vimAugroupSyncA groupthere NONE "\<aug\%[roup]\>\s\+[eE][nN][dD]" 683 684" ==================== 685" Highlighting Settings {{{2 686" ==================== 687 688hi def link vimAuHighlight vimHighlight 689hi def link vimSubst1 vimSubst 690hi def link vimBehaveModel vimBehave 691 692if !exists("g:vimsyn_noerror") 693 hi def link vimBehaveError vimError 694 hi def link vimCollClassErr vimError 695 hi def link vimErrSetting vimError 696 hi def link vimEmbedError vimError 697 hi def link vimFTError vimError 698 hi def link vimFunctionError vimError 699 hi def link vimFunc vimError 700 hi def link vimHiAttribList vimError 701 hi def link vimHiCtermError vimError 702 hi def link vimHiKeyError vimError 703 hi def link vimKeyCodeError vimError 704 hi def link vimMapModErr vimError 705 hi def link vimSubstFlagErr vimError 706 hi def link vimSynCaseError vimError 707 hi def link vimBufnrWarn vimWarn 708endif 709 710hi def link vimAbb vimCommand 711hi def link vimAddress vimMark 712hi def link vimAugroupKey vimCommand 713hi def link vimAutoCmdOpt vimOption 714hi def link vimAutoCmd vimCommand 715hi def link vimAutoSet vimCommand 716hi def link vimBehave vimCommand 717hi def link vimCommentString vimString 718hi def link vimCondHL vimCommand 719hi def link vimEchoHLNone vimGroup 720hi def link vimEchoHL vimCommand 721hi def link vimElseif vimCondHL 722hi def link vimFgBgAttrib vimHiAttrib 723hi def link vimFTCmd vimCommand 724hi def link vimFTOption vimSynType 725hi def link vimFuncKey vimCommand 726hi def link vimGroupAdd vimSynOption 727hi def link vimGroupRem vimSynOption 728hi def link vimHiCtermFgBg vimHiTerm 729hi def link vimHiCTerm vimHiTerm 730hi def link vimHighlight vimCommand 731hi def link vimHiGroup vimGroupName 732hi def link vimHiGuiFgBg vimHiTerm 733hi def link vimHiGuiFont vimHiTerm 734hi def link vimHiGuiRgb vimNumber 735hi def link vimHiGui vimHiTerm 736hi def link vimHiStartStop vimHiTerm 737hi def link vimHLGroup vimGroup 738hi def link vimInsert vimString 739hi def link vimKeyCode vimSpecFile 740hi def link vimLet vimCommand 741hi def link vimLineComment vimComment 742hi def link vimMapBang vimCommand 743hi def link vimMapModKey vimFuncSID 744hi def link vimMapMod vimBracket 745hi def link vimMap vimCommand 746hi def link vimMarkNumber vimNumber 747hi def link vimMenuMod vimMapMod 748hi def link vimMenuNameMore vimMenuName 749hi def link vimMtchComment vimComment 750hi def link vimNorm vimCommand 751hi def link vimNotFunc vimCommand 752hi def link vimNotPatSep vimString 753hi def link vimPatSepErr vimPatSep 754hi def link vimPatSepR vimPatSep 755hi def link vimPatSepZone vimString 756hi def link vimPatSepZ vimPatSep 757hi def link vimPlainMark vimMark 758hi def link vimPlainRegister vimRegister 759hi def link vimSearch vimString 760hi def link vimSetMod vimOption 761hi def link vimSetString vimString 762hi def link vimSpecFileMod vimSpecFile 763hi def link vimStringCont vimString 764hi def link vimSubstTwoBS vimString 765hi def link vimSubst vimCommand 766hi def link vimSyncGroupName vimGroupName 767hi def link vimSyncGroup vimGroupName 768hi def link vimSynContains vimSynOption 769hi def link vimSynKeyContainedin vimSynContains 770hi def link vimSynKeyOpt vimSynOption 771hi def link vimSynMtchGrp vimSynOption 772hi def link vimSynMtchOpt vimSynOption 773hi def link vimSynNextgroup vimSynOption 774hi def link vimSynNotPatRange vimSynRegPat 775hi def link vimSynPatRange vimString 776hi def link vimSynRegOpt vimSynOption 777hi def link vimSynRegPat vimString 778hi def link vimSyntax vimCommand 779hi def link vimSynType vimSpecial 780hi def link vimUnmap vimMap 781hi def link vimUserAttrbCmplt vimSpecial 782hi def link vimUserAttrbKey vimOption 783hi def link vimUserAttrb vimSpecial 784hi def link vimUserCommand vimCommand 785 786hi def link vimAutoEvent Type 787hi def link vimBracket Delimiter 788hi def link vimCmplxRepeat SpecialChar 789hi def link vimCommand Statement 790hi def link vimComment Comment 791hi def link vimCommentTitle PreProc 792hi def link vimContinue Special 793hi def link vimCtrlChar SpecialChar 794hi def link vimElseIfErr Error 795hi def link vimEnvvar PreProc 796hi def link vimError Error 797hi def link vimFold Folded 798hi def link vimFuncName Function 799hi def link vimFuncSID Special 800hi def link vimFuncVar Identifier 801hi def link vimGroupSpecial Special 802hi def link vimGroup Type 803hi def link vimHiAttrib PreProc 804hi def link vimHiTerm Type 805hi def link vimHLMod PreProc 806hi def link vimKeyword Statement 807hi def link vimMark Number 808hi def link vimMenuName PreProc 809hi def link vimNotation Special 810hi def link vimNumber Number 811hi def link vimOperError Error 812hi def link vimOper Operator 813hi def link vimOption PreProc 814hi def link vimParenSep Delimiter 815hi def link vimPatSep SpecialChar 816hi def link vimPattern Type 817hi def link vimRegister SpecialChar 818hi def link vimScriptDelim Comment 819hi def link vimSearchDelim Statement 820hi def link vimSep Delimiter 821hi def link vimSetSep Statement 822hi def link vimSpecFile Identifier 823hi def link vimSpecial Type 824hi def link vimStatement Statement 825hi def link vimString String 826hi def link vimSubstDelim Delimiter 827hi def link vimSubstFlags Special 828hi def link vimSubstSubstr SpecialChar 829hi def link vimSynCaseError Error 830hi def link vimSynCase Type 831hi def link vimSyncC Type 832hi def link vimSyncError Error 833hi def link vimSyncKey Type 834hi def link vimSyncNone Type 835hi def link vimSynError Error 836hi def link vimSynOption Special 837hi def link vimSynReg Type 838hi def link vimTodo Todo 839hi def link vimUserAttrbCmpltFunc Special 840hi def link vimUserCmdError Error 841hi def link vimUserFunc Normal 842hi def link vimWarn WarningMsg 843 844" Current Syntax Variable: {{{2 845let b:current_syntax = "vim" 846" vim:ts=18 fdm=marker 847