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