1071d4279SBram Moolenaar" Vim syntax file 27cba6c06SBram Moolenaar" Language: Vim 7.4 script 37cba6c06SBram Moolenaar" Maintainer: Charles E. Campbell <[email protected]> 4*9da7ff70SBram Moolenaar" Last Change: Jan 13, 2015 5*9da7ff70SBram Moolenaar" Version: 7.4-28 6071d4279SBram Moolenaar" Automatically generated keyword lists: {{{1 7071d4279SBram Moolenaar 8071d4279SBram Moolenaar" Quit when a syntax file was already loaded {{{2 9071d4279SBram Moolenaarif exists("b:current_syntax") 10071d4279SBram Moolenaar finish 11071d4279SBram Moolenaarendif 126be7f873SBram Moolenaarlet s:keepcpo= &cpo 136be7f873SBram Moolenaarset cpo&vim 14071d4279SBram Moolenaar 15071d4279SBram Moolenaar" vimTodo: contains common special-notices for comments {{{2 16071d4279SBram Moolenaar" Use the vimCommentGroup cluster to add your own. 17e2719096SBram Moolenaarsyn keyword vimTodo contained COMBAK FIXME TODO XXX 18217ad920SBram Moolenaarsyn cluster vimCommentGroup contains=vimTodo,@Spell 19071d4279SBram Moolenaar 20071d4279SBram Moolenaar" regular vim commands {{{2 21e2719096SBram Moolenaarsyn keyword vimCommand contained a arga[dd] ar[gs] bd[elete] bN[ext] breakl[ist] b[uffer] cad 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] nu[mber] opt[ions] pe[rl] pr prof[ile] ptj[ump] ptp[revious] py3 q r[ead] redr[aw] retu[rn] rub[y] rv[iminfo] sba[ll] sbN[ext] scripte[ncoding] setf[iletype] sh[ell] 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 22e2719096SBram Moolenaarsyn keyword vimCommand contained ab argd[elete] argu[ment] bel[owright] bo[tright] br[ewind] buffers caddb[uffer] 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] o ownsyntax perld[o] pre[serve] promptf[ind] ptl[ast] ptr[ewind] py3do qa[ll] rec[over] redraws[tatus] rew[ind] rubyd[o] sal[l] sbf[irst] sbp[revious] scrip[tnames] setg[lobal] si 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] xunme 23e2719096SBram Moolenaarsyn keyword vimCommand contained abc[lear] argdo as[cii] bf[irst] bp[revious] bro[wse] bun[load] cad[dexpr] 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 ol[dfiles] p po[p] prev[ious] promptr[epl] ptn pts[elect] pydo q[uit] red reg[isters] ri[ght] rubyf[ile] san[dbox] sbl[ast] sbr[ewind] scs setl[ocal] 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 xunmenu 24e2719096SBram Moolenaarsyn keyword vimCommand contained abo[veleft] arge[dit] au bl[ast] brea[k] bu bw[ipeout] 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 omapc[lear] pc[lose] popu p[rint] ps[earch] ptN pu[t] pyf[ile] quita[ll] redi[r] res[ize] rightb[elow] rundo sa[rgument] sbm[odified] sb[uffer] scscope sf[ind] 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 xwininfo 25e2719096SBram Moolenaarsyn keyword vimCommand contained al[l] argg[lobal] bad[d] bm[odified] breaka[dd] buf c 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] on[ly] pe popu[p] pro pta[g] ptn[ext] pw[d] py[thon] r red[o] ret[ab] ru ru[ntime] sav[eas] sbn[ext] scrip se[t] sfir[st] 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 y[ank] 26e2719096SBram Moolenaarsyn keyword vimCommand contained ar argl[ocal] ba[ll] bn[ext] breakd[el] bufdo cabc[lear] 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 noswap[file] o[pen] ped[it] pp[op] profd[el] ptf[irst] ptN[ext] py python3 re 27e2719096SBram Moolenaarsyn match vimCommand contained "\<z[-+^.=]\=\>" 28a6878375SBram Moolenaarsyn keyword vimStdPlugin contained DiffOrig Man N[ext] P[rint] S TOhtml XMLent XMLns 29071d4279SBram Moolenaar 30071d4279SBram Moolenaar" vimOptions are caught only when contained in a vimSet {{{2 31e2719096SBram Moolenaarsyn keyword vimOption contained acd ambiwidth arabicshape autowriteall backupdir bdlay binary breakat bs casemap cf cink 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 32e2719096SBram Moolenaarsyn keyword vimOption contained ai ambw ari aw backupext beval biosk breakindent bsdir cb cfu cinkeys 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 33e2719096SBram Moolenaarsyn keyword vimOption contained akm anti arshape awa backupskip bex bioskey breakindentopt bsk cc ch cino 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 34e2719096SBram Moolenaarsyn keyword vimOption contained al antialias autochdir background balloondelay bexpr bk bri bt ccv charconvert cinoptions 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 35e2719096SBram Moolenaarsyn keyword vimOption contained aleph ar autoindent backspace ballooneval bg bkc briopt bufhidden cd ci cinw 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 36e2719096SBram Moolenaarsyn keyword vimOption contained allowrevins arab autoread backup balloonexpr bh bl brk buflisted cdpath cin cinwords 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 37e2719096SBram Moolenaarsyn keyword vimOption contained altkeymap arabic autowrite backupcopy bdir bin bomb browsedir buftype cedit cindent clipboard 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 38071d4279SBram Moolenaar 39071d4279SBram Moolenaar" vimOptions: These are the turn-off setting variants {{{2 40a6878375SBram Moolenaarsyn 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 41a6878375SBram Moolenaarsyn 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 42a6878375SBram Moolenaarsyn 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 43071d4279SBram Moolenaar 44071d4279SBram Moolenaar" vimOptions: These are the invertible variants {{{2 45a6878375SBram Moolenaarsyn 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 46a6878375SBram Moolenaarsyn 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 47a6878375SBram Moolenaarsyn 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 48071d4279SBram Moolenaar 49071d4279SBram Moolenaar" termcap codes (which can also be set) {{{2 50a6878375SBram Moolenaarsyn keyword vimOption contained t_AB t_al t_bc t_ce t_cl t_Co 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_u7 t_ue t_us t_ut t_vb t_ve t_vi t_vs t_WP t_WS t_xs t_ZH t_ZR 51a6878375SBram Moolenaarsyn keyword vimOption contained t_AF t_AL t_cd t_Ce t_cm t_cs 52071d4279SBram Moolenaarsyn match vimOption contained "t_%1" 53071d4279SBram Moolenaarsyn match vimOption contained "t_#2" 54071d4279SBram Moolenaarsyn match vimOption contained "t_#4" 55071d4279SBram Moolenaarsyn match vimOption contained "t_@7" 56071d4279SBram Moolenaarsyn match vimOption contained "t_*7" 57071d4279SBram Moolenaarsyn match vimOption contained "t_&8" 58071d4279SBram Moolenaarsyn match vimOption contained "t_%i" 59071d4279SBram Moolenaarsyn match vimOption contained "t_k;" 60071d4279SBram Moolenaar 61071d4279SBram Moolenaar" unsupported settings: these are supported by vi but don't do anything in vim {{{2 62cd71fa3cSBram Moolenaarsyn keyword vimErrSetting contained hardtabs ht w1200 w300 w9600 63071d4279SBram Moolenaar 6480a94a58SBram Moolenaar" AutoCmd Events {{{2 65071d4279SBram Moolenaarsyn case ignore 66e2719096SBram Moolenaarsyn 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 67071d4279SBram Moolenaar 68071d4279SBram Moolenaar" Highlight commonly used Groupnames {{{2 69b2c0350cSBram Moolenaarsyn 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 70071d4279SBram Moolenaar 71071d4279SBram Moolenaar" Default highlighting groups {{{2 72a6878375SBram Moolenaarsyn 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 73293ee4d4SBram Moolenaarsyn match vimHLGroup contained "Conceal" 74071d4279SBram Moolenaarsyn case match 75071d4279SBram Moolenaar 76071d4279SBram Moolenaar" Function Names {{{2 77e2719096SBram Moolenaarsyn 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 getcwd getfsize getline getpid getreg gettabwinvar getwinvar 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 sin 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 78e2719096SBram Moolenaarsyn 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 getfontname getftime getloclist getpos getregtype getwinposx glob 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 sinh 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 79e2719096SBram Moolenaarsyn 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 getcurpos getfperm getftype getmatches getqflist gettabvar getwinposy 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 80071d4279SBram Moolenaar 81ac7bd638SBram Moolenaar"--- syntax here and above generated by mkvimvim --- 82cfbc5ee4SBram Moolenaar" Special Vim Highlighting (not automatic) {{{1 83071d4279SBram Moolenaar 84fa01c39dSBram Moolenaar" commands not picked up by the generator (due to non-standard format) 85fa01c39dSBram Moolenaarsyn keyword vimCommand contained py3 86fa01c39dSBram Moolenaar 873577c6faSBram Moolenaar" Deprecated variable options {{{2 883577c6faSBram Moolenaarif exists("g:vim_minlines") 893577c6faSBram Moolenaar let g:vimsyn_minlines= g:vim_minlines 903577c6faSBram Moolenaarendif 913577c6faSBram Moolenaarif exists("g:vim_maxlines") 923577c6faSBram Moolenaar let g:vimsyn_maxlines= g:vim_maxlines 933577c6faSBram Moolenaarendif 943577c6faSBram Moolenaarif exists("g:vimsyntax_noerror") 953577c6faSBram Moolenaar let g:vimsyn_noerror= g:vimsyntax_noerror 963577c6faSBram Moolenaarendif 973577c6faSBram Moolenaar 98cfbc5ee4SBram Moolenaar" Numbers {{{2 99071d4279SBram Moolenaar" ======= 100*9da7ff70SBram Moolenaarsyn match vimNumber "\<\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand 101*9da7ff70SBram Moolenaarsyn match vimNumber "-\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand 102071d4279SBram Moolenaarsyn match vimNumber "\<0[xX]\x\+" 103e2719096SBram Moolenaarsyn match vimNumber "\%(^\|[^a-zA-Z]\)\zs#\x\{6}" 104071d4279SBram Moolenaar 105cfbc5ee4SBram Moolenaar" All vimCommands are contained by vimIsCommands. {{{2 106e2719096SBram Moolenaarsyn match vimCmdSep "[:|]\+" skipwhite nextgroup=vimAddress,vimAutoCmd,vimIsCommand,vimExtCmd,vimFilter,vimLet,vimMap,vimMark,vimSet,vimSyntax,vimUserCmd 107293ee4d4SBram Moolenaarsyn match vimIsCommand "\<\h\w*\>" contains=vimCommand 108e2719096SBram Moolenaarsyn match vimVar "\<[bwglsav]:\K\k*\>" 109e2719096SBram Moolenaarsyn match vimVar contained "\<\K\k*\>" 110e2719096SBram Moolenaarsyn match vimFBVar contained "\<[bwglsav]:\K\k*\>" 1113b1ddfedSBram Moolenaarsyn keyword vimCommand contained in 112071d4279SBram Moolenaar 113cfbc5ee4SBram Moolenaar" Insertions And Appends: insert append {{{2 114071d4279SBram Moolenaar" ======================= 115071d4279SBram Moolenaarsyn region vimInsert matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=a\%[ppend]$" matchgroup=vimCommand end="^\.$"" 116071d4279SBram Moolenaarsyn region vimInsert matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=c\%[hange]$" matchgroup=vimCommand end="^\.$"" 117071d4279SBram Moolenaarsyn region vimInsert matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=i\%[nsert]$" matchgroup=vimCommand end="^\.$"" 118071d4279SBram Moolenaar 119cfbc5ee4SBram Moolenaar" Behave! {{{2 120071d4279SBram Moolenaar" ======= 121071d4279SBram Moolenaarsyn match vimBehave "\<be\%[have]\>" skipwhite nextgroup=vimBehaveModel,vimBehaveError 122071d4279SBram Moolenaarsyn keyword vimBehaveModel contained mswin xterm 1236be7f873SBram Moolenaarif !exists("g:vimsyn_noerror") && !exists("g:vimsyn_nobehaveerror") 124071d4279SBram Moolenaar syn match vimBehaveError contained "[^ ]\+" 125cfbc5ee4SBram Moolenaarendif 126071d4279SBram Moolenaar 127cfbc5ee4SBram Moolenaar" Filetypes {{{2 128071d4279SBram Moolenaar" ========= 129293ee4d4SBram Moolenaarsyn match vimFiletype "\<filet\%[ype]\(\s\+\I\i*\)*" skipwhite contains=vimFTCmd,vimFTOption,vimFTError 1306be7f873SBram Moolenaarif !exists("g:vimsyn_noerror") && !exists("g:vimsyn_vimFTError") 131071d4279SBram Moolenaar syn match vimFTError contained "\I\i*" 132cfbc5ee4SBram Moolenaarendif 133071d4279SBram Moolenaarsyn keyword vimFTCmd contained filet[ype] 134071d4279SBram Moolenaarsyn keyword vimFTOption contained detect indent off on plugin 135071d4279SBram Moolenaar 136cfbc5ee4SBram Moolenaar" Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2 137071d4279SBram Moolenaar" ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking. 138e2719096SBram Moolenaarsyn 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 1393577c6faSBram Moolenaarif exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'a' 140e2719096SBram Moolenaar syn region vimAugroup fold matchgroup=vimAugroupKey start="\<aug\%[roup]\>\ze\s\+\K\k*" end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList 1413577c6faSBram Moolenaarelse 142e2719096SBram Moolenaar syn region vimAugroup matchgroup=vimAugroupKey start="\<aug\%[roup]\>\ze\s\+\K\k*" end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList 1433577c6faSBram Moolenaarendif 1443b1ddfedSBram Moolenaarsyn match vimAugroup "aug\%[roup]!" contains=vimAugroupKey 1456be7f873SBram Moolenaarif !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noaugrouperror") 146071d4279SBram Moolenaar syn match vimAugroupError "\<aug\%[roup]\>\s\+[eE][nN][dD]\>" 147cfbc5ee4SBram Moolenaarendif 148e2719096SBram Moolenaar"syn keyword vimAugroupKey contained aug[roup] 149071d4279SBram Moolenaar 150cfbc5ee4SBram Moolenaar" Operators: {{{2 151071d4279SBram Moolenaar" ========= 152*9da7ff70SBram Moolenaarsyn cluster vimOperGroup contains=vimEnvvar,vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue 153071d4279SBram Moolenaarsyn match vimOper "\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile 154071d4279SBram Moolenaarsyn match vimOper "||\|&&\|[-+.]" skipwhite nextgroup=vimString,vimSpecFile 155e2719096SBram Moolenaarsyn region vimOperParen oneline matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup 156e2719096SBram Moolenaarsyn region vimOperParen oneline matchgroup=vimSep start="{" end="}" contains=@vimOperGroup nextgroup=vimVar,vimFuncVar 1576be7f873SBram Moolenaarif !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noopererror") 158071d4279SBram Moolenaar syn match vimOperError ")" 159cfbc5ee4SBram Moolenaarendif 160071d4279SBram Moolenaar 1613577c6faSBram Moolenaar" Functions : Tag is provided for those who wish to highlight tagged functions {{{2 1623577c6faSBram Moolenaar" ========= 1635c73622aSBram Moolenaarsyn cluster vimFuncList contains=vimCommand,vimFunctionError,vimFuncKey,Tag,vimFuncSID 164*9da7ff70SBram Moolenaarsyn 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 1655c73622aSBram Moolenaarsyn match vimFunction "\<fu\%[nction]!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*(" contains=@vimFuncList nextgroup=vimFuncBody 1665c73622aSBram Moolenaar 1673577c6faSBram Moolenaarif exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'f' 1683577c6faSBram Moolenaar syn region vimFuncBody contained fold start="\ze(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList 1693577c6faSBram Moolenaarelse 1703577c6faSBram Moolenaar syn region vimFuncBody contained start="\ze(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList 1713577c6faSBram Moolenaarendif 172e2719096SBram Moolenaarsyn match vimFuncVar contained "a:\(\K\k*\|\d\+\)" 1733577c6faSBram Moolenaarsyn match vimFuncSID contained "\c<sid>\|\<s:" 1743577c6faSBram Moolenaarsyn keyword vimFuncKey contained fu[nction] 1753577c6faSBram Moolenaarsyn match vimFuncBlank contained "\s\+" 1763577c6faSBram Moolenaar 1773577c6faSBram Moolenaarsyn keyword vimPattern contained start skip end 1783577c6faSBram Moolenaar 179cfbc5ee4SBram Moolenaar" Special Filenames, Modifiers, Extension Removal: {{{2 180071d4279SBram Moolenaar" =============================================== 181071d4279SBram Moolenaarsyn match vimSpecFile "<c\(word\|WORD\)>" nextgroup=vimSpecFileMod,vimSubst 182071d4279SBram Moolenaarsyn match vimSpecFile "<\([acs]file\|amatch\|abuf\)>" nextgroup=vimSpecFileMod,vimSubst 183071d4279SBram Moolenaarsyn match vimSpecFile "\s%[ \t:]"ms=s+1,me=e-1 nextgroup=vimSpecFileMod,vimSubst 184071d4279SBram Moolenaarsyn match vimSpecFile "\s%$"ms=s+1 nextgroup=vimSpecFileMod,vimSubst 185071d4279SBram Moolenaarsyn match vimSpecFile "\s%<"ms=s+1,me=e-1 nextgroup=vimSpecFileMod,vimSubst 186071d4279SBram Moolenaarsyn match vimSpecFile "#\d\+\|[#%]<\>" nextgroup=vimSpecFileMod,vimSubst 187071d4279SBram Moolenaarsyn match vimSpecFileMod "\(:[phtre]\)\+" contained 188071d4279SBram Moolenaar 189cfbc5ee4SBram Moolenaar" User-Specified Commands: {{{2 190071d4279SBram Moolenaar" ======================= 1915c73622aSBram Moolenaarsyn 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 192071d4279SBram Moolenaarsyn keyword vimUserCommand contained com[mand] 193071d4279SBram Moolenaarsyn match vimUserCmd "\<com\%[mand]!\=\>.*$" contains=vimUserAttrb,vimUserCommand,@vimUserCmdList 194071d4279SBram Moolenaarsyn match vimUserAttrb contained "-n\%[args]=[01*?+]" contains=vimUserAttrbKey,vimOper 195071d4279SBram Moolenaarsyn match vimUserAttrb contained "-com\%[plete]=" contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError 196071d4279SBram Moolenaarsyn match vimUserAttrb contained "-ra\%[nge]\(=%\|=\d\+\)\=" contains=vimNumber,vimOper,vimUserAttrbKey 197071d4279SBram Moolenaarsyn match vimUserAttrb contained "-cou\%[nt]=\d\+" contains=vimNumber,vimOper,vimUserAttrbKey 198071d4279SBram Moolenaarsyn match vimUserAttrb contained "-bang\=\>" contains=vimOper,vimUserAttrbKey 199071d4279SBram Moolenaarsyn match vimUserAttrb contained "-bar\>" contains=vimOper,vimUserAttrbKey 200071d4279SBram Moolenaarsyn match vimUserAttrb contained "-re\%[gister]\>" contains=vimOper,vimUserAttrbKey 2016be7f873SBram Moolenaarif !exists("g:vimsyn_noerror") && !exists("g:vimsyn_nousercmderror") 202071d4279SBram Moolenaar syn match vimUserCmdError contained "\S\+\>" 203cfbc5ee4SBram Moolenaarendif 204071d4279SBram Moolenaarsyn case ignore 205071d4279SBram Moolenaarsyn keyword vimUserAttrbKey contained bar ban[g] cou[nt] ra[nge] com[plete] n[args] re[gister] 206*9da7ff70SBram Moolenaarsyn 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 207a93fa7eeSBram Moolenaarsyn keyword vimUserAttrbCmplt contained custom customlist nextgroup=vimUserAttrbCmpltFunc,vimUserCmdError 208*9da7ff70SBram Moolenaarsyn match vimUserAttrbCmpltFunc contained ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%(#\h\w*\)\+\|\h\w*\)"hs=s+1 nextgroup=vimUserCmdError 209a93fa7eeSBram Moolenaar 210071d4279SBram Moolenaarsyn case match 211071d4279SBram Moolenaarsyn match vimUserAttrbCmplt contained "custom,\u\w*" 212071d4279SBram Moolenaar 213cfbc5ee4SBram Moolenaar" Lower Priority Comments: after some vim commands... {{{2 214071d4279SBram Moolenaar" ======================= 215071d4279SBram Moolenaarsyn match vimComment excludenl +\s"[^\-:.%#=*].*$+lc=1 contains=@vimCommentGroup,vimCommentString 216071d4279SBram Moolenaarsyn match vimComment +\<endif\s\+".*$+lc=5 contains=@vimCommentGroup,vimCommentString 217071d4279SBram Moolenaarsyn match vimComment +\<else\s\+".*$+lc=4 contains=@vimCommentGroup,vimCommentString 2184770d09aSBram Moolenaarsyn region vimCommentString contained oneline start='\S\s\+"'ms=e end='"' 219071d4279SBram Moolenaar 220cfbc5ee4SBram Moolenaar" Environment Variables: {{{2 221071d4279SBram Moolenaar" ===================== 222071d4279SBram Moolenaarsyn match vimEnvvar "\$\I\i*" 223071d4279SBram Moolenaarsyn match vimEnvvar "\${\I\i*}" 224071d4279SBram Moolenaar 225cfbc5ee4SBram Moolenaar" In-String Specials: {{{2 226071d4279SBram Moolenaar" Try to catch strings, if nothing else matches (therefore it must precede the others!) 227071d4279SBram Moolenaar" vimEscapeBrace handles ["] []"] (ie. "s don't terminate string inside []) 228d68071d8SBram Moolenaarsyn region vimEscapeBrace oneline contained transparent start="[^\\]\(\\\\\)*\[\zs\^\=\]\=" skip="\\\\\|\\\]" end="]"me=e-1 229071d4279SBram Moolenaarsyn match vimPatSepErr contained "\\)" 230071d4279SBram Moolenaarsyn match vimPatSep contained "\\|" 231383f9bc3SBram Moolenaarsyn region vimPatSepZone oneline contained matchgroup=vimPatSepZ start="\\%\=\ze(" skip="\\\\" end="\\)\|[^\]['"]" contains=@vimStringGroup 232383f9bc3SBram Moolenaarsyn region vimPatRegion contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)" contains=@vimSubstList oneline 233071d4279SBram Moolenaarsyn match vimNotPatSep contained "\\\\" 2349964e468SBram Moolenaarsyn cluster vimStringGroup contains=vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell 235*9da7ff70SBram Moolenaarsyn region vimString oneline keepend start=+[^:a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ end=+"+ contains=@vimStringGroup 236*9da7ff70SBram Moolenaarsyn region vimString oneline keepend start=+[^:a-zA-Z>!\\@]'+lc=1 end=+'+ 237071d4279SBram Moolenaarsyn region vimString oneline start=+=!+lc=1 skip=+\\\\\|\\!+ end=+!+ contains=@vimStringGroup 238071d4279SBram Moolenaarsyn region vimString oneline start="=+"lc=1 skip="\\\\\|\\+" end="+" contains=@vimStringGroup 239071d4279SBram Moolenaarsyn region vimString oneline start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/" contains=@vimStringGroup 240071d4279SBram Moolenaarsyn match vimString contained +"[^"]*\\$+ skipnl nextgroup=vimStringCont 241071d4279SBram Moolenaarsyn match vimStringCont contained +\(\\\\\|.\)\{-}[^\\]"+ 242071d4279SBram Moolenaar 243cfbc5ee4SBram Moolenaar" Substitutions: {{{2 244071d4279SBram Moolenaar" ============= 245071d4279SBram Moolenaarsyn cluster vimSubstList contains=vimPatSep,vimPatRegion,vimPatSepErr,vimSubstTwoBS,vimSubstRange,vimNotation 246071d4279SBram Moolenaarsyn cluster vimSubstRepList contains=vimSubstSubstr,vimSubstTwoBS,vimNotation 247071d4279SBram Moolenaarsyn cluster vimSubstList add=vimCollection 248*9da7ff70SBram Moolenaarsyn match vimSubst "\(:\+\s*\|^\s*\||\s*\)\<\%(s\%[ubstitute]\|sm\%[agic]\|sno\%[magic]\)[:[:alpha:]]\@!" nextgroup=vimSubstPat 2495c73622aSBram Moolenaarsyn match vimSubst "s\%[ubstitute][:#[:alpha:]]\@!" nextgroup=vimSubstPat contained 250071d4279SBram Moolenaarsyn match vimSubst "/\zss\%[ubstitute]\ze/" nextgroup=vimSubstPat 251071d4279SBram Moolenaarsyn match vimSubst1 contained "s\%[ubstitute]\>" nextgroup=vimSubstPat 252071d4279SBram Moolenaarsyn 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 253071d4279SBram Moolenaarsyn region vimSubstRep4 contained matchgroup=vimSubstDelim start="\z(.\)" skip="\\\\\|\\\z1" end="\z1" matchgroup=vimNotation end="<[cC][rR]>" contains=@vimSubstRepList nextgroup=vimSubstFlagErr oneline 254071d4279SBram Moolenaarsyn region vimCollection contained transparent start="\\\@<!\[" skip="\\\[" end="\]" contains=vimCollClass 255071d4279SBram Moolenaarsyn match vimCollClassErr contained "\[:.\{-\}:\]" 256071d4279SBram Moolenaarsyn match vimCollClass contained transparent "\[:\(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\|return\|tab\|escape\|backspace\):\]" 257071d4279SBram Moolenaarsyn match vimSubstSubstr contained "\\z\=\d" 258071d4279SBram Moolenaarsyn match vimSubstTwoBS contained "\\\\" 259a5792f58SBram Moolenaarsyn match vimSubstFlagErr contained "[^< \t\r|]\+" contains=vimSubstFlags 260071d4279SBram Moolenaarsyn match vimSubstFlags contained "[&cegiIpr]\+" 261071d4279SBram Moolenaar 262cfbc5ee4SBram Moolenaar" 'String': {{{2 2638b6144bdSBram Moolenaarsyn match vimString "[^(,]'[^']\{-}\zs'" 264071d4279SBram Moolenaar 265cfbc5ee4SBram Moolenaar" Marks, Registers, Addresses, Filters: {{{2 266071d4279SBram Moolenaarsyn match vimMark "'[a-zA-Z0-9]\ze[-+,!]" nextgroup=vimOper,vimMarkNumber,vimSubst 267071d4279SBram Moolenaarsyn match vimMark "'[<>]\ze[-+,!]" nextgroup=vimOper,vimMarkNumber,vimSubst 268071d4279SBram Moolenaarsyn match vimMark ",\zs'[<>]\ze" nextgroup=vimOper,vimMarkNumber,vimSubst 269071d4279SBram Moolenaarsyn match vimMark "[!,:]\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumber,vimSubst 270071d4279SBram Moolenaarsyn match vimMark "\<norm\%[al]\s\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumber,vimSubst 271071d4279SBram Moolenaarsyn match vimMarkNumber "[-+]\d\+" nextgroup=vimSubst contained contains=vimOper 272071d4279SBram Moolenaarsyn match vimPlainMark contained "'[a-zA-Z0-9]" 273071d4279SBram Moolenaar 2746be7f873SBram Moolenaarsyn match vimRegister '[^,;[{]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":0-9]' 2755b8d8fdbSBram Moolenaarsyn match vimRegister '\<norm\s\+\zs"[a-zA-Z0-9]' 2765b8d8fdbSBram Moolenaarsyn match vimRegister '\<normal\s\+\zs"[a-zA-Z0-9]' 277cfbc5ee4SBram Moolenaarsyn match vimRegister '@"' 278071d4279SBram Moolenaarsyn match vimPlainRegister contained '"[a-zA-Z0-9\-:.%#*+=]' 279071d4279SBram Moolenaar 2805b8d8fdbSBram Moolenaarsyn match vimAddress ",\zs[.$]" skipwhite nextgroup=vimSubst1 2815b8d8fdbSBram Moolenaarsyn match vimAddress "%\ze\a" skipwhite nextgroup=vimString,vimSubst1 282071d4279SBram Moolenaar 283071d4279SBram Moolenaarsyn match vimFilter contained "^!.\{-}\(|\|$\)" contains=vimSpecFile 284d960d76dSBram Moolenaarsyn match vimFilter contained "\A!.\{-}\(|\|$\)"ms=s+1 contains=vimSpecFile,vimFunction,vimFuncName,vimOperParen 285071d4279SBram Moolenaar 286cfbc5ee4SBram Moolenaar" Complex repeats (:h complex-repeat) {{{2 2876be7f873SBram Moolenaarsyn match vimCmplxRepeat '[^a-zA-Z_/\\()]q[0-9a-zA-Z"]\>'lc=1 2886be7f873SBram Moolenaarsyn match vimCmplxRepeat '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)' 289071d4279SBram Moolenaar 290cfbc5ee4SBram Moolenaar" Set command and associated set-options (vimOptions) with comment {{{2 29174cbdf03SBram Moolenaarsyn 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 292*9da7ff70SBram Moolenaarsyn region vimSetEqual contained start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]\|$"me=e-1 contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar oneline 293071d4279SBram Moolenaarsyn region vimSetString contained start=+="+hs=s+1 skip=+\\\\\|\\"+ end=+"+ contains=vimCtrlChar 294071d4279SBram Moolenaarsyn match vimSetSep contained "[,:]" 2955c73622aSBram Moolenaarsyn match vimSetMod contained "&vim\=\|[!&?<]\|all&" 296071d4279SBram Moolenaar 297cfbc5ee4SBram Moolenaar" Let {{{2 298071d4279SBram Moolenaar" === 2995c73622aSBram Moolenaarsyn keyword vimLet let unl[et] skipwhite nextgroup=vimVar,vimFuncVar 300071d4279SBram Moolenaar 301e37d50a5SBram Moolenaar" Abbreviations {{{2 302e37d50a5SBram Moolenaar" ============= 303e37d50a5SBram Moolenaarsyn keyword vimAbb ab[breviate] ca[bbrev] inorea[bbrev] cnorea[bbrev] norea[bbrev] ia[bbrev] skipwhite nextgroup=vimMapMod,vimMapLhs 304e37d50a5SBram Moolenaar 305cfbc5ee4SBram Moolenaar" Autocmd {{{2 306071d4279SBram Moolenaar" ======= 307071d4279SBram Moolenaarsyn match vimAutoEventList contained "\(!\s\+\)\=\(\a\+,\)*\a\+" contains=vimAutoEvent nextgroup=vimAutoCmdSpace 308071d4279SBram Moolenaarsyn match vimAutoCmdSpace contained "\s\+" nextgroup=vimAutoCmdSfxList 309071d4279SBram Moolenaarsyn match vimAutoCmdSfxList contained "\S*" 310071d4279SBram Moolenaarsyn keyword vimAutoCmd au[tocmd] do[autocmd] doautoa[ll] skipwhite nextgroup=vimAutoEventList 311071d4279SBram Moolenaar 312cfbc5ee4SBram Moolenaar" Echo and Execute -- prefer strings! {{{2 313071d4279SBram Moolenaar" ================ 3145c73622aSBram Moolenaarsyn region vimEcho oneline excludenl matchgroup=vimCommand start="\<ec\%[ho]\>" skip="\(\\\\\)*\\|" end="$\||" contains=vimFunc,vimFuncVar,vimString,vimVar 3155c73622aSBram Moolenaarsyn region vimExecute oneline excludenl matchgroup=vimCommand start="\<exe\%[cute]\>" skip="\(\\\\\)*\\|" end="$\||\|<[cC][rR]>" contains=vimFuncVar,vimIsCommand,vimOper,vimNotation,vimOperParen,vimString,vimVar 316071d4279SBram Moolenaarsyn match vimEchoHL "echohl\=" skipwhite nextgroup=vimGroup,vimHLGroup,vimEchoHLNone 317071d4279SBram Moolenaarsyn case ignore 318071d4279SBram Moolenaarsyn keyword vimEchoHLNone none 319071d4279SBram Moolenaarsyn case match 320071d4279SBram Moolenaar 321cfbc5ee4SBram Moolenaar" Maps {{{2 322071d4279SBram Moolenaar" ==== 3233577c6faSBram Moolenaarsyn match vimMap "\<map\>!\=\ze\s*[^(]" skipwhite nextgroup=vimMapMod,vimMapLhs 3245c73622aSBram Moolenaarsyn 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 32581af9250SBram Moolenaarsyn keyword vimMap mapc[lear] smapc[lear] 3265c73622aSBram Moolenaarsyn 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 327b8a7b560SBram Moolenaarsyn match vimMapLhs contained "\S\+" contains=vimNotation,vimCtrlChar skipwhite nextgroup=vimMapRhs 328b8a7b560SBram Moolenaarsyn match vimMapBang contained "!" skipwhite nextgroup=vimMapMod,vimMapLhs 329e2719096SBram Moolenaarsyn match vimMapMod contained "\c<\(buffer\|expr\|\(local\)\=leader\|nowait\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs 330b8a7b560SBram Moolenaarsyn match vimMapRhs contained ".*" contains=vimNotation,vimCtrlChar skipnl nextgroup=vimMapRhsExtend 331e2719096SBram Moolenaarsyn match vimMapRhsExtend contained "^\s*\\.*$" contains=vimContinue 332071d4279SBram Moolenaarsyn case ignore 33325e2c9e3SBram Moolenaarsyn keyword vimMapModKey contained buffer expr leader localleader plug script sid silent unique 334071d4279SBram Moolenaarsyn case match 335071d4279SBram Moolenaar 336cfbc5ee4SBram Moolenaar" Menus {{{2 337071d4279SBram Moolenaar" ===== 338071d4279SBram Moolenaarsyn cluster vimMenuList contains=vimMenuBang,vimMenuPriority,vimMenuName,vimMenuMod 339071d4279SBram Moolenaarsyn 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 340071d4279SBram Moolenaarsyn match vimMenuName "[^ \t\\<]\+" contained nextgroup=vimMenuNameMore,vimMenuMap 341071d4279SBram Moolenaarsyn match vimMenuPriority "\d\+\(\.\d\+\)*" contained skipwhite nextgroup=vimMenuName 342071d4279SBram Moolenaarsyn match vimMenuNameMore "\c\\\s\|<tab>\|\\\." contained nextgroup=vimMenuName,vimMenuNameMore contains=vimNotation 343071d4279SBram Moolenaarsyn match vimMenuMod contained "\c<\(script\|silent\)\+>" skipwhite contains=vimMapModKey,vimMapModErr nextgroup=@vimMenuList 344071d4279SBram Moolenaarsyn match vimMenuMap "\s" contained skipwhite nextgroup=vimMenuRhs 345071d4279SBram Moolenaarsyn match vimMenuRhs ".*$" contained contains=vimString,vimComment,vimIsCommand 346071d4279SBram Moolenaarsyn match vimMenuBang "!" contained skipwhite nextgroup=@vimMenuList 347071d4279SBram Moolenaar 348cfbc5ee4SBram Moolenaar" Angle-Bracket Notation (tnx to Michael Geddes) {{{2 349071d4279SBram Moolenaar" ====================== 350071d4279SBram Moolenaarsyn case ignore 351e2719096SBram Moolenaarsyn 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[0-9]\)\)>" contains=vimBracket 352071d4279SBram Moolenaarsyn match vimNotation "\(\\\|<lt>\)\=<\([scam2-4]-\)\{0,4}\(right\|left\|middle\)\(mouse\)\=\(drag\|release\)\=>" contains=vimBracket 353071d4279SBram Moolenaarsyn match vimNotation "\(\\\|<lt>\)\=<\(bslash\|plug\|sid\|space\|bar\|nop\|nul\|lt\)>" contains=vimBracket 354071d4279SBram Moolenaarsyn match vimNotation '\(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1 contains=vimBracket 355d68071d8SBram Moolenaarsyn match vimNotation '\(\\\|<lt>\)\=<\%(q-\)\=\(line[12]\|count\|bang\|reg\|args\|f-args\|lt\)>' contains=vimBracket 356071d4279SBram Moolenaarsyn match vimNotation "\(\\\|<lt>\)\=<\([cas]file\|abuf\|amatch\|cword\|cWORD\|client\)>" contains=vimBracket 357071d4279SBram Moolenaarsyn match vimBracket contained "[\\<>]" 358071d4279SBram Moolenaarsyn case match 359071d4279SBram Moolenaar 3603577c6faSBram Moolenaar" User Function Highlighting {{{2 3613577c6faSBram Moolenaar" (following Gautam Iyer's suggestion) 362071d4279SBram Moolenaar" ========================== 363e2719096SBram Moolenaarsyn match vimFunc "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_.]\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*(" contains=vimFuncName,vimUserFunc,vimExecute 364e2719096SBram Moolenaarsyn match vimUserFunc contained "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_.]\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>" contains=vimNotation 3655c73622aSBram Moolenaarsyn match vimNotFunc "\<if\>\|\<el\%[seif]\>\|\<return\>\|\<while\>" 366071d4279SBram Moolenaar 3673577c6faSBram Moolenaar" Errors And Warnings: {{{2 3683577c6faSBram Moolenaar" ==================== 3696be7f873SBram Moolenaarif !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimfunctionerror") 3705c73622aSBram Moolenaar syn match vimFunctionError "\s\zs[a-z0-9]\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank 3715c73622aSBram Moolenaar" syn match vimFunctionError "\s\zs\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)[0-9]\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank 3723577c6faSBram Moolenaar syn match vimElseIfErr "\<else\s\+if\>" 3733577c6faSBram Moolenaar syn match vimBufnrWarn /\<bufnr\s*(\s*["']\.['"]\s*)/ 3743577c6faSBram Moolenaarendif 3753577c6faSBram Moolenaar 3763577c6faSBram Moolenaar" Norm {{{2 37705159a0cSBram Moolenaar" ==== 37805159a0cSBram Moolenaarsyn match vimNorm "\<norm\%[al]!\=" skipwhite nextgroup=vimNormCmds 37905159a0cSBram Moolenaarsyn match vimNormCmds contained ".*$" 38005159a0cSBram Moolenaar 381cfbc5ee4SBram Moolenaar" Syntax {{{2 382071d4279SBram Moolenaar"======= 383071d4279SBram Moolenaarsyn match vimGroupList contained "@\=[^ \t,]*" contains=vimGroupSpecial,vimPatSep 384071d4279SBram Moolenaarsyn match vimGroupList contained "@\=[^ \t,]*," nextgroup=vimGroupList contains=vimGroupSpecial,vimPatSep 3855c73622aSBram Moolenaarsyn keyword vimGroupSpecial contained ALL ALLBUT CONTAINED TOP 3866be7f873SBram Moolenaarif !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimsynerror") 387071d4279SBram Moolenaar syn match vimSynError contained "\i\+" 388071d4279SBram Moolenaar syn match vimSynError contained "\i\+=" nextgroup=vimGroupList 389cfbc5ee4SBram Moolenaarendif 390071d4279SBram Moolenaarsyn match vimSynContains contained "\<contain\(s\|edin\)=" nextgroup=vimGroupList 391071d4279SBram Moolenaarsyn match vimSynKeyContainedin contained "\<containedin=" nextgroup=vimGroupList 392071d4279SBram Moolenaarsyn match vimSynNextgroup contained "nextgroup=" nextgroup=vimGroupList 393071d4279SBram Moolenaar 394071d4279SBram Moolenaarsyn match vimSyntax "\<sy\%[ntax]\>" contains=vimCommand skipwhite nextgroup=vimSynType,vimComment 395071d4279SBram Moolenaarsyn match vimAuSyntax contained "\s+sy\%[ntax]" contains=vimCommand skipwhite nextgroup=vimSynType,vimComment 396d960d76dSBram Moolenaarsyn cluster vimFuncBodyList add=vimSyntax 397071d4279SBram Moolenaar 398cfbc5ee4SBram Moolenaar" Syntax: case {{{2 399071d4279SBram Moolenaarsyn keyword vimSynType contained case skipwhite nextgroup=vimSynCase,vimSynCaseError 4006be7f873SBram Moolenaarif !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimsyncaseerror") 401071d4279SBram Moolenaar syn match vimSynCaseError contained "\i\+" 402cfbc5ee4SBram Moolenaarendif 403071d4279SBram Moolenaarsyn keyword vimSynCase contained ignore match 404071d4279SBram Moolenaar 405cfbc5ee4SBram Moolenaar" Syntax: clear {{{2 406071d4279SBram Moolenaarsyn keyword vimSynType contained clear skipwhite nextgroup=vimGroupList 407071d4279SBram Moolenaar 408cfbc5ee4SBram Moolenaar" Syntax: cluster {{{2 409071d4279SBram Moolenaarsyn keyword vimSynType contained cluster skipwhite nextgroup=vimClusterName 410e2719096SBram Moolenaarsyn region vimClusterName contained matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="$\||" contains=vimGroupAdd,vimGroupRem,vimSynContains,vimSynError 411071d4279SBram Moolenaarsyn match vimGroupAdd contained "add=" nextgroup=vimGroupList 412071d4279SBram Moolenaarsyn match vimGroupRem contained "remove=" nextgroup=vimGroupList 413d960d76dSBram Moolenaarsyn cluster vimFuncBodyList add=vimSynType,vimGroupAdd,vimGroupRem 414071d4279SBram Moolenaar 415cfbc5ee4SBram Moolenaar" Syntax: include {{{2 416071d4279SBram Moolenaarsyn keyword vimSynType contained include skipwhite nextgroup=vimGroupList 417d960d76dSBram Moolenaarsyn cluster vimFuncBodyList add=vimSynType 418071d4279SBram Moolenaar 419cfbc5ee4SBram Moolenaar" Syntax: keyword {{{2 420071d4279SBram Moolenaarsyn cluster vimSynKeyGroup contains=vimSynNextgroup,vimSynKeyOpt,vimSynKeyContainedin 421071d4279SBram Moolenaarsyn keyword vimSynType contained keyword skipwhite nextgroup=vimSynKeyRegion 422e2719096SBram Moolenaarsyn region vimSynKeyRegion contained oneline keepend matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="|\|$" contains=@vimSynKeyGroup 423071d4279SBram Moolenaarsyn match vimSynKeyOpt contained "\<\(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>" 424d960d76dSBram Moolenaarsyn cluster vimFuncBodyList add=vimSynType 425071d4279SBram Moolenaar 426cfbc5ee4SBram Moolenaar" Syntax: match {{{2 427071d4279SBram Moolenaarsyn cluster vimSynMtchGroup contains=vimMtchComment,vimSynContains,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation 428071d4279SBram Moolenaarsyn keyword vimSynType contained match skipwhite nextgroup=vimSynMatchRegion 429e2719096SBram Moolenaarsyn region vimSynMatchRegion contained keepend matchgroup=vimGroupName start="\k\+" matchgroup=vimSep end="|\|$" contains=@vimSynMtchGroup 430071d4279SBram Moolenaarsyn match vimSynMtchOpt contained "\<\(conceal\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>" 431071d4279SBram Moolenaarif has("conceal") 432e2719096SBram Moolenaar syn match vimSynMtchOpt contained "\<cchar=" nextgroup=VimSynMtchCchar 4335c73622aSBram Moolenaar syn match vimSynMtchCchar contained "\S" 434071d4279SBram Moolenaarendif 435d960d76dSBram Moolenaarsyn cluster vimFuncBodyList add=vimSynMtchGroup 436071d4279SBram Moolenaar 437cfbc5ee4SBram Moolenaar" Syntax: off and on {{{2 438071d4279SBram Moolenaarsyn keyword vimSynType contained enable list manual off on reset 439071d4279SBram Moolenaar 440cfbc5ee4SBram Moolenaar" Syntax: region {{{2 441071d4279SBram Moolenaarsyn cluster vimSynRegPatGroup contains=vimPatSep,vimNotPatSep,vimSynPatRange,vimSynNotPatRange,vimSubstSubstr,vimPatRegion,vimPatSepErr,vimNotation 442071d4279SBram Moolenaarsyn cluster vimSynRegGroup contains=vimSynContains,vimSynNextgroup,vimSynRegOpt,vimSynReg,vimSynMtchGrp 443071d4279SBram Moolenaarsyn keyword vimSynType contained region skipwhite nextgroup=vimSynRegion 444e2719096SBram Moolenaarsyn region vimSynRegion contained keepend matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" end="|\|$" contains=@vimSynRegGroup 445071d4279SBram Moolenaarsyn match vimSynRegOpt contained "\<\(conceal\(ends\)\=\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|keepend\|oneline\|extend\|skipnl\|fold\)\>" 446071d4279SBram Moolenaarsyn match vimSynReg contained "\(start\|skip\|end\)="he=e-1 nextgroup=vimSynRegPat 447071d4279SBram Moolenaarsyn match vimSynMtchGrp contained "matchgroup=" nextgroup=vimGroup,vimHLGroup 448071d4279SBram Moolenaarsyn region vimSynRegPat contained extend start="\z([-`~!@#$%^&*_=+;:'",./?]\)" skip="\\\\\|\\\z1" end="\z1" contains=@vimSynRegPatGroup skipwhite nextgroup=vimSynPatMod,vimSynReg 449071d4279SBram Moolenaarsyn match vimSynPatMod contained "\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=" 450071d4279SBram Moolenaarsyn match vimSynPatMod contained "\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=," nextgroup=vimSynPatMod 451071d4279SBram Moolenaarsyn match vimSynPatMod contained "lc=\d\+" 452071d4279SBram Moolenaarsyn match vimSynPatMod contained "lc=\d\+," nextgroup=vimSynPatMod 453071d4279SBram Moolenaarsyn region vimSynPatRange contained start="\[" skip="\\\\\|\\]" end="]" 454071d4279SBram Moolenaarsyn match vimSynNotPatRange contained "\\\\\|\\\[" 455071d4279SBram Moolenaarsyn match vimMtchComment contained '"[^"]\+$' 456d960d76dSBram Moolenaarsyn cluster vimFuncBodyList add=vimSynType 457071d4279SBram Moolenaar 458cfbc5ee4SBram Moolenaar" Syntax: sync {{{2 459071d4279SBram Moolenaar" ============ 460df177f67SBram Moolenaarsyn keyword vimSynType contained sync skipwhite nextgroup=vimSyncC,vimSyncLines,vimSyncMatch,vimSyncError,vimSyncLinebreak,vimSyncLinecont,vimSyncRegion 4616be7f873SBram Moolenaarif !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimsyncerror") 462071d4279SBram Moolenaar syn match vimSyncError contained "\i\+" 463cfbc5ee4SBram Moolenaarendif 464071d4279SBram Moolenaarsyn keyword vimSyncC contained ccomment clear fromstart 465071d4279SBram Moolenaarsyn keyword vimSyncMatch contained match skipwhite nextgroup=vimSyncGroupName 466071d4279SBram Moolenaarsyn keyword vimSyncRegion contained region skipwhite nextgroup=vimSynReg 467df177f67SBram Moolenaarsyn match vimSyncLinebreak contained "\<linebreaks=" skipwhite nextgroup=vimNumber 468071d4279SBram Moolenaarsyn keyword vimSyncLinecont contained linecont skipwhite nextgroup=vimSynRegPat 469071d4279SBram Moolenaarsyn match vimSyncLines contained "\(min\|max\)\=lines=" nextgroup=vimNumber 470e2719096SBram Moolenaarsyn match vimSyncGroupName contained "\k\+" skipwhite nextgroup=vimSyncKey 471071d4279SBram Moolenaarsyn match vimSyncKey contained "\<groupthere\|grouphere\>" skipwhite nextgroup=vimSyncGroup 472e2719096SBram Moolenaarsyn match vimSyncGroup contained "\k\+" skipwhite nextgroup=vimSynRegPat,vimSyncNone 473071d4279SBram Moolenaarsyn keyword vimSyncNone contained NONE 474071d4279SBram Moolenaar 475cfbc5ee4SBram Moolenaar" Additional IsCommand, here by reasons of precedence {{{2 476071d4279SBram Moolenaar" ==================== 477071d4279SBram Moolenaarsyn match vimIsCommand "<Bar>\s*\a\+" transparent contains=vimCommand,vimNotation 478071d4279SBram Moolenaar 479cfbc5ee4SBram Moolenaar" Highlighting {{{2 480071d4279SBram Moolenaar" ============ 481071d4279SBram Moolenaarsyn cluster vimHighlightCluster contains=vimHiLink,vimHiClear,vimHiKeyList,vimComment 4826be7f873SBram Moolenaarif !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimhictermerror") 4836be7f873SBram Moolenaar syn match vimHiCtermError contained "[^0-9]\i*" 4846be7f873SBram Moolenaarendif 485071d4279SBram Moolenaarsyn match vimHighlight "\<hi\%[ghlight]\>" skipwhite nextgroup=vimHiBang,@vimHighlightCluster 486071d4279SBram Moolenaarsyn match vimHiBang contained "!" skipwhite nextgroup=@vimHighlightCluster 487071d4279SBram Moolenaar 488071d4279SBram Moolenaarsyn match vimHiGroup contained "\i\+" 489071d4279SBram Moolenaarsyn case ignore 4904770d09aSBram Moolenaarsyn keyword vimHiAttrib contained none bold inverse italic reverse standout underline undercurl 491071d4279SBram Moolenaarsyn keyword vimFgBgAttrib contained none bg background fg foreground 492071d4279SBram Moolenaarsyn case match 493071d4279SBram Moolenaarsyn match vimHiAttribList contained "\i\+" contains=vimHiAttrib 494071d4279SBram Moolenaarsyn match vimHiAttribList contained "\i\+,"he=e-1 contains=vimHiAttrib nextgroup=vimHiAttribList 495071d4279SBram Moolenaarsyn case ignore 4966be7f873SBram Moolenaarsyn 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 4976be7f873SBram Moolenaarsyn match vimHiCtermColor contained "\<color\d\{1,3}\>" 498071d4279SBram Moolenaar 499071d4279SBram Moolenaarsyn case match 500071d4279SBram Moolenaarsyn match vimHiFontname contained "[a-zA-Z\-*]\+" 501071d4279SBram Moolenaarsyn match vimHiGuiFontname contained "'[a-zA-Z\-* ]\+'" 502071d4279SBram Moolenaarsyn match vimHiGuiRgb contained "#\x\{6}" 503071d4279SBram Moolenaar 504cfbc5ee4SBram Moolenaar" Highlighting: hi group key=arg ... {{{2 5055c73622aSBram Moolenaarsyn cluster vimHiCluster contains=vimGroup,vimHiGroup,vimHiTerm,vimHiCTerm,vimHiStartStop,vimHiCtermFgBg,vimHiGui,vimHiGuiFont,vimHiGuiFgBg,vimHiKeyError,vimNotation 506071d4279SBram Moolenaarsyn region vimHiKeyList contained oneline start="\i\+" skip="\\\\\|\\|" end="$\||" contains=@vimHiCluster 5076be7f873SBram Moolenaarif !exists("g:vimsyn_noerror") && !exists("g:vimsyn_vimhikeyerror") 508071d4279SBram Moolenaar syn match vimHiKeyError contained "\i\+="he=e-1 509cfbc5ee4SBram Moolenaarendif 510071d4279SBram Moolenaarsyn match vimHiTerm contained "\cterm="he=e-1 nextgroup=vimHiAttribList 511071d4279SBram Moolenaarsyn match vimHiStartStop contained "\c\(start\|stop\)="he=e-1 nextgroup=vimHiTermcap,vimOption 512071d4279SBram Moolenaarsyn match vimHiCTerm contained "\ccterm="he=e-1 nextgroup=vimHiAttribList 513e2719096SBram Moolenaarsyn match vimHiCtermFgBg contained "\ccterm[fb]g="he=e-1 nextgroup=vimNumber,vimHiCtermColor,vimFgBgAttrib,vimHiCtermError 514071d4279SBram Moolenaarsyn match vimHiGui contained "\cgui="he=e-1 nextgroup=vimHiAttribList 515071d4279SBram Moolenaarsyn match vimHiGuiFont contained "\cfont="he=e-1 nextgroup=vimHiFontname 5164770d09aSBram Moolenaarsyn match vimHiGuiFgBg contained "\cgui\%([fb]g\|sp\)="he=e-1 nextgroup=vimHiGroup,vimHiGuiFontname,vimHiGuiRgb,vimFgBgAttrib 517071d4279SBram Moolenaarsyn match vimHiTermcap contained "\S\+" contains=vimNotation 518071d4279SBram Moolenaar 519cfbc5ee4SBram Moolenaar" Highlight: clear {{{2 520071d4279SBram Moolenaarsyn keyword vimHiClear contained clear nextgroup=vimHiGroup 521071d4279SBram Moolenaar 522cfbc5ee4SBram Moolenaar" Highlight: link {{{2 523e2719096SBram Moolenaarsyn region vimHiLink contained oneline matchgroup=vimCommand start="\<\(def\%[ault]\s\+\)\=link\>\|\<def\>" end="$" contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation 524d960d76dSBram Moolenaarsyn cluster vimFuncBodyList add=vimHiLink 525071d4279SBram Moolenaar 526cfbc5ee4SBram Moolenaar" Control Characters {{{2 527071d4279SBram Moolenaar" ================== 528071d4279SBram Moolenaarsyn match vimCtrlChar "[--]" 529071d4279SBram Moolenaar 530cfbc5ee4SBram Moolenaar" Beginners - Patterns that involve ^ {{{2 531071d4279SBram Moolenaar" ========= 532071d4279SBram Moolenaarsyn match vimLineComment +^[ \t:]*".*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle 533ff1d0d4cSBram Moolenaarsyn match vimCommentTitle '"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1 contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup 534071d4279SBram Moolenaarsyn match vimContinue "^\s*\\" 535071d4279SBram Moolenaarsyn region vimString start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue 536071d4279SBram Moolenaarsyn match vimCommentTitleLeader '"\s\+'ms=s+1 contained 537071d4279SBram Moolenaar 53818144c84SBram Moolenaar" Searches And Globals: {{{2 53918144c84SBram Moolenaar" ==================== 540e2f98b95SBram Moolenaarsyn match vimSearch '^\s*[/?].*' contains=vimSearchDelim 541e2f98b95SBram Moolenaarsyn match vimSearchDelim '^\s*\zs[/?]\|[/?]$' contained 542*9da7ff70SBram Moolenaarsyn region vimGlobal matchgroup=Statement start='\<g\%[lobal]!\=/' skip='\\.' end='/' skipwhite nextgroup=vimSubst 543*9da7ff70SBram Moolenaarsyn region vimGlobal matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/' skipwhite nextgroup=vimSubst 544e2f98b95SBram Moolenaar 545cfbc5ee4SBram Moolenaar" Scripts : perl,ruby : Benoit Cerrina {{{2 546071d4279SBram Moolenaar" ======= python,tcl: Johannes Zellner 5474b22cdb0SBram Moolenaar" lua 548071d4279SBram Moolenaar 5493577c6faSBram Moolenaar" Allows users to specify the type of embedded script highlighting 5503577c6faSBram Moolenaar" they want: (perl/python/ruby/tcl support) 5513577c6faSBram Moolenaar" g:vimsyn_embed == 0 : don't embed any scripts 552a6878375SBram Moolenaar" g:vimsyn_embed ~= 'l' : embed lua (but only if vim supports it) 553a6878375SBram Moolenaar" g:vimsyn_embed ~= 'm' : embed mzscheme (but only if vim supports it) 554a6878375SBram Moolenaar" g:vimsyn_embed ~= 'p' : embed perl (but only if vim supports it) 555a6878375SBram Moolenaar" g:vimsyn_embed ~= 'P' : embed python (but only if vim supports it) 556a6878375SBram Moolenaar" g:vimsyn_embed ~= 'r' : embed ruby (but only if vim supports it) 557a6878375SBram Moolenaar" g:vimsyn_embed ~= 't' : embed tcl (but only if vim supports it) 5587cba6c06SBram Moolenaarif !exists("g:vimsyn_embed") 559a6878375SBram Moolenaar let g:vimsyn_embed= "lmpPr" 5607cba6c06SBram Moolenaarendif 561071d4279SBram Moolenaar 5624b22cdb0SBram Moolenaar" [-- lua --] {{{3 563adc2182cSBram Moolenaarlet s:luapath= fnameescape(expand("<sfile>:p:h")."/lua.vim") 5644b22cdb0SBram Moolenaarif !filereadable(s:luapath) 565*9da7ff70SBram Moolenaar for s:luapath in split(globpath(&rtp,"syntax/lua.vim"),"\n") 566*9da7ff70SBram Moolenaar if filereadable(fnameescape(s:luapath)) 567*9da7ff70SBram Moolenaar let s:luapath= fnameescape(s:luapath) 568*9da7ff70SBram Moolenaar break 569*9da7ff70SBram Moolenaar endif 570*9da7ff70SBram Moolenaar endfor 5714b22cdb0SBram Moolenaarendif 572a6878375SBram Moolenaarif (g:vimsyn_embed =~ 'l' && has("lua")) && filereadable(s:luapath) 5734b22cdb0SBram Moolenaar unlet! b:current_syntax 5744b22cdb0SBram Moolenaar exe "syn include @vimLuaScript ".s:luapath 5754b22cdb0SBram Moolenaar if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'l' 5764b22cdb0SBram Moolenaar syn region vimLuaRegion fold matchgroup=vimScriptDelim start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimLuaScript 5774b22cdb0SBram Moolenaar syn region vimLuaRegion fold matchgroup=vimScriptDelim start=+lua\s*<<\s*$+ end=+\.$+ contains=@vimLuaScript 5784b22cdb0SBram Moolenaar else 5794b22cdb0SBram Moolenaar syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimLuaScript 5804b22cdb0SBram Moolenaar syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*$+ end=+\.$+ contains=@vimLuaScript 5814b22cdb0SBram Moolenaar endif 5824b22cdb0SBram Moolenaar syn cluster vimFuncBodyList add=vimLuaRegion 5834b22cdb0SBram Moolenaarelse 5844b22cdb0SBram Moolenaar syn region vimEmbedError start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+ 5854b22cdb0SBram Moolenaar syn region vimEmbedError start=+lua\s*<<\s*$+ end=+\.$+ 5864b22cdb0SBram Moolenaarendif 5874b22cdb0SBram Moolenaarunlet s:luapath 5884b22cdb0SBram Moolenaar 589cfbc5ee4SBram Moolenaar" [-- perl --] {{{3 590adc2182cSBram Moolenaarlet s:perlpath= fnameescape(expand("<sfile>:p:h")."/perl.vim") 5915c73622aSBram Moolenaarif !filereadable(s:perlpath) 592*9da7ff70SBram Moolenaar for s:perlpath in split(globpath(&rtp,"syntax/perl.vim"),"\n") 593*9da7ff70SBram Moolenaar if filereadable(fnameescape(s:perlpath)) 594*9da7ff70SBram Moolenaar let s:perlpath= fnameescape(s:perlpath) 595*9da7ff70SBram Moolenaar break 596*9da7ff70SBram Moolenaar endif 597*9da7ff70SBram Moolenaar endfor 5985c73622aSBram Moolenaarendif 599a6878375SBram Moolenaarif (g:vimsyn_embed =~ 'p' && has("perl")) && filereadable(s:perlpath) 600071d4279SBram Moolenaar unlet! b:current_syntax 6015c73622aSBram Moolenaar exe "syn include @vimPerlScript ".s:perlpath 6023577c6faSBram Moolenaar if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'p' 6033577c6faSBram Moolenaar syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPerlScript 6043577c6faSBram Moolenaar syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ contains=@vimPerlScript 6053577c6faSBram Moolenaar else 606071d4279SBram Moolenaar syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPerlScript 607071d4279SBram Moolenaar syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ contains=@vimPerlScript 608071d4279SBram Moolenaar endif 6095c73622aSBram Moolenaar syn cluster vimFuncBodyList add=vimPerlRegion 610c236c16dSBram Moolenaarelse 611c236c16dSBram Moolenaar syn region vimEmbedError start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ 612c236c16dSBram Moolenaar syn region vimEmbedError start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ 6133577c6faSBram Moolenaarendif 6145c73622aSBram Moolenaarunlet s:perlpath 615071d4279SBram Moolenaar 616cfbc5ee4SBram Moolenaar" [-- ruby --] {{{3 617adc2182cSBram Moolenaarlet s:rubypath= fnameescape(expand("<sfile>:p:h")."/ruby.vim") 6185c73622aSBram Moolenaarif !filereadable(s:rubypath) 619*9da7ff70SBram Moolenaar for s:rubypath in split(globpath(&rtp,"syntax/ruby.vim"),"\n") 620*9da7ff70SBram Moolenaar if filereadable(fnameescape(s:rubypath)) 621*9da7ff70SBram Moolenaar let s:rubypath= fnameescape(s:rubypath) 622*9da7ff70SBram Moolenaar break 623*9da7ff70SBram Moolenaar endif 624*9da7ff70SBram Moolenaar endfor 6255c73622aSBram Moolenaarendif 626a6878375SBram Moolenaarif (g:vimsyn_embed =~ 'r' && has("ruby")) && filereadable(s:rubypath) 627071d4279SBram Moolenaar unlet! b:current_syntax 6285c73622aSBram Moolenaar exe "syn include @vimRubyScript ".s:rubypath 6293577c6faSBram Moolenaar if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'r' 6303577c6faSBram Moolenaar syn region vimRubyRegion fold matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimRubyScript 6313577c6faSBram Moolenaar else 632c236c16dSBram Moolenaar syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimRubyScript 6333577c6faSBram Moolenaar endif 634071d4279SBram Moolenaar syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*$+ end=+\.$+ contains=@vimRubyScript 6355c73622aSBram Moolenaar syn cluster vimFuncBodyList add=vimRubyRegion 636c236c16dSBram Moolenaarelse 637c236c16dSBram Moolenaar syn region vimEmbedError start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ 638c236c16dSBram Moolenaar syn region vimEmbedError start=+rub[y]\s*<<\s*$+ end=+\.$+ 639071d4279SBram Moolenaarendif 6405c73622aSBram Moolenaarunlet s:rubypath 641071d4279SBram Moolenaar 642cfbc5ee4SBram Moolenaar" [-- python --] {{{3 643adc2182cSBram Moolenaarlet s:pythonpath= fnameescape(expand("<sfile>:p:h")."/python.vim") 6445c73622aSBram Moolenaarif !filereadable(s:pythonpath) 645*9da7ff70SBram Moolenaar for s:pythonpath in split(globpath(&rtp,"syntax/python.vim"),"\n") 646*9da7ff70SBram Moolenaar if filereadable(fnameescape(s:pythonpath)) 647*9da7ff70SBram Moolenaar let s:pythonpath= fnameescape(s:pythonpath) 648*9da7ff70SBram Moolenaar break 6495c73622aSBram Moolenaar endif 650*9da7ff70SBram Moolenaar endfor 651*9da7ff70SBram Moolenaarendif 652*9da7ff70SBram Moolenaarif g:vimsyn_embed =~ 'P' && (has("python") || has("python3")) && filereadable(s:pythonpath) 653071d4279SBram Moolenaar unlet! b:current_syntax 6545c73622aSBram Moolenaar exe "syn include @vimPythonScript ".s:pythonpath 6553577c6faSBram Moolenaar if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'P' 656fa01c39dSBram Moolenaar syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript 657fa01c39dSBram Moolenaar syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript 658e2719096SBram Moolenaar syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+Py\%[thon]2or3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript 659e2719096SBram Moolenaar syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+Py\%[thon]2or3\=\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript 6603577c6faSBram Moolenaar else 661fa01c39dSBram Moolenaar syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript 662fa01c39dSBram Moolenaar syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript 663e2719096SBram Moolenaar syn region vimPythonRegion matchgroup=vimScriptDelim start=+Py\%[thon]2or3\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript 664e2719096SBram Moolenaar syn region vimPythonRegion matchgroup=vimScriptDelim start=+Py\%[thon]2or3\=\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript 665071d4279SBram Moolenaar endif 6665c73622aSBram Moolenaar syn cluster vimFuncBodyList add=vimPythonRegion 667c236c16dSBram Moolenaarelse 668fa01c39dSBram Moolenaar syn region vimEmbedError start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ 669fa01c39dSBram Moolenaar syn region vimEmbedError start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+ 670e2719096SBram Moolenaar syn region vimEmbedError start=+Py\%[thon]2or3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ 671e2719096SBram Moolenaar syn region vimEmbedError start=+Py\%[thon]2or3\=\s*<<\s*$+ end=+\.$+ 6723577c6faSBram Moolenaarendif 6735c73622aSBram Moolenaarunlet s:pythonpath 674071d4279SBram Moolenaar 675cfbc5ee4SBram Moolenaar" [-- tcl --] {{{3 676a6878375SBram Moolenaarif has("win32") || has("win95") || has("win64") || has("win16") 677a6878375SBram Moolenaar " apparently has("tcl") has been hanging vim on some windows systems with cygwin 678a6878375SBram Moolenaar let s:trytcl= (&shell !~ '\<\%(bash\>\|4[nN][tT]\|\<zsh\)\>\%(\.exe\)\=$') 679a6878375SBram Moolenaarelse 680a6878375SBram Moolenaar let s:trytcl= 1 681a6878375SBram Moolenaarendif 682a6878375SBram Moolenaarif s:trytcl 683adc2182cSBram Moolenaar let s:tclpath= fnameescape(expand("<sfile>:p:h")."/tcl.vim") 6845c73622aSBram Moolenaar if !filereadable(s:tclpath) 685*9da7ff70SBram Moolenaar for s:tclpath in split(globpath(&rtp,"syntax/tcl.vim"),"\n") 686*9da7ff70SBram Moolenaar if filereadable(fnameescape(s:tclpath)) 687*9da7ff70SBram Moolenaar let s:tclpath= fnameescape(s:tclpath) 688*9da7ff70SBram Moolenaar break 689*9da7ff70SBram Moolenaar endif 690*9da7ff70SBram Moolenaar endfor 6915c73622aSBram Moolenaar endif 692a6878375SBram Moolenaar if (g:vimsyn_embed =~ 't' && has("tcl")) && filereadable(s:tclpath) 693071d4279SBram Moolenaar unlet! b:current_syntax 6945c73622aSBram Moolenaar exe "syn include @vimTclScript ".s:tclpath 6953577c6faSBram Moolenaar if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 't' 6963577c6faSBram Moolenaar syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript 6973577c6faSBram Moolenaar syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript 6983577c6faSBram Moolenaar else 699071d4279SBram Moolenaar syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript 700071d4279SBram Moolenaar syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript 701071d4279SBram Moolenaar endif 7025c73622aSBram Moolenaar syn cluster vimFuncBodyList add=vimTclScript 703c236c16dSBram Moolenaar else 704c236c16dSBram Moolenaar syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ 705c236c16dSBram Moolenaar syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+ 7063577c6faSBram Moolenaar endif 7075c73622aSBram Moolenaar unlet s:tclpath 708a6878375SBram Moolenaarelse 709a6878375SBram Moolenaar syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ 710a6878375SBram Moolenaar syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+ 711a6878375SBram Moolenaarendif 712a6878375SBram Moolenaarunlet s:trytcl 713071d4279SBram Moolenaar 7148299df96SBram Moolenaar" [-- mzscheme --] {{{3 715adc2182cSBram Moolenaarlet s:mzschemepath= fnameescape(expand("<sfile>:p:h")."/scheme.vim") 7165c73622aSBram Moolenaarif !filereadable(s:mzschemepath) 717*9da7ff70SBram Moolenaar for s:mzschemepath in split(globpath(&rtp,"syntax/mzscheme.vim"),"\n") 718*9da7ff70SBram Moolenaar if filereadable(fnameescape(s:mzschemepath)) 719*9da7ff70SBram Moolenaar let s:mzschemepath= fnameescape(s:mzschemepath) 720*9da7ff70SBram Moolenaar break 721*9da7ff70SBram Moolenaar endif 722*9da7ff70SBram Moolenaar endfor 7235c73622aSBram Moolenaarendif 7245c73622aSBram Moolenaarif (g:vimsyn_embed =~ 'm' && has("mzscheme")) && filereadable(s:mzschemepath) 7258299df96SBram Moolenaar unlet! b:current_syntax 7268299df96SBram Moolenaar let iskKeep= &isk 7275c73622aSBram Moolenaar exe "syn include @vimMzSchemeScript ".s:mzschemepath 7288299df96SBram Moolenaar let &isk= iskKeep 729c236c16dSBram Moolenaar if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'm' 7303577c6faSBram Moolenaar syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimMzSchemeScript 7313577c6faSBram Moolenaar syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ contains=@vimMzSchemeScript 7323577c6faSBram Moolenaar else 7338299df96SBram Moolenaar syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimMzSchemeScript 7348299df96SBram Moolenaar syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ contains=@vimMzSchemeScript 7358299df96SBram Moolenaar endif 7365c73622aSBram Moolenaar syn cluster vimFuncBodyList add=vimMzSchemeRegion 737c236c16dSBram Moolenaarelse 738c236c16dSBram Moolenaar syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ 739c236c16dSBram Moolenaar syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ 7403577c6faSBram Moolenaarendif 7415c73622aSBram Moolenaarunlet s:mzschemepath 7428299df96SBram Moolenaar 743cfbc5ee4SBram Moolenaar" Synchronize (speed) {{{2 744071d4279SBram Moolenaar"============ 7453577c6faSBram Moolenaarif exists("g:vimsyn_minlines") 7463577c6faSBram Moolenaar exe "syn sync minlines=".g:vimsyn_minlines 747071d4279SBram Moolenaarendif 7483577c6faSBram Moolenaarif exists("g:vimsyn_maxlines") 7493577c6faSBram Moolenaar exe "syn sync maxlines=".g:vimsyn_maxlines 750071d4279SBram Moolenaarelse 751071d4279SBram Moolenaar syn sync maxlines=60 752071d4279SBram Moolenaarendif 753071d4279SBram Moolenaarsyn sync linecont "^\s\+\\" 754071d4279SBram Moolenaarsyn sync match vimAugroupSyncA groupthere NONE "\<aug\%[roup]\>\s\+[eE][nN][dD]" 755071d4279SBram Moolenaar 7565c73622aSBram Moolenaar" ==================== 757cfbc5ee4SBram Moolenaar" Highlighting Settings {{{2 758071d4279SBram Moolenaar" ==================== 759071d4279SBram Moolenaar 760e2719096SBram Moolenaarhi def link vimSubst1 vimSubst 761e2719096SBram Moolenaarhi def link vimBehaveModel vimBehave 762071d4279SBram Moolenaar 7633577c6faSBram Moolenaarif !exists("g:vimsyn_noerror") 764cfbc5ee4SBram Moolenaar hi def link vimBehaveError vimError 765cfbc5ee4SBram Moolenaar hi def link vimCollClassErr vimError 766cfbc5ee4SBram Moolenaar hi def link vimErrSetting vimError 767c236c16dSBram Moolenaar hi def link vimEmbedError vimError 768cfbc5ee4SBram Moolenaar hi def link vimFTError vimError 769cfbc5ee4SBram Moolenaar hi def link vimFunctionError vimError 7708299df96SBram Moolenaar hi def link vimFunc vimError 771cfbc5ee4SBram Moolenaar hi def link vimHiAttribList vimError 772cfbc5ee4SBram Moolenaar hi def link vimHiCtermError vimError 773cfbc5ee4SBram Moolenaar hi def link vimHiKeyError vimError 774cfbc5ee4SBram Moolenaar hi def link vimKeyCodeError vimError 775cfbc5ee4SBram Moolenaar hi def link vimMapModErr vimError 776cfbc5ee4SBram Moolenaar hi def link vimSubstFlagErr vimError 777cfbc5ee4SBram Moolenaar hi def link vimSynCaseError vimError 7783577c6faSBram Moolenaar hi def link vimBufnrWarn vimWarn 779cfbc5ee4SBram Moolenaarendif 780cfbc5ee4SBram Moolenaar 781e37d50a5SBram Moolenaarhi def link vimAbb vimCommand 782cfbc5ee4SBram Moolenaarhi def link vimAddress vimMark 783071d4279SBram Moolenaarhi def link vimAugroupKey vimCommand 784071d4279SBram Moolenaarhi def link vimAutoCmdOpt vimOption 785071d4279SBram Moolenaarhi def link vimAutoCmd vimCommand 786071d4279SBram Moolenaarhi def link vimAutoSet vimCommand 787071d4279SBram Moolenaarhi def link vimBehave vimCommand 788071d4279SBram Moolenaarhi def link vimCommentString vimString 789071d4279SBram Moolenaarhi def link vimCondHL vimCommand 790071d4279SBram Moolenaarhi def link vimEchoHLNone vimGroup 791071d4279SBram Moolenaarhi def link vimEchoHL vimCommand 792071d4279SBram Moolenaarhi def link vimElseif vimCondHL 793071d4279SBram Moolenaarhi def link vimFgBgAttrib vimHiAttrib 794071d4279SBram Moolenaarhi def link vimFTCmd vimCommand 795071d4279SBram Moolenaarhi def link vimFTOption vimSynType 796071d4279SBram Moolenaarhi def link vimFuncKey vimCommand 797071d4279SBram Moolenaarhi def link vimGroupAdd vimSynOption 7986be7f873SBram Moolenaarhi def link vimGroupName vimGroup 799071d4279SBram Moolenaarhi def link vimGroupRem vimSynOption 8006be7f873SBram Moolenaarhi def link vimHiClear vimHighlight 801071d4279SBram Moolenaarhi def link vimHiCtermFgBg vimHiTerm 802071d4279SBram Moolenaarhi def link vimHiCTerm vimHiTerm 803071d4279SBram Moolenaarhi def link vimHighlight vimCommand 804071d4279SBram Moolenaarhi def link vimHiGroup vimGroupName 805071d4279SBram Moolenaarhi def link vimHiGuiFgBg vimHiTerm 806071d4279SBram Moolenaarhi def link vimHiGuiFont vimHiTerm 807071d4279SBram Moolenaarhi def link vimHiGuiRgb vimNumber 808071d4279SBram Moolenaarhi def link vimHiGui vimHiTerm 809071d4279SBram Moolenaarhi def link vimHiStartStop vimHiTerm 810071d4279SBram Moolenaarhi def link vimHLGroup vimGroup 811071d4279SBram Moolenaarhi def link vimInsert vimString 812071d4279SBram Moolenaarhi def link vimKeyCode vimSpecFile 813071d4279SBram Moolenaarhi def link vimLet vimCommand 814071d4279SBram Moolenaarhi def link vimLineComment vimComment 815071d4279SBram Moolenaarhi def link vimMapBang vimCommand 816071d4279SBram Moolenaarhi def link vimMapModKey vimFuncSID 817071d4279SBram Moolenaarhi def link vimMapMod vimBracket 818071d4279SBram Moolenaarhi def link vimMap vimCommand 819071d4279SBram Moolenaarhi def link vimMarkNumber vimNumber 820071d4279SBram Moolenaarhi def link vimMenuMod vimMapMod 821071d4279SBram Moolenaarhi def link vimMenuNameMore vimMenuName 822071d4279SBram Moolenaarhi def link vimMtchComment vimComment 82305159a0cSBram Moolenaarhi def link vimNorm vimCommand 8245c73622aSBram Moolenaarhi def link vimNotFunc vimCommand 825071d4279SBram Moolenaarhi def link vimNotPatSep vimString 826071d4279SBram Moolenaarhi def link vimPatSepErr vimPatSep 8275c73622aSBram Moolenaarhi def link vimPatSepR vimPatSep 828071d4279SBram Moolenaarhi def link vimPatSepZone vimString 8295c73622aSBram Moolenaarhi def link vimPatSepZ vimPatSep 830071d4279SBram Moolenaarhi def link vimPlainMark vimMark 831071d4279SBram Moolenaarhi def link vimPlainRegister vimRegister 832e2f98b95SBram Moolenaarhi def link vimSearch vimString 833071d4279SBram Moolenaarhi def link vimSetMod vimOption 834071d4279SBram Moolenaarhi def link vimSetString vimString 835071d4279SBram Moolenaarhi def link vimSpecFileMod vimSpecFile 836071d4279SBram Moolenaarhi def link vimStringCont vimString 837071d4279SBram Moolenaarhi def link vimSubstTwoBS vimString 838071d4279SBram Moolenaarhi def link vimSubst vimCommand 839071d4279SBram Moolenaarhi def link vimSyncGroupName vimGroupName 840071d4279SBram Moolenaarhi def link vimSyncGroup vimGroupName 841071d4279SBram Moolenaarhi def link vimSynContains vimSynOption 842071d4279SBram Moolenaarhi def link vimSynKeyContainedin vimSynContains 843071d4279SBram Moolenaarhi def link vimSynKeyOpt vimSynOption 844071d4279SBram Moolenaarhi def link vimSynMtchGrp vimSynOption 845071d4279SBram Moolenaarhi def link vimSynMtchOpt vimSynOption 846071d4279SBram Moolenaarhi def link vimSynNextgroup vimSynOption 847071d4279SBram Moolenaarhi def link vimSynNotPatRange vimSynRegPat 848071d4279SBram Moolenaarhi def link vimSynPatRange vimString 849071d4279SBram Moolenaarhi def link vimSynRegOpt vimSynOption 850071d4279SBram Moolenaarhi def link vimSynRegPat vimString 851071d4279SBram Moolenaarhi def link vimSyntax vimCommand 852071d4279SBram Moolenaarhi def link vimSynType vimSpecial 8535c73622aSBram Moolenaarhi def link vimUnmap vimMap 854071d4279SBram Moolenaarhi def link vimUserAttrbCmplt vimSpecial 855071d4279SBram Moolenaarhi def link vimUserAttrbKey vimOption 856071d4279SBram Moolenaarhi def link vimUserAttrb vimSpecial 857ac7bd638SBram Moolenaarhi def link vimUserCommand vimCommand 858e2719096SBram Moolenaar 859e2719096SBram Moolenaarhi def link vimAutoEvent Type 860e2719096SBram Moolenaarhi def link vimBracket Delimiter 861e2719096SBram Moolenaarhi def link vimCmplxRepeat SpecialChar 862e2719096SBram Moolenaarhi def link vimCommand Statement 863e2719096SBram Moolenaarhi def link vimComment Comment 864e2719096SBram Moolenaarhi def link vimCommentTitle PreProc 865e2719096SBram Moolenaarhi def link vimContinue Special 866e2719096SBram Moolenaarhi def link vimCtrlChar SpecialChar 867e2719096SBram Moolenaarhi def link vimElseIfErr Error 868e2719096SBram Moolenaarhi def link vimEnvvar PreProc 869e2719096SBram Moolenaarhi def link vimError Error 870e2719096SBram Moolenaarhi def link vimFold Folded 871e2719096SBram Moolenaarhi def link vimFuncName Function 872e2719096SBram Moolenaarhi def link vimFuncSID Special 873e2719096SBram Moolenaarhi def link vimFuncVar Identifier 874e2719096SBram Moolenaarhi def link vimGroupSpecial Special 875e2719096SBram Moolenaarhi def link vimGroup Type 876e2719096SBram Moolenaarhi def link vimHiAttrib PreProc 877e2719096SBram Moolenaarhi def link vimHiTerm Type 878e2719096SBram Moolenaarhi def link vimHLMod PreProc 879e2719096SBram Moolenaarhi def link vimKeyword Statement 880e2719096SBram Moolenaarhi def link vimMark Number 881e2719096SBram Moolenaarhi def link vimMenuName PreProc 882e2719096SBram Moolenaarhi def link vimNotation Special 883e2719096SBram Moolenaarhi def link vimNumber Number 884e2719096SBram Moolenaarhi def link vimOperError Error 885e2719096SBram Moolenaarhi def link vimOper Operator 886e2719096SBram Moolenaarhi def link vimOption PreProc 887e2719096SBram Moolenaarhi def link vimParenSep Delimiter 888e2719096SBram Moolenaarhi def link vimPatSep SpecialChar 889e2719096SBram Moolenaarhi def link vimPattern Type 890e2719096SBram Moolenaarhi def link vimRegister SpecialChar 891e2719096SBram Moolenaarhi def link vimScriptDelim Comment 892e2719096SBram Moolenaarhi def link vimSearchDelim Statement 893e2719096SBram Moolenaarhi def link vimSep Delimiter 894e2719096SBram Moolenaarhi def link vimSetSep Statement 895e2719096SBram Moolenaarhi def link vimSpecFile Identifier 896e2719096SBram Moolenaarhi def link vimSpecial Type 897e2719096SBram Moolenaarhi def link vimStatement Statement 898e2719096SBram Moolenaarhi def link vimString String 899e2719096SBram Moolenaarhi def link vimSubstDelim Delimiter 900e2719096SBram Moolenaarhi def link vimSubstFlags Special 901e2719096SBram Moolenaarhi def link vimSubstSubstr SpecialChar 902e2719096SBram Moolenaarhi def link vimSynCaseError Error 903e2719096SBram Moolenaarhi def link vimSynCase Type 904e2719096SBram Moolenaarhi def link vimSyncC Type 905e2719096SBram Moolenaarhi def link vimSyncError Error 906e2719096SBram Moolenaarhi def link vimSyncKey Type 907e2719096SBram Moolenaarhi def link vimSyncNone Type 908e2719096SBram Moolenaarhi def link vimSynError Error 909e2719096SBram Moolenaarhi def link vimSynOption Special 910e2719096SBram Moolenaarhi def link vimSynReg Type 911e2719096SBram Moolenaarhi def link vimTodo Todo 912e2719096SBram Moolenaarhi def link vimUserAttrbCmpltFunc Special 913e2719096SBram Moolenaarhi def link vimUserCmdError Error 9145c73622aSBram Moolenaarhi def link vimUserFunc Normal 9156be7f873SBram Moolenaarhi def link vimVar Identifier 9163577c6faSBram Moolenaarhi def link vimWarn WarningMsg 917071d4279SBram Moolenaar 918cfbc5ee4SBram Moolenaar" Current Syntax Variable: {{{2 919071d4279SBram Moolenaarlet b:current_syntax = "vim" 9206be7f873SBram Moolenaar 9216be7f873SBram Moolenaar" --------------------------------------------------------------------- 9226be7f873SBram Moolenaar" Cleanup: {{{1 9236be7f873SBram Moolenaarlet &cpo = s:keepcpo 9246be7f873SBram Moolenaarunlet s:keepcpo 925071d4279SBram Moolenaar" vim:ts=18 fdm=marker 926