1" Vim syntax file 2" Language: Vim 7.3 script 3" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz> 4" Last Change: August 04, 2010 5" Version: 7.3-04 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 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 stl sw sxq tabpagemax tags tbis terse thesaurus titleold toolbariconsize tsr ttyfast tx undofile 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 cocu 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 ssop stmp swapfile syn tabstop tagstack tbs textauto tildeop titlestring top ttimeout ttym uc undolevels 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 cole 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 st sts swapsync synmaxcol tag tal tenc textmode timeout tl tpm ttimeoutlen ttymouse udf undoreload 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 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 sta su swb syntax tagbsearch tb term textwidth timeoutlen tm tr ttm ttyscroll udir updatecount 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 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 stal sua swf ta taglength tbi termbidi tf title to ts tty ttytype ul updatetime 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 com concealcursor 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 startofline suffixes switchbuf tabline tagrelative tbidi termencoding tgst titlelen toolbar tsl ttybuiltin tw undodir ur 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 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 statusline suffixesadd sws 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 matchstr min mode nextnonblank pathshorten prevnonblank pumvisible readfile reltimestr remote_foreground remote_read remove repeat reverse search searchpair searchpos serverlist setcmdpos setloclist setpos setreg settabwinvar shellescape sin sort spellbadword split str2float strchars strftime string strpart strtrans submatch synconcealed synIDattr synstack tabpagebuflist tabpagewinnr taglist tanh tolower tr type undotree virtcol winbufnr winheight winnr winrestview winwidth 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 max mkdir mzeval nr2char pow printf range reltime remote_expr remote_peek remote_send rename resolve round searchdecl searchpairpos server2client setbufvar setline setmatches setqflist settabvar setwinvar simplify sinh soundfold spellsuggest sqrt str2nr strdisplaywidth stridx strlen strridx strwidth substitute synID synIDtrans system tabpagenr tagfiles tan tempname toupper trunc undofile values visualmode wincol winline winrestcmd winsaveview writefile 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 matchlist 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]\|se\%[t]\)\>" 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" lua 536 537" Allows users to specify the type of embedded script highlighting 538" they want: (perl/python/ruby/tcl support) 539" g:vimsyn_embed == 0 : don't embed any scripts 540" g:vimsyn_embed ~= 'l' : embed lua (but only if vim supports it) 541" g:vimsyn_embed ~= 'm' : embed mzscheme (but only if vim supports it) 542" g:vimsyn_embed ~= 'p' : embed perl (but only if vim supports it) 543" g:vimsyn_embed ~= 'P' : embed python (but only if vim supports it) 544" g:vimsyn_embed ~= 'r' : embed ruby (but only if vim supports it) 545" g:vimsyn_embed ~= 't' : embed tcl (but only if vim supports it) 546if !exists("g:vimsyn_embed") 547 let g:vimsyn_embed= "lmpPr" 548endif 549 550" [-- lua --] {{{3 551let s:luapath= expand("<sfile>:p:h")."/lua.vim" 552if !filereadable(s:luapath) 553 let s:luapath= globpath(&rtp,"syntax/lua.vim") 554endif 555if (g:vimsyn_embed =~ 'p' && has("lua")) && filereadable(s:luapath) 556 unlet! b:current_syntax 557 exe "syn include @vimLuaScript ".s:luapath 558 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'l' 559 syn region vimLuaRegion fold matchgroup=vimScriptDelim start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimLuaScript 560 syn region vimLuaRegion fold matchgroup=vimScriptDelim start=+lua\s*<<\s*$+ end=+\.$+ contains=@vimLuaScript 561 else 562 syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimLuaScript 563 syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*$+ end=+\.$+ contains=@vimLuaScript 564 endif 565 syn cluster vimFuncBodyList add=vimLuaRegion 566else 567 syn region vimEmbedError start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+ 568 syn region vimEmbedError start=+lua\s*<<\s*$+ end=+\.$+ 569endif 570unlet s:luapath 571 572" [-- perl --] {{{3 573let s:perlpath= expand("<sfile>:p:h")."/perl.vim" 574if !filereadable(s:perlpath) 575 let s:perlpath= globpath(&rtp,"syntax/perl.vim") 576endif 577if (g:vimsyn_embed =~ 'p' && has("perl")) && filereadable(s:perlpath) 578 unlet! b:current_syntax 579 exe "syn include @vimPerlScript ".s:perlpath 580 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'p' 581 syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPerlScript 582 syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ contains=@vimPerlScript 583 else 584 syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPerlScript 585 syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ contains=@vimPerlScript 586 endif 587 syn cluster vimFuncBodyList add=vimPerlRegion 588else 589 syn region vimEmbedError start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ 590 syn region vimEmbedError start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ 591endif 592unlet s:perlpath 593 594" [-- ruby --] {{{3 595let s:rubypath= expand("<sfile>:p:h")."/ruby.vim" 596if !filereadable(s:rubypath) 597 let s:rubypath= globpath(&rtp,"syntax/ruby.vim") 598endif 599if (g:vimsyn_embed =~ 'r' && has("ruby")) && filereadable(s:rubypath) 600 unlet! b:current_syntax 601 exe "syn include @vimRubyScript ".s:rubypath 602 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'r' 603 syn region vimRubyRegion fold matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimRubyScript 604 else 605 syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimRubyScript 606 endif 607 syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*$+ end=+\.$+ contains=@vimRubyScript 608 syn cluster vimFuncBodyList add=vimRubyRegion 609else 610 syn region vimEmbedError start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ 611 syn region vimEmbedError start=+rub[y]\s*<<\s*$+ end=+\.$+ 612endif 613unlet s:rubypath 614 615" [-- python --] {{{3 616let s:pythonpath= expand("<sfile>:p:h")."/python.vim" 617if !filereadable(s:pythonpath) 618 let s:pythonpath= globpath(&rtp,"syntax/python.vim") 619endif 620if (g:vimsyn_embed =~ 'P' && has("python")) && filereadable(s:pythonpath) 621 unlet! b:current_syntax 622 exe "syn include @vimPythonScript ".s:pythonpath 623 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'P' 624 syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript 625 syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript 626 else 627 syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript 628 syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript 629 endif 630 syn cluster vimFuncBodyList add=vimPythonRegion 631else 632 syn region vimEmbedError start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ 633 syn region vimEmbedError start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+ 634endif 635unlet s:pythonpath 636 637" [-- tcl --] {{{3 638if has("win32") || has("win95") || has("win64") || has("win16") 639 " apparently has("tcl") has been hanging vim on some windows systems with cygwin 640 let s:trytcl= (&shell !~ '\<\%(bash\>\|4[nN][tT]\|\<zsh\)\>\%(\.exe\)\=$') 641else 642 let s:trytcl= 1 643endif 644if s:trytcl 645 let s:tclpath= expand("<sfile>:p:h")."/tcl.vim" 646 if !filereadable(s:tclpath) 647 let s:tclpath= globpath(&rtp,"syntax/tcl.vim") 648 endif 649 if (g:vimsyn_embed =~ 't' && has("tcl")) && filereadable(s:tclpath) 650 unlet! b:current_syntax 651 exe "syn include @vimTclScript ".s:tclpath 652 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 't' 653 syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript 654 syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript 655 else 656 syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript 657 syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript 658 endif 659 syn cluster vimFuncBodyList add=vimTclScript 660 else 661 syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ 662 syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+ 663 endif 664 unlet s:tclpath 665else 666 syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ 667 syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+ 668endif 669unlet s:trytcl 670 671" [-- mzscheme --] {{{3 672let s:mzschemepath= expand("<sfile>:p:h")."/scheme.vim" 673if !filereadable(s:mzschemepath) 674 let s:mzschemepath= globpath(&rtp,"syntax/scheme.vim") 675endif 676if (g:vimsyn_embed =~ 'm' && has("mzscheme")) && filereadable(s:mzschemepath) 677 unlet! b:current_syntax 678 let iskKeep= &isk 679 exe "syn include @vimMzSchemeScript ".s:mzschemepath 680 let &isk= iskKeep 681 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'm' 682 syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimMzSchemeScript 683 syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ contains=@vimMzSchemeScript 684 else 685 syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimMzSchemeScript 686 syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ contains=@vimMzSchemeScript 687 endif 688 syn cluster vimFuncBodyList add=vimMzSchemeRegion 689else 690 syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ 691 syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ 692endif 693unlet s:mzschemepath 694 695" Synchronize (speed) {{{2 696"============ 697if exists("g:vimsyn_minlines") 698 exe "syn sync minlines=".g:vimsyn_minlines 699endif 700if exists("g:vimsyn_maxlines") 701 exe "syn sync maxlines=".g:vimsyn_maxlines 702else 703 syn sync maxlines=60 704endif 705syn sync linecont "^\s\+\\" 706syn sync match vimAugroupSyncA groupthere NONE "\<aug\%[roup]\>\s\+[eE][nN][dD]" 707 708" ==================== 709" Highlighting Settings {{{2 710" ==================== 711 712hi def link vimAuHighlight vimHighlight 713hi def link vimSubst1 vimSubst 714hi def link vimBehaveModel vimBehave 715 716if !exists("g:vimsyn_noerror") 717 hi def link vimBehaveError vimError 718 hi def link vimCollClassErr vimError 719 hi def link vimErrSetting vimError 720 hi def link vimEmbedError vimError 721 hi def link vimFTError vimError 722 hi def link vimFunctionError vimError 723 hi def link vimFunc vimError 724 hi def link vimHiAttribList vimError 725 hi def link vimHiCtermError vimError 726 hi def link vimHiKeyError vimError 727 hi def link vimKeyCodeError vimError 728 hi def link vimMapModErr vimError 729 hi def link vimSubstFlagErr vimError 730 hi def link vimSynCaseError vimError 731 hi def link vimBufnrWarn vimWarn 732endif 733 734hi def link vimAbb vimCommand 735hi def link vimAddress vimMark 736hi def link vimAugroupKey vimCommand 737hi def link vimAutoCmdOpt vimOption 738hi def link vimAutoCmd vimCommand 739hi def link vimAutoSet vimCommand 740hi def link vimBehave vimCommand 741hi def link vimCommentString vimString 742hi def link vimCondHL vimCommand 743hi def link vimEchoHLNone vimGroup 744hi def link vimEchoHL vimCommand 745hi def link vimElseif vimCondHL 746hi def link vimFgBgAttrib vimHiAttrib 747hi def link vimFTCmd vimCommand 748hi def link vimFTOption vimSynType 749hi def link vimFuncKey vimCommand 750hi def link vimGroupAdd vimSynOption 751hi def link vimGroupRem vimSynOption 752hi def link vimHiCtermFgBg vimHiTerm 753hi def link vimHiCTerm vimHiTerm 754hi def link vimHighlight vimCommand 755hi def link vimHiGroup vimGroupName 756hi def link vimHiGuiFgBg vimHiTerm 757hi def link vimHiGuiFont vimHiTerm 758hi def link vimHiGuiRgb vimNumber 759hi def link vimHiGui vimHiTerm 760hi def link vimHiStartStop vimHiTerm 761hi def link vimHLGroup vimGroup 762hi def link vimInsert vimString 763hi def link vimKeyCode vimSpecFile 764hi def link vimLet vimCommand 765hi def link vimLineComment vimComment 766hi def link vimMapBang vimCommand 767hi def link vimMapModKey vimFuncSID 768hi def link vimMapMod vimBracket 769hi def link vimMap vimCommand 770hi def link vimMarkNumber vimNumber 771hi def link vimMenuMod vimMapMod 772hi def link vimMenuNameMore vimMenuName 773hi def link vimMtchComment vimComment 774hi def link vimNorm vimCommand 775hi def link vimNotFunc vimCommand 776hi def link vimNotPatSep vimString 777hi def link vimPatSepErr vimPatSep 778hi def link vimPatSepR vimPatSep 779hi def link vimPatSepZone vimString 780hi def link vimPatSepZ vimPatSep 781hi def link vimPlainMark vimMark 782hi def link vimPlainRegister vimRegister 783hi def link vimSearch vimString 784hi def link vimSetMod vimOption 785hi def link vimSetString vimString 786hi def link vimSpecFileMod vimSpecFile 787hi def link vimStringCont vimString 788hi def link vimSubstTwoBS vimString 789hi def link vimSubst vimCommand 790hi def link vimSyncGroupName vimGroupName 791hi def link vimSyncGroup vimGroupName 792hi def link vimSynContains vimSynOption 793hi def link vimSynKeyContainedin vimSynContains 794hi def link vimSynKeyOpt vimSynOption 795hi def link vimSynMtchGrp vimSynOption 796hi def link vimSynMtchOpt vimSynOption 797hi def link vimSynNextgroup vimSynOption 798hi def link vimSynNotPatRange vimSynRegPat 799hi def link vimSynPatRange vimString 800hi def link vimSynRegOpt vimSynOption 801hi def link vimSynRegPat vimString 802hi def link vimSyntax vimCommand 803hi def link vimSynType vimSpecial 804hi def link vimUnmap vimMap 805hi def link vimUserAttrbCmplt vimSpecial 806hi def link vimUserAttrbKey vimOption 807hi def link vimUserAttrb vimSpecial 808hi def link vimUserCommand vimCommand 809 810hi def link vimAutoEvent Type 811hi def link vimBracket Delimiter 812hi def link vimCmplxRepeat SpecialChar 813hi def link vimCommand Statement 814hi def link vimComment Comment 815hi def link vimCommentTitle PreProc 816hi def link vimContinue Special 817hi def link vimCtrlChar SpecialChar 818hi def link vimElseIfErr Error 819hi def link vimEnvvar PreProc 820hi def link vimError Error 821hi def link vimFold Folded 822hi def link vimFuncName Function 823hi def link vimFuncSID Special 824hi def link vimFuncVar Identifier 825hi def link vimGroupSpecial Special 826hi def link vimGroup Type 827hi def link vimHiAttrib PreProc 828hi def link vimHiTerm Type 829hi def link vimHLMod PreProc 830hi def link vimKeyword Statement 831hi def link vimMark Number 832hi def link vimMenuName PreProc 833hi def link vimNotation Special 834hi def link vimNumber Number 835hi def link vimOperError Error 836hi def link vimOper Operator 837hi def link vimOption PreProc 838hi def link vimParenSep Delimiter 839hi def link vimPatSep SpecialChar 840hi def link vimPattern Type 841hi def link vimRegister SpecialChar 842hi def link vimScriptDelim Comment 843hi def link vimSearchDelim Statement 844hi def link vimSep Delimiter 845hi def link vimSetSep Statement 846hi def link vimSpecFile Identifier 847hi def link vimSpecial Type 848hi def link vimStatement Statement 849hi def link vimString String 850hi def link vimSubstDelim Delimiter 851hi def link vimSubstFlags Special 852hi def link vimSubstSubstr SpecialChar 853hi def link vimSynCaseError Error 854hi def link vimSynCase Type 855hi def link vimSyncC Type 856hi def link vimSyncError Error 857hi def link vimSyncKey Type 858hi def link vimSyncNone Type 859hi def link vimSynError Error 860hi def link vimSynOption Special 861hi def link vimSynReg Type 862hi def link vimTodo Todo 863hi def link vimUserAttrbCmpltFunc Special 864hi def link vimUserCmdError Error 865hi def link vimUserFunc Normal 866hi def link vimWarn WarningMsg 867 868" Current Syntax Variable: {{{2 869let b:current_syntax = "vim" 870" vim:ts=18 fdm=marker 871