home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / runtime / syntax / vim.vim < prev    next >
Encoding:
Text File  |  2012-05-31  |  61.4 KB  |  891 lines

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