1 Star 0 Fork 0

hilarryxu/vimdoc

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
syntax.html 520.45 KB
一键复制 编辑 原始数据 按行查看 历史
hilarryxu 提交于 2017-08-15 10:58 . Init repo
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>syntax - Vim Documentation</title>
<meta name="Generator" content="Vim/8.0">
<meta name="plugin-version" content="vim8.0">
<meta name="syntax" content="help">
<meta name="settings" content="no_pre,use_css,expand_tabs">
<link rel="stylesheet" href="style.css" type="text/css" />
<script src="jquery.min.js" type="text/javascript"></script>
<script src="mark-current-page.js" type="text/javascript"></script>
</head>
<body>
<header>
<div class="header">
<a href="http://vim-jp.org/">vim-jp</a>
/ <a href="http://vim-jp.org/vimdoc-en/">vimdoc-en</a>
/ syntax<br />
<a name="top"></a><h1>syntax - Vim Documentation</h1>
<a href="index.html">Return to main</a>
<span class="EnglishJapaneseLink">
<span class="CurrentLanguage">English</span>
</span>
</div>
</header>
<nav>
<dl>
<dt>BASIC</dt>
<dd><ul>
<li><a href="quickref.html">quickref</a></li>
<li><a href="sponsor.html">sponsor</a></li>
</ul></dd>
<dt>USER MANUAL</dt>
<dd><ul>
<li><a href="usr_toc.html">usr_toc</a></li>
</ul></dd>
<dt>Getting Started</dt>
<dd><ul>
<li><a href="usr_01.html">usr_01</a></li>
<li><a href="usr_02.html">usr_02</a></li>
<li><a href="usr_03.html">usr_03</a></li>
<li><a href="usr_04.html">usr_04</a></li>
<li><a href="usr_05.html">usr_05</a></li>
<li><a href="usr_06.html">usr_06</a></li>
<li><a href="usr_07.html">usr_07</a></li>
<li><a href="usr_08.html">usr_08</a></li>
<li><a href="usr_09.html">usr_09</a></li>
<li><a href="usr_10.html">usr_10</a></li>
<li><a href="usr_11.html">usr_11</a></li>
<li><a href="usr_12.html">usr_12</a></li>
</ul></dd>
<dt>Editing Effectively</dt>
<dd><ul>
<li><a href="usr_20.html">usr_20</a></li>
<li><a href="usr_21.html">usr_21</a></li>
<li><a href="usr_22.html">usr_22</a></li>
<li><a href="usr_23.html">usr_23</a></li>
<li><a href="usr_24.html">usr_24</a></li>
<li><a href="usr_25.html">usr_25</a></li>
<li><a href="usr_26.html">usr_26</a></li>
<li><a href="usr_27.html">usr_27</a></li>
<li><a href="usr_28.html">usr_28</a></li>
<li><a href="usr_29.html">usr_29</a></li>
<li><a href="usr_30.html">usr_30</a></li>
<li><a href="usr_31.html">usr_31</a></li>
<li><a href="usr_32.html">usr_32</a></li>
</ul></dd>
<dt>Tuning Vim</dt>
<dd><ul>
<li><a href="usr_40.html">usr_40</a></li>
<li><a href="usr_41.html">usr_41</a></li>
<li><a href="usr_42.html">usr_42</a></li>
<li><a href="usr_43.html">usr_43</a></li>
<li><a href="usr_44.html">usr_44</a></li>
<li><a href="usr_45.html">usr_45</a></li>
</ul></dd>
<dt>Making Vim Run</dt>
<dd><ul>
<li><a href="usr_90.html">usr_90</a></li>
</ul></dd>
<dt>General subjects</dt>
<dd><ul>
<li><a href="intro.html">intro</a></li>
<li><a href="index.html">help</a></li>
<li><a href="helphelp.html">helphelp</a></li>
<li><a href="vimindex.html">index</a></li>
<li><a href="tags.html">tags</a></li>
<li><a href="howto.html">howto</a></li>
<li><a href="tips.html">tips</a></li>
<li><a href="message.html">message</a></li>
<li><a href="quotes.html">quotes</a></li>
<li><a href="todo.html">todo</a></li>
<li><a href="debug.html">debug</a></li>
<li><a href="develop.html">develop</a></li>
<li><a href="uganda.html">uganda</a></li>
</ul></dd>
<dt>Basic editing</dt>
<dd><ul>
<li><a href="starting.html">starting</a></li>
<li><a href="editing.html">editing</a></li>
<li><a href="motion.html">motion</a></li>
<li><a href="scroll.html">scroll</a></li>
<li><a href="insert.html">insert</a></li>
<li><a href="change.html">change</a></li>
<li><a href="indent.html">indent</a></li>
<li><a href="undo.html">undo</a></li>
<li><a href="repeat.html">repeat</a></li>
<li><a href="visual.html">visual</a></li>
<li><a href="various.html">various</a></li>
<li><a href="recover.html">recover</a></li>
</ul></dd>
<dt>Advanced editing</dt>
<dd><ul>
<li><a href="cmdline.html">cmdline</a></li>
<li><a href="options.html">options</a></li>
<li><a href="pattern.html">pattern</a></li>
<li><a href="map.html">map</a></li>
<li><a href="tagsrch.html">tagsrch</a></li>
<li><a href="quickfix.html">quickfix</a></li>
<li><a href="windows.html">windows</a></li>
<li><a href="tabpage.html">tabpage</a></li>
<li><a href="syntax.html">syntax</a></li>
<li><a href="spell.html">spell</a></li>
<li><a href="diff.html">diff</a></li>
<li><a href="autocmd.html">autocmd</a></li>
<li><a href="filetype.html">filetype</a></li>
<li><a href="eval.html">eval</a></li>
<li><a href="channel.html">channel</a></li>
<li><a href="fold.html">fold</a></li>
</ul></dd>
<dt>Special issues</dt>
<dd><ul>
<li><a href="print.html">print</a></li>
<li><a href="remote.html">remote</a></li>
<li><a href="term.html">term</a></li>
<li><a href="digraph.html">digraph</a></li>
<li><a href="mbyte.html">mbyte</a></li>
<li><a href="mlang.html">mlang</a></li>
<li><a href="arabic.html">arabic</a></li>
<li><a href="farsi.html">farsi</a></li>
<li><a href="hebrew.html">hebrew</a></li>
<li><a href="russian.html">russian</a></li>
<li><a href="ft_ada.html">ft_ada</a></li>
<li><a href="ft_sql.html">ft_sql</a></li>
<li><a href="hangulin.html">hangulin</a></li>
<li><a href="rileft.html">rileft</a></li>
</ul></dd>
<dt>GUI</dt>
<dd><ul>
<li><a href="gui.html">gui</a></li>
<li><a href="gui_w32.html">gui_w32</a></li>
<li><a href="gui_x11.html">gui_x11</a></li>
</ul></dd>
<dt>Interfaces</dt>
<dd><ul>
<li><a href="if_cscop.html">if_cscop</a></li>
<li><a href="if_lua.html">if_lua</a></li>
<li><a href="if_mzsch.html">if_mzsch</a></li>
<li><a href="if_perl.html">if_perl</a></li>
<li><a href="if_pyth.html">if_pyth</a></li>
<li><a href="if_tcl.html">if_tcl</a></li>
<li><a href="if_ole.html">if_ole</a></li>
<li><a href="if_ruby.html">if_ruby</a></li>
<li><a href="debugger.html">debugger</a></li>
<li><a href="workshop.html">workshop</a></li>
<li><a href="netbeans.html">netbeans</a></li>
<li><a href="sign.html">sign</a></li>
</ul></dd>
<dt>Versions</dt>
<dd><ul>
<li><a href="vi_diff.html">vi_diff</a></li>
<li><a href="version4.html">version4</a></li>
<li><a href="version5.html">version5</a></li>
<li><a href="version6.html">version6</a></li>
<li><a href="version7.html">version7</a></li>
<li><a href="version8.html">version8</a></li>
</ul></dd>
<dt>Remarks about specific systems</dt>
<dd><ul>
<li><a href="os_390.html">os_390</a></li>
<li><a href="os_amiga.html">os_amiga</a></li>
<li><a href="os_beos.html">os_beos</a></li>
<li><a href="os_dos.html">os_dos</a></li>
<li><a href="os_mac.html">os_mac</a></li>
<li><a href="os_mint.html">os_mint</a></li>
<li><a href="os_msdos.html">os_msdos</a></li>
<li><a href="os_os2.html">os_os2</a></li>
<li><a href="os_qnx.html">os_qnx</a></li>
<li><a href="os_risc.html">os_risc</a></li>
<li><a href="os_unix.html">os_unix</a></li>
<li><a href="os_vms.html">os_vms</a></li>
<li><a href="os_win32.html">os_win32</a></li>
</ul></dd>
<dt>Standard plugins</dt>
<dd><ul>
<li><a href="pi_getscript.html">pi_getscript</a></li>
<li><a href="pi_gzip.html">pi_gzip</a></li>
<li><a href="pi_logipat.html">pi_logipat</a></li>
<li><a href="pi_netrw.html">pi_netrw</a></li>
<li><a href="pi_paren.html">pi_paren</a></li>
<li><a href="pi_tar.html">pi_tar</a></li>
<li><a href="pi_vimball.html">pi_vimball</a></li>
<li><a href="pi_zip.html">pi_zip</a></li>
</ul></dd>
<dt>Filetype plugins</dt>
<dd><ul>
<li><a href="pi_spec.html">pi_spec</a></li>
</ul></dd>
<dt>Others</dt>
<dd><ul>
<li><a href="vim_faq.html">vim_faq</a></li>
</ul></dd>
</dl>
</nav>
<article class="Vimdoc VimdocJa">
<div id='vimCodeElement'>
<a class="Constant" href="syntax.html" name="syntax.txt">syntax.txt</a>&nbsp;&nbsp;&nbsp;&nbsp;For&nbsp;<span class="Identifier">Vim version 8.0.</span>&nbsp;&nbsp;Last change: 2017 Jul 14<br>
<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Identifier">VIM REFERENCE MANUAL&nbsp;&nbsp;&nbsp;&nbsp;by Bram Moolenaar</span><br>
<br>
<br>
Syntax highlighting&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#syntax" name="syntax">syntax</a>&nbsp;<a class="Constant" href="syntax.html#syntax-highlighting" name="syntax-highlighting">syntax-highlighting</a>&nbsp;<a class="Constant" href="syntax.html#coloring" name="coloring">coloring</a><br>
<br>
Syntax highlighting enables Vim to show parts of the text in another font or<br>
color.&nbsp;&nbsp;Those parts can be specific keywords or text matching a pattern.&nbsp;&nbsp;Vim<br>
doesn't parse the whole file (to keep it fast), so the highlighting has its<br>
limitations.&nbsp;&nbsp;Lexical highlighting might be a better name, but since everybody<br>
calls it syntax highlighting we'll stick with that.<br>
<br>
Vim supports syntax highlighting on all terminals.&nbsp;&nbsp;But since most ordinary<br>
terminals have very limited highlighting possibilities, it works best in the<br>
GUI version, gvim.<br>
<br>
In the User Manual:<br>
<a class="Identifier" href="usr_06.html">usr_06.txt</a>&nbsp;introduces syntax highlighting.<br>
<a class="Identifier" href="usr_44.html">usr_44.txt</a>&nbsp;introduces writing a syntax file.<br>
<br>
1.&nbsp;&nbsp;Quick start&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#:syn-qstart">:syn-qstart</a><br>
2.&nbsp;&nbsp;Syntax files&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#:syn-files">:syn-files</a><br>
3.&nbsp;&nbsp;Syntax loading procedure&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#syntax-loading">syntax-loading</a><br>
4.&nbsp;&nbsp;Syntax file remarks&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#:syn-file-remarks">:syn-file-remarks</a><br>
5.&nbsp;&nbsp;Defining a syntax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#:syn-define">:syn-define</a><br>
6.&nbsp;&nbsp;:syntax arguments&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#:syn-arguments">:syn-arguments</a><br>
7.&nbsp;&nbsp;Syntax patterns&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#:syn-pattern">:syn-pattern</a><br>
8.&nbsp;&nbsp;Syntax clusters&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#:syn-cluster">:syn-cluster</a><br>
9.&nbsp;&nbsp;Including syntax files&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#:syn-include">:syn-include</a><br>
10. Synchronizing&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#:syn-sync">:syn-sync</a><br>
11. Listing syntax items&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#:syntax">:syntax</a><br>
12. Highlight command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#:highlight">:highlight</a><br>
13. Linking groups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#:highlight-link">:highlight-link</a><br>
14. Cleaning up&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#:syn-clear">:syn-clear</a><br>
15. Highlighting tags&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#tag-highlight">tag-highlight</a><br>
16. Window-local syntax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#:ownsyntax">:ownsyntax</a><br>
17. Color xterms&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#xterm-color">xterm-color</a><br>
18. When syntax is slow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#:syntime">:syntime</a><br>
<br>
<span class="Special">{Vi does not have any of these commands}</span><br>
<br>
Syntax highlighting is not available when the&nbsp;<a class="Identifier" href="various.html#+syntax">+syntax</a>&nbsp;feature has been<br>
disabled at compile time.<br>
<br>
<span class="PreProc">==============================================================================</span><br>
1. Quick start&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-qstart" name=":syn-qstart">:syn-qstart</a><br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-enable" name=":syn-enable">:syn-enable</a>&nbsp;<a class="Constant" href="syntax.html#:syntax-enable" name=":syntax-enable">:syntax-enable</a><br>
This command switches on syntax highlighting:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:syntax enable</div>
<br>
What this command actually does is to execute the command<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:source $VIMRUNTIME/syntax/syntax.vim</div>
<br>
If the VIM environment variable is not set, Vim will try to find<br>
the path in another way (see&nbsp;<a class="Identifier" href="starting.html#$VIMRUNTIME">$VIMRUNTIME</a>).&nbsp;&nbsp;Usually this works just<br>
fine.&nbsp;&nbsp;If it doesn't, try setting the VIM environment variable to the<br>
directory where the Vim stuff is located.&nbsp;&nbsp;For example, if your syntax files<br>
are in the &quot;/usr/vim/vim50/syntax&quot; directory, set $VIMRUNTIME to<br>
&quot;/usr/vim/vim50&quot;.&nbsp;&nbsp;You must do this in the shell, before starting Vim.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-on" name=":syn-on">:syn-on</a>&nbsp;<a class="Constant" href="syntax.html#:syntax-on" name=":syntax-on">:syntax-on</a><br>
The &quot;:syntax enable&quot; command will keep your current color settings.&nbsp;&nbsp;This<br>
allows using &quot;:highlight&quot; commands to set your preferred colors before or<br>
after using this command.&nbsp;&nbsp;If you want Vim to overrule your settings with the<br>
defaults, use:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:syntax on</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:hi-normal" name=":hi-normal">:hi-normal</a>&nbsp;<a class="Constant" href="syntax.html#:highlight-normal" name=":highlight-normal">:highlight-normal</a><br>
If you are running in the GUI, you can get white text on a black background<br>
with:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:highlight Normal guibg=Black guifg=White</div>
For a color terminal see&nbsp;<a class="Identifier" href="syntax.html#:hi-normal-cterm">:hi-normal-cterm</a>.<br>
For setting up your own colors syntax highlighting see&nbsp;<a class="Identifier" href="syntax.html#syncolor">syncolor</a>.<br>
<br>
<span class="Todo">NOTE</span>: The syntax files on MS-DOS and Windows have lines that end in&nbsp;<span class="Special">&lt;CR&gt;&lt;NL&gt;</span>.<br>
The files for Unix end in&nbsp;<span class="Special">&lt;NL&gt;</span>.&nbsp;&nbsp;This means you should use the right type of<br>
file for your system.&nbsp;&nbsp;Although on MS-DOS and Windows the right format is<br>
automatically selected if the&nbsp;<a class="Type" href="options.html#'fileformats'">'fileformats'</a>&nbsp;option is not empty.<br>
<br>
<span class="Todo">NOTE</span>: When using reverse video (&quot;gvim -fg white -bg black&quot;), the default value<br>
of&nbsp;<a class="Type" href="options.html#'background'">'background'</a>&nbsp;will not be set until the GUI window is opened, which is after<br>
reading the&nbsp;<a class="Identifier" href="gui.html#gvimrc">gvimrc</a>.&nbsp;&nbsp;This will cause the wrong default highlighting to be<br>
used.&nbsp;&nbsp;To set the default value of&nbsp;<a class="Type" href="options.html#'background'">'background'</a>&nbsp;before switching on<br>
highlighting, include the &quot;:gui&quot; command in the&nbsp;<a class="Identifier" href="gui.html#gvimrc">gvimrc</a>:<br>
<br>
<div class="helpExample">&nbsp;&nbsp; :gui&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot; open window and set default for 'background'<br>
&nbsp;&nbsp; :syntax on&nbsp;&nbsp; &quot; start highlighting, use 'background' to set colors</div>
<br>
<span class="Todo">NOTE</span>: Using &quot;:gui&quot; in the&nbsp;<a class="Identifier" href="gui.html#gvimrc">gvimrc</a>&nbsp;means that &quot;gvim -f&quot; won't start in the<br>
foreground!&nbsp;&nbsp;Use &quot;:gui -f&quot; then.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:syntax_on" name="g:syntax_on">g:syntax_on</a><br>
You can toggle the syntax on/off with this command:<br>
<div class="helpExample">&nbsp;&nbsp; :if exists(&quot;g:syntax_on&quot;) | syntax off | else | syntax enable | endif</div>
<br>
To put this into a mapping, you can use:<br>
<div class="helpExample">&nbsp;&nbsp; :map &lt;F7&gt; :if exists(&quot;g:syntax_on&quot;) &lt;Bar&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\&nbsp;&nbsp; syntax off &lt;Bar&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\ else &lt;Bar&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\&nbsp;&nbsp; syntax enable &lt;Bar&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\ endif &lt;CR&gt;</div>
[using the&nbsp;<a class="Identifier" href="intro.html#<>">&lt;&gt;</a>&nbsp;notation, type this literally]<br>
<br>
Details:<br>
The &quot;:syntax&quot; commands are implemented by sourcing a file.&nbsp;&nbsp;To see exactly how<br>
this works, look in the file:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="PreProc">command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;:syntax enable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$VIMRUNTIME/syntax/syntax.vim<br>
&nbsp;&nbsp;&nbsp;&nbsp;:syntax on&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$VIMRUNTIME/syntax/syntax.vim<br>
&nbsp;&nbsp;&nbsp;&nbsp;:syntax manual&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$VIMRUNTIME/syntax/manual.vim<br>
&nbsp;&nbsp;&nbsp;&nbsp;:syntax off&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $VIMRUNTIME/syntax/nosyntax.vim<br>
Also see&nbsp;<a class="Identifier" href="syntax.html#syntax-loading">syntax-loading</a>.<br>
<br>
<span class="Todo">NOTE</span>: If displaying long lines is slow and switching off syntax highlighting<br>
makes it fast, consider setting the&nbsp;<a class="Type" href="options.html#'synmaxcol'">'synmaxcol'</a>&nbsp;option to a lower value.<br>
<br>
<span class="PreProc">==============================================================================</span><br>
2. Syntax files&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-files" name=":syn-files">:syn-files</a><br>
<br>
The syntax and highlighting commands for one language are normally stored in<br>
a syntax file.&nbsp;&nbsp;The name convention is: &quot;<span class="Special">{name}</span>.vim&quot;.&nbsp;&nbsp;Where&nbsp;<span class="Special">{name}</span>&nbsp;is the<br>
name of the language, or an abbreviation (to fit the name in 8.3 characters,<br>
a requirement in case the file is used on a DOS filesystem).<br>
Examples:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c.vim&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; perl.vim&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;java.vim&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;html.vim<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cpp.vim&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sh.vim&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;csh.vim<br>
<br>
The syntax file can contain any Ex commands, just like a vimrc file.&nbsp;&nbsp;But<br>
the idea is that only commands for a specific language are included.&nbsp;&nbsp;When a<br>
language is a superset of another language, it may include the other one,<br>
for example, the cpp.vim file could include the c.vim file:<br>
<div class="helpExample">&nbsp;&nbsp; :so $VIMRUNTIME/syntax/c.vim</div>
<br>
The .vim files are normally loaded with an autocommand.&nbsp;&nbsp;For example:<br>
<div class="helpExample">&nbsp;&nbsp; :au Syntax c&nbsp;&nbsp;&nbsp;&nbsp; runtime! syntax/c.vim<br>
&nbsp;&nbsp; :au Syntax cpp&nbsp;&nbsp; runtime! syntax/cpp.vim</div>
These commands are normally in the file $VIMRUNTIME/syntax/synload.vim.<br>
<br>
<br>
<span class="Statement">MAKING YOUR OWN SYNTAX FILES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#mysyntaxfile" name="mysyntaxfile">mysyntaxfile</a><br>
<br>
When you create your own syntax files, and you want to have Vim use these<br>
automatically with &quot;:syntax enable&quot;, do this:<br>
<br>
1. Create your user runtime directory.&nbsp;&nbsp;You would normally use the first item<br>
&nbsp;&nbsp; of the&nbsp;<a class="Type" href="options.html#'runtimepath'">'runtimepath'</a>&nbsp;option.&nbsp;&nbsp;Example for Unix:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mkdir ~/.vim</div>
<br>
2. Create a directory in there called &quot;syntax&quot;.&nbsp;&nbsp;For Unix:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mkdir ~/.vim/syntax</div>
<br>
3. Write the Vim syntax file.&nbsp;&nbsp;Or download one from the internet.&nbsp;&nbsp;Then write<br>
&nbsp;&nbsp; it in your syntax directory.&nbsp;&nbsp;For example, for the &quot;mine&quot; syntax:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:w ~/.vim/syntax/mine.vim</div>
<br>
Now you can start using your syntax file manually:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:set syntax=mine</div>
You don't have to exit Vim to use this.<br>
<br>
If you also want Vim to detect the type of file, see&nbsp;<a class="Identifier" href="filetype.html#new-filetype">new-filetype</a>.<br>
<br>
If you are setting up a system with many users and you don't want each user<br>
to add the same syntax file, you can use another directory from&nbsp;<a class="Type" href="options.html#'runtimepath'">'runtimepath'</a>.<br>
<br>
<br>
<span class="Statement">ADDING TO AN EXISTING SYNTAX FILE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#mysyntaxfile-add" name="mysyntaxfile-add">mysyntaxfile-add</a><br>
<br>
If you are mostly satisfied with an existing syntax file, but would like to<br>
add a few items or change the highlighting, follow these steps:<br>
<br>
1. Create your user directory from&nbsp;<a class="Type" href="options.html#'runtimepath'">'runtimepath'</a>, see above.<br>
<br>
2. Create a directory in there called &quot;after/syntax&quot;.&nbsp;&nbsp;For Unix:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mkdir ~/.vim/after<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mkdir ~/.vim/after/syntax</div>
<br>
3. Write a Vim script that contains the commands you want to use.&nbsp;&nbsp;For<br>
&nbsp;&nbsp; example, to change the colors for the C syntax:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;highlight cComment ctermfg=Green guifg=Green</div>
<br>
4. Write that file in the &quot;after/syntax&quot; directory.&nbsp;&nbsp;Use the name of the<br>
&nbsp;&nbsp; syntax, with &quot;.vim&quot; added.&nbsp;&nbsp;For our C syntax:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:w ~/.vim/after/syntax/c.vim</div>
<br>
That's it.&nbsp;&nbsp;The next time you edit a C file the Comment color will be<br>
different.&nbsp;&nbsp;You don't even have to restart Vim.<br>
<br>
If you have multiple files, you can use the filetype as the directory name.<br>
All the &quot;*.vim&quot; files in this directory will be used, for example:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;~/.vim/after/syntax/c/one.vim<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;~/.vim/after/syntax/c/two.vim<br>
<br>
<br>
<span class="Statement">REPLACING AN EXISTING SYNTAX FILE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#mysyntaxfile-replace" name="mysyntaxfile-replace">mysyntaxfile-replace</a><br>
<br>
If you don't like a distributed syntax file, or you have downloaded a new<br>
version, follow the same steps as for&nbsp;<a class="Identifier" href="syntax.html#mysyntaxfile">mysyntaxfile</a>&nbsp;above.&nbsp;&nbsp;Just make sure<br>
that you write the syntax file in a directory that is early in&nbsp;<a class="Type" href="options.html#'runtimepath'">'runtimepath'</a>.<br>
Vim will only load the first syntax file found, assuming that it sets<br>
b:current_syntax.<br>
<br>
<br>
<span class="Statement">NAMING CONVENTIONS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#group-name" name="group-name">group-name</a>&nbsp;<a class="Constant" href="syntax.html#{group-name}" name="{group-name}">{group-name}</a>&nbsp;<a class="Constant" href="syntax.html#E669" name="E669">E669</a>&nbsp;<a class="Constant" href="syntax.html#W18" name="W18">W18</a><br>
<br>
A syntax group name is to be used for syntax items that match the same kind of<br>
thing.&nbsp;&nbsp;These are then linked to a highlight group that specifies the color.<br>
A syntax group name doesn't specify any color or attributes itself.<br>
<br>
The name for a highlight or syntax group must consist of ASCII letters, digits<br>
and the underscore.&nbsp;&nbsp;As a regexp: &quot;[a-zA-Z0-9_]*&quot;.&nbsp;&nbsp;However, Vim does not give<br>
an error when using other characters.<br>
<br>
To be able to allow each user to pick his favorite set of colors, there must<br>
be preferred names for highlight groups that are common for many languages.<br>
These are the suggested group names (if syntax highlighting works properly<br>
you can see the actual color, except for &quot;Ignore&quot;):<br>
<br>
<span class="Comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*Comment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;any comment</span><br>
<br>
<span class="Constant">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*Constant&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; any constant</span><br>
<span class="Constant">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a string constant: &quot;this is a string&quot;</span><br>
<span class="Constant">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Character&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a character constant: 'c', '\n'</span><br>
<span class="Constant">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Number&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a number constant: 234, 0xff</span><br>
<span class="Constant">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Boolean&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a boolean constant: TRUE, false</span><br>
<span class="Constant">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Float&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a floating point constant: 2.3e10</span><br>
<br>
<span class="Identifier">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*Identifier&nbsp;&nbsp;&nbsp;&nbsp; any variable name</span><br>
<span class="Identifier">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Function&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function name (also: methods for classes)</span><br>
<br>
<span class="Statement">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*Statement&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;any statement</span><br>
<span class="Statement">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Conditional&nbsp;&nbsp;&nbsp;&nbsp;if, then, else, endif, switch, etc.</span><br>
<span class="Statement">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Repeat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for, do, while, etc.</span><br>
<span class="Statement">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Label&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case, default, etc.</span><br>
<span class="Statement">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Operator&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;sizeof&quot;, &quot;+&quot;, &quot;*&quot;, etc.</span><br>
<span class="Statement">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Keyword&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;any other keyword</span><br>
<span class="Statement">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exception&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try, catch, throw</span><br>
<br>
<span class="PreProc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*PreProc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generic Preprocessor</span><br>
<span class="PreProc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;preprocessor #include</span><br>
<span class="PreProc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Define&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; preprocessor #define</span><br>
<span class="PreProc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Macro&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;same as Define</span><br>
<span class="PreProc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PreCondit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;preprocessor #if, #else, #endif, etc.</span><br>
<br>
<span class="Type">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int, long, char, etc.</span><br>
<span class="Type">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StorageClass&nbsp;&nbsp; static, register, volatile, etc.</span><br>
<span class="Type">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Structure&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct, union, enum, etc.</span><br>
<span class="Type">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Typedef&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A typedef</span><br>
<br>
<span class="Special">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*Special&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;any special symbol</span><br>
<span class="Special">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SpecialChar&nbsp;&nbsp;&nbsp;&nbsp;special character in a constant</span><br>
<span class="Special">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tag&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;you can use CTRL-] on this</span><br>
<span class="Special">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Delimiter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;character that needs attention</span><br>
<span class="Special">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SpecialComment special things inside a comment</span><br>
<span class="Special">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debugging statements</span><br>
<br>
<span class="Underlined">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*Underlined&nbsp;&nbsp;&nbsp;&nbsp; text that stands out, HTML links</span><br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*Ignore&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; left blank, hidden&nbsp;&nbsp;<a class="Identifier" href="syntax.html#hl-Ignore">hl-Ignore</a><br>
<br>
<span class="Error">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*Error&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;any erroneous construct</span><br>
<br>
<span class="Todo">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*Todo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; anything that needs extra attention; mostly the</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keywords TODO FIXME and XXX<br>
<br>
The names marked with * are the preferred groups; the others are minor groups.<br>
For the preferred groups, the &quot;syntax.vim&quot; file contains default highlighting.<br>
The minor groups are linked to the preferred groups, so they get the same<br>
highlighting.&nbsp;&nbsp;You can override these defaults by using &quot;:highlight&quot; commands<br>
after sourcing the &quot;syntax.vim&quot; file.<br>
<br>
<span class="Todo">Note</span>&nbsp;that highlight group names are not case sensitive.&nbsp;&nbsp;&quot;String&quot; and &quot;string&quot;<br>
can be used for the same group.<br>
<br>
The following names are reserved and cannot be used as a group name:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NONE&nbsp;&nbsp; ALL&nbsp;&nbsp; ALLBUT&nbsp;&nbsp; contains&nbsp;&nbsp; contained<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-Ignore" name="hl-Ignore">hl-Ignore</a><br>
When using the Ignore group, you may also consider using the conceal<br>
mechanism.&nbsp;&nbsp;See&nbsp;<a class="Identifier" href="syntax.html#conceal">conceal</a>.<br>
<br>
<span class="PreProc">==============================================================================</span><br>
3. Syntax loading procedure&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#syntax-loading" name="syntax-loading">syntax-loading</a><br>
<br>
This explains the details that happen when the command &quot;:syntax enable&quot; is<br>
issued.&nbsp;&nbsp;When Vim initializes itself, it finds out where the runtime files are<br>
located.&nbsp;&nbsp;This is used here as the variable&nbsp;<a class="Identifier" href="starting.html#$VIMRUNTIME">$VIMRUNTIME</a>.<br>
<br>
&quot;:syntax enable&quot; and &quot;:syntax on&quot; do the following:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;Source $VIMRUNTIME/syntax/syntax.vim<br>
&nbsp;&nbsp;&nbsp;&nbsp;|<br>
&nbsp;&nbsp;&nbsp;&nbsp;+-&nbsp;&nbsp;Clear out any old syntax by sourcing $VIMRUNTIME/syntax/nosyntax.vim<br>
&nbsp;&nbsp;&nbsp;&nbsp;|<br>
&nbsp;&nbsp;&nbsp;&nbsp;+-&nbsp;&nbsp;Source first syntax/synload.vim in&nbsp;<a class="Type" href="options.html#'runtimepath'">'runtimepath'</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; |<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; +-&nbsp;&nbsp;Setup the colors for syntax highlighting.&nbsp;&nbsp;If a color scheme is<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; |&nbsp;&nbsp; defined it is loaded again with &quot;:colors&nbsp;<span class="Special">{name}</span>&quot;.&nbsp;&nbsp;Otherwise<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; |&nbsp;&nbsp; &quot;:runtime! syntax/syncolor.vim&quot; is used.&nbsp;&nbsp;&quot;:syntax on&quot; overrules<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; |&nbsp;&nbsp; existing colors, &quot;:syntax enable&quot; only sets groups that weren't<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; |&nbsp;&nbsp; set yet.<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; |<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; +-&nbsp;&nbsp;Set up syntax autocmds to load the appropriate syntax file when<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; |&nbsp;&nbsp; the&nbsp;<a class="Type" href="options.html#'syntax'">'syntax'</a>&nbsp;option is set.&nbsp;<a class="Constant" href="syntax.html#synload-1" name="synload-1">synload-1</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; |<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; +-&nbsp;&nbsp;Source the user's optional file, from the&nbsp;<a class="Identifier" href="syntax.html#mysyntaxfile">mysyntaxfile</a>&nbsp;variable.<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This is for backwards compatibility with Vim 5.x only.&nbsp;<a class="Constant" href="syntax.html#synload-2" name="synload-2">synload-2</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;|<br>
&nbsp;&nbsp;&nbsp;&nbsp;+-&nbsp;&nbsp;Do &quot;:filetype on&quot;, which does &quot;:runtime! filetype.vim&quot;.&nbsp;&nbsp;It loads any<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; filetype.vim files found.&nbsp;&nbsp;It should always Source<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; $VIMRUNTIME/filetype.vim, which does the following.<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; |<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; +-&nbsp;&nbsp;Install autocmds based on suffix to set the&nbsp;<a class="Type" href="options.html#'filetype'">'filetype'</a>&nbsp;option<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; |&nbsp;&nbsp; This is where the connection between file name and file type is<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; |&nbsp;&nbsp; made for known file types.&nbsp;<a class="Constant" href="syntax.html#synload-3" name="synload-3">synload-3</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; |<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; +-&nbsp;&nbsp;Source the user's optional file, from the&nbsp;<a class="Constant" href="syntax.html#myfiletypefile" name="myfiletypefile">myfiletypefile</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; |&nbsp;&nbsp; variable.&nbsp;&nbsp;This is for backwards compatibility with Vim 5.x only.<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#synload-4" name="synload-4">synload-4</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; |<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; +-&nbsp;&nbsp;Install one autocommand which sources scripts.vim when no file<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; |&nbsp;&nbsp; type was detected yet.&nbsp;<a class="Constant" href="syntax.html#synload-5" name="synload-5">synload-5</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; |<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; +-&nbsp;&nbsp;Source $VIMRUNTIME/menu.vim, to setup the Syntax menu.&nbsp;<a class="Identifier" href="gui.html#menu.vim">menu.vim</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;|<br>
&nbsp;&nbsp;&nbsp;&nbsp;+-&nbsp;&nbsp;Install a FileType autocommand to set the&nbsp;<a class="Type" href="options.html#'syntax'">'syntax'</a>&nbsp;option when a file<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; type has been detected.&nbsp;<a class="Constant" href="syntax.html#synload-6" name="synload-6">synload-6</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;|<br>
&nbsp;&nbsp;&nbsp;&nbsp;+-&nbsp;&nbsp;Execute syntax autocommands to start syntax highlighting for each<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;already loaded buffer.<br>
<br>
<br>
Upon loading a file, Vim finds the relevant syntax file as follows:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;Loading the file triggers the BufReadPost autocommands.<br>
&nbsp;&nbsp;&nbsp;&nbsp;|<br>
&nbsp;&nbsp;&nbsp;&nbsp;+-&nbsp;&nbsp;If there is a match with one of the autocommands from&nbsp;<a class="Identifier" href="syntax.html#synload-3">synload-3</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; (known file types) or&nbsp;<a class="Identifier" href="syntax.html#synload-4">synload-4</a>&nbsp;(user's file types), the&nbsp;<a class="Type" href="options.html#'filetype'">'filetype'</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; option is set to the file type.<br>
&nbsp;&nbsp;&nbsp;&nbsp;|<br>
&nbsp;&nbsp;&nbsp;&nbsp;+-&nbsp;&nbsp;The autocommand at&nbsp;<a class="Identifier" href="syntax.html#synload-5">synload-5</a>&nbsp;is triggered.&nbsp;&nbsp;If the file type was not<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; found yet, then scripts.vim is searched for in&nbsp;<a class="Type" href="options.html#'runtimepath'">'runtimepath'</a>.&nbsp;&nbsp;This<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; should always load $VIMRUNTIME/scripts.vim, which does the following.<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; |<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; +-&nbsp;&nbsp;Source the user's optional file, from the&nbsp;<a class="Constant" href="syntax.html#myscriptsfile" name="myscriptsfile">myscriptsfile</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; |&nbsp;&nbsp; variable.&nbsp;&nbsp;This is for backwards compatibility with Vim 5.x only.<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; |<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; +-&nbsp;&nbsp;If the file type is still unknown, check the contents of the file,<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; again with checks like &quot;getline(1) =~ pattern&quot; as to whether the<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file type can be recognized, and set&nbsp;<a class="Type" href="options.html#'filetype'">'filetype'</a>.<br>
&nbsp;&nbsp;&nbsp;&nbsp;|<br>
&nbsp;&nbsp;&nbsp;&nbsp;+-&nbsp;&nbsp;When the file type was determined and&nbsp;<a class="Type" href="options.html#'filetype'">'filetype'</a>&nbsp;was set, this<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; triggers the FileType autocommand&nbsp;<a class="Identifier" href="syntax.html#synload-6">synload-6</a>&nbsp;above.&nbsp;&nbsp;It sets<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;<a class="Type" href="options.html#'syntax'">'syntax'</a>&nbsp;to the determined file type.<br>
&nbsp;&nbsp;&nbsp;&nbsp;|<br>
&nbsp;&nbsp;&nbsp;&nbsp;+-&nbsp;&nbsp;When the&nbsp;<a class="Type" href="options.html#'syntax'">'syntax'</a>&nbsp;option was set above, this triggers an autocommand<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; from&nbsp;<a class="Identifier" href="syntax.html#synload-1">synload-1</a>&nbsp;(and&nbsp;<a class="Identifier" href="syntax.html#synload-2">synload-2</a>).&nbsp;&nbsp;This find the main syntax file in<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;<a class="Type" href="options.html#'runtimepath'">'runtimepath'</a>, with this command:<br>
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; runtime! syntax/<span class="Special">&lt;name&gt;</span>.vim<br>
&nbsp;&nbsp;&nbsp;&nbsp;|<br>
&nbsp;&nbsp;&nbsp;&nbsp;+-&nbsp;&nbsp;Any other user installed FileType or Syntax autocommands are<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;triggered.&nbsp;&nbsp;This can be used to change the highlighting for a specific<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;syntax.<br>
<br>
<span class="PreProc">==============================================================================</span><br>
4. Syntax file remarks&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-file-remarks" name=":syn-file-remarks">:syn-file-remarks</a><br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#b:current_syntax-variable" name="b:current_syntax-variable">b:current_syntax-variable</a><br>
Vim stores the name of the syntax that has been loaded in the<br>
&quot;b:current_syntax&quot; variable.&nbsp;&nbsp;You can use this if you want to load other<br>
settings, depending on which syntax is active.&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp; :au BufReadPost * if b:current_syntax == &quot;csh&quot;<br>
&nbsp;&nbsp; :au BufReadPost *&nbsp;&nbsp; do-some-things<br>
&nbsp;&nbsp; :au BufReadPost * endif</div>
<br>
<br>
2HTML&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#2html.vim" name="2html.vim">2html.vim</a>&nbsp;<a class="Constant" href="syntax.html#convert-to-HTML" name="convert-to-HTML">convert-to-HTML</a><br>
<br>
This is not a syntax file itself, but a script that converts the current<br>
window into HTML. Vim opens a new window in which it builds the HTML file.<br>
<br>
After you save the resulting file, you can view it with any browser. The<br>
colors should be exactly the same as you see them in Vim.&nbsp;&nbsp;With<br>
<a class="Identifier" href="syntax.html#g:html_line_ids">g:html_line_ids</a>&nbsp;you can jump to specific lines by adding (for example) #L123<br>
or #123 to the end of the URL in your browser's address bar. And with<br>
<a class="Identifier" href="syntax.html#g:html_dynamic_folds">g:html_dynamic_folds</a>&nbsp;enabled, you can show or hide the text that is folded<br>
in Vim.<br>
<br>
You are not supposed to set the&nbsp;<a class="Type" href="options.html#'filetype'">'filetype'</a>&nbsp;or&nbsp;<a class="Type" href="options.html#'syntax'">'syntax'</a>&nbsp;option to &quot;2html&quot;!<br>
Source the script to convert the current file:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:runtime! syntax/2html.vim</div>
<br>
Many variables affect the output of 2html.vim; see below. Any of the on/off<br>
options listed below can be enabled or disabled by setting them explicitly to<br>
the desired value, or restored to their default by removing the variable using<br>
<a class="Identifier" href="eval.html#:unlet">:unlet</a>.<br>
<br>
Remarks:<br>
- Some truly ancient browsers may not show the background colors.<br>
- From most browsers you can also print the file (in color)!<br>
- The latest TOhtml may actually work with older versions of Vim, but some<br>
&nbsp;&nbsp;features such as conceal support will not function, and the colors may be<br>
&nbsp;&nbsp;incorrect for an old Vim without GUI support compiled in.<br>
<br>
Here is an example how to run the script over all .c and .h files from a<br>
Unix shell:<br>
<div class="helpExample">&nbsp;&nbsp; for f in *.[ch]; do gvim -f +&quot;syn on&quot; +&quot;run! syntax/2html.vim&quot; +&quot;wq&quot; +&quot;q&quot; $f; done</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:html_start_line" name="g:html_start_line">g:html_start_line</a>&nbsp;<a class="Constant" href="syntax.html#g:html_end_line" name="g:html_end_line">g:html_end_line</a><br>
To restrict the conversion to a range of lines, use a range with the&nbsp;<a class="Identifier" href="syntax.html#:TOhtml">:TOhtml</a><br>
command below, or set &quot;g:html_start_line&quot; and &quot;g:html_end_line&quot; to the first<br>
and last line to be converted.&nbsp;&nbsp;Example, using the last set Visual area:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let g:html_start_line = line(&quot;'&lt;&quot;)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let g:html_end_line = line(&quot;'&gt;&quot;)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:runtime! syntax/2html.vim</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:TOhtml" name=":TOhtml">:TOhtml</a><br>
:<span class="Special">[range]</span>TOhtml&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The &quot;:TOhtml&quot; command is defined in a standard plugin.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This command will source&nbsp;<a class="Identifier" href="syntax.html#2html.vim">2html.vim</a>&nbsp;for you. When a<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;range is given, this command sets&nbsp;<a class="Identifier" href="syntax.html#g:html_start_line">g:html_start_line</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and&nbsp;<a class="Identifier" href="syntax.html#g:html_end_line">g:html_end_line</a>&nbsp;to the start and end of the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;range, respectively. Default range is the entire<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buffer.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the current window is part of a&nbsp;<a class="Identifier" href="diff.html#diff">diff</a>, unless<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#g:html_diff_one_file">g:html_diff_one_file</a>&nbsp;is set, :TOhtml will convert<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all windows which are part of the diff in the current<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tab and place them side-by-side in a&nbsp;<span class="Special">&lt;table&gt;</span>&nbsp;element<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in the generated HTML. With&nbsp;<a class="Identifier" href="syntax.html#g:html_line_ids">g:html_line_ids</a>&nbsp;you can<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jump to lines in specific windows with (for example)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#W1L42 for line 42 in the first diffed window, or<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#W3L87 for line 87 in the third.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Examples:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:10,40TOhtml &quot; convert lines 10-40 to html<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:'&lt;,'&gt;TOhtml &quot; convert current/last visual selection<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:TOhtml&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot; convert entire buffer</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:html_diff_one_file" name="g:html_diff_one_file">g:html_diff_one_file</a><br>
Default: 0.<br>
When 0, and using&nbsp;<a class="Identifier" href="syntax.html#:TOhtml">:TOhtml</a>&nbsp;all windows involved in a&nbsp;<a class="Identifier" href="diff.html#diff">diff</a>&nbsp;in the current tab<br>
page are converted to HTML and placed side-by-side in a&nbsp;<span class="Special">&lt;table&gt;</span>&nbsp;element. When<br>
1, only the current buffer is converted.<br>
Example:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:html_diff_one_file = 1</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:html_whole_filler" name="g:html_whole_filler">g:html_whole_filler</a><br>
Default: 0.<br>
When 0, if&nbsp;<a class="Identifier" href="syntax.html#g:html_diff_one_file">g:html_diff_one_file</a>&nbsp;is 1, a sequence of more than 3 filler lines<br>
is displayed as three lines with the middle line mentioning the total number<br>
of inserted lines.<br>
When 1, always display all inserted lines as if&nbsp;<a class="Identifier" href="syntax.html#g:html_diff_one_file">g:html_diff_one_file</a>&nbsp;were<br>
not set.<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;:let g:html_whole_filler = 1</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#TOhtml-performance" name="TOhtml-performance">TOhtml-performance</a>&nbsp;<a class="Constant" href="syntax.html#g:html_no_progress" name="g:html_no_progress">g:html_no_progress</a><br>
Default: 0.<br>
When 0, display a progress bar in the statusline for each major step in the<br>
2html.vim conversion process.<br>
When 1, do not display the progress bar. This offers a minor speed improvement<br>
but you won't have any idea how much longer the conversion might take; for big<br>
files it can take a long time!<br>
Example:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:html_no_progress = 1</div>
<br>
You can obtain better performance improvements by also instructing Vim to not<br>
run interactively, so that too much time is not taken to redraw as the script<br>
moves through the buffer, switches windows, and the like:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;vim -E -s -c &quot;let g:html_no_progress=1&quot; -c &quot;syntax on&quot; -c &quot;set ft=c&quot; -c &quot;runtime syntax/2html.vim&quot; -cwqa myfile.c</div>
<br>
<span class="Todo">Note</span>&nbsp;that the -s flag prevents loading your .vimrc and any plugins, so you<br>
need to explicitly source/enable anything that will affect the HTML<br>
conversion. See&nbsp;<a class="Identifier" href="starting.html#-E">-E</a>&nbsp;and&nbsp;<a class="Identifier" href="starting.html#-s-ex">-s-ex</a>&nbsp;for details. It is probably best to create a<br>
script to replace all the -c commands and use it with the -u flag instead of<br>
specifying each command separately.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:html_number_lines" name="g:html_number_lines">g:html_number_lines</a><br>
Default: current&nbsp;<a class="Type" href="options.html#'number'">'number'</a>&nbsp;setting.<br>
When 0, buffer text is displayed in the generated HTML without line numbering.<br>
When 1, a column of line numbers is added to the generated HTML with the same<br>
highlighting as the line number column in Vim (<a class="Identifier" href="syntax.html#hl-LineNr">hl-LineNr</a>).<br>
Force line numbers even if&nbsp;<a class="Type" href="options.html#'number'">'number'</a>&nbsp;is not set:<br>
<div class="helpExample">&nbsp;&nbsp; :let g:html_number_lines = 1</div>
Force to omit the line numbers:<br>
<div class="helpExample">&nbsp;&nbsp; :let g:html_number_lines = 0</div>
Go back to the default to use&nbsp;<a class="Type" href="options.html#'number'">'number'</a>&nbsp;by deleting the variable:<br>
<div class="helpExample">&nbsp;&nbsp; :unlet g:html_number_lines</div>
<br>
<span class="Statement">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#g:html_line_ids" name="g:html_line_ids">g:html_line_ids</a><br>
Default: 1 if&nbsp;<a class="Identifier" href="syntax.html#g:html_number_lines">g:html_number_lines</a>&nbsp;is set, 0 otherwise.<br>
When 1, adds an HTML id attribute to each line number, or to an empty&nbsp;<span class="Special">&lt;span&gt;</span><br>
inserted for that purpose if no line numbers are shown. This ID attribute<br>
takes the form of L123 for single-buffer HTML pages, or W2L123 for diff-view<br>
pages, and is used to jump to a specific line (in a specific window of a diff<br>
view). Javascript is inserted to open any closed dynamic folds<br>
(<a class="Identifier" href="syntax.html#g:html_dynamic_folds">g:html_dynamic_folds</a>) containing the specified line before jumping. The<br>
javascript also allows omitting the window ID in the url, and the leading L.<br>
For example:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;page.html#L123&nbsp;&nbsp;jumps to line 123 in a single-buffer file<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;page.html#123&nbsp;&nbsp; does the same</div>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;diff.html#W1L42 jumps to line 42 in the first window in a diff<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;diff.html#42&nbsp;&nbsp;&nbsp;&nbsp;does the same</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:html_use_css" name="g:html_use_css">g:html_use_css</a><br>
Default: 1.<br>
When 1, generate valid HTML 4.01 markup with CSS1 styling, supported in all<br>
modern browsers and most old browsers.<br>
When 0, generate&nbsp;<span class="Special">&lt;font&gt;</span>&nbsp;tags and similar outdated markup. This is not<br>
recommended but it may work better in really old browsers, email clients,<br>
forum posts, and similar situations where basic CSS support is unavailable.<br>
Example:<br>
<div class="helpExample">&nbsp;&nbsp; :let g:html_use_css = 0</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:html_ignore_conceal" name="g:html_ignore_conceal">g:html_ignore_conceal</a><br>
Default: 0.<br>
When 0, concealed text is removed from the HTML and replaced with a character<br>
from&nbsp;<a class="Identifier" href="syntax.html#:syn-cchar">:syn-cchar</a>&nbsp;or&nbsp;<a class="Type" href="options.html#'listchars'">'listchars'</a>&nbsp;as appropriate, depending on the current<br>
value of&nbsp;<a class="Type" href="options.html#'conceallevel'">'conceallevel'</a>.<br>
When 1, include all text from the buffer in the generated HTML, even if it is<br>
<a class="Identifier" href="syntax.html#conceal">conceal</a>ed.<br>
<br>
Either of the following commands will ensure that all text in the buffer is<br>
included in the generated HTML (unless it is folded):<br>
<div class="helpExample">&nbsp;&nbsp; :let g:html_ignore_conceal = 1<br>
&nbsp;&nbsp; :setl conceallevel=0</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:html_ignore_folding" name="g:html_ignore_folding">g:html_ignore_folding</a><br>
Default: 0.<br>
When 0, text in a closed fold is replaced by the text shown for the fold in<br>
Vim (<a class="Identifier" href="fold.html#fold-foldtext">fold-foldtext</a>). See&nbsp;<a class="Identifier" href="syntax.html#g:html_dynamic_folds">g:html_dynamic_folds</a>&nbsp;if you also want to allow<br>
the user to expand the fold as in Vim to see the text inside.<br>
When 1, include all text from the buffer in the generated HTML; whether the<br>
text is in a fold has no impact at all.&nbsp;<a class="Identifier" href="syntax.html#g:html_dynamic_folds">g:html_dynamic_folds</a>&nbsp;has no effect.<br>
<br>
Either of these commands will ensure that all text in the buffer is included<br>
in the generated HTML (unless it is concealed):<br>
<div class="helpExample">&nbsp;&nbsp; zR<br>
&nbsp;&nbsp; :let g:html_ignore_folding = 1</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:html_dynamic_folds" name="g:html_dynamic_folds">g:html_dynamic_folds</a><br>
Default: 0.<br>
When 0, text in a closed fold is not included at all in the generated HTML.<br>
When 1, generate javascript to open a fold and show the text within, just like<br>
in Vim.<br>
<br>
Setting this variable to 1 causes 2html.vim to always use CSS for styling,<br>
regardless of what&nbsp;<a class="Identifier" href="syntax.html#g:html_use_css">g:html_use_css</a>&nbsp;is set to.<br>
<br>
This variable is ignored when&nbsp;<a class="Identifier" href="syntax.html#g:html_ignore_folding">g:html_ignore_folding</a>&nbsp;is set.<br>
<br>
<div class="helpExample">&nbsp;&nbsp; :let g:html_dynamic_folds = 1</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:html_no_foldcolumn" name="g:html_no_foldcolumn">g:html_no_foldcolumn</a><br>
Default: 0.<br>
When 0, if&nbsp;<a class="Identifier" href="syntax.html#g:html_dynamic_folds">g:html_dynamic_folds</a>&nbsp;is 1, generate a column of text similar to<br>
Vim's foldcolumn (<a class="Identifier" href="fold.html#fold-foldcolumn">fold-foldcolumn</a>) the user can click on to toggle folds<br>
open or closed. The minimum width of the generated text column is the current<br>
<a class="Type" href="options.html#'foldcolumn'">'foldcolumn'</a>&nbsp;setting.<br>
When 1, do not generate this column; instead, hovering the mouse cursor over<br>
folded text will open the fold as if&nbsp;<a class="Identifier" href="syntax.html#g:html_hover_unfold">g:html_hover_unfold</a>&nbsp;were set.<br>
<br>
<div class="helpExample">&nbsp;&nbsp; :let g:html_no_foldcolumn = 1</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#TOhtml-uncopyable-text" name="TOhtml-uncopyable-text">TOhtml-uncopyable-text</a>&nbsp;<a class="Constant" href="syntax.html#g:html_prevent_copy" name="g:html_prevent_copy">g:html_prevent_copy</a><br>
Default: empty string.<br>
This option prevents certain regions of the generated HTML from being copied,<br>
when you select all text in document rendered in a browser and copy it. Useful<br>
for allowing users to copy-paste only the source text even if a fold column or<br>
line numbers are shown in the generated content. Specify regions to be<br>
affected in this way as follows:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fold column<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line numbers (also within fold text)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fold text<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;diff filler<br>
<br>
Example, to make the fold column and line numbers uncopyable:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let g:html_prevent_copy = &quot;fn&quot;</div>
<br>
This feature is currently implemented by inserting read-only&nbsp;<span class="Special">&lt;input&gt;</span>&nbsp;elements<br>
into the markup to contain the uncopyable areas. This does not work well in<br>
all cases. When pasting to some applications which understand HTML, the<br>
<span class="Special">&lt;input&gt;</span>&nbsp;elements also get pasted. But plain-text paste destinations should<br>
always work.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:html_no_invalid" name="g:html_no_invalid">g:html_no_invalid</a><br>
Default: 0.<br>
When 0, if&nbsp;<a class="Identifier" href="syntax.html#g:html_prevent_copy">g:html_prevent_copy</a>&nbsp;is non-empty, an invalid attribute is<br>
intentionally inserted into the&nbsp;<span class="Special">&lt;input&gt;</span>&nbsp;element for the uncopyable areas. This<br>
increases the number of applications you can paste to without also pasting the<br>
<span class="Special">&lt;input&gt;</span>&nbsp;elements. Specifically, Microsoft Word will not paste the&nbsp;<span class="Special">&lt;input&gt;</span><br>
elements if they contain this invalid attribute.<br>
When 1, no invalid markup is ever intentionally inserted, and the generated<br>
page should validate. However, be careful pasting into Microsoft Word when<br>
<a class="Identifier" href="syntax.html#g:html_prevent_copy">g:html_prevent_copy</a>&nbsp;is non-empty; it can be hard to get rid of the&nbsp;<span class="Special">&lt;input&gt;</span><br>
elements which get pasted.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:html_hover_unfold" name="g:html_hover_unfold">g:html_hover_unfold</a><br>
Default: 0.<br>
When 0, the only way to open a fold generated by 2html.vim with<br>
<a class="Identifier" href="syntax.html#g:html_dynamic_folds">g:html_dynamic_folds</a>&nbsp;set, is to click on the generated fold column.<br>
When 1, use CSS 2.0 to allow the user to open a fold by moving the mouse<br>
cursor over the displayed fold text. This is useful to allow users with<br>
disabled javascript to view the folded text.<br>
<br>
<span class="Todo">Note</span>&nbsp;that old browsers (notably Internet Explorer 6) will not support this<br>
feature.&nbsp;&nbsp;Browser-specific markup for IE6 is included to fall back to the<br>
normal CSS1 styling so that the folds show up correctly for this browser, but<br>
they will not be openable without a foldcolumn.<br>
<br>
<div class="helpExample">&nbsp;&nbsp; :let g:html_hover_unfold = 1</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:html_id_expr" name="g:html_id_expr">g:html_id_expr</a><br>
Default: &quot;&quot;<br>
Dynamic folding and jumping to line IDs rely on unique IDs within the document<br>
to work. If generated HTML is copied into a larger document, these IDs are no<br>
longer guaranteed to be unique. Set g:html_id_expr to an expression Vim can<br>
evaluate to get a unique string to append to each ID used in a given document,<br>
so that the full IDs will be unique even when combined with other content in a<br>
larger HTML document. Example, to append _ and the buffer number to each ID:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let g:html_id_expr = '&quot;_&quot;.bufnr(&quot;%&quot;)'</div>
<br>
To append a string &quot;_mystring&quot; to the end of each ID:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let g:html_id_expr = '&quot;_mystring&quot;'</div>
<br>
<span class="Todo">Note</span>, when converting a diff view to HTML, the expression will only be<br>
evaluated for the first window in the diff, and the result used for all the<br>
windows.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#TOhtml-wrap-text" name="TOhtml-wrap-text">TOhtml-wrap-text</a>&nbsp;<a class="Constant" href="syntax.html#g:html_pre_wrap" name="g:html_pre_wrap">g:html_pre_wrap</a><br>
Default: current&nbsp;<a class="Type" href="options.html#'wrap'">'wrap'</a>&nbsp;setting.<br>
When 0, if&nbsp;<a class="Identifier" href="syntax.html#g:html_no_pre">g:html_no_pre</a>&nbsp;is 0 or unset, the text in the generated HTML does<br>
not wrap at the edge of the browser window.<br>
When 1, if&nbsp;<a class="Identifier" href="syntax.html#g:html_use_css">g:html_use_css</a>&nbsp;is 1, the CSS 2.0 &quot;white-space:pre-wrap&quot; value is<br>
used, causing the text to wrap at whitespace at the edge of the browser<br>
window.<br>
Explicitly enable text wrapping:<br>
<div class="helpExample">&nbsp;&nbsp; :let g:html_pre_wrap = 1</div>
Explicitly disable wrapping:<br>
<div class="helpExample">&nbsp;&nbsp; :let g:html_pre_wrap = 0</div>
Go back to default, determine wrapping from&nbsp;<a class="Type" href="options.html#'wrap'">'wrap'</a>&nbsp;setting:<br>
<div class="helpExample">&nbsp;&nbsp; :unlet g:html_pre_wrap</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:html_no_pre" name="g:html_no_pre">g:html_no_pre</a><br>
Default: 0.<br>
When 0, buffer text in the generated HTML is surrounded by&nbsp;<span class="Special">&lt;pre&gt;</span>...&lt;/pre&gt;<br>
tags. Series of whitespace is shown as in Vim without special markup, and tab<br>
characters can be included literally (see&nbsp;<a class="Identifier" href="syntax.html#g:html_expand_tabs">g:html_expand_tabs</a>).<br>
When 1 (not recommended), the&nbsp;<span class="Special">&lt;pre&gt;</span>&nbsp;tags are omitted, and a plain&nbsp;<span class="Special">&lt;div&gt;</span>&nbsp;is<br>
used instead. Whitespace is replaced by a series of &amp;nbsp; character<br>
references, and&nbsp;<span class="Special">&lt;br&gt;</span>&nbsp;is used to end each line. This is another way to allow<br>
text in the generated HTML is wrap (see&nbsp;<a class="Identifier" href="syntax.html#g:html_pre_wrap">g:html_pre_wrap</a>) which also works in<br>
old browsers, but may cause noticeable differences between Vim's display and<br>
the rendered page generated by 2html.vim.<br>
<br>
<div class="helpExample">&nbsp;&nbsp; :let g:html_no_pre = 1</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:html_expand_tabs" name="g:html_expand_tabs">g:html_expand_tabs</a><br>
Default: 1 if&nbsp;<a class="Type" href="options.html#'tabstop'">'tabstop'</a>&nbsp;is 8,&nbsp;<a class="Type" href="options.html#'expandtab'">'expandtab'</a>&nbsp;is 0, and no fold column or line<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numbers occur in the generated HTML;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 otherwise.<br>
When 0,&nbsp;<span class="Special">&lt;Tab&gt;</span>&nbsp;characters in the buffer text are replaced with an appropriate<br>
number of space characters, or &amp;nbsp; references if&nbsp;<a class="Identifier" href="syntax.html#g:html_no_pre">g:html_no_pre</a>&nbsp;is 1.<br>
When 1, if&nbsp;<a class="Identifier" href="syntax.html#g:html_no_pre">g:html_no_pre</a>&nbsp;is 0 or unset,&nbsp;<span class="Special">&lt;Tab&gt;</span>&nbsp;characters in the buffer text<br>
are included as-is in the generated HTML. This is useful for when you want to<br>
allow copy and paste from a browser without losing the actual whitespace in<br>
the source document.&nbsp;<span class="Todo">Note</span>&nbsp;that this can easily break text alignment and<br>
indentation in the HTML, unless set by default.<br>
<br>
Force&nbsp;<a class="Identifier" href="syntax.html#2html.vim">2html.vim</a>&nbsp;to keep&nbsp;<span class="Special">&lt;Tab&gt;</span>&nbsp;characters:<br>
<div class="helpExample">&nbsp;&nbsp; :let g:html_expand_tabs = 0</div>
<br>
Force tabs to be expanded:<br>
<div class="helpExample">&nbsp;&nbsp; :let g:html_expand_tabs = 1</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#TOhtml-encoding-detect" name="TOhtml-encoding-detect">TOhtml-encoding-detect</a>&nbsp;<a class="Constant" href="syntax.html#TOhtml-encoding" name="TOhtml-encoding">TOhtml-encoding</a><br>
It is highly recommended to set your desired encoding with<br>
<a class="Identifier" href="syntax.html#g:html_use_encoding">g:html_use_encoding</a>&nbsp;for any content which will be placed on a web server.<br>
<br>
If you do not specify an encoding,&nbsp;<a class="Identifier" href="syntax.html#2html.vim">2html.vim</a>&nbsp;uses the preferred IANA name<br>
for the current value of&nbsp;<a class="Type" href="options.html#'fileencoding'">'fileencoding'</a>&nbsp;if set, or&nbsp;<a class="Type" href="options.html#'encoding'">'encoding'</a>&nbsp;if not.<br>
<a class="Type" href="options.html#'encoding'">'encoding'</a>&nbsp;is always used for certain&nbsp;<a class="Type" href="options.html#'buftype'">'buftype'</a>&nbsp;values.&nbsp;<a class="Type" href="options.html#'fileencoding'">'fileencoding'</a>&nbsp;will be<br>
set to match the chosen document encoding.<br>
<br>
Automatic detection works for the encodings mentioned specifically by name in<br>
<a class="Identifier" href="mbyte.html#encoding-names">encoding-names</a>, but TOhtml will only automatically use those encodings with<br>
wide browser support. However, you can override this to support specific<br>
encodings that may not be automatically detected by default (see options<br>
below). See&nbsp;<span class="Constant"><a href="http://www.iana.org/assignments/character-sets">http://www.iana.org/assignments/character-sets</a></span>&nbsp;for the IANA names.<br>
<br>
<span class="Todo">Note</span>, by default all Unicode encodings are converted to UTF-8 with no BOM in<br>
the generated HTML, as recommended by W3C:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Constant"><a href="http://www.w3.org/International/questions/qa-choosing-encodings">http://www.w3.org/International/questions/qa-choosing-encodings</a></span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Constant"><a href="http://www.w3.org/International/questions/qa-byte-order-mark">http://www.w3.org/International/questions/qa-byte-order-mark</a></span><br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:html_use_encoding" name="g:html_use_encoding">g:html_use_encoding</a><br>
Default: none, uses IANA name for current&nbsp;<a class="Type" href="options.html#'fileencoding'">'fileencoding'</a>&nbsp;as above.<br>
To overrule all automatic charset detection, set g:html_use_encoding to the<br>
name of the charset to be used. It is recommended to set this variable to<br>
something widely supported, like UTF-8, for anything you will be hosting on a<br>
webserver:<br>
<div class="helpExample">&nbsp;&nbsp; :let g:html_use_encoding = &quot;UTF-8&quot;</div>
You can also use this option to omit the line that specifies the charset<br>
entirely, by setting g:html_use_encoding to an empty string (NOT recommended):<br>
<div class="helpExample">&nbsp;&nbsp; :let g:html_use_encoding = &quot;&quot;</div>
To go back to the automatic mechanism, delete the&nbsp;<a class="Identifier" href="syntax.html#g:html_use_encoding">g:html_use_encoding</a><br>
variable:<br>
<div class="helpExample">&nbsp;&nbsp; :unlet g:html_use_encoding</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:html_encoding_override" name="g:html_encoding_override">g:html_encoding_override</a><br>
Default: none, autoload/tohtml.vim contains default conversions for encodings<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mentioned by name at&nbsp;<a class="Identifier" href="mbyte.html#encoding-names">encoding-names</a>.<br>
This option allows&nbsp;<a class="Identifier" href="syntax.html#2html.vim">2html.vim</a>&nbsp;to detect the correct&nbsp;<a class="Type" href="options.html#'fileencoding'">'fileencoding'</a>&nbsp;when you<br>
specify an encoding with&nbsp;<a class="Identifier" href="syntax.html#g:html_use_encoding">g:html_use_encoding</a>&nbsp;which is not in the default<br>
list of conversions.<br>
<br>
This is a dictionary of charset-encoding pairs that will replace existing<br>
pairs automatically detected by TOhtml, or supplement with new pairs.<br>
<br>
Detect the HTML charset &quot;windows-1252&quot; as the encoding &quot;8bit-cp1252&quot;:<br>
<div class="helpExample">&nbsp;&nbsp; :let g:html_encoding_override = {'windows-1252': '8bit-cp1252'}</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:html_charset_override" name="g:html_charset_override">g:html_charset_override</a><br>
Default: none, autoload/tohtml.vim contains default conversions for encodings<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mentioned by name at&nbsp;<a class="Identifier" href="mbyte.html#encoding-names">encoding-names</a>&nbsp;and which have wide<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;browser support.<br>
This option allows&nbsp;<a class="Identifier" href="syntax.html#2html.vim">2html.vim</a>&nbsp;to detect the HTML charset for any<br>
<a class="Type" href="options.html#'fileencoding'">'fileencoding'</a>&nbsp;or&nbsp;<a class="Type" href="options.html#'encoding'">'encoding'</a>&nbsp;which is not detected automatically. You can also<br>
use it to override specific existing encoding-charset pairs. For example,<br>
TOhtml will by default use UTF-8 for all Unicode/UCS encodings. To use UTF-16<br>
and UTF-32 instead, use:<br>
<div class="helpExample">&nbsp;&nbsp; :let g:html_charset_override = {'ucs-4': 'UTF-32', 'utf-16': 'UTF-16'}</div>
<br>
<span class="Todo">Note</span>&nbsp;that documents encoded in either UTF-32 or UTF-16 have known<br>
compatibility problems with some major browsers.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:html_font" name="g:html_font">g:html_font</a><br>
Default: &quot;monospace&quot;<br>
You can specify the font or fonts used in the converted document using<br>
g:html_font. If this option is set to a string, then the value will be<br>
surrounded with single quotes. If this option is set to a list then each list<br>
item is surrounded by single quotes and the list is joined with commas. Either<br>
way, &quot;monospace&quot; is added as the fallback generic family name and the entire<br>
result used as the font family (using CSS) or font face (if not using CSS).<br>
Examples:<br>
<br>
<div class="helpExample">&nbsp;&nbsp; &quot; font-family: 'Consolas', monospace;<br>
&nbsp;&nbsp; :let g:html_font = &quot;Consolas&quot;</div>
<br>
<div class="helpExample">&nbsp;&nbsp; &quot; font-family: 'DejaVu Sans Mono', 'Consolas', monospace;<br>
&nbsp;&nbsp; :let g:html_font = [&quot;DejaVu Sans Mono&quot;, &quot;Consolas&quot;]</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#convert-to-XML" name="convert-to-XML">convert-to-XML</a>&nbsp;<a class="Constant" href="syntax.html#convert-to-XHTML" name="convert-to-XHTML">convert-to-XHTML</a>&nbsp;<a class="Constant" href="syntax.html#g:html_use_xhtml" name="g:html_use_xhtml">g:html_use_xhtml</a><br>
Default: 0.<br>
When 0, generate standard HTML 4.01 (strict when possible).<br>
When 1, generate XHTML 1.0 instead (XML compliant HTML).<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;:let g:html_use_xhtml = 1</div>
<br>
<br>
<span class="Statement">ABEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#abel.vim" name="abel.vim">abel.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-abel-syntax" name="ft-abel-syntax">ft-abel-syntax</a><br>
<br>
ABEL highlighting provides some user-defined options.&nbsp;&nbsp;To enable them, assign<br>
any value to the respective variable.&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let abel_obsolete_ok=1</div>
To disable them use &quot;:unlet&quot;.&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:unlet abel_obsolete_ok</div>
<br>
<span class="PreProc">Variable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Highlight</span><br>
abel_obsolete_ok&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;obsolete keywords are statements, not errors<br>
abel_cpp_comments_illegal&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do not interpret '//' as inline comment leader<br>
<br>
<br>
ADA<br>
<br>
See&nbsp;<a class="Identifier" href="ft_ada.html#ft-ada-syntax">ft-ada-syntax</a><br>
<br>
<br>
<span class="Statement">ANT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#ant.vim" name="ant.vim">ant.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-ant-syntax" name="ft-ant-syntax">ft-ant-syntax</a><br>
<br>
The ant syntax file provides syntax highlighting for javascript and python<br>
by default.&nbsp;&nbsp;Syntax highlighting for other script languages can be installed<br>
by the function AntSyntaxScript(), which takes the tag name as first argument<br>
and the script syntax file name as second argument.&nbsp;&nbsp;Example:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:call AntSyntaxScript('perl', 'perl.vim')</div>
<br>
will install syntax perl highlighting for the following ant code<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;script language = 'perl'&gt;&lt;![CDATA[<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# everything inside is highlighted as perl<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]]&gt;&lt;/script&gt;</div>
<br>
See&nbsp;<a class="Identifier" href="syntax.html#mysyntaxfile-add">mysyntaxfile-add</a>&nbsp;for installing script languages permanently.<br>
<br>
<br>
<span class="Statement">APACHE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#apache.vim" name="apache.vim">apache.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-apache-syntax" name="ft-apache-syntax">ft-apache-syntax</a><br>
<br>
The apache syntax file provides syntax highlighting depending on Apache HTTP<br>
server version, by default for 1.3.x.&nbsp;&nbsp;Set &quot;apache_version&quot; to Apache version<br>
(as a string) to get highlighting for another version.&nbsp;&nbsp;Example:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let apache_version = &quot;2.0&quot;</div>
<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#asm.vim" name="asm.vim">asm.vim</a>&nbsp;<a class="Constant" href="syntax.html#asmh8300.vim" name="asmh8300.vim">asmh8300.vim</a>&nbsp;<a class="Constant" href="syntax.html#nasm.vim" name="nasm.vim">nasm.vim</a>&nbsp;<a class="Constant" href="syntax.html#masm.vim" name="masm.vim">masm.vim</a>&nbsp;<a class="Constant" href="syntax.html#asm68k" name="asm68k">asm68k</a><br>
<span class="Statement">ASSEMBLY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#ft-asm-syntax" name="ft-asm-syntax">ft-asm-syntax</a>&nbsp;<a class="Constant" href="syntax.html#ft-asmh8300-syntax" name="ft-asmh8300-syntax">ft-asmh8300-syntax</a>&nbsp;<a class="Constant" href="syntax.html#ft-nasm-syntax" name="ft-nasm-syntax">ft-nasm-syntax</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#ft-masm-syntax" name="ft-masm-syntax">ft-masm-syntax</a>&nbsp;<a class="Constant" href="syntax.html#ft-asm68k-syntax" name="ft-asm68k-syntax">ft-asm68k-syntax</a>&nbsp;<a class="Constant" href="syntax.html#fasm.vim" name="fasm.vim">fasm.vim</a><br>
<br>
Files matching &quot;*.i&quot; could be Progress or Assembly.&nbsp;&nbsp;If the automatic detection<br>
doesn't work for you, or you don't edit Progress at all, use this in your<br>
startup vimrc:<br>
<div class="helpExample">&nbsp;&nbsp; :let filetype_i = &quot;asm&quot;</div>
Replace &quot;asm&quot; with the type of assembly you use.<br>
<br>
There are many types of assembly languages that all use the same file name<br>
extensions.&nbsp;&nbsp;Therefore you will have to select the type yourself, or add a<br>
line in the assembly file that Vim will recognize.&nbsp;&nbsp;Currently these syntax<br>
files are included:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;asm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GNU assembly (the default)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;asm68k&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Motorola 680x0 assembly<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;asmh8300&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hitachi H-8300 version of GNU assembly<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ia64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Intel Itanium 64<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fasm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Flat assembly (<span class="Constant"><a href="http://flatassembler.net">http://flatassembler.net</a></span>)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;masm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Microsoft assembly (probably works for any 80x86)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nasm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Netwide assembly<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Turbo Assembly (with opcodes 80x86 up to Pentium, and<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MMX)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pic&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PIC assembly (currently for PIC16F84)<br>
<br>
The most flexible is to add a line in your assembly file containing:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;asmsyntax=nasm</div>
Replace &quot;nasm&quot; with the name of the real assembly syntax.&nbsp;&nbsp;This line must be<br>
one of the first five lines in the file.&nbsp;&nbsp;No non-white text must be<br>
immediately before or after this text.&nbsp;&nbsp;<span class="Todo">Note</span>&nbsp;that specifying asmsyntax=foo is<br>
equivalent to setting ft=foo in a&nbsp;<a class="Identifier" href="options.html#modeline">modeline</a>, and that in case of a conflict<br>
between the two settings the one from the modeline will take precedence (in<br>
particular, if you have ft=asm in the modeline, you will get the GNU syntax<br>
highlighting regardless of what is specified as asmsyntax).<br>
<br>
The syntax type can always be overruled for a specific buffer by setting the<br>
b:asmsyntax variable:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let b:asmsyntax = &quot;nasm&quot;</div>
<br>
If b:asmsyntax is not set, either automatically or by hand, then the value of<br>
the global variable asmsyntax is used.&nbsp;&nbsp;This can be seen as a default assembly<br>
language:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let asmsyntax = &quot;nasm&quot;</div>
<br>
As a last resort, if nothing is defined, the &quot;asm&quot; syntax is used.<br>
<br>
<br>
<span class="PreProc">Netwide assembler (nasm.vim) optional highlighting</span><br>
<br>
To enable a feature:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let&nbsp;&nbsp; {variable}=1|set syntax=nasm</div>
To disable a feature:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:unlet {variable}&nbsp;&nbsp;|set syntax=nasm</div>
<br>
<span class="PreProc">Variable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Highlight</span><br>
nasm_loose_syntax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unofficial parser allowed syntax not as Error<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(parser dependent; not recommended)<br>
nasm_ctx_outside_macro&nbsp;&nbsp;contexts outside macro not as Error<br>
nasm_no_warn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;potentially risky syntax not as ToDo<br>
<br>
<br>
ASPPERL and ASPVBS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#ft-aspperl-syntax" name="ft-aspperl-syntax">ft-aspperl-syntax</a>&nbsp;<a class="Constant" href="syntax.html#ft-aspvbs-syntax" name="ft-aspvbs-syntax">ft-aspvbs-syntax</a><br>
<br>
*.asp and *.asa files could be either Perl or Visual Basic script.&nbsp;&nbsp;Since it's<br>
hard to detect this you can set two global variables to tell Vim what you are<br>
using.&nbsp;&nbsp;For Perl script use:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let g:filetype_asa = &quot;aspperl&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let g:filetype_asp = &quot;aspperl&quot;</div>
For Visual Basic use:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let g:filetype_asa = &quot;aspvbs&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let g:filetype_asp = &quot;aspvbs&quot;</div>
<br>
<br>
<span class="Statement">BAAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#baan.vim" name="baan.vim">baan.vim</a>&nbsp;<a class="Constant" href="syntax.html#baan-syntax" name="baan-syntax">baan-syntax</a><br>
<br>
The baan.vim gives syntax support for BaanC of release BaanIV upto SSA ERP LN<br>
for both 3 GL and 4 GL programming. Large number of standard defines/constants<br>
are supported.<br>
<br>
Some special violation of coding standards will be signalled when one specify<br>
in ones&nbsp;<a class="Identifier" href="starting.html#.vimrc">.vimrc</a>:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let baan_code_stds=1</div>
<br>
<a class="Constant" href="syntax.html#baan-folding" name="baan-folding">baan-folding</a><br>
<br>
Syntax folding can be enabled at various levels through the variables<br>
mentioned below (Set those in your&nbsp;<a class="Identifier" href="starting.html#.vimrc">.vimrc</a>). The more complex folding on<br>
source blocks and SQL can be CPU intensive.<br>
<br>
To allow any folding and enable folding at function level use:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let baan_fold=1</div>
Folding can be enabled at source block level as if, while, for ,... The<br>
indentation preceding the begin/end keywords has to match (spaces are not<br>
considered equal to a tab).<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let baan_fold_block=1</div>
Folding can be enabled for embedded SQL blocks as SELECT, SELECTDO,<br>
SELECTEMPTY, ... The indentation preceding the begin/end keywords has to<br>
match (spaces are not considered equal to a tab).<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let baan_fold_sql=1</div>
<span class="Todo">Note</span>: Block folding can result in many small folds. It is suggested to&nbsp;<a class="Identifier" href="options.html#:set">:set</a><br>
the options&nbsp;<a class="Type" href="options.html#'foldminlines'">'foldminlines'</a>&nbsp;and&nbsp;<a class="Type" href="options.html#'foldnestmax'">'foldnestmax'</a>&nbsp;in&nbsp;<a class="Identifier" href="starting.html#.vimrc">.vimrc</a>&nbsp;or use&nbsp;<a class="Identifier" href="options.html#:setlocal">:setlocal</a>&nbsp;in<br>
.../after/syntax/baan.vim (see&nbsp;<a class="Identifier" href="options.html#after-directory">after-directory</a>). Eg:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set foldminlines=5<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set foldnestmax=6</div>
<br>
<br>
<span class="Statement">BASIC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#basic.vim" name="basic.vim">basic.vim</a>&nbsp;<a class="Constant" href="syntax.html#vb.vim" name="vb.vim">vb.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-basic-syntax" name="ft-basic-syntax">ft-basic-syntax</a>&nbsp;<a class="Constant" href="syntax.html#ft-vb-syntax" name="ft-vb-syntax">ft-vb-syntax</a><br>
<br>
Both Visual Basic and &quot;normal&quot; basic use the extension &quot;.bas&quot;.&nbsp;&nbsp;To detect<br>
which one should be used, Vim checks for the string &quot;VB_Name&quot; in the first<br>
five lines of the file.&nbsp;&nbsp;If it is not found, filetype will be &quot;basic&quot;,<br>
otherwise &quot;vb&quot;.&nbsp;&nbsp;Files with the &quot;.frm&quot; extension will always be seen as Visual<br>
Basic.<br>
<br>
<br>
<span class="Statement">C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#c.vim" name="c.vim">c.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-c-syntax" name="ft-c-syntax">ft-c-syntax</a><br>
<br>
A few things in C highlighting are optional.&nbsp;&nbsp;To enable them assign any value<br>
to the respective variable.&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let c_comment_strings = 1</div>
To disable them use &quot;:unlet&quot;.&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:unlet c_comment_strings</div>
<br>
<span class="PreProc">Variable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Highlight</span><br>
<a class="Constant" href="syntax.html#c_gnu" name="c_gnu">c_gnu</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GNU gcc specific items<br>
<a class="Constant" href="syntax.html#c_comment_strings" name="c_comment_strings">c_comment_strings</a>&nbsp;&nbsp;&nbsp;&nbsp; strings and numbers inside a comment<br>
<a class="Constant" href="syntax.html#c_space_errors" name="c_space_errors">c_space_errors</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;trailing white space and spaces before a&nbsp;<span class="Special">&lt;Tab&gt;</span><br>
<a class="Constant" href="syntax.html#c_no_trail_space_error" name="c_no_trail_space_error">c_no_trail_space_error</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... but no trailing spaces<br>
<a class="Constant" href="syntax.html#c_no_tab_space_error" name="c_no_tab_space_error">c_no_tab_space_error</a>&nbsp;&nbsp; ... but no spaces before a&nbsp;<span class="Special">&lt;Tab&gt;</span><br>
<a class="Constant" href="syntax.html#c_no_bracket_error" name="c_no_bracket_error">c_no_bracket_error</a>&nbsp;&nbsp;&nbsp;&nbsp;don't highlight {}; inside [] as errors<br>
<a class="Constant" href="syntax.html#c_no_curly_error" name="c_no_curly_error">c_no_curly_error</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't highlight {}; inside [] and () as errors;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;except { and } in first column<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default is to highlight them, otherwise you<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;can't spot a missing &quot;)&quot;.<br>
<a class="Constant" href="syntax.html#c_curly_error" name="c_curly_error">c_curly_error</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; highlight a missing }; this forces syncing from the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start of the file, can be slow<br>
<a class="Constant" href="syntax.html#c_no_ansi" name="c_no_ansi">c_no_ansi</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; don't do standard ANSI types and constants<br>
<a class="Constant" href="syntax.html#c_ansi_typedefs" name="c_ansi_typedefs">c_ansi_typedefs</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;... but do standard ANSI types<br>
<a class="Constant" href="syntax.html#c_ansi_constants" name="c_ansi_constants">c_ansi_constants</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... but do standard ANSI constants<br>
<a class="Constant" href="syntax.html#c_no_utf" name="c_no_utf">c_no_utf</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't highlight \u and \U in strings<br>
<a class="Constant" href="syntax.html#c_syntax_for_h" name="c_syntax_for_h">c_syntax_for_h</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for *.h files use C syntax instead of C++ and use objc<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;syntax instead of objcpp<br>
<a class="Constant" href="syntax.html#c_no_if0" name="c_no_if0">c_no_if0</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't highlight &quot;#if 0&quot; blocks as comments<br>
<a class="Constant" href="syntax.html#c_no_cformat" name="c_no_cformat">c_no_cformat</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't highlight %-formats in strings<br>
<a class="Constant" href="syntax.html#c_no_c99" name="c_no_c99">c_no_c99</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't highlight C99 standard items<br>
<a class="Constant" href="syntax.html#c_no_c11" name="c_no_c11">c_no_c11</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't highlight C11 standard items<br>
<a class="Constant" href="syntax.html#c_no_bsd" name="c_no_bsd">c_no_bsd</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't highlight BSD specific types<br>
<br>
When&nbsp;<a class="Type" href="options.html#'foldmethod'">'foldmethod'</a>&nbsp;is set to &quot;syntax&quot; then /* */ comments and { } blocks will<br>
become a fold.&nbsp;&nbsp;If you don't want comments to become a fold use:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let c_no_comment_fold = 1</div>
&quot;#if 0&quot; blocks are also folded, unless:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let c_no_if0_fold = 1</div>
<br>
If you notice highlighting errors while scrolling backwards, which are fixed<br>
when redrawing with&nbsp;<span class="Special">CTRL-L</span>, try setting the &quot;c_minlines&quot; internal variable<br>
to a larger number:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let c_minlines = 100</div>
This will make the syntax synchronization start 100 lines before the first<br>
displayed line.&nbsp;&nbsp;The default value is 50 (15 when c_no_if0 is set).&nbsp;&nbsp;The<br>
disadvantage of using a larger number is that redrawing can become slow.<br>
<br>
When using the &quot;#if 0&quot; / &quot;#endif&quot; comment highlighting, notice that this only<br>
works when the &quot;#if 0&quot; is within &quot;c_minlines&quot; from the top of the window.&nbsp;&nbsp;If<br>
you have a long &quot;#if 0&quot; construct it will not be highlighted correctly.<br>
<br>
To match extra items in comments, use the cCommentGroup cluster.<br>
Example:<br>
<div class="helpExample">&nbsp;&nbsp; :au Syntax c call MyCadd()<br>
&nbsp;&nbsp; :function MyCadd()<br>
&nbsp;&nbsp; :&nbsp;&nbsp;syn keyword cMyItem contained Ni<br>
&nbsp;&nbsp; :&nbsp;&nbsp;syn cluster cCommentGroup add=cMyItem<br>
&nbsp;&nbsp; :&nbsp;&nbsp;hi link cMyItem Title<br>
&nbsp;&nbsp; :endfun</div>
<br>
ANSI constants will be highlighted with the &quot;cConstant&quot; group.&nbsp;&nbsp;This includes<br>
&quot;NULL&quot;, &quot;SIG_IGN&quot; and others.&nbsp;&nbsp;But not &quot;TRUE&quot;, for example, because this is<br>
not in the ANSI standard.&nbsp;&nbsp;If you find this confusing, remove the cConstant<br>
highlighting:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:hi link cConstant NONE</div>
<br>
If you see '{' and '}' highlighted as an error where they are OK, reset the<br>
highlighting for cErrInParen and cErrInBracket.<br>
<br>
If you want to use folding in your C files, you can add these lines in a file<br>
in the &quot;after&quot; directory in&nbsp;<a class="Type" href="options.html#'runtimepath'">'runtimepath'</a>.&nbsp;&nbsp;For Unix this would be<br>
~/.vim/after/syntax/c.vim.<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;syn sync fromstart<br>
&nbsp;&nbsp;&nbsp;&nbsp;set foldmethod=syntax</div>
<br>
<span class="Statement">CH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#ch.vim" name="ch.vim">ch.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-ch-syntax" name="ft-ch-syntax">ft-ch-syntax</a><br>
<br>
C/C++ interpreter.&nbsp;&nbsp;Ch has similar syntax highlighting to C and builds upon<br>
the C syntax file.&nbsp;&nbsp;See&nbsp;<a class="Identifier" href="syntax.html#c.vim">c.vim</a>&nbsp;for all the settings that are available for C.<br>
<br>
By setting a variable you can tell Vim to use Ch syntax for *.h files, instead<br>
of C or C++:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let ch_syntax_for_h = 1</div>
<br>
<br>
<span class="Statement">CHILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#chill.vim" name="chill.vim">chill.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-chill-syntax" name="ft-chill-syntax">ft-chill-syntax</a><br>
<br>
Chill syntax highlighting is similar to C.&nbsp;&nbsp;See&nbsp;<a class="Identifier" href="syntax.html#c.vim">c.vim</a>&nbsp;for all the settings<br>
that are available.&nbsp;&nbsp;Additionally there is:<br>
<br>
chill_space_errors&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;like c_space_errors<br>
chill_comment_string&nbsp;&nbsp;&nbsp;&nbsp;like c_comment_strings<br>
chill_minlines&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;like c_minlines<br>
<br>
<br>
<span class="Statement">CHANGELOG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#changelog.vim" name="changelog.vim">changelog.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-changelog-syntax" name="ft-changelog-syntax">ft-changelog-syntax</a><br>
<br>
ChangeLog supports highlighting spaces at the start of a line.<br>
If you do not like this, add following line to your .vimrc:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:changelog_spacing_errors = 0</div>
This works the next time you edit a changelog file.&nbsp;&nbsp;You can also use<br>
&quot;b:changelog_spacing_errors&quot; to set this per buffer (before loading the syntax<br>
file).<br>
<br>
You can change the highlighting used, e.g., to flag the spaces as an error:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:hi link ChangelogError Error</div>
Or to avoid the highlighting:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:hi link ChangelogError NONE</div>
This works immediately.<br>
<br>
<br>
<span class="Statement">CLOJURE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#ft-clojure-syntax" name="ft-clojure-syntax">ft-clojure-syntax</a><br>
<br>
The default syntax groups can be augmented through the<br>
<a class="Constant" href="syntax.html#g:clojure_syntax_keywords" name="g:clojure_syntax_keywords">g:clojure_syntax_keywords</a>&nbsp;and&nbsp;<a class="Constant" href="syntax.html#b:clojure_syntax_keywords" name="b:clojure_syntax_keywords">b:clojure_syntax_keywords</a>&nbsp;variables. The<br>
value should be a&nbsp;<a class="Identifier" href="eval.html#Dictionary">Dictionary</a>&nbsp;of syntax group names to a&nbsp;<a class="Identifier" href="eval.html#List">List</a>&nbsp;of custom<br>
identifiers:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:clojure_syntax_keywords = {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\ 'clojureMacro': [&quot;defproject&quot;, &quot;defcustom&quot;],<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\ 'clojureFunc': [&quot;string/join&quot;, &quot;string/replace&quot;]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\ }</div>
<br>
Refer to the Clojure syntax script for valid syntax group names.<br>
<br>
If the&nbsp;<a class="Identifier" href="eval.html#buffer-variable">buffer-variable</a>&nbsp;<a class="Constant" href="syntax.html#b:clojure_syntax_without_core_keywords" name="b:clojure_syntax_without_core_keywords">b:clojure_syntax_without_core_keywords</a>&nbsp;is set, only<br>
language constants and special forms are matched.<br>
<br>
Setting&nbsp;<a class="Constant" href="syntax.html#g:clojure_fold" name="g:clojure_fold">g:clojure_fold</a>&nbsp;enables folding Clojure code via the syntax engine.<br>
Any list, vector, or map that extends over more than one line can be folded<br>
using the standard Vim&nbsp;<a class="Identifier" href="fold.html#fold-commands">fold-commands</a>.<br>
<br>
Please&nbsp;<span class="Todo">note</span>&nbsp;that this option does not work with scripts that redefine the<br>
bracket syntax regions, such as rainbow-parentheses plugins.<br>
<br>
This option is off by default.<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot; Default<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:clojure_fold = 0</div>
<br>
<br>
<span class="Statement">COBOL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#cobol.vim" name="cobol.vim">cobol.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-cobol-syntax" name="ft-cobol-syntax">ft-cobol-syntax</a><br>
<br>
COBOL highlighting has different needs for legacy code than it does for fresh<br>
development.&nbsp;&nbsp;This is due to differences in what is being done (maintenance<br>
versus development) and other factors.&nbsp;&nbsp;To enable legacy code highlighting,<br>
add this line to your .vimrc:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let cobol_legacy_code = 1</div>
To disable it again, use this:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:unlet cobol_legacy_code</div>
<br>
<br>
<span class="Statement">COLD FUSION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#coldfusion.vim" name="coldfusion.vim">coldfusion.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-coldfusion-syntax" name="ft-coldfusion-syntax">ft-coldfusion-syntax</a><br>
<br>
The ColdFusion has its own version of HTML comments.&nbsp;&nbsp;To turn on ColdFusion<br>
comment highlighting, add the following line to your startup file:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let html_wrong_comments = 1</div>
<br>
The ColdFusion syntax file is based on the HTML syntax file.<br>
<br>
<br>
<span class="Statement">CPP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#cpp.vim" name="cpp.vim">cpp.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-cpp-syntax" name="ft-cpp-syntax">ft-cpp-syntax</a><br>
<br>
Most of things are same as&nbsp;<a class="Identifier" href="syntax.html#ft-c-syntax">ft-c-syntax</a>.<br>
<br>
<span class="PreProc">Variable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Highlight</span><br>
cpp_no_cpp11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't highlight C++11 standard items<br>
cpp_no_cpp14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't highlight C++14 standard items<br>
<br>
<br>
<span class="Statement">CSH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#csh.vim" name="csh.vim">csh.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-csh-syntax" name="ft-csh-syntax">ft-csh-syntax</a><br>
<br>
This covers the shell named &quot;csh&quot;.&nbsp;&nbsp;<span class="Todo">Note</span>&nbsp;that on some systems tcsh is actually<br>
used.<br>
<br>
Detecting whether a file is csh or tcsh is notoriously hard.&nbsp;&nbsp;Some systems<br>
symlink /bin/csh to /bin/tcsh, making it almost impossible to distinguish<br>
between csh and tcsh.&nbsp;&nbsp;In case VIM guesses wrong you can set the<br>
&quot;filetype_csh&quot; variable.&nbsp;&nbsp;For using csh:&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:filetype_csh" name="g:filetype_csh">g:filetype_csh</a><br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let g:filetype_csh = &quot;csh&quot;</div>
<br>
For using tcsh:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let g:filetype_csh = &quot;tcsh&quot;</div>
<br>
Any script with a tcsh extension or a standard tcsh filename (.tcshrc,<br>
tcsh.tcshrc, tcsh.login) will have filetype tcsh.&nbsp;&nbsp;All other tcsh/csh scripts<br>
will be classified as tcsh, UNLESS the &quot;filetype_csh&quot; variable exists.&nbsp;&nbsp;If the<br>
&quot;filetype_csh&quot; variable exists, the filetype will be set to the value of the<br>
variable.<br>
<br>
<br>
<span class="Statement">CYNLIB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#cynlib.vim" name="cynlib.vim">cynlib.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-cynlib-syntax" name="ft-cynlib-syntax">ft-cynlib-syntax</a><br>
<br>
Cynlib files are C++ files that use the Cynlib class library to enable<br>
hardware modelling and simulation using C++.&nbsp;&nbsp;Typically Cynlib files have a .cc<br>
or a .cpp extension, which makes it very difficult to distinguish them from a<br>
normal C++ file.&nbsp;&nbsp;Thus, to enable Cynlib highlighting for .cc files, add this<br>
line to your .vimrc file:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let cynlib_cyntax_for_cc=1</div>
<br>
Similarly for cpp files (this extension is only usually used in Windows)<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let cynlib_cyntax_for_cpp=1</div>
<br>
To disable these again, use this:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:unlet cynlib_cyntax_for_cc<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:unlet cynlib_cyntax_for_cpp</div>
<br>
<br>
<span class="Statement">CWEB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#cweb.vim" name="cweb.vim">cweb.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-cweb-syntax" name="ft-cweb-syntax">ft-cweb-syntax</a><br>
<br>
Files matching &quot;*.w&quot; could be Progress or cweb.&nbsp;&nbsp;If the automatic detection<br>
doesn't work for you, or you don't edit Progress at all, use this in your<br>
startup vimrc:<br>
<div class="helpExample">&nbsp;&nbsp; :let filetype_w = &quot;cweb&quot;</div>
<br>
<br>
<span class="Statement">DESKTOP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#desktop.vim" name="desktop.vim">desktop.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-desktop-syntax" name="ft-desktop-syntax">ft-desktop-syntax</a><br>
<br>
Primary goal of this syntax file is to highlight .desktop and .directory files<br>
according to freedesktop.org standard:<br>
<span class="Constant"><a href="http://standards.freedesktop.org/desktop-entry-spec/latest/">http://standards.freedesktop.org/desktop-entry-spec/latest/</a></span><br>
But actually almost none implements this standard fully.&nbsp;&nbsp;Thus it will<br>
highlight all Unix ini files.&nbsp;&nbsp;But you can force strict highlighting according<br>
to standard by placing this in your vimrc file:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let enforce_freedesktop_standard = 1</div>
<br>
<br>
<span class="Statement">DIFF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#diff.vim" name="diff.vim">diff.vim</a><br>
<br>
The diff highlighting normally finds translated headers.&nbsp;&nbsp;This can be slow if<br>
there are very long lines in the file.&nbsp;&nbsp;To disable translations:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let diff_translations = 0</div>
<br>
Also see&nbsp;<a class="Identifier" href="diff.html#diff-slow">diff-slow</a>.<br>
<br>
<br>
<span class="Statement">DIRCOLORS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#dircolors.vim" name="dircolors.vim">dircolors.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-dircolors-syntax" name="ft-dircolors-syntax">ft-dircolors-syntax</a><br>
<br>
The dircolors utility highlighting definition has one option.&nbsp;&nbsp;It exists to<br>
provide compatibility with the Slackware GNU/Linux distributions version of<br>
the command.&nbsp;&nbsp;It adds a few keywords that are generally ignored by most<br>
versions.&nbsp;&nbsp;On Slackware systems, however, the utility accepts the keywords and<br>
uses them for processing.&nbsp;&nbsp;To enable the Slackware keywords add the following<br>
line to your startup file:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let dircolors_is_slackware = 1</div>
<br>
<br>
<span class="Statement">DOCBOOK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#docbk.vim" name="docbk.vim">docbk.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-docbk-syntax" name="ft-docbk-syntax">ft-docbk-syntax</a>&nbsp;<a class="Constant" href="syntax.html#docbook" name="docbook">docbook</a><br>
<span class="Statement">DOCBOOK XML&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#docbkxml.vim" name="docbkxml.vim">docbkxml.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-docbkxml-syntax" name="ft-docbkxml-syntax">ft-docbkxml-syntax</a><br>
<span class="Statement">DOCBOOK SGML&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#docbksgml.vim" name="docbksgml.vim">docbksgml.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-docbksgml-syntax" name="ft-docbksgml-syntax">ft-docbksgml-syntax</a><br>
<br>
There are two types of DocBook files: SGML and XML.&nbsp;&nbsp;To specify what type you<br>
are using the &quot;b:docbk_type&quot; variable should be set.&nbsp;&nbsp;Vim does this for you<br>
automatically if it can recognize the type.&nbsp;&nbsp;When Vim can't guess it the type<br>
defaults to XML.<br>
You can set the type manually:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let docbk_type = &quot;sgml&quot;</div>
or:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let docbk_type = &quot;xml&quot;</div>
You need to do this before loading the syntax file, which is complicated.<br>
Simpler is setting the filetype to &quot;docbkxml&quot; or &quot;docbksgml&quot;:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:set filetype=docbksgml</div>
or:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:set filetype=docbkxml</div>
<br>
You can specify the DocBook version:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let docbk_ver = 3</div>
When not set 4 is used.<br>
<br>
<br>
<span class="Statement">DOSBATCH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#dosbatch.vim" name="dosbatch.vim">dosbatch.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-dosbatch-syntax" name="ft-dosbatch-syntax">ft-dosbatch-syntax</a><br>
<br>
There is one option with highlighting DOS batch files.&nbsp;&nbsp;This covers new<br>
extensions to the Command Interpreter introduced with Windows 2000 and<br>
is controlled by the variable dosbatch_cmdextversion.&nbsp;&nbsp;For Windows NT<br>
this should have the value 1, and for Windows 2000 it should be 2.<br>
Select the version you want with the following line:<br>
<br>
<div class="helpExample">&nbsp;&nbsp; :let dosbatch_cmdextversion = 1</div>
<br>
If this variable is not defined it defaults to a value of 2 to support<br>
Windows 2000.<br>
<br>
A second option covers whether *.btm files should be detected as type<br>
&quot;dosbatch&quot; (MS-DOS batch files) or type &quot;btm&quot; (4DOS batch files).&nbsp;&nbsp;The latter<br>
is used by default.&nbsp;&nbsp;You may select the former with the following line:<br>
<br>
<div class="helpExample">&nbsp;&nbsp; :let g:dosbatch_syntax_for_btm = 1</div>
<br>
If this variable is undefined or zero, btm syntax is selected.<br>
<br>
<br>
<span class="Statement">DOXYGEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#doxygen.vim" name="doxygen.vim">doxygen.vim</a>&nbsp;<a class="Constant" href="syntax.html#doxygen-syntax" name="doxygen-syntax">doxygen-syntax</a><br>
<br>
Doxygen generates code documentation using a special documentation format<br>
(similar to Javadoc).&nbsp;&nbsp;This syntax script adds doxygen highlighting to c, cpp,<br>
idl and php files, and should also work with java.<br>
<br>
There are a few of ways to turn on doxygen formatting. It can be done<br>
explicitly or in a modeline by appending '.doxygen' to the syntax of the file.<br>
Example:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:set syntax=c.doxygen</div>
or<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// vim&#0058;syntax=c.doxygen</div>
<br>
It can also be done automatically for C, C++, C#, IDL and PHP files by setting<br>
the global or buffer-local variable load_doxygen_syntax.&nbsp;&nbsp;This is done by<br>
adding the following to your .vimrc.<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let g:load_doxygen_syntax=1</div>
<br>
There are a couple of variables that have an effect on syntax highlighting, and<br>
are to do with non-standard highlighting options.<br>
<br>
<span class="PreProc">Variable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default Effect</span><br>
g:doxygen_enhanced_color<br>
g:doxygen_enhanced_colour&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Use non-standard highlighting for<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doxygen comments.<br>
<br>
doxygen_my_rendering&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Disable rendering of HTML bold, italic<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and html_my_rendering underline.<br>
<br>
doxygen_javadoc_autobrief&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set to 0 to disable javadoc autobrief<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;colour highlighting.<br>
<br>
doxygen_end_punctuation&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '[.]'&nbsp;&nbsp; Set to regexp match for the ending<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;punctuation of brief<br>
<br>
There are also some hilight groups worth mentioning as they can be useful in<br>
configuration.<br>
<br>
<span class="PreProc">Highlight&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Effect</span><br>
doxygenErrorComment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The colour of an end-comment when missing<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;punctuation in a code, verbatim or dot section<br>
doxygenLinkError&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The colour of an end-comment when missing the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\endlink from a \link section.<br>
<br>
<br>
<span class="Statement">DTD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#dtd.vim" name="dtd.vim">dtd.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-dtd-syntax" name="ft-dtd-syntax">ft-dtd-syntax</a><br>
<br>
The DTD syntax highlighting is case sensitive by default.&nbsp;&nbsp;To disable<br>
case-sensitive highlighting, add the following line to your startup file:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let dtd_ignore_case=1</div>
<br>
The DTD syntax file will highlight unknown tags as errors.&nbsp;&nbsp;If<br>
this is annoying, it can be turned off by setting:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let dtd_no_tag_errors=1</div>
<br>
before sourcing the dtd.vim syntax file.<br>
Parameter entity names are highlighted in the definition using the<br>
'Type' highlighting group and 'Comment' for punctuation and '%'.<br>
Parameter entity instances are highlighted using the 'Constant'<br>
highlighting group and the 'Type' highlighting group for the<br>
delimiters % and ;.&nbsp;&nbsp;This can be turned off by setting:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let dtd_no_param_entities=1</div>
<br>
The DTD syntax file is also included by xml.vim to highlight included dtd's.<br>
<br>
<br>
<span class="Statement">EIFFEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#eiffel.vim" name="eiffel.vim">eiffel.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-eiffel-syntax" name="ft-eiffel-syntax">ft-eiffel-syntax</a><br>
<br>
While Eiffel is not case-sensitive, its style guidelines are, and the<br>
syntax highlighting file encourages their use.&nbsp;&nbsp;This also allows to<br>
highlight class names differently.&nbsp;&nbsp;If you want to disable case-sensitive<br>
highlighting, add the following line to your startup file:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let eiffel_ignore_case=1</div>
<br>
Case still matters for class names and TODO marks in comments.<br>
<br>
Conversely, for even stricter checks, add one of the following lines:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let eiffel_strict=1<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let eiffel_pedantic=1</div>
<br>
Setting eiffel_strict will only catch improper capitalization for the<br>
five predefined words &quot;Current&quot;, &quot;Void&quot;, &quot;Result&quot;, &quot;Precursor&quot;, and<br>
&quot;NONE&quot;, to warn against their accidental use as feature or class names.<br>
<br>
Setting eiffel_pedantic will enforce adherence to the Eiffel style<br>
guidelines fairly rigorously (like arbitrary mixes of upper- and<br>
lowercase letters as well as outdated ways to capitalize keywords).<br>
<br>
If you want to use the lower-case version of &quot;Current&quot;, &quot;Void&quot;,<br>
&quot;Result&quot;, and &quot;Precursor&quot;, you can use<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let eiffel_lower_case_predef=1</div>
<br>
instead of completely turning case-sensitive highlighting off.<br>
<br>
Support for ISE's proposed new creation syntax that is already<br>
experimentally handled by some compilers can be enabled by:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let eiffel_ise=1</div>
<br>
Finally, some vendors support hexadecimal constants.&nbsp;&nbsp;To handle them, add<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let eiffel_hex_constants=1</div>
<br>
to your startup file.<br>
<br>
<br>
<span class="Statement">EUPHORIA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#euphoria3.vim" name="euphoria3.vim">euphoria3.vim</a>&nbsp;<a class="Constant" href="syntax.html#euphoria4.vim" name="euphoria4.vim">euphoria4.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-euphoria-syntax" name="ft-euphoria-syntax">ft-euphoria-syntax</a><br>
<br>
Two syntax highlighting files exists for Euphoria. One for Euphoria&nbsp;<br>
version 3.1.1, which is the default syntax highlighting file, and one for&nbsp;<br>
Euphoria version 4.0.5 or later.<br>
<br>
Euphoria version 3.1.1 (<span class="Constant"><a href="http://www.rapideuphoria.com/">http://www.rapideuphoria.com/</a></span>) is still necessary&nbsp;<br>
for developing applications for the DOS platform, which Euphoria version 4&nbsp;<br>
(<span class="Constant"><a href="http://www.openeuphoria.org/">http://www.openeuphoria.org/</a></span>) does not support.<br>
<br>
The following file extensions are auto-detected as Euphoria file type:&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*.e, *.eu, *.ew, *.ex, *.exu, *.exw<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*.E, *.EU, *.EW, *.EX, *.EXU, *.EXW<br>
<br>
To select syntax highlighting file for Euphoria, as well as for&nbsp;<br>
auto-detecting the *.e and *.E file extensions as Euphoria file type,<br>
add the following line to your startup file:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let filetype_euphoria=&quot;euphoria3&quot;</div>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or&nbsp;</div>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let filetype_euphoria=&quot;euphoria4&quot;</div>
<br>
<br>
<span class="Statement">ERLANG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#erlang.vim" name="erlang.vim">erlang.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-erlang-syntax" name="ft-erlang-syntax">ft-erlang-syntax</a><br>
<br>
Erlang is a functional programming language developed by Ericsson.&nbsp;&nbsp;Files with<br>
the following extensions are recognized as Erlang files: erl, hrl, yaws.<br>
<br>
The BIFs (built-in functions) are highlighted by default. To disable this,<br>
put the following line in your vimrc:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let g:erlang_highlight_bifs = 0</div>
<br>
To enable highlighting some special atoms, put this in your vimrc:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let g:erlang_highlight_special_atoms = 1</div>
<br>
<br>
<span class="Statement">FLEXWIKI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#flexwiki.vim" name="flexwiki.vim">flexwiki.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-flexwiki-syntax" name="ft-flexwiki-syntax">ft-flexwiki-syntax</a><br>
<br>
FlexWiki is an ASP.NET-based wiki package available at&nbsp;<span class="Constant"><a href="http://www.flexwiki.com">http://www.flexwiki.com</a></span><br>
<span class="Todo">NOTE</span>: this site currently doesn't work, on Wikipedia is mentioned that<br>
development stopped in 2009.<br>
<br>
Syntax highlighting is available for the most common elements of FlexWiki<br>
syntax. The associated ftplugin script sets some buffer-local options to make<br>
editing FlexWiki pages more convenient. FlexWiki considers a newline as the<br>
start of a new paragraph, so the ftplugin sets&nbsp;<a class="Type" href="options.html#'tw'">'tw'</a>=0 (unlimited line length),<br>
<a class="Type" href="options.html#'wrap'">'wrap'</a>&nbsp;(wrap long lines instead of using horizontal scrolling),&nbsp;<a class="Type" href="options.html#'linebreak'">'linebreak'</a><br>
(to wrap at a character in&nbsp;<a class="Type" href="options.html#'breakat'">'breakat'</a>&nbsp;instead of at the last char on screen),<br>
and so on. It also includes some keymaps that are disabled by default.<br>
<br>
If you want to enable the keymaps that make &quot;j&quot; and &quot;k&quot; and the cursor keys<br>
move up and down by display lines, add this to your .vimrc:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let flexwiki_maps = 1</div>
<br>
<br>
<span class="Statement">FORM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#form.vim" name="form.vim">form.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-form-syntax" name="ft-form-syntax">ft-form-syntax</a><br>
<br>
The coloring scheme for syntax elements in the FORM file uses the default<br>
modes Conditional, Number, Statement, Comment, PreProc, Type, and String,<br>
following the language specifications in 'Symbolic Manipulation with FORM' by<br>
J.A.M. Vermaseren, CAN, Netherlands, 1991.<br>
<br>
If you want include your own changes to the default colors, you have to<br>
redefine the following syntax groups:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;- formConditional<br>
&nbsp;&nbsp;&nbsp;&nbsp;- formNumber<br>
&nbsp;&nbsp;&nbsp;&nbsp;- formStatement<br>
&nbsp;&nbsp;&nbsp;&nbsp;- formHeaderStatement<br>
&nbsp;&nbsp;&nbsp;&nbsp;- formComment<br>
&nbsp;&nbsp;&nbsp;&nbsp;- formPreProc<br>
&nbsp;&nbsp;&nbsp;&nbsp;- formDirective<br>
&nbsp;&nbsp;&nbsp;&nbsp;- formType<br>
&nbsp;&nbsp;&nbsp;&nbsp;- formString<br>
<br>
<span class="Todo">Note</span>&nbsp;that the form.vim syntax file implements FORM preprocessor commands and<br>
directives per default in the same syntax group.<br>
<br>
A predefined enhanced color mode for FORM is available to distinguish between<br>
header statements and statements in the body of a FORM program.&nbsp;&nbsp;To activate<br>
this mode define the following variable in your vimrc file<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let form_enhanced_color=1</div>
<br>
The enhanced mode also takes advantage of additional color features for a dark<br>
gvim display.&nbsp;&nbsp;Here, statements are colored LightYellow instead of Yellow, and<br>
conditionals are LightBlue for better distinction.<br>
<br>
<br>
<span class="Statement">FORTRAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#fortran.vim" name="fortran.vim">fortran.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-fortran-syntax" name="ft-fortran-syntax">ft-fortran-syntax</a><br>
<br>
<span class="PreProc">Default highlighting and dialect</span><br>
Highlighting appropriate for Fortran 2008 is used by default.&nbsp;&nbsp;This choice<br>
should be appropriate for most users most of the time because Fortran 2008 is<br>
almost a superset of previous versions (Fortran 2003, 95, 90, and 77).<br>
<br>
<span class="PreProc">Fortran source code form</span><br>
Fortran code can be in either fixed or free source form.&nbsp;&nbsp;<span class="Todo">Note</span>&nbsp;that the<br>
syntax highlighting will not be correct if the form is incorrectly set.<br>
<br>
When you create a new fortran file, the syntax script assumes fixed source<br>
form.&nbsp;&nbsp;If you always use free source form, then<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;:let fortran_free_source=1</div>
in your .vimrc prior to the :syntax on command.&nbsp;&nbsp;If you always use fixed source<br>
form, then<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;:let fortran_fixed_source=1</div>
in your .vimrc prior to the :syntax on command.<br>
<br>
If the form of the source code depends, in a non-standard way, upon the file<br>
extension, then it is most convenient to set fortran_free_source in a ftplugin<br>
file.&nbsp;&nbsp;For more information on ftplugin files, see&nbsp;<a class="Identifier" href="usr_41.html#ftplugin">ftplugin</a>.&nbsp;<span class="Todo">Note</span>&nbsp;that this<br>
will work only if the &quot;filetype plugin indent on&quot; command precedes the &quot;syntax<br>
on&quot; command in your .vimrc file.<br>
<br>
When you edit an existing fortran file, the syntax script will assume free<br>
source form if the fortran_free_source variable has been set, and assumes<br>
fixed source form if the fortran_fixed_source variable has been set.&nbsp;&nbsp;If<br>
neither of these variables have been set, the syntax script attempts to<br>
determine which source form has been used by examining the file extension<br>
using conventions common to the ifort, gfortran, Cray, NAG, and PathScale<br>
compilers (.f, .for, .f77 for fixed-source, .f90, .f95, .f03, .f08 for<br>
free-source). If none of this works, then the script examines the first five<br>
columns of the first 500 lines of your file.&nbsp;&nbsp;If no signs of free source form<br>
are detected, then the file is assumed to be in fixed source form.&nbsp;&nbsp;The<br>
algorithm should work in the vast majority of cases.&nbsp;&nbsp;In some cases, such as a<br>
file that begins with 500 or more full-line comments, the script may<br>
incorrectly decide that the fortran code is in fixed form.&nbsp;&nbsp;If that happens,<br>
just add a non-comment statement beginning anywhere in the first five columns<br>
of the first twenty-five lines, save (:w) and then reload (:e!) the file.<br>
<br>
<span class="PreProc">Tabs in fortran files</span><br>
Tabs are not recognized by the Fortran standards.&nbsp;&nbsp;Tabs are not a good idea in<br>
fixed format fortran source code which requires fixed column boundaries.<br>
Therefore, tabs are marked as errors.&nbsp;&nbsp;Nevertheless, some programmers like<br>
using tabs.&nbsp;&nbsp;If your fortran files contain tabs, then you should set the<br>
variable fortran_have_tabs in your .vimrc with a command such as<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;:let fortran_have_tabs=1</div>
placed prior to the :syntax on command.&nbsp;&nbsp;Unfortunately, the use of tabs will<br>
mean that the syntax file will not be able to detect incorrect margins.<br>
<br>
<span class="PreProc">Syntax folding of fortran files</span><br>
If you wish to use foldmethod=syntax, then you must first set the variable<br>
fortran_fold with a command such as<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;:let fortran_fold=1</div>
to instruct the syntax script to define fold regions for program units, that<br>
is main programs starting with a program statement, subroutines, function<br>
subprograms, block data subprograms, interface blocks, and modules.&nbsp;&nbsp;If you<br>
also set the variable fortran_fold_conditionals with a command such as<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;:let fortran_fold_conditionals=1</div>
then fold regions will also be defined for do loops, if blocks, and select<br>
case constructs.&nbsp;&nbsp;If you also set the variable<br>
fortran_fold_multilinecomments with a command such as<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;:let fortran_fold_multilinecomments=1</div>
then fold regions will also be defined for three or more consecutive comment<br>
lines.&nbsp;&nbsp;<span class="Todo">Note</span>&nbsp;that defining fold regions can be slow for large files.<br>
<br>
If fortran_fold, and possibly fortran_fold_conditionals and/or<br>
fortran_fold_multilinecomments, have been set, then vim will fold your file if<br>
you set foldmethod=syntax.&nbsp;&nbsp;Comments or blank lines placed between two program<br>
units are not folded because they are seen as not belonging to any program<br>
unit.<br>
<br>
<span class="PreProc">More precise fortran syntax</span><br>
If you set the variable fortran_more_precise with a command such as<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;:let fortran_more_precise=1</div>
then the syntax coloring will be more precise but slower.&nbsp;&nbsp;In particular,<br>
statement labels used in do, goto and arithmetic if statements will be<br>
recognized, as will construct names at the end of a do, if, select or forall<br>
construct.<br>
<br>
<span class="PreProc">Non-default fortran dialects</span><br>
The syntax script supports two Fortran dialects: f08 and F. You will probably<br>
find the default highlighting (f08) satisfactory.&nbsp;&nbsp;A few legacy constructs<br>
deleted or declared obsolescent in the 2008 standard are highlighted as todo<br>
items.<br>
<br>
If you use F, the advantage of setting the dialect appropriately is that<br>
other legacy features excluded from F will be highlighted as todo items and<br>
that free source form will be assumed.<br>
<br>
The dialect can be selected in various ways.&nbsp;&nbsp;If all your fortran files use<br>
the same dialect, set the global variable fortran_dialect in your .vimrc prior<br>
to your syntax on statement.&nbsp;&nbsp;The case-sensitive, permissible values of<br>
fortran_dialect are &quot;f08&quot; or &quot;F&quot;.&nbsp;&nbsp;Invalid values of fortran_dialect are<br>
ignored.<br>
<br>
If the dialect depends upon the file extension, then it is most convenient to<br>
set a buffer-local variable in a ftplugin file.&nbsp;&nbsp;For more information on<br>
ftplugin files, see&nbsp;<a class="Identifier" href="usr_41.html#ftplugin">ftplugin</a>.&nbsp;&nbsp;For example, if all your fortran files with<br>
an .f90 extension are written in the F subset, your ftplugin file should<br>
contain the code<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;let s:extfname = expand(&quot;%:e&quot;)<br>
&nbsp;&nbsp;&nbsp;&nbsp;if s:extfname ==? &quot;f90&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let b:fortran_dialect=&quot;F&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;else<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unlet! b:fortran_dialect<br>
&nbsp;&nbsp;&nbsp;&nbsp;endif</div>
<span class="Todo">Note</span>&nbsp;that this will work only if the &quot;filetype plugin indent on&quot; command<br>
precedes the &quot;syntax on&quot; command in your .vimrc file.<br>
<br>
Finer control is necessary if the file extension does not uniquely identify<br>
the dialect.&nbsp;&nbsp;You can override the default dialect, on a file-by-file basis,<br>
by including a comment with the directive &quot;fortran_dialect=xx&quot; (where xx=F or<br>
f08) in one of the first three lines in your file.&nbsp;&nbsp;For example, your older .f<br>
files may be legacy code but your newer ones may be F codes, and you would<br>
identify the latter by including in the first three lines of those files a<br>
Fortran comment of the form<br>
<div class="helpExample">&nbsp;&nbsp;! fortran_dialect=F</div>
<br>
For previous versions of the syntax, you may have set fortran_dialect to the<br>
now-obsolete values &quot;f77&quot;, &quot;f90&quot;, &quot;f95&quot;, or &quot;elf&quot;. Such settings will be<br>
silently handled as &quot;f08&quot;. Users of &quot;elf&quot; may wish to experiment with &quot;F&quot;<br>
instead.<br>
<br>
The syntax/fortran.vim script contains embedded comments that tell you how to<br>
comment and/or uncomment some lines to (a) activate recognition of some<br>
non-standard, vendor-supplied intrinsics and (b) to prevent features deleted<br>
or declared obsolescent in the 2008 standard from being highlighted as todo<br>
items.<br>
<br>
<span class="PreProc">Limitations</span><br>
Parenthesis checking does not catch too few closing parentheses.&nbsp;&nbsp;Hollerith<br>
strings are not recognized.&nbsp;&nbsp;Some keywords may be highlighted incorrectly<br>
because Fortran90 has no reserved words.<br>
<br>
For further information related to fortran, see&nbsp;<a class="Identifier" href="indent.html#ft-fortran-indent">ft-fortran-indent</a>&nbsp;and<br>
<a class="Identifier" href="filetype.html#ft-fortran-plugin">ft-fortran-plugin</a>.<br>
<br>
<br>
<span class="Statement">FVWM CONFIGURATION FILES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#fvwm.vim" name="fvwm.vim">fvwm.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-fvwm-syntax" name="ft-fvwm-syntax">ft-fvwm-syntax</a><br>
<br>
In order for Vim to recognize Fvwm configuration files that do not match<br>
the patterns&nbsp;<a class="Constant" href="syntax.html#fvwmrc" name="fvwmrc">fvwmrc</a>&nbsp;or&nbsp;<a class="Constant" href="syntax.html#fvwm2rc" name="fvwm2rc">fvwm2rc</a>&nbsp;, you must put additional patterns<br>
appropriate to your system in your myfiletypes.vim file.&nbsp;&nbsp;For these<br>
patterns, you must set the variable &quot;b:fvwm_version&quot; to the major version<br>
number of Fvwm, and the&nbsp;<a class="Type" href="options.html#'filetype'">'filetype'</a>&nbsp;option to fvwm.<br>
<br>
For example, to make Vim identify all files in /etc/X11/fvwm2/<br>
as Fvwm2 configuration files, add the following:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;:au! BufNewFile,BufRead /etc/X11/fvwm2/*&nbsp;&nbsp;let b:fvwm_version = 2 |<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \ set filetype=fvwm</div>
<br>
If you'd like Vim to highlight all valid color names, tell it where to<br>
find the color database (rgb.txt) on your system.&nbsp;&nbsp;Do this by setting<br>
&quot;rgb_file&quot; to its location.&nbsp;&nbsp;Assuming your color database is located<br>
in /usr/X11/lib/X11/, you should add the line<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let rgb_file = &quot;/usr/X11/lib/X11/rgb.txt&quot;</div>
<br>
to your .vimrc file.<br>
<br>
<br>
<span class="Statement">GSP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#gsp.vim" name="gsp.vim">gsp.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-gsp-syntax" name="ft-gsp-syntax">ft-gsp-syntax</a><br>
<br>
The default coloring style for GSP pages is defined by&nbsp;<a class="Identifier" href="syntax.html#html.vim">html.vim</a>, and<br>
the coloring for java code (within java tags or inline between backticks)<br>
is defined by&nbsp;<a class="Identifier" href="syntax.html#java.vim">java.vim</a>.&nbsp;&nbsp;The following HTML groups defined in&nbsp;<a class="Identifier" href="syntax.html#html.vim">html.vim</a><br>
are redefined to incorporate and highlight inline java code:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;htmlString<br>
&nbsp;&nbsp;&nbsp;&nbsp;htmlValue<br>
&nbsp;&nbsp;&nbsp;&nbsp;htmlEndTag<br>
&nbsp;&nbsp;&nbsp;&nbsp;htmlTag<br>
&nbsp;&nbsp;&nbsp;&nbsp;htmlTagN<br>
<br>
Highlighting should look fine most of the places where you'd see inline<br>
java code, but in some special cases it may not.&nbsp;&nbsp;To add another HTML<br>
group where you will have inline java code where it does not highlight<br>
correctly, just copy the line you want from&nbsp;<a class="Identifier" href="syntax.html#html.vim">html.vim</a>&nbsp;and add gspJava<br>
to the contains clause.<br>
<br>
The backticks for inline java are highlighted according to the htmlError<br>
group to make them easier to see.<br>
<br>
<br>
<span class="Statement">GROFF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#groff.vim" name="groff.vim">groff.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-groff-syntax" name="ft-groff-syntax">ft-groff-syntax</a><br>
<br>
The groff syntax file is a wrapper for&nbsp;<a class="Identifier" href="syntax.html#nroff.vim">nroff.vim</a>, see the notes<br>
under that heading for examples of use and configuration.&nbsp;&nbsp;The purpose<br>
of this wrapper is to set up groff syntax extensions by setting the<br>
filetype from a&nbsp;<a class="Identifier" href="options.html#modeline">modeline</a>&nbsp;or in a personal filetype definitions file<br>
(see&nbsp;<a class="Identifier" href="filetype.html">filetype.txt</a>).<br>
<br>
<br>
<span class="Statement">HASKELL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#haskell.vim" name="haskell.vim">haskell.vim</a>&nbsp;<a class="Constant" href="syntax.html#lhaskell.vim" name="lhaskell.vim">lhaskell.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-haskell-syntax" name="ft-haskell-syntax">ft-haskell-syntax</a><br>
<br>
The Haskell syntax files support plain Haskell code as well as literate<br>
Haskell code, the latter in both Bird style and TeX style.&nbsp;&nbsp;The Haskell<br>
syntax highlighting will also highlight C preprocessor directives.<br>
<br>
If you want to highlight delimiter characters (useful if you have a<br>
light-coloured background), add to your .vimrc:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let hs_highlight_delimiters = 1</div>
To treat True and False as keywords as opposed to ordinary identifiers,<br>
add:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let hs_highlight_boolean = 1</div>
To also treat the names of primitive types as keywords:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let hs_highlight_types = 1</div>
And to treat the names of even more relatively common types as keywords:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let hs_highlight_more_types = 1</div>
If you want to highlight the names of debugging functions, put in<br>
your .vimrc:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let hs_highlight_debug = 1</div>
<br>
The Haskell syntax highlighting also highlights C preprocessor<br>
directives, and flags lines that start with # but are not valid<br>
directives as erroneous.&nbsp;&nbsp;This interferes with Haskell's syntax for<br>
operators, as they may start with #.&nbsp;&nbsp;If you want to highlight those<br>
as operators as opposed to errors, put in your .vimrc:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let hs_allow_hash_operator = 1</div>
<br>
The syntax highlighting for literate Haskell code will try to<br>
automatically guess whether your literate Haskell code contains<br>
TeX markup or not, and correspondingly highlight TeX constructs<br>
or nothing at all.&nbsp;&nbsp;You can override this globally by putting<br>
in your .vimrc<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let lhs_markup = none</div>
for no highlighting at all, or<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let lhs_markup = tex</div>
to force the highlighting to always try to highlight TeX markup.<br>
For more flexibility, you may also use buffer local versions of<br>
this variable, so e.g.<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let b:lhs_markup = tex</div>
will force TeX highlighting for a particular buffer.&nbsp;&nbsp;It has to be<br>
set before turning syntax highlighting on for the buffer or<br>
loading a file.<br>
<br>
<br>
<span class="Statement">HTML&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#html.vim" name="html.vim">html.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-html-syntax" name="ft-html-syntax">ft-html-syntax</a><br>
<br>
The coloring scheme for tags in the HTML file works as follows.<br>
<br>
The&nbsp;&nbsp;&lt;&gt; of opening tags are colored differently than the &lt;/&gt; of a closing tag.<br>
This is on purpose! For opening tags the 'Function' color is used, while for<br>
closing tags the 'Type' color is used (See syntax.vim to check how those are<br>
defined for you)<br>
<br>
Known tag names are colored the same way as statements in C.&nbsp;&nbsp;Unknown tag<br>
names are colored with the same color as the &lt;&gt; or &lt;/&gt; respectively which<br>
makes it easy to spot errors<br>
<br>
<span class="Todo">Note</span>&nbsp;that the same is true for argument (or attribute) names.&nbsp;&nbsp;Known attribute<br>
names are colored differently than unknown ones.<br>
<br>
Some HTML tags are used to change the rendering of text.&nbsp;&nbsp;The following tags<br>
are recognized by the html.vim syntax coloring file and change the way normal<br>
text is shown:&nbsp;<span class="Special">&lt;B&gt;</span>&nbsp;<span class="Special">&lt;I&gt;</span>&nbsp;<span class="Special">&lt;U&gt;</span>&nbsp;<span class="Special">&lt;EM&gt;</span>&nbsp;<span class="Special">&lt;STRONG&gt;</span>&nbsp;(<span class="Special">&lt;EM&gt;</span>&nbsp;is used as an alias for&nbsp;<span class="Special">&lt;I&gt;</span>,<br>
while&nbsp;<span class="Special">&lt;STRONG&gt;</span>&nbsp;as an alias for&nbsp;<span class="Special">&lt;B&gt;</span>),&nbsp;<span class="Special">&lt;H1&gt;</span>&nbsp;-&nbsp;<span class="Special">&lt;H6&gt;</span>,&nbsp;<span class="Special">&lt;HEAD&gt;</span>,&nbsp;<span class="Special">&lt;TITLE&gt;</span>&nbsp;and&nbsp;<span class="Special">&lt;A&gt;</span>, but<br>
only if used as a link (that is, it must include a href as in<br>
&lt;A href=&quot;somefile.html&quot;&gt;).<br>
<br>
If you want to change how such text is rendered, you must redefine the<br>
following syntax groups:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;- htmlBold<br>
&nbsp;&nbsp;&nbsp;&nbsp;- htmlBoldUnderline<br>
&nbsp;&nbsp;&nbsp;&nbsp;- htmlBoldUnderlineItalic<br>
&nbsp;&nbsp;&nbsp;&nbsp;- htmlUnderline<br>
&nbsp;&nbsp;&nbsp;&nbsp;- htmlUnderlineItalic<br>
&nbsp;&nbsp;&nbsp;&nbsp;- htmlItalic<br>
&nbsp;&nbsp;&nbsp;&nbsp;- htmlTitle for titles<br>
&nbsp;&nbsp;&nbsp;&nbsp;- htmlH1 - htmlH6 for headings<br>
<br>
To make this redefinition work you must redefine them all with the exception<br>
of the last two (htmlTitle and htmlH[1-6], which are optional) and define the<br>
following variable in your vimrc (this is due to the order in which the files<br>
are read during initialization)<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let html_my_rendering=1</div>
<br>
If you'd like to see an example download mysyntax.vim at<br>
<span class="Constant"><a href="http://www.fleiner.com/vim/download.html">http://www.fleiner.com/vim/download.html</a></span><br>
<br>
You can also disable this rendering by adding the following line to your<br>
vimrc file:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let html_no_rendering=1</div>
<br>
HTML comments are rather special (see an HTML reference document for the<br>
details), and the syntax coloring scheme will highlight all errors.<br>
However, if you prefer to use the wrong style (starts with &lt;!-- and<br>
ends with --&gt;) you can define<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let html_wrong_comments=1</div>
<br>
JavaScript and Visual Basic embedded inside HTML documents are highlighted as<br>
'Special' with statements, comments, strings and so on colored as in standard<br>
programming languages.&nbsp;&nbsp;<span class="Todo">Note</span>&nbsp;that only JavaScript and Visual Basic are currently<br>
supported, no other scripting language has been added yet.<br>
<br>
Embedded and inlined cascading style sheets (CSS) are highlighted too.<br>
<br>
There are several html preprocessor languages out there.&nbsp;&nbsp;html.vim has been<br>
written such that it should be trivial to include it.&nbsp;&nbsp;To do so add the<br>
following two lines to the syntax coloring file for that language<br>
(the example comes from the asp.vim file):<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;runtime! syntax/html.vim<br>
&nbsp;&nbsp;&nbsp;&nbsp;syn cluster htmlPreproc add=asp<br>
<br>
Now you just need to make sure that you add all regions that contain<br>
the preprocessor language to the cluster htmlPreproc.<br>
<br>
<br>
HTML/OS (by Aestiva)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#htmlos.vim" name="htmlos.vim">htmlos.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-htmlos-syntax" name="ft-htmlos-syntax">ft-htmlos-syntax</a><br>
<br>
The coloring scheme for HTML/OS works as follows:<br>
<br>
Functions and variable names are the same color by default, because VIM<br>
doesn't specify different colors for Functions and Identifiers.&nbsp;&nbsp;To change<br>
this (which is recommended if you want function names to be recognizable in a<br>
different color) you need to add the following line to either your ~/.vimrc:<br>
<div class="helpExample">&nbsp;&nbsp;:hi Function term=underline cterm=bold ctermfg=LightGray</div>
<br>
Of course, the ctermfg can be a different color if you choose.<br>
<br>
Another issues that HTML/OS runs into is that there is no special filetype to<br>
signify that it is a file with HTML/OS coding.&nbsp;&nbsp;You can change this by opening<br>
a file and turning on HTML/OS syntax by doing the following:<br>
<div class="helpExample">&nbsp;&nbsp;:set syntax=htmlos</div>
<br>
Lastly, it should be noted that the opening and closing characters to begin a<br>
block of HTML/OS code can either be &lt;&lt; or [[ and &gt;&gt; or ]], respectively.<br>
<br>
<br>
<span class="Statement">IA64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#ia64.vim" name="ia64.vim">ia64.vim</a>&nbsp;<a class="Constant" href="syntax.html#intel-itanium" name="intel-itanium">intel-itanium</a>&nbsp;<a class="Constant" href="syntax.html#ft-ia64-syntax" name="ft-ia64-syntax">ft-ia64-syntax</a><br>
<br>
Highlighting for the Intel Itanium 64 assembly language.&nbsp;&nbsp;See&nbsp;<a class="Identifier" href="syntax.html#asm.vim">asm.vim</a>&nbsp;for<br>
how to recognize this filetype.<br>
<br>
To have *.inc files be recognized as IA64, add this to your .vimrc file:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let g:filetype_inc = &quot;ia64&quot;</div>
<br>
<br>
<span class="Statement">INFORM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#inform.vim" name="inform.vim">inform.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-inform-syntax" name="ft-inform-syntax">ft-inform-syntax</a><br>
<br>
Inform highlighting includes symbols provided by the Inform Library, as<br>
most programs make extensive use of it.&nbsp;&nbsp;If do not wish Library symbols<br>
to be highlighted add this to your vim startup:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let inform_highlight_simple=1</div>
<br>
By default it is assumed that Inform programs are Z-machine targeted,<br>
and highlights Z-machine assembly language symbols appropriately.&nbsp;&nbsp;If<br>
you intend your program to be targeted to a Glulx/Glk environment you<br>
need to add this to your startup sequence:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let inform_highlight_glulx=1</div>
<br>
This will highlight Glulx opcodes instead, and also adds glk() to the<br>
set of highlighted system functions.<br>
<br>
The Inform compiler will flag certain obsolete keywords as errors when<br>
it encounters them.&nbsp;&nbsp;These keywords are normally highlighted as errors<br>
by Vim.&nbsp;&nbsp;To prevent such error highlighting, you must add this to your<br>
startup sequence:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let inform_suppress_obsolete=1</div>
<br>
By default, the language features highlighted conform to Compiler<br>
version 6.30 and Library version 6.11.&nbsp;&nbsp;If you are using an older<br>
Inform development environment, you may with to add this to your<br>
startup sequence:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let inform_highlight_old=1</div>
<br>
<span class="Statement">IDL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#idl.vim" name="idl.vim">idl.vim</a>&nbsp;<a class="Constant" href="syntax.html#idl-syntax" name="idl-syntax">idl-syntax</a><br>
<br>
IDL (Interface Definition Language) files are used to define RPC calls.&nbsp;&nbsp;In<br>
Microsoft land, this is also used for defining COM interfaces and calls.<br>
<br>
IDL's structure is simple enough to permit a full grammar based approach to<br>
rather than using a few heuristics.&nbsp;&nbsp;The result is large and somewhat<br>
repetitive but seems to work.<br>
<br>
There are some Microsoft extensions to idl files that are here.&nbsp;&nbsp;Some of them<br>
are disabled by defining idl_no_ms_extensions.<br>
<br>
The more complex of the extensions are disabled by defining idl_no_extensions.<br>
<br>
<span class="PreProc">Variable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Effect</span><br>
<br>
idl_no_ms_extensions&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Disable some of the Microsoft specific<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extensions<br>
idl_no_extensions&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Disable complex extensions<br>
idlsyntax_showerror&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Show IDL errors (can be rather intrusive, but<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;quite helpful)<br>
idlsyntax_showerror_soft&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Use softer colours by default for errors<br>
<br>
<br>
<span class="Statement">JAVA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#java.vim" name="java.vim">java.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-java-syntax" name="ft-java-syntax">ft-java-syntax</a><br>
<br>
The java.vim syntax highlighting file offers several options:<br>
<br>
In Java 1.0.2 it was never possible to have braces inside parens, so this was<br>
flagged as an error.&nbsp;&nbsp;Since Java 1.1 this is possible (with anonymous<br>
classes), and therefore is no longer marked as an error.&nbsp;&nbsp;If you prefer the old<br>
way, put the following line into your vim startup file:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let java_mark_braces_in_parens_as_errors=1</div>
<br>
All identifiers in java.lang.* are always visible in all classes.&nbsp;&nbsp;To<br>
highlight them use:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let java_highlight_java_lang_ids=1</div>
<br>
You can also highlight identifiers of most standard Java packages if you<br>
download the javaid.vim script at&nbsp;<span class="Constant"><a href="http://www.fleiner.com/vim/download.html">http://www.fleiner.com/vim/download.html</a></span>.<br>
If you prefer to only highlight identifiers of a certain package, say java.io<br>
use the following:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let java_highlight_java_io=1</div>
Check the javaid.vim file for a list of all the packages that are supported.<br>
<br>
Function names are not highlighted, as the way to find functions depends on<br>
how you write Java code.&nbsp;&nbsp;The syntax file knows two possible ways to highlight<br>
functions:<br>
<br>
If you write function declarations that are always indented by either<br>
a tab, 8 spaces or 2 spaces you may want to set<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let java_highlight_functions=&quot;indent&quot;</div>
However, if you follow the Java guidelines about how functions and classes are<br>
supposed to be named (with respect to upper and lowercase), use<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let java_highlight_functions=&quot;style&quot;</div>
If both options do not work for you, but you would still want function<br>
declarations to be highlighted create your own definitions by changing the<br>
definitions in java.vim or by creating your own java.vim which includes the<br>
original one and then adds the code to highlight functions.<br>
<br>
In Java 1.1 the functions System.out.println() and System.err.println() should<br>
only be used for debugging.&nbsp;&nbsp;Therefore it is possible to highlight debugging<br>
statements differently.&nbsp;&nbsp;To do this you must add the following definition in<br>
your startup file:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let java_highlight_debug=1</div>
The result will be that those statements are highlighted as 'Special'<br>
characters.&nbsp;&nbsp;If you prefer to have them highlighted differently you must define<br>
new highlightings for the following groups.:<br>
&nbsp;&nbsp;&nbsp;&nbsp;Debug, DebugSpecial, DebugString, DebugBoolean, DebugType<br>
which are used for the statement itself, special characters used in debug<br>
strings, strings, boolean constants and types (this, super) respectively.&nbsp;&nbsp;I<br>
have opted to chose another background for those statements.<br>
<br>
Javadoc is a program that takes special comments out of Java program files and<br>
creates HTML pages.&nbsp;&nbsp;The standard configuration will highlight this HTML code<br>
similarly to HTML files (see&nbsp;<a class="Identifier" href="syntax.html#html.vim">html.vim</a>).&nbsp;&nbsp;You can even add Javascript<br>
and CSS inside this code (see below).&nbsp;&nbsp;There are four differences however:<br>
&nbsp;&nbsp;1. The title (all characters up to the first '.' which is followed by<br>
&nbsp;&nbsp;&nbsp;&nbsp; some white space or up to the first '@') is colored differently (to change<br>
&nbsp;&nbsp;&nbsp;&nbsp; the color change the group CommentTitle).<br>
&nbsp;&nbsp;2. The text is colored as 'Comment'.<br>
&nbsp;&nbsp;3. HTML comments are colored as 'Special'<br>
&nbsp;&nbsp;4. The special Javadoc tags (@see, @param, ...) are highlighted as specials<br>
&nbsp;&nbsp;&nbsp;&nbsp; and the argument (for @see, @param, @exception) as Function.<br>
To turn this feature off add the following line to your startup file:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let java_ignore_javadoc=1</div>
<br>
If you use the special Javadoc comment highlighting described above you<br>
can also turn on special highlighting for Javascript, visual basic<br>
scripts and embedded CSS (stylesheets).&nbsp;&nbsp;This makes only sense if you<br>
actually have Javadoc comments that include either Javascript or embedded<br>
CSS.&nbsp;&nbsp;The options to use are<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let java_javascript=1<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let java_css=1<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let java_vb=1</div>
<br>
In order to highlight nested parens with different colors define colors<br>
for javaParen, javaParen1 and javaParen2, for example with<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:hi link javaParen Comment</div>
or<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:hi javaParen ctermfg=blue guifg=#0000ff</div>
<br>
If you notice highlighting errors while scrolling backwards, which are fixed<br>
when redrawing with&nbsp;<span class="Special">CTRL-L</span>, try setting the &quot;java_minlines&quot; internal variable<br>
to a larger number:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let java_minlines = 50</div>
This will make the syntax synchronization start 50 lines before the first<br>
displayed line.&nbsp;&nbsp;The default value is 10.&nbsp;&nbsp;The disadvantage of using a larger<br>
number is that redrawing can become slow.<br>
<br>
<br>
<span class="Statement">LACE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#lace.vim" name="lace.vim">lace.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-lace-syntax" name="ft-lace-syntax">ft-lace-syntax</a><br>
<br>
Lace (Language for Assembly of Classes in Eiffel) is case insensitive, but the<br>
style guide lines are not.&nbsp;&nbsp;If you prefer case insensitive highlighting, just<br>
define the vim variable 'lace_case_insensitive' in your startup file:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let lace_case_insensitive=1</div>
<br>
<br>
<span class="Statement">LEX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#lex.vim" name="lex.vim">lex.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-lex-syntax" name="ft-lex-syntax">ft-lex-syntax</a><br>
<br>
Lex uses brute-force synchronizing as the &quot;^%%$&quot; section delimiter<br>
gives no clue as to what section follows.&nbsp;&nbsp;Consequently, the value for<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:syn sync minlines=300</div>
may be changed by the user if s/he is experiencing synchronization<br>
difficulties (such as may happen with large lex files).<br>
<br>
<br>
<span class="Statement">LIFELINES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#lifelines.vim" name="lifelines.vim">lifelines.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-lifelines-syntax" name="ft-lifelines-syntax">ft-lifelines-syntax</a><br>
<br>
To highlight deprecated functions as errors, add in your .vimrc:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let g:lifelines_deprecated = 1</div>
<br>
<br>
<span class="Statement">LISP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#lisp.vim" name="lisp.vim">lisp.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-lisp-syntax" name="ft-lisp-syntax">ft-lisp-syntax</a><br>
<br>
The lisp syntax highlighting provides two options:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g:lisp_instring : if it exists, then &quot;(...)&quot; strings are highlighted<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;as if the contents of the string were lisp.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Useful for AutoLisp.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g:lisp_rainbow&nbsp;&nbsp;: if it exists and is nonzero, then differing levels<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of parenthesization will receive different<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;highlighting.</div>
<br>
The g:lisp_rainbow option provides 10 levels of individual colorization for<br>
the parentheses and backquoted parentheses.&nbsp;&nbsp;Because of the quantity of<br>
colorization levels, unlike non-rainbow highlighting, the rainbow mode<br>
specifies its highlighting using ctermfg and guifg, thereby bypassing the<br>
usual colorscheme control using standard highlighting groups.&nbsp;&nbsp;The actual<br>
highlighting used depends on the dark/bright setting&nbsp;&nbsp;(see&nbsp;<a class="Identifier" href="options.html#'bg'">'bg'</a>).<br>
<br>
<br>
<span class="Statement">LITE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#lite.vim" name="lite.vim">lite.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-lite-syntax" name="ft-lite-syntax">ft-lite-syntax</a><br>
<br>
There are two options for the lite syntax highlighting.<br>
<br>
If you like SQL syntax highlighting inside Strings, use this:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let lite_sql_query = 1</div>
<br>
For syncing, minlines defaults to 100.&nbsp;&nbsp;If you prefer another value, you can<br>
set &quot;lite_minlines&quot; to the value you desire.&nbsp;&nbsp;Example:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let lite_minlines = 200</div>
<br>
<br>
<span class="Statement">LPC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#lpc.vim" name="lpc.vim">lpc.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-lpc-syntax" name="ft-lpc-syntax">ft-lpc-syntax</a><br>
<br>
LPC stands for a simple, memory-efficient language: Lars Pensj| C.&nbsp;&nbsp;The<br>
file name of LPC is usually *.c.&nbsp;&nbsp;Recognizing these files as LPC would bother<br>
users writing only C programs.&nbsp;&nbsp;If you want to use LPC syntax in Vim, you<br>
should set a variable in your .vimrc file:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let lpc_syntax_for_c = 1</div>
<br>
If it doesn't work properly for some particular C or LPC files, use a<br>
modeline.&nbsp;&nbsp;For a LPC file:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// vim&#0058;set ft=lpc:<br>
<br>
For a C file that is recognized as LPC:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// vim&#0058;set ft=c:<br>
<br>
If you don't want to set the variable, use the modeline in EVERY LPC file.<br>
<br>
There are several implementations for LPC, we intend to support most widely<br>
used ones.&nbsp;&nbsp;Here the default LPC syntax is for MudOS series, for MudOS v22<br>
and before, you should turn off the sensible modifiers, and this will also<br>
assert the new efuns after v22 to be invalid, don't set this variable when<br>
you are using the latest version of MudOS:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let lpc_pre_v22 = 1</div>
<br>
For LpMud 3.2 series of LPC:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let lpc_compat_32 = 1</div>
<br>
For LPC4 series of LPC:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let lpc_use_lpc4_syntax = 1</div>
<br>
For uLPC series of LPC:<br>
uLPC has been developed to Pike, so you should use Pike syntax<br>
instead, and the name of your source file should be *.pike<br>
<br>
<br>
<span class="Statement">LUA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#lua.vim" name="lua.vim">lua.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-lua-syntax" name="ft-lua-syntax">ft-lua-syntax</a><br>
<br>
The Lua syntax file can be used for versions 4.0, 5.0, 5.1 and 5.2 (5.2 is<br>
the default). You can select one of these versions using the global variables<br>
lua_version and lua_subversion. For example, to activate Lua<br>
5.1 syntax highlighting, set the variables like this:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let lua_version = 5<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let lua_subversion = 1<br>
<br>
<br>
<span class="Statement">MAIL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#mail.vim" name="mail.vim">mail.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-mail.vim" name="ft-mail.vim">ft-mail.vim</a><br>
<br>
Vim highlights all the standard elements of an email (headers, signatures,<br>
quoted text and URLs / email addresses).&nbsp;&nbsp;In keeping with standard conventions,<br>
signatures begin in a line containing only &quot;--&quot; followed optionally by<br>
whitespaces and end with a newline.<br>
<br>
Vim treats lines beginning with ']', '}', '|', '&gt;' or a word followed by '&gt;'<br>
as quoted text.&nbsp;&nbsp;However Vim highlights headers and signatures in quoted text<br>
only if the text is quoted with '&gt;' (optionally followed by one space).<br>
<br>
By default mail.vim synchronises syntax to 100 lines before the first<br>
displayed line.&nbsp;&nbsp;If you have a slow machine, and generally deal with emails<br>
with short headers, you can change this to a smaller value:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;:let mail_minlines = 30</div>
<br>
<br>
<span class="Statement">MAKE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#make.vim" name="make.vim">make.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-make-syntax" name="ft-make-syntax">ft-make-syntax</a><br>
<br>
In makefiles, commands are usually highlighted to make it easy for you to spot<br>
errors.&nbsp;&nbsp;However, this may be too much coloring for you.&nbsp;&nbsp;You can turn this<br>
feature off by using:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let make_no_commands = 1</div>
<br>
<br>
<span class="Statement">MAPLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#maple.vim" name="maple.vim">maple.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-maple-syntax" name="ft-maple-syntax">ft-maple-syntax</a><br>
<br>
Maple V, by Waterloo Maple Inc, supports symbolic algebra.&nbsp;&nbsp;The language<br>
supports many packages of functions which are selectively loaded by the user.<br>
The standard set of packages' functions as supplied in Maple V release 4 may be<br>
highlighted at the user's discretion.&nbsp;&nbsp;Users may place in their .vimrc file:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let mvpkg_all= 1</div>
<br>
to get all package functions highlighted, or users may select any subset by<br>
choosing a variable/package from the table below and setting that variable to<br>
1, also in their .vimrc file (prior to sourcing<br>
$VIMRUNTIME/syntax/syntax.vim).<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Table of Maple V Package Function Selectors<br>
<div class="helpExample">&nbsp;&nbsp;mv_DEtools&nbsp;&nbsp;&nbsp;&nbsp; mv_genfunc&nbsp;&nbsp;&nbsp;&nbsp; mv_networks&nbsp;&nbsp;&nbsp;&nbsp; mv_process<br>
&nbsp;&nbsp;mv_Galois&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mv_geometry&nbsp;&nbsp;&nbsp;&nbsp;mv_numapprox&nbsp;&nbsp;&nbsp;&nbsp;mv_simplex<br>
&nbsp;&nbsp;mv_GaussInt&nbsp;&nbsp;&nbsp;&nbsp;mv_grobner&nbsp;&nbsp;&nbsp;&nbsp; mv_numtheory&nbsp;&nbsp;&nbsp;&nbsp;mv_stats<br>
&nbsp;&nbsp;mv_LREtools&nbsp;&nbsp;&nbsp;&nbsp;mv_group&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mv_orthopoly&nbsp;&nbsp;&nbsp;&nbsp;mv_student<br>
&nbsp;&nbsp;mv_combinat&nbsp;&nbsp;&nbsp;&nbsp;mv_inttrans&nbsp;&nbsp;&nbsp;&nbsp;mv_padic&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mv_sumtools<br>
&nbsp;&nbsp;mv_combstruct mv_liesymm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mv_plots&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mv_tensor<br>
&nbsp;&nbsp;mv_difforms&nbsp;&nbsp;&nbsp;&nbsp;mv_linalg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mv_plottools&nbsp;&nbsp;&nbsp;&nbsp;mv_totorder<br>
&nbsp;&nbsp;mv_finance&nbsp;&nbsp;&nbsp;&nbsp; mv_logic&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mv_powseries</div>
<br>
<br>
<span class="Statement">MATHEMATICA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#mma.vim" name="mma.vim">mma.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-mma-syntax" name="ft-mma-syntax">ft-mma-syntax</a>&nbsp;<a class="Constant" href="syntax.html#ft-mathematica-syntax" name="ft-mathematica-syntax">ft-mathematica-syntax</a><br>
<br>
Empty *.m files will automatically be presumed to be Matlab files unless you<br>
have the following in your .vimrc:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let filetype_m = &quot;mma&quot;</div>
<br>
<br>
<span class="Statement">MOO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#moo.vim" name="moo.vim">moo.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-moo-syntax" name="ft-moo-syntax">ft-moo-syntax</a><br>
<br>
If you use C-style comments inside expressions and find it mangles your<br>
highlighting, you may want to use extended (slow!) matches for C-style<br>
comments:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let moo_extended_cstyle_comments = 1</div>
<br>
To disable highlighting of pronoun substitution patterns inside strings:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let moo_no_pronoun_sub = 1</div>
<br>
To disable highlighting of the regular expression operator '%|', and matching<br>
'%(' and '%)' inside strings:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let moo_no_regexp = 1</div>
<br>
Unmatched double quotes can be recognized and highlighted as errors:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let moo_unmatched_quotes = 1</div>
<br>
To highlight builtin properties (.name, .location, .programmer etc.):<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let moo_builtin_properties = 1</div>
<br>
Unknown builtin functions can be recognized and highlighted as errors.&nbsp;&nbsp;If you<br>
use this option, add your own extensions to the mooKnownBuiltinFunction group.<br>
To enable this option:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let moo_unknown_builtin_functions = 1</div>
<br>
An example of adding sprintf() to the list of known builtin functions:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:syn keyword mooKnownBuiltinFunction sprintf contained</div>
<br>
<br>
<span class="Statement">MSQL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#msql.vim" name="msql.vim">msql.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-msql-syntax" name="ft-msql-syntax">ft-msql-syntax</a><br>
<br>
There are two options for the msql syntax highlighting.<br>
<br>
If you like SQL syntax highlighting inside Strings, use this:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let msql_sql_query = 1</div>
<br>
For syncing, minlines defaults to 100.&nbsp;&nbsp;If you prefer another value, you can<br>
set &quot;msql_minlines&quot; to the value you desire.&nbsp;&nbsp;Example:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let msql_minlines = 200</div>
<br>
<br>
<span class="Statement">NCF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#ncf.vim" name="ncf.vim">ncf.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-ncf-syntax" name="ft-ncf-syntax">ft-ncf-syntax</a><br>
<br>
There is one option for NCF syntax highlighting.<br>
<br>
If you want to have unrecognized (by ncf.vim) statements highlighted as<br>
errors, use this:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let ncf_highlight_unknowns = 1</div>
<br>
If you don't want to highlight these errors, leave it unset.<br>
<br>
<br>
<span class="Statement">NROFF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#nroff.vim" name="nroff.vim">nroff.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-nroff-syntax" name="ft-nroff-syntax">ft-nroff-syntax</a><br>
<br>
The nroff syntax file works with AT&amp;T n/troff out of the box.&nbsp;&nbsp;You need to<br>
activate the GNU groff extra features included in the syntax file before you<br>
can use them.<br>
<br>
For example, Linux and BSD distributions use groff as their default text<br>
processing package.&nbsp;&nbsp;In order to activate the extra syntax highlighting<br>
features for groff, add the following option to your start-up files:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;:let b:nroff_is_groff = 1</div>
<br>
Groff is different from the old AT&amp;T n/troff that you may still find in<br>
Solaris.&nbsp;&nbsp;Groff macro and request names can be longer than 2 characters and<br>
there are extensions to the language primitives.&nbsp;&nbsp;For example, in AT&amp;T troff<br>
you access the year as a 2-digit number with the request \(yr.&nbsp;&nbsp;In groff you<br>
can use the same request, recognized for compatibility, or you can use groff's<br>
native syntax, \[yr].&nbsp;&nbsp;Furthermore, you can use a 4-digit year directly:<br>
\[year].&nbsp;&nbsp;Macro requests can be longer than 2 characters, for example, GNU mm<br>
accepts the requests &quot;.VERBON&quot; and &quot;.VERBOFF&quot; for creating verbatim<br>
environments.<br>
<br>
In order to obtain the best formatted output g/troff can give you, you should<br>
follow a few simple rules about spacing and punctuation.<br>
<br>
1. Do not leave empty spaces at the end of lines.<br>
<br>
2. Leave one space and one space only after an end-of-sentence period,<br>
&nbsp;&nbsp; exclamation mark, etc.<br>
<br>
3. For reasons stated below, it is best to follow all period marks with a<br>
&nbsp;&nbsp; carriage return.<br>
<br>
The reason behind these unusual tips is that g/n/troff have a line breaking<br>
algorithm that can be easily upset if you don't follow the rules given above.<br>
<br>
Unlike TeX, troff fills text line-by-line, not paragraph-by-paragraph and,<br>
furthermore, it does not have a concept of glue or stretch, all horizontal and<br>
vertical space input will be output as is.<br>
<br>
Therefore, you should be careful about not using more space between sentences<br>
than you intend to have in your final document.&nbsp;&nbsp;For this reason, the common<br>
practice is to insert a carriage return immediately after all punctuation<br>
marks.&nbsp;&nbsp;If you want to have &quot;even&quot; text in your final processed output, you<br>
need to maintain regular spacing in the input text.&nbsp;&nbsp;To mark both trailing<br>
spaces and two or more spaces after a punctuation as an error, use:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;:let nroff_space_errors = 1</div>
<br>
Another technique to detect extra spacing and other errors that will interfere<br>
with the correct typesetting of your file, is to define an eye-catching<br>
highlighting definition for the syntax groups &quot;nroffDefinition&quot; and<br>
&quot;nroffDefSpecial&quot; in your configuration files.&nbsp;&nbsp;For example:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;hi def nroffDefinition term=italic cterm=italic gui=reverse<br>
&nbsp;&nbsp;hi def nroffDefSpecial term=italic,bold cterm=italic,bold<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \ gui=reverse,bold</div>
<br>
If you want to navigate preprocessor entries in your source file as easily as<br>
with section markers, you can activate the following option in your .vimrc<br>
file:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let b:preprocs_as_sections = 1</div>
<br>
As well, the syntax file adds an extra paragraph marker for the extended<br>
paragraph macro (.XP) in the ms package.<br>
<br>
Finally, there is a&nbsp;<a class="Identifier" href="syntax.html#groff.vim">groff.vim</a>&nbsp;syntax file that can be used for enabling<br>
groff syntax highlighting either on a file basis or globally by default.<br>
<br>
<br>
<span class="Statement">OCAML&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#ocaml.vim" name="ocaml.vim">ocaml.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-ocaml-syntax" name="ft-ocaml-syntax">ft-ocaml-syntax</a><br>
<br>
The OCaml syntax file handles files having the following prefixes: .ml,<br>
.mli, .mll and .mly.&nbsp;&nbsp;By setting the following variable<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let ocaml_revised = 1</div>
<br>
you can switch from standard OCaml-syntax to revised syntax as supported<br>
by the camlp4 preprocessor.&nbsp;&nbsp;Setting the variable<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let ocaml_noend_error = 1</div>
<br>
prevents highlighting of &quot;end&quot; as error, which is useful when sources<br>
contain very long structures that Vim does not synchronize anymore.<br>
<br>
<br>
<span class="Statement">PAPP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#papp.vim" name="papp.vim">papp.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-papp-syntax" name="ft-papp-syntax">ft-papp-syntax</a><br>
<br>
The PApp syntax file handles .papp files and, to a lesser extend, .pxml<br>
and .pxsl files which are all a mixture of perl/xml/html/other using xml<br>
as the top-level file format.&nbsp;&nbsp;By default everything inside phtml or pxml<br>
sections is treated as a string with embedded preprocessor commands.&nbsp;&nbsp;If<br>
you set the variable:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let papp_include_html=1</div>
<br>
in your startup file it will try to syntax-hilight html code inside phtml<br>
sections, but this is relatively slow and much too colourful to be able to<br>
edit sensibly. ;)<br>
<br>
The newest version of the papp.vim syntax file can usually be found at<br>
<span class="Constant"><a href="http://papp.plan9.de">http://papp.plan9.de</a></span>.<br>
<br>
<br>
<span class="Statement">PASCAL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#pascal.vim" name="pascal.vim">pascal.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-pascal-syntax" name="ft-pascal-syntax">ft-pascal-syntax</a><br>
<br>
Files matching &quot;*.p&quot; could be Progress or Pascal.&nbsp;&nbsp;If the automatic detection<br>
doesn't work for you, or you don't edit Progress at all, use this in your<br>
startup vimrc:<br>
<br>
<div class="helpExample">&nbsp;&nbsp; :let filetype_p = &quot;pascal&quot;</div>
<br>
The Pascal syntax file has been extended to take into account some extensions<br>
provided by Turbo Pascal, Free Pascal Compiler and GNU Pascal Compiler.<br>
Delphi keywords are also supported.&nbsp;&nbsp;By default, Turbo Pascal 7.0 features are<br>
enabled.&nbsp;&nbsp;If you prefer to stick with the standard Pascal keywords, add the<br>
following line to your startup file:<br>
<br>
<div class="helpExample">&nbsp;&nbsp; :let pascal_traditional=1</div>
<br>
To switch on Delphi specific constructions (such as one-line comments,<br>
keywords, etc):<br>
<br>
<div class="helpExample">&nbsp;&nbsp; :let pascal_delphi=1</div>
<br>
<br>
The option pascal_symbol_operator controls whether symbol operators such as +,<br>
*, .., etc. are displayed using the Operator color or not.&nbsp;&nbsp;To colorize symbol<br>
operators, add the following line to your startup file:<br>
<br>
<div class="helpExample">&nbsp;&nbsp; :let pascal_symbol_operator=1</div>
<br>
Some functions are highlighted by default.&nbsp;&nbsp;To switch it off:<br>
<br>
<div class="helpExample">&nbsp;&nbsp; :let pascal_no_functions=1</div>
<br>
Furthermore, there are specific variables for some compilers.&nbsp;&nbsp;Besides<br>
pascal_delphi, there are pascal_gpc and pascal_fpc.&nbsp;&nbsp;Default extensions try to<br>
match Turbo Pascal.<br>
<br>
<div class="helpExample">&nbsp;&nbsp; :let pascal_gpc=1</div>
<br>
or<br>
<br>
<div class="helpExample">&nbsp;&nbsp; :let pascal_fpc=1</div>
<br>
To ensure that strings are defined on a single line, you can define the<br>
pascal_one_line_string variable.<br>
<br>
<div class="helpExample">&nbsp;&nbsp; :let pascal_one_line_string=1</div>
<br>
If you dislike&nbsp;<span class="Special">&lt;Tab&gt;</span>&nbsp;chars, you can set the pascal_no_tabs variable.&nbsp;&nbsp;Tabs<br>
will be highlighted as Error.<br>
<br>
<div class="helpExample">&nbsp;&nbsp; :let pascal_no_tabs=1</div>
<br>
<br>
<br>
<span class="Statement">PERL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#perl.vim" name="perl.vim">perl.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-perl-syntax" name="ft-perl-syntax">ft-perl-syntax</a><br>
<br>
There are a number of possible options to the perl syntax highlighting.<br>
<br>
Inline POD highlighting is now turned on by default.&nbsp;&nbsp;If you don't wish<br>
to have the added complexity of highlighting POD embedded within Perl<br>
files, you may set the 'perl_include_pod' option to 0:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let perl_include_pod = 0</div>
<br>
To reduce the complexity of parsing (and increase performance) you can switch<br>
off two elements in the parsing of variable names and contents.<br>
<br>
To handle package references in variable and function names not differently<br>
from the rest of the name (like 'PkgName::' in '$PkgName::VarName'):<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let perl_no_scope_in_variables = 1</div>
<br>
(In Vim 6.x it was the other way around: &quot;perl_want_scope_in_variables&quot;<br>
enabled it.)<br>
<br>
If you do not want complex things like '@{$<span class="Special">{&quot;foo&quot;}</span>}' to be parsed:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let perl_no_extended_vars = 1</div>
<br>
(In Vim 6.x it was the other way around: &quot;perl_extended_vars&quot; enabled it.)<br>
<br>
The coloring strings can be changed.&nbsp;&nbsp;By default strings and qq friends will be<br>
highlighted like the first line.&nbsp;&nbsp;If you set the variable<br>
perl_string_as_statement, it will be highlighted as in the second line.<br>
<br>
&nbsp;&nbsp; &quot;hello world!&quot;; qq|hello world|;<br>
&nbsp;&nbsp; ^^^^^^^^^^^^^^NN^^^^^^^^^^^^^^^<span class="Special">N</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (unlet perl_string_as_statement)<br>
&nbsp;&nbsp; S^^^^^^^^^^^^SNNSSS^^^^^^^^^^^SN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (let perl_string_as_statement)<br>
<br>
(^ = perlString, S = perlStatement,&nbsp;<span class="Special">N</span>&nbsp;= None at all)<br>
<br>
The syncing has 3 options.&nbsp;&nbsp;The first two switch off some triggering of<br>
synchronization and should only be needed in case it fails to work properly.<br>
If while scrolling all of a sudden the whole screen changes color completely<br>
then you should try and switch off one of those.&nbsp;&nbsp;Let me know if you can figure<br>
out the line that causes the mistake.<br>
<br>
One triggers on &quot;^\s*sub\s*&quot; and the other on &quot;^[$@%]&quot; more or less.<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let perl_no_sync_on_sub<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let perl_no_sync_on_global_var</div>
<br>
Below you can set the maximum distance VIM should look for starting points for<br>
its attempts in syntax highlighting.<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let perl_sync_dist = 100</div>
<br>
If you want to use folding with perl, set perl_fold:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let perl_fold = 1</div>
<br>
If you want to fold blocks in if statements, etc. as well set the following:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let perl_fold_blocks = 1</div>
<br>
Subroutines are folded by default if 'perl_fold' is set.&nbsp;&nbsp;If you do not want<br>
this, you can set 'perl_nofold_subs':<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let perl_nofold_subs = 1</div>
<br>
Anonymous subroutines are not folded by default; you may enable their folding<br>
via 'perl_fold_anonymous_subs':<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let perl_fold_anonymous_subs = 1</div>
<br>
Packages are also folded by default if 'perl_fold' is set.&nbsp;&nbsp;To disable this<br>
behavior, set 'perl_nofold_packages':<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let perl_nofold_packages = 1</div>
<br>
PHP3 and PHP4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#php.vim" name="php.vim">php.vim</a>&nbsp;<a class="Constant" href="syntax.html#php3.vim" name="php3.vim">php3.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-php-syntax" name="ft-php-syntax">ft-php-syntax</a>&nbsp;<a class="Constant" href="syntax.html#ft-php3-syntax" name="ft-php3-syntax">ft-php3-syntax</a><br>
<br>
[<span class="Todo">note</span>: previously this was called &quot;php3&quot;, but since it now also supports php4<br>
it has been renamed to &quot;php&quot;]<br>
<br>
There are the following options for the php syntax highlighting.<br>
<br>
If you like SQL syntax highlighting inside Strings:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;let php_sql_query = 1</div>
<br>
For highlighting the Baselib methods:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;let php_baselib = 1</div>
<br>
Enable HTML syntax highlighting inside strings:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;let php_htmlInStrings = 1</div>
<br>
Using the old colorstyle:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;let php_oldStyle = 1</div>
<br>
Enable highlighting ASP-style short tags:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;let php_asp_tags = 1</div>
<br>
Disable short tags:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;let php_noShortTags = 1</div>
<br>
For highlighting parent error ] or ):<br>
<br>
<div class="helpExample">&nbsp;&nbsp;let php_parent_error_close = 1</div>
<br>
For skipping a php end tag, if there exists an open ( or [ without a closing<br>
one:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;let php_parent_error_open = 1</div>
<br>
Enable folding for classes and functions:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;let php_folding = 1</div>
<br>
Selecting syncing method:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;let php_sync_method = x</div>
<br>
x = -1 to sync by search (default),<br>
x &gt; 0 to sync at least x lines backwards,<br>
x = 0 to sync from start.<br>
<br>
<br>
<span class="Statement">PLAINTEX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#plaintex.vim" name="plaintex.vim">plaintex.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-plaintex-syntax" name="ft-plaintex-syntax">ft-plaintex-syntax</a><br>
<br>
TeX is a typesetting language, and plaintex is the file type for the &quot;plain&quot;<br>
variant of TeX.&nbsp;&nbsp;If you never want your *.tex files recognized as plain TeX,<br>
see&nbsp;<a class="Identifier" href="filetype.html#ft-tex-plugin">ft-tex-plugin</a>.<br>
<br>
This syntax file has the option<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:plaintex_delimiters = 1</div>
<br>
if you want to highlight brackets &quot;[]&quot; and braces &quot;{}&quot;.<br>
<br>
<br>
<span class="Statement">PPWIZARD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#ppwiz.vim" name="ppwiz.vim">ppwiz.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-ppwiz-syntax" name="ft-ppwiz-syntax">ft-ppwiz-syntax</a><br>
<br>
PPWizard is a preprocessor for HTML and OS/2 INF files<br>
<br>
This syntax file has the options:<br>
<br>
- ppwiz_highlight_defs : determines highlighting mode for PPWizard's<br>
&nbsp;&nbsp;definitions.&nbsp;&nbsp;Possible values are<br>
<br>
&nbsp;&nbsp;ppwiz_highlight_defs = 1 : PPWizard #define statements retain the<br>
&nbsp;&nbsp;&nbsp;&nbsp;colors of their contents (e.g. PPWizard macros and variables)<br>
<br>
&nbsp;&nbsp;ppwiz_highlight_defs = 2 : preprocessor #define and #evaluate<br>
&nbsp;&nbsp;&nbsp;&nbsp;statements are shown in a single color with the exception of line<br>
&nbsp;&nbsp;&nbsp;&nbsp;continuation symbols<br>
<br>
&nbsp;&nbsp;The default setting for ppwiz_highlight_defs is 1.<br>
<br>
- ppwiz_with_html : If the value is 1 (the default), highlight literal<br>
&nbsp;&nbsp;HTML code; if 0, treat HTML code like ordinary text.<br>
<br>
<br>
<span class="Statement">PHTML&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#phtml.vim" name="phtml.vim">phtml.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-phtml-syntax" name="ft-phtml-syntax">ft-phtml-syntax</a><br>
<br>
There are two options for the phtml syntax highlighting.<br>
<br>
If you like SQL syntax highlighting inside Strings, use this:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let phtml_sql_query = 1</div>
<br>
For syncing, minlines defaults to 100.&nbsp;&nbsp;If you prefer another value, you can<br>
set &quot;phtml_minlines&quot; to the value you desire.&nbsp;&nbsp;Example:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let phtml_minlines = 200</div>
<br>
<br>
<span class="Statement">POSTSCRIPT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#postscr.vim" name="postscr.vim">postscr.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-postscr-syntax" name="ft-postscr-syntax">ft-postscr-syntax</a><br>
<br>
There are several options when it comes to highlighting PostScript.<br>
<br>
First which version of the PostScript language to highlight.&nbsp;&nbsp;There are<br>
currently three defined language versions, or levels.&nbsp;&nbsp;Level 1 is the original<br>
and base version, and includes all extensions prior to the release of level 2.<br>
Level 2 is the most common version around, and includes its own set of<br>
extensions prior to the release of level 3.&nbsp;&nbsp;Level 3 is currently the highest<br>
level supported.&nbsp;&nbsp;You select which level of the PostScript language you want<br>
highlighted by defining the postscr_level variable as follows:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let postscr_level=2</div>
<br>
If this variable is not defined it defaults to 2 (level 2) since this is<br>
the most prevalent version currently.<br>
<br>
<span class="Todo">Note</span>, not all PS interpreters will support all language features for a<br>
particular language level.&nbsp;&nbsp;In particular the %!PS-Adobe-3.0 at the start of<br>
PS files does NOT mean the PostScript present is level 3 PostScript!<br>
<br>
If you are working with Display PostScript, you can include highlighting of<br>
Display PS language features by defining the postscr_display variable as<br>
follows:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let postscr_display=1</div>
<br>
If you are working with Ghostscript, you can include highlighting of<br>
Ghostscript specific language features by defining the variable<br>
postscr_ghostscript as follows:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let postscr_ghostscript=1</div>
<br>
PostScript is a large language, with many predefined elements.&nbsp;&nbsp;While it<br>
useful to have all these elements highlighted, on slower machines this can<br>
cause Vim to slow down.&nbsp;&nbsp;In an attempt to be machine friendly font names and<br>
character encodings are not highlighted by default.&nbsp;&nbsp;Unless you are working<br>
explicitly with either of these this should be ok.&nbsp;&nbsp;If you want them to be<br>
highlighted you should set one or both of the following variables:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let postscr_fonts=1<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let postscr_encodings=1</div>
<br>
There is a stylistic option to the highlighting of and, or, and not.&nbsp;&nbsp;In<br>
PostScript the function of these operators depends on the types of their<br>
operands - if the operands are booleans then they are the logical operators,<br>
if they are integers then they are binary operators.&nbsp;&nbsp;As binary and logical<br>
operators can be highlighted differently they have to be highlighted one way<br>
or the other.&nbsp;&nbsp;By default they are treated as logical operators.&nbsp;&nbsp;They can be<br>
highlighted as binary operators by defining the variable<br>
postscr_andornot_binary as follows:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let postscr_andornot_binary=1</div>
<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#ptcap.vim" name="ptcap.vim">ptcap.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-printcap-syntax" name="ft-printcap-syntax">ft-printcap-syntax</a><br>
PRINTCAP + TERMCAP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#ft-ptcap-syntax" name="ft-ptcap-syntax">ft-ptcap-syntax</a>&nbsp;<a class="Constant" href="syntax.html#ft-termcap-syntax" name="ft-termcap-syntax">ft-termcap-syntax</a><br>
<br>
This syntax file applies to the printcap and termcap databases.<br>
<br>
In order for Vim to recognize printcap/termcap files that do not match<br>
the patterns *printcap*, or *termcap*, you must put additional patterns<br>
appropriate to your system in your&nbsp;<a class="Identifier" href="syntax.html#myfiletypefile">myfiletypefile</a>&nbsp;file.&nbsp;&nbsp;For these<br>
patterns, you must set the variable &quot;b:ptcap_type&quot; to either &quot;print&quot; or<br>
&quot;term&quot;, and then the&nbsp;<a class="Type" href="options.html#'filetype'">'filetype'</a>&nbsp;option to ptcap.<br>
<br>
For example, to make Vim identify all files in /etc/termcaps/ as termcap<br>
files, add the following:<br>
<br>
<div class="helpExample">&nbsp;&nbsp; :au BufNewFile,BufRead /etc/termcaps/* let b:ptcap_type = &quot;term&quot; |<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \ set filetype=ptcap</div>
<br>
If you notice highlighting errors while scrolling backwards, which<br>
are fixed when redrawing with&nbsp;<span class="Special">CTRL-L</span>, try setting the &quot;ptcap_minlines&quot;<br>
internal variable to a larger number:<br>
<br>
<div class="helpExample">&nbsp;&nbsp; :let ptcap_minlines = 50</div>
<br>
(The default is 20 lines.)<br>
<br>
<br>
<span class="Statement">PROGRESS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#progress.vim" name="progress.vim">progress.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-progress-syntax" name="ft-progress-syntax">ft-progress-syntax</a><br>
<br>
Files matching &quot;*.w&quot; could be Progress or cweb.&nbsp;&nbsp;If the automatic detection<br>
doesn't work for you, or you don't edit cweb at all, use this in your<br>
startup vimrc:<br>
<div class="helpExample">&nbsp;&nbsp; :let filetype_w = &quot;progress&quot;</div>
The same happens for &quot;*.i&quot;, which could be assembly, and &quot;*.p&quot;, which could be<br>
Pascal.&nbsp;&nbsp;Use this if you don't use assembly and Pascal:<br>
<div class="helpExample">&nbsp;&nbsp; :let filetype_i = &quot;progress&quot;<br>
&nbsp;&nbsp; :let filetype_p = &quot;progress&quot;</div>
<br>
<br>
<span class="Statement">PYTHON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#python.vim" name="python.vim">python.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-python-syntax" name="ft-python-syntax">ft-python-syntax</a><br>
<br>
There are six options to control Python syntax highlighting.<br>
<br>
For highlighted numbers:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let python_no_number_highlight = 1</div>
<br>
For highlighted builtin functions:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let python_no_builtin_highlight = 1</div>
<br>
For highlighted standard exceptions:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let python_no_exception_highlight = 1</div>
<br>
For highlighted doctests and code inside:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let python_no_doctest_highlight = 1</div>
or<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let python_no_doctest_code_highlight = 1</div>
(first option implies second one).<br>
<br>
For highlighted trailing whitespace and mix of spaces and tabs:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let python_space_error_highlight = 1</div>
<br>
If you want all possible Python highlighting (the same as setting the<br>
preceding last option and unsetting all other ones):<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let python_highlight_all = 1</div>
<br>
<span class="Todo">Note</span>: only existence of these options matter, not their value. You can replace<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1 above with anything.<br>
<br>
<br>
<span class="Statement">QUAKE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#quake.vim" name="quake.vim">quake.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-quake-syntax" name="ft-quake-syntax">ft-quake-syntax</a><br>
<br>
The Quake syntax definition should work for most any FPS (First Person<br>
Shooter) based on one of the Quake engines.&nbsp;&nbsp;However, the command names vary<br>
a bit between the three games (Quake, Quake 2, and Quake 3 Arena) so the<br>
syntax definition checks for the existence of three global variables to allow<br>
users to specify what commands are legal in their files.&nbsp;&nbsp;The three variables<br>
can be set for the following effects:<br>
<br>
set to highlight commands only available in Quake:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let quake_is_quake1 = 1</div>
<br>
set to highlight commands only available in Quake 2:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let quake_is_quake2 = 1</div>
<br>
set to highlight commands only available in Quake 3 Arena:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let quake_is_quake3 = 1</div>
<br>
Any combination of these three variables is legal, but might highlight more<br>
commands than are actually available to you by the game.<br>
<br>
<br>
<span class="Statement">READLINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#readline.vim" name="readline.vim">readline.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-readline-syntax" name="ft-readline-syntax">ft-readline-syntax</a><br>
<br>
The readline library is primarily used by the BASH shell, which adds quite a<br>
few commands and options to the ones already available.&nbsp;&nbsp;To highlight these<br>
items as well you can add the following to your&nbsp;<a class="Identifier" href="starting.html#vimrc">vimrc</a>&nbsp;or just type it in the<br>
command line before loading a file with the readline syntax:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let readline_has_bash = 1</div>
<br>
This will add highlighting for the commands that BASH (version 2.05a and<br>
later, and part earlier) adds.<br>
<br>
<br>
<span class="Statement">RESTRUCTURED TEXT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#rst.vim" name="rst.vim">rst.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-rst-syntax" name="ft-rst-syntax">ft-rst-syntax</a><br>
<br>
You may set what syntax definitions should be used for code blocks via<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let rst_syntax_code_list = ['vim', 'lisp', ...]</div>
<br>
<br>
<span class="Statement">REXX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#rexx.vim" name="rexx.vim">rexx.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-rexx-syntax" name="ft-rexx-syntax">ft-rexx-syntax</a><br>
<br>
If you notice highlighting errors while scrolling backwards, which are fixed<br>
when redrawing with&nbsp;<span class="Special">CTRL-L</span>, try setting the &quot;rexx_minlines&quot; internal variable<br>
to a larger number:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let rexx_minlines = 50</div>
This will make the syntax synchronization start 50 lines before the first<br>
displayed line.&nbsp;&nbsp;The default value is 10.&nbsp;&nbsp;The disadvantage of using a larger<br>
number is that redrawing can become slow.<br>
<br>
Vim tries to guess what type a &quot;.r&quot; file is.&nbsp;&nbsp;If it can't be detected (from<br>
comment lines), the default is &quot;r&quot;.&nbsp;&nbsp;To make the default rexx add this line to<br>
your .vimrc:&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:filetype_r" name="g:filetype_r">g:filetype_r</a><br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let g:filetype_r = &quot;r&quot;</div>
<br>
<br>
<span class="Statement">RUBY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#ruby.vim" name="ruby.vim">ruby.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-ruby-syntax" name="ft-ruby-syntax">ft-ruby-syntax</a><br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;Ruby: Operator highlighting&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#ruby_operators">ruby_operators</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;Ruby: Whitespace errors&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#ruby_space_errors">ruby_space_errors</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;Ruby: Folding&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#ruby_fold">ruby_fold</a>&nbsp;<a class="Identifier" href="syntax.html#ruby_foldable_groups">ruby_foldable_groups</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;Ruby: Reducing expensive operations&nbsp;<a class="Identifier" href="syntax.html#ruby_no_expensive">ruby_no_expensive</a>&nbsp;<a class="Identifier" href="syntax.html#ruby_minlines">ruby_minlines</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;Ruby: Spellchecking strings&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#ruby_spellcheck_strings">ruby_spellcheck_strings</a><br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#ruby_operators" name="ruby_operators">ruby_operators</a><br>
&nbsp;<span class="PreProc">Ruby: Operator highlighting</span><br>
<br>
Operators can be highlighted by defining &quot;ruby_operators&quot;:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let ruby_operators = 1</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#ruby_space_errors" name="ruby_space_errors">ruby_space_errors</a><br>
&nbsp;<span class="PreProc">Ruby: Whitespace errors</span><br>
<br>
Whitespace errors can be highlighted by defining &quot;ruby_space_errors&quot;:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let ruby_space_errors = 1</div>
<br>
This will highlight trailing whitespace and tabs preceded by a space character<br>
as errors.&nbsp;&nbsp;This can be refined by defining &quot;ruby_no_trail_space_error&quot; and<br>
&quot;ruby_no_tab_space_error&quot; which will ignore trailing whitespace and tabs after<br>
spaces respectively.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#ruby_fold" name="ruby_fold">ruby_fold</a>&nbsp;<a class="Constant" href="syntax.html#ruby_foldable_groups" name="ruby_foldable_groups">ruby_foldable_groups</a><br>
&nbsp;<span class="PreProc">Ruby: Folding</span><br>
<br>
Folding can be enabled by defining &quot;ruby_fold&quot;:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let ruby_fold = 1</div>
<br>
This will set the value of&nbsp;<a class="Type" href="options.html#'foldmethod'">'foldmethod'</a>&nbsp;to &quot;syntax&quot; locally to the current<br>
buffer or window, which will enable syntax-based folding when editing Ruby<br>
filetypes.<br>
<br>
Default folding is rather detailed, i.e., small syntax units like &quot;if&quot;, &quot;do&quot;,<br>
&quot;%w[]&quot; may create corresponding fold levels.<br>
<br>
You can set &quot;ruby_foldable_groups&quot; to restrict which groups are foldable:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let ruby_foldable_groups = 'if case %'</div>
<br>
The value is a space-separated list of keywords:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="PreProc">keyword&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; meaning</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="PreProc">--------&nbsp;&nbsp;-------------------------------------</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;ALL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Most block syntax (default)<br>
&nbsp;&nbsp;&nbsp;&nbsp;NONE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Nothing<br>
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;if&quot; or &quot;unless&quot; block<br>
&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;def&quot; block<br>
&nbsp;&nbsp;&nbsp;&nbsp;class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;class&quot; block<br>
&nbsp;&nbsp;&nbsp;&nbsp;module&nbsp;&nbsp;&nbsp;&nbsp; &quot;module&quot; block<br>
&nbsp;&nbsp;&nbsp;&nbsp;do&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;do&quot; block<br>
&nbsp;&nbsp;&nbsp;&nbsp;begin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;begin&quot; block<br>
&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;case&quot; block<br>
&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;for&quot;, &quot;while&quot;, &quot;until&quot; loops<br>
&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Curly bracket block or hash literal<br>
&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Array literal<br>
&nbsp;&nbsp;&nbsp;&nbsp;%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Literal with &quot;%&quot; notation, e.g.: %w(STRING), %!STRING!<br>
&nbsp;&nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Regexp<br>
&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;&nbsp;&nbsp;&nbsp; String and shell command output (surrounded by ', &quot;, `)<br>
&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Symbol<br>
&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Multiline comment<br>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Here documents<br>
&nbsp;&nbsp;&nbsp;&nbsp;__END__&nbsp;&nbsp;&nbsp;&nbsp;Source code after &quot;__END__&quot; directive<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#ruby_no_expensive" name="ruby_no_expensive">ruby_no_expensive</a><br>
&nbsp;<span class="PreProc">Ruby: Reducing expensive operations</span><br>
<br>
By default, the &quot;end&quot; keyword is colorized according to the opening statement<br>
of the block it closes.&nbsp;&nbsp;While useful, this feature can be expensive; if you<br>
experience slow redrawing (or you are on a terminal with poor color support)<br>
you may want to turn it off by defining the &quot;ruby_no_expensive&quot; variable:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let ruby_no_expensive = 1</div>
<br>
In this case the same color will be used for all control keywords.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#ruby_minlines" name="ruby_minlines">ruby_minlines</a><br>
<br>
If you do want this feature enabled, but notice highlighting errors while<br>
scrolling backwards, which are fixed when redrawing with&nbsp;<span class="Special">CTRL-L</span>, try setting<br>
the &quot;ruby_minlines&quot; variable to a value larger than 50:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let ruby_minlines = 100</div>
<br>
Ideally, this value should be a number of lines large enough to embrace your<br>
largest class or module.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#ruby_spellcheck_strings" name="ruby_spellcheck_strings">ruby_spellcheck_strings</a><br>
&nbsp;<span class="PreProc">Ruby: Spellchecking strings</span><br>
<br>
Ruby syntax will perform spellchecking of strings if you define<br>
&quot;ruby_spellcheck_strings&quot;:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let ruby_spellcheck_strings = 1</div>
<br>
<br>
<span class="Statement">SCHEME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#scheme.vim" name="scheme.vim">scheme.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-scheme-syntax" name="ft-scheme-syntax">ft-scheme-syntax</a><br>
<br>
By default only R5RS keywords are highlighted and properly indented.<br>
<br>
MzScheme-specific stuff will be used if b:is_mzscheme or g:is_mzscheme<br>
variables are defined.<br>
<br>
Also scheme.vim supports keywords of the Chicken Scheme-&gt;C compiler.&nbsp;&nbsp;Define<br>
b:is_chicken or g:is_chicken, if you need them.<br>
<br>
<br>
<span class="Statement">SDL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#sdl.vim" name="sdl.vim">sdl.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-sdl-syntax" name="ft-sdl-syntax">ft-sdl-syntax</a><br>
<br>
The SDL highlighting probably misses a few keywords, but SDL has so many<br>
of them it's almost impossibly to cope.<br>
<br>
The new standard, SDL-2000, specifies that all identifiers are<br>
case-sensitive (which was not so before), and that all keywords can be<br>
used either completely lowercase or completely uppercase.&nbsp;&nbsp;To have the<br>
highlighting reflect this, you can set the following variable:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let sdl_2000=1</div>
<br>
This also sets many new keywords.&nbsp;&nbsp;If you want to disable the old<br>
keywords, which is probably a good idea, use:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let SDL_no_96=1</div>
<br>
<br>
The indentation is probably also incomplete, but right now I am very<br>
satisfied with it for my own projects.<br>
<br>
<br>
<span class="Statement">SED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#sed.vim" name="sed.vim">sed.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-sed-syntax" name="ft-sed-syntax">ft-sed-syntax</a><br>
<br>
To make tabs stand out from regular blanks (accomplished by using Todo<br>
highlighting on the tabs), define &quot;highlight_sedtabs&quot; by putting<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let highlight_sedtabs = 1</div>
<br>
in the vimrc file.&nbsp;&nbsp;(This special highlighting only applies for tabs<br>
inside search patterns, replacement texts, addresses or text included<br>
by an Append/Change/Insert command.)&nbsp;&nbsp;If you enable this option, it is<br>
also a good idea to set the tab width to one character; by doing that,<br>
you can easily count the number of tabs in a string.<br>
<br>
Bugs:<br>
<br>
&nbsp;&nbsp;The transform command (y) is treated exactly like the substitute<br>
&nbsp;&nbsp;command.&nbsp;&nbsp;This means that, as far as this syntax file is concerned,<br>
&nbsp;&nbsp;transform accepts the same flags as substitute, which is wrong.<br>
&nbsp;&nbsp;(Transform accepts no flags.)&nbsp;&nbsp;I tolerate this bug because the<br>
&nbsp;&nbsp;involved commands need very complex treatment (95 patterns, one for<br>
&nbsp;&nbsp;each plausible pattern delimiter).<br>
<br>
<br>
<span class="Statement">SGML&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#sgml.vim" name="sgml.vim">sgml.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-sgml-syntax" name="ft-sgml-syntax">ft-sgml-syntax</a><br>
<br>
The coloring scheme for tags in the SGML file works as follows.<br>
<br>
The &lt;&gt; of opening tags are colored differently than the &lt;/&gt; of a closing tag.<br>
This is on purpose! For opening tags the 'Function' color is used, while for<br>
closing tags the 'Type' color is used (See syntax.vim to check how those are<br>
defined for you)<br>
<br>
Known tag names are colored the same way as statements in C.&nbsp;&nbsp;Unknown tag<br>
names are not colored which makes it easy to spot errors.<br>
<br>
<span class="Todo">Note</span>&nbsp;that the same is true for argument (or attribute) names.&nbsp;&nbsp;Known attribute<br>
names are colored differently than unknown ones.<br>
<br>
Some SGML tags are used to change the rendering of text.&nbsp;&nbsp;The following tags<br>
are recognized by the sgml.vim syntax coloring file and change the way normal<br>
text is shown:&nbsp;<span class="Special">&lt;varname&gt;</span>&nbsp;<span class="Special">&lt;emphasis&gt;</span>&nbsp;<span class="Special">&lt;command&gt;</span>&nbsp;<span class="Special">&lt;function&gt;</span>&nbsp;<span class="Special">&lt;literal&gt;</span><br>
<span class="Special">&lt;replaceable&gt;</span>&nbsp;<span class="Special">&lt;ulink&gt;</span>&nbsp;and&nbsp;<span class="Special">&lt;link&gt;</span>.<br>
<br>
If you want to change how such text is rendered, you must redefine the<br>
following syntax groups:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;- sgmlBold<br>
&nbsp;&nbsp;&nbsp;&nbsp;- sgmlBoldItalic<br>
&nbsp;&nbsp;&nbsp;&nbsp;- sgmlUnderline<br>
&nbsp;&nbsp;&nbsp;&nbsp;- sgmlItalic<br>
&nbsp;&nbsp;&nbsp;&nbsp;- sgmlLink for links<br>
<br>
To make this redefinition work you must redefine them all and define the<br>
following variable in your vimrc (this is due to the order in which the files<br>
are read during initialization)<br>
<div class="helpExample">&nbsp;&nbsp; let sgml_my_rendering=1</div>
<br>
You can also disable this rendering by adding the following line to your<br>
vimrc file:<br>
<div class="helpExample">&nbsp;&nbsp; let sgml_no_rendering=1</div>
<br>
(Adapted from the html.vim help text by Claudio Fleiner &lt;claudio@fleiner.com&gt;)<br>
<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#ft-posix-synax" name="ft-posix-synax">ft-posix-synax</a>&nbsp;<a class="Constant" href="syntax.html#ft-dash-syntax" name="ft-dash-syntax">ft-dash-syntax</a><br>
<span class="Statement">SH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#sh.vim" name="sh.vim">sh.vim</a>&nbsp;&nbsp;<a class="Constant" href="syntax.html#ft-sh-syntax" name="ft-sh-syntax">ft-sh-syntax</a>&nbsp;&nbsp;<a class="Constant" href="syntax.html#ft-bash-syntax" name="ft-bash-syntax">ft-bash-syntax</a>&nbsp;&nbsp;<a class="Constant" href="syntax.html#ft-ksh-syntax" name="ft-ksh-syntax">ft-ksh-syntax</a><br>
<br>
This covers syntax highlighting for the older Unix (Bourne) sh, and newer<br>
shells such as bash, dash, posix, and the Korn shells.<br>
<br>
Vim attempts to determine which shell type is in use by specifying that<br>
various filenames are of specific types:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;ksh : .kshrc* *.ksh<br>
&nbsp;&nbsp;&nbsp;&nbsp;bash: .bashrc* bashrc bash.bashrc .bash_profile* *.bash</div>
<br>
If none of these cases pertain, then the first line of the file is examined<br>
(ex. looking for /bin/sh&nbsp;&nbsp;/bin/ksh&nbsp;&nbsp;/bin/bash).&nbsp;&nbsp;If the first line specifies a<br>
shelltype, then that shelltype is used.&nbsp;&nbsp;However some files (ex. .profile) are<br>
known to be shell files but the type is not apparent.&nbsp;&nbsp;Furthermore, on many<br>
systems sh is symbolically linked to &quot;bash&quot; (Linux, Windows+cygwin) or &quot;ksh&quot;<br>
(Posix).<br>
<br>
One may specify a global default by instantiating one of the following<br>
variables in your &lt;.vimrc&gt;:<br>
<br>
&nbsp;&nbsp; ksh:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:is_kornshell = 1</div>
&nbsp;&nbsp;&nbsp; posix:&nbsp;&nbsp;(using this is the nearly the same as setting g:is_kornshell to 1)<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:is_posix&nbsp;&nbsp;&nbsp;&nbsp; = 1</div>
&nbsp;&nbsp;&nbsp; bash:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:is_bash&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 1</div>
&nbsp;&nbsp;&nbsp; sh: (default) Bourne shell<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:is_sh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 1</div>
<br>
&nbsp;&nbsp;&nbsp; (dash users should use posix)<br>
<br>
If there's no &quot;#! ...&quot; line, and the user hasn't availed himself/herself of a<br>
default sh.vim syntax setting as just shown, then syntax/sh.vim will assume<br>
the Bourne shell syntax.&nbsp;&nbsp;No need to quote RFCs or market penetration<br>
statistics in error reports, please -- just select the default version of the<br>
sh your system uses and install the associated &quot;let...&quot; in your &lt;.vimrc&gt;.<br>
<br>
The syntax/sh.vim file provides several levels of syntax-based folding:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:sh_fold_enabled= 0&nbsp;&nbsp;&nbsp;&nbsp; (default, no syntax folding)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:sh_fold_enabled= 1&nbsp;&nbsp;&nbsp;&nbsp; (enable function folding)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:sh_fold_enabled= 2&nbsp;&nbsp;&nbsp;&nbsp; (enable heredoc folding)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:sh_fold_enabled= 4&nbsp;&nbsp;&nbsp;&nbsp; (enable if/do/for folding)</div>
<br>
then various syntax items (ie. HereDocuments and function bodies) become<br>
syntax-foldable (see&nbsp;<a class="Identifier" href="syntax.html#:syn-fold">:syn-fold</a>).&nbsp;&nbsp;You also may add these together<br>
to get multiple types of folding:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:sh_fold_enabled= 3&nbsp;&nbsp;&nbsp;&nbsp; (enables function and heredoc folding)</div>
<br>
If you notice highlighting errors while scrolling backwards which are fixed<br>
when one redraws with&nbsp;<span class="Special">CTRL-L</span>, try setting the &quot;sh_minlines&quot; internal variable<br>
to a larger number.&nbsp;&nbsp;Example:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let sh_minlines = 500</div>
<br>
This will make syntax synchronization start 500 lines before the first<br>
displayed line.&nbsp;&nbsp;The default value is 200.&nbsp;&nbsp;The disadvantage of using a larger<br>
number is that redrawing can become slow.<br>
<br>
If you don't have much to synchronize on, displaying can be very slow.&nbsp;&nbsp;To<br>
reduce this, the &quot;sh_maxlines&quot; internal variable can be set.&nbsp;&nbsp;Example:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let sh_maxlines = 100</div>
<br>
The default is to use the twice sh_minlines.&nbsp;&nbsp;Set it to a smaller number to<br>
speed up displaying.&nbsp;&nbsp;The disadvantage is that highlight errors may appear.<br>
<br>
syntax/sh.vim tries to flag certain problems as errors; usually things like<br>
extra ']'s,&nbsp;<span class="MissingTag">'done'</span>s,&nbsp;<span class="MissingTag">'fi'</span>s, etc.&nbsp;&nbsp;If you find the error handling problematic<br>
for your purposes, you may suppress such error highlighting by putting<br>
the following line in your .vimrc:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:sh_no_error= 1</div>
<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#sh-embed" name="sh-embed">sh-embed</a>&nbsp;&nbsp;<a class="Constant" href="syntax.html#sh-awk" name="sh-awk">sh-awk</a><br>
&nbsp;<span class="PreProc">Sh: EMBEDDING LANGUAGES</span><br>
<br>
You may wish to embed languages into sh.&nbsp;&nbsp;I'll give an example courtesy of<br>
Lorance Stinson on how to do this with awk as an example. Put the following<br>
file into $HOME/.vim/after/syntax/sh/awkembed.vim:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&quot; AWK Embedding:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&quot; ==============<br>
&nbsp;&nbsp;&nbsp;&nbsp;&quot; Shamelessly ripped from aspperl.vim by Aaron Hope.<br>
&nbsp;&nbsp;&nbsp;&nbsp;if exists(&quot;b:current_syntax&quot;)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unlet b:current_syntax<br>
&nbsp;&nbsp;&nbsp;&nbsp;endif<br>
&nbsp;&nbsp;&nbsp;&nbsp;syn include @AWKScript syntax/awk.vim<br>
&nbsp;&nbsp;&nbsp;&nbsp;syn region AWKScriptCode matchgroup=AWKCommand start=+[=\\]\@&lt;!'+ skip=+\\'+ end=+'+ contains=@AWKScript contained<br>
&nbsp;&nbsp;&nbsp;&nbsp;syn region AWKScriptEmbedded matchgroup=AWKCommand start=+\&lt;awk\&gt;+ skip=+\\$+ end=+[=\\]\@&lt;!'+me=e-1 contains=@shIdList,@shExprList2 nextgroup=AWKScriptCode<br>
&nbsp;&nbsp;&nbsp;&nbsp;syn cluster shCommandSubList add=AWKScriptEmbedded<br>
&nbsp;&nbsp;&nbsp;&nbsp;hi def link AWKCommand Type</div>
<br>
This code will then let the awk code in the single quotes:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;awk '...awk code here...'</div>
be highlighted using the awk highlighting syntax.&nbsp;&nbsp;Clearly this may be<br>
extended to other languages.<br>
<br>
<br>
<span class="Statement">SPEEDUP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#spup.vim" name="spup.vim">spup.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-spup-syntax" name="ft-spup-syntax">ft-spup-syntax</a><br>
(AspenTech plant simulator)<br>
<br>
The Speedup syntax file has some options:<br>
<br>
- strict_subsections : If this variable is defined, only keywords for<br>
&nbsp;&nbsp;sections and subsections will be highlighted as statements but not<br>
&nbsp;&nbsp;other keywords (like WITHIN in the OPERATION section).<br>
<br>
- highlight_types : Definition of this variable causes stream types<br>
&nbsp;&nbsp;like temperature or pressure to be highlighted as Type, not as a<br>
&nbsp;&nbsp;plain Identifier.&nbsp;&nbsp;Included are the types that are usually found in<br>
&nbsp;&nbsp;the DECLARE section; if you defined own types, you have to include<br>
&nbsp;&nbsp;them in the syntax file.<br>
<br>
- oneline_comments : this value ranges from 1 to 3 and determines the<br>
&nbsp;&nbsp;highlighting of # style comments.<br>
<br>
&nbsp;&nbsp;oneline_comments = 1 : allow normal Speedup code after an even<br>
&nbsp;&nbsp;number of #s.<br>
<br>
&nbsp;&nbsp;oneline_comments = 2 : show code starting with the second # as<br>
&nbsp;&nbsp;error.&nbsp;&nbsp;This is the default setting.<br>
<br>
&nbsp;&nbsp;oneline_comments = 3 : show the whole line as error if it contains<br>
&nbsp;&nbsp;more than one #.<br>
<br>
Since especially OPERATION sections tend to become very large due to<br>
PRESETting variables, syncing may be critical.&nbsp;&nbsp;If your computer is<br>
fast enough, you can increase minlines and/or maxlines near the end of<br>
the syntax file.<br>
<br>
<br>
<span class="Statement">SQL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#sql.vim" name="sql.vim">sql.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-sql-syntax" name="ft-sql-syntax">ft-sql-syntax</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#sqlinformix.vim" name="sqlinformix.vim">sqlinformix.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-sqlinformix-syntax" name="ft-sqlinformix-syntax">ft-sqlinformix-syntax</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#sqlanywhere.vim" name="sqlanywhere.vim">sqlanywhere.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-sqlanywhere-syntax" name="ft-sqlanywhere-syntax">ft-sqlanywhere-syntax</a><br>
<br>
While there is an ANSI standard for SQL, most database engines add their own<br>
custom extensions.&nbsp;&nbsp;Vim currently supports the Oracle and Informix dialects of<br>
SQL.&nbsp;&nbsp;Vim assumes &quot;*.sql&quot; files are Oracle SQL by default.<br>
<br>
Vim currently has SQL support for a variety of different vendors via syntax<br>
scripts.&nbsp;&nbsp;You can change Vim's default from Oracle to any of the current SQL<br>
supported types.&nbsp;&nbsp;You can also easily alter the SQL dialect being used on a<br>
buffer by buffer basis.<br>
<br>
For more detailed instructions see&nbsp;<a class="Identifier" href="ft_sql.html">ft_sql.txt</a>.<br>
<br>
<br>
<span class="Statement">TCSH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#tcsh.vim" name="tcsh.vim">tcsh.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-tcsh-syntax" name="ft-tcsh-syntax">ft-tcsh-syntax</a><br>
<br>
This covers the shell named &quot;tcsh&quot;.&nbsp;&nbsp;It is a superset of csh.&nbsp;&nbsp;See&nbsp;<a class="Identifier" href="syntax.html#csh.vim">csh.vim</a><br>
for how the filetype is detected.<br>
<br>
Tcsh does not allow \&quot; in strings unless the &quot;backslash_quote&quot; shell variable<br>
is set.&nbsp;&nbsp;If you want VIM to assume that no backslash quote constructs exist add<br>
this line to your .vimrc:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let tcsh_backslash_quote = 0</div>
<br>
If you notice highlighting errors while scrolling backwards, which are fixed<br>
when redrawing with&nbsp;<span class="Special">CTRL-L</span>, try setting the &quot;tcsh_minlines&quot; internal variable<br>
to a larger number:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let tcsh_minlines = 1000</div>
<br>
This will make the syntax synchronization start 1000 lines before the first<br>
displayed line.&nbsp;&nbsp;If you set &quot;tcsh_minlines&quot; to &quot;fromstart&quot;, then<br>
synchronization is done from the start of the file. The default value for<br>
tcsh_minlines is 100.&nbsp;&nbsp;The disadvantage of using a larger number is that<br>
redrawing can become slow.<br>
<br>
<br>
<span class="Statement">TEX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#tex.vim" name="tex.vim">tex.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-tex-syntax" name="ft-tex-syntax">ft-tex-syntax</a>&nbsp;<a class="Constant" href="syntax.html#latex-syntax" name="latex-syntax">latex-syntax</a><br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="PreProc">Tex Contents</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tex: Want Syntax Folding?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#tex-folding">tex-folding</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tex: No Spell Checking Wanted&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#g:tex_nospell">g:tex_nospell</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tex: Don't Want Spell Checking In Comments?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#tex-nospell">tex-nospell</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tex: Want Spell Checking in Verbatim Zones?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#tex-verb">tex-verb</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tex: Run-on Comments or MathZones&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#tex-runon">tex-runon</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tex: Slow Syntax Highlighting?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#tex-slow">tex-slow</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tex: Want To Highlight More Commands?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#tex-morecommands">tex-morecommands</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tex: Excessive Error Highlighting?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#tex-error">tex-error</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tex: Need a new Math Group?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#tex-math">tex-math</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tex: Starting a New Style?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#tex-style">tex-style</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tex: Taking Advantage of Conceal Mode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#tex-conceal">tex-conceal</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tex: Selective Conceal Mode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#g:tex_conceal">g:tex_conceal</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tex: Controlling iskeyword&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#g:tex_isk">g:tex_isk</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tex: Fine Subscript and Superscript Control&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#tex-supersub">tex-supersub</a><br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#tex-folding" name="tex-folding">tex-folding</a>&nbsp;<a class="Constant" href="syntax.html#g:tex_fold_enabled" name="g:tex_fold_enabled">g:tex_fold_enabled</a><br>
&nbsp;<span class="PreProc">Tex: Want Syntax Folding?</span><br>
<br>
As of version 28 of &lt;syntax/tex.vim&gt;, syntax-based folding of parts, chapters,<br>
sections, subsections, etc are supported.&nbsp;&nbsp;Put<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:tex_fold_enabled=1</div>
in your &lt;.vimrc&gt;, and :set fdm=syntax.&nbsp;&nbsp;I suggest doing the latter via a<br>
modeline at the end of your LaTeX file:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;% vim&#0058; fdm=syntax</div>
If your system becomes too slow, then you might wish to look into<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="https://vimhelp.appspot.com/vim_faq.txt.html#faq-29.7">https://vimhelp.appspot.com/vim_faq.txt.html#faq-29.7</a></div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:tex_nospell" name="g:tex_nospell">g:tex_nospell</a><br>
&nbsp;<span class="PreProc">Tex: No Spell Checking Wanted</span><br>
<br>
If you don't want spell checking anywhere in your LaTeX document, put<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:tex_nospell=1</div>
into your .vimrc.&nbsp;&nbsp;If you merely wish to suppress spell checking inside<br>
comments only, see&nbsp;<a class="Identifier" href="syntax.html#g:tex_comment_nospell">g:tex_comment_nospell</a>.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#tex-nospell" name="tex-nospell">tex-nospell</a>&nbsp;<a class="Constant" href="syntax.html#g:tex_comment_nospell" name="g:tex_comment_nospell">g:tex_comment_nospell</a><br>
&nbsp;<span class="PreProc">Tex: Don't Want Spell Checking In Comments?</span><br>
<br>
Some folks like to include things like source code in comments and so would<br>
prefer that spell checking be disabled in comments in LaTeX files.&nbsp;&nbsp;To do<br>
this, put the following in your &lt;.vimrc&gt;:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:tex_comment_nospell= 1</div>
If you want to suppress spell checking everywhere inside your LaTeX document,<br>
see&nbsp;<a class="Identifier" href="syntax.html#g:tex_nospell">g:tex_nospell</a>.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#tex-verb" name="tex-verb">tex-verb</a>&nbsp;<a class="Constant" href="syntax.html#g:tex_verbspell" name="g:tex_verbspell">g:tex_verbspell</a><br>
&nbsp;<span class="PreProc">Tex: Want Spell Checking in Verbatim Zones?</span><br>
<br>
Often verbatim regions are used for things like source code; seldom does<br>
one want source code spell-checked.&nbsp;&nbsp;However, for those of you who do<br>
want your verbatim zones spell-checked, put the following in your &lt;.vimrc&gt;:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:tex_verbspell= 1</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#tex-runon" name="tex-runon">tex-runon</a>&nbsp;<a class="Constant" href="syntax.html#tex-stopzone" name="tex-stopzone">tex-stopzone</a><br>
&nbsp;<span class="PreProc">Tex: Run-on Comments or MathZones</span><br>
<br>
The &lt;syntax/tex.vim&gt; highlighting supports TeX, LaTeX, and some AmsTeX.&nbsp;&nbsp;The<br>
highlighting supports three primary zones/regions: normal, texZone, and<br>
texMathZone.&nbsp;&nbsp;Although considerable effort has been made to have these zones<br>
terminate properly, zones delineated by $..$ and $$..$$ cannot be synchronized<br>
as there's no difference between start and end patterns.&nbsp;&nbsp;Consequently, a<br>
special &quot;TeX comment&quot; has been provided<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%stopzone</div>
which will forcibly terminate the highlighting of either a texZone or a<br>
texMathZone.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#tex-slow" name="tex-slow">tex-slow</a>&nbsp;<a class="Constant" href="syntax.html#tex-sync" name="tex-sync">tex-sync</a><br>
&nbsp;<span class="PreProc">Tex: Slow Syntax Highlighting?</span><br>
<br>
If you have a slow computer, you may wish to reduce the values for<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:syn sync maxlines=200<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:syn sync minlines=50</div>
(especially the latter).&nbsp;&nbsp;If your computer is fast, you may wish to<br>
increase them.&nbsp;&nbsp;This primarily affects synchronizing (i.e. just what group,<br>
if any, is the text at the top of the screen supposed to be in?).<br>
<br>
Another cause of slow highlighting is due to syntax-driven folding; see<br>
<a class="Identifier" href="syntax.html#tex-folding">tex-folding</a>&nbsp;for a way around this.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:tex_fast" name="g:tex_fast">g:tex_fast</a><br>
<br>
Finally, if syntax highlighting is still too slow, you may set<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let g:tex_fast= &quot;&quot;</div>
<br>
in your .vimrc.&nbsp;&nbsp;Used this way, the g:tex_fast variable causes the syntax<br>
highlighting script to avoid defining any regions and associated<br>
synchronization.&nbsp;&nbsp;The result will be much faster syntax highlighting; the<br>
price: you will no longer have as much highlighting or any syntax-based<br>
folding, and you will be missing syntax-based error checking.<br>
<br>
You may decide that some syntax is acceptable; you may use the following table<br>
selectively to enable just some syntax highlighting:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;b : allow bold and italic syntax<br>
&nbsp;&nbsp;&nbsp;&nbsp;c : allow texComment syntax<br>
&nbsp;&nbsp;&nbsp;&nbsp;m : allow texMatcher syntax (ie. {...} and [...])<br>
&nbsp;&nbsp;&nbsp;&nbsp;M : allow texMath syntax<br>
&nbsp;&nbsp;&nbsp;&nbsp;p : allow parts, chapter, section, etc syntax<br>
&nbsp;&nbsp;&nbsp;&nbsp;r : allow texRefZone syntax (nocite, bibliography, label, pageref, eqref)<br>
&nbsp;&nbsp;&nbsp;&nbsp;s : allow superscript/subscript regions<br>
&nbsp;&nbsp;&nbsp;&nbsp;S : allow texStyle syntax<br>
&nbsp;&nbsp;&nbsp;&nbsp;v : allow verbatim syntax<br>
&nbsp;&nbsp;&nbsp;&nbsp;V : allow texNewEnv and texNewCmd syntax</div>
<br>
As an example, let g:tex_fast= &quot;M&quot; will allow math-associated highlighting<br>
but suppress all the other region-based syntax highlighting.<br>
(also see:&nbsp;<a class="Identifier" href="syntax.html#g:tex_conceal">g:tex_conceal</a>&nbsp;and&nbsp;<a class="Identifier" href="syntax.html#tex-supersub">tex-supersub</a>)<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#tex-morecommands" name="tex-morecommands">tex-morecommands</a>&nbsp;<a class="Constant" href="syntax.html#tex-package" name="tex-package">tex-package</a><br>
&nbsp;<span class="PreProc">Tex: Want To Highlight More Commands?</span><br>
<br>
LaTeX is a programmable language, and so there are thousands of packages full<br>
of specialized LaTeX commands, syntax, and fonts.&nbsp;&nbsp;If you're using such a<br>
package you'll often wish that the distributed syntax/tex.vim would support<br>
it.&nbsp;&nbsp;However, clearly this is impractical.&nbsp;&nbsp;So please consider using the<br>
techniques in&nbsp;<a class="Identifier" href="syntax.html#mysyntaxfile-add">mysyntaxfile-add</a>&nbsp;to extend or modify the highlighting provided<br>
by syntax/tex.vim.&nbsp;&nbsp;Please consider uploading any extensions that you write,<br>
which typically would go in $HOME/after/syntax/tex/[pkgname].vim, to<br>
<span class="Constant"><a href="http://vim.sf.net/">http://vim.sf.net/</a></span>.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#tex-error" name="tex-error">tex-error</a>&nbsp;<a class="Constant" href="syntax.html#g:tex_no_error" name="g:tex_no_error">g:tex_no_error</a><br>
&nbsp;<span class="PreProc">Tex: Excessive Error Highlighting?</span><br>
<br>
The &lt;tex.vim&gt; supports lexical error checking of various sorts.&nbsp;&nbsp;Thus,<br>
although the error checking is ofttimes very useful, it can indicate<br>
errors where none actually are.&nbsp;&nbsp;If this proves to be a problem for you,<br>
you may put in your &lt;.vimrc&gt; the following statement:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:tex_no_error=1</div>
and all error checking by &lt;syntax/tex.vim&gt; will be suppressed.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#tex-math" name="tex-math">tex-math</a><br>
&nbsp;<span class="PreProc">Tex: Need a new Math Group?</span><br>
<br>
If you want to include a new math group in your LaTeX, the following<br>
code shows you an example as to how you might do so:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call TexNewMathZone(sfx,mathzone,starform)</div>
You'll want to provide the new math group with a unique suffix<br>
(currently, A-L and V-Z are taken by &lt;syntax/tex.vim&gt; itself).<br>
As an example, consider how eqnarray is set up by &lt;syntax/tex.vim&gt;:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call TexNewMathZone(&quot;D&quot;,&quot;eqnarray&quot;,1)</div>
You'll need to change &quot;mathzone&quot; to the name of your new math group,<br>
and then to the call to it in .vim/after/syntax/tex.vim.<br>
The &quot;starform&quot; variable, if true, implies that your new math group<br>
has a starred form (ie. eqnarray*).<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#tex-style" name="tex-style">tex-style</a>&nbsp;<a class="Constant" href="syntax.html#b:tex_stylish" name="b:tex_stylish">b:tex_stylish</a><br>
&nbsp;<span class="PreProc">Tex: Starting a New Style?</span><br>
<br>
One may use &quot;\makeatletter&quot; in *.tex files, thereby making the use of &quot;@&quot; in<br>
commands available.&nbsp;&nbsp;However, since the *.tex file doesn't have one of the<br>
following suffices: sty cls clo dtx ltx, the syntax highlighting will flag<br>
such use of @ as an error.&nbsp;&nbsp;To solve this:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let b:tex_stylish = 1<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:set ft=tex</div>
<br>
Putting &quot;let g:tex_stylish=1&quot; into your &lt;.vimrc&gt; will make &lt;syntax/tex.vim&gt;<br>
always accept such use of @.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#tex-cchar" name="tex-cchar">tex-cchar</a>&nbsp;<a class="Constant" href="syntax.html#tex-cole" name="tex-cole">tex-cole</a>&nbsp;<a class="Constant" href="syntax.html#tex-conceal" name="tex-conceal">tex-conceal</a><br>
&nbsp;<span class="PreProc">Tex: Taking Advantage of Conceal Mode</span><br>
<br>
If you have&nbsp;<a class="Identifier" href="options.html#'conceallevel'">'conceallevel'</a>&nbsp;set to 2 and if your encoding is utf-8, then a<br>
number of character sequences can be translated into appropriate utf-8 glyphs,<br>
including various accented characters, Greek characters in MathZones, and<br>
superscripts and subscripts in MathZones.&nbsp;&nbsp;Not all characters can be made into<br>
superscripts or subscripts; the constraint is due to what utf-8 supports.<br>
In fact, only a few characters are supported as subscripts.<br>
<br>
One way to use this is to have vertically split windows (see&nbsp;<a class="Identifier" href="windows.html#CTRL-W_v">CTRL-W_v</a>); one<br>
with&nbsp;<a class="Identifier" href="options.html#'conceallevel'">'conceallevel'</a>&nbsp;at 0 and the other at 2; and both using&nbsp;<a class="Identifier" href="options.html#'scrollbind'">'scrollbind'</a>.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:tex_conceal" name="g:tex_conceal">g:tex_conceal</a><br>
&nbsp;<span class="PreProc">Tex: Selective Conceal Mode</span><br>
<br>
You may selectively use conceal mode by setting g:tex_conceal in your<br>
&lt;.vimrc&gt;.&nbsp;&nbsp;By default, g:tex_conceal is set to &quot;admgs&quot; to enable concealment<br>
for the following sets of characters:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a = accents/ligatures<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b = bold and italic<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d = delimiters<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m = math symbols<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g = Greek<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s = superscripts/subscripts</div>
<br>
By leaving one or more of these out, the associated conceal-character<br>
substitution will not be made.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:tex_isk" name="g:tex_isk">g:tex_isk</a>&nbsp;<a class="Constant" href="syntax.html#g:tex_stylish" name="g:tex_stylish">g:tex_stylish</a><br>
&nbsp;<span class="PreProc">Tex: Controlling iskeyword</span><br>
<br>
Normally, LaTeX keywords support 0-9, a-z, A-z, and 192-255 only. Latex<br>
keywords don't support the underscore - except when in *.sty files.&nbsp;&nbsp;The<br>
syntax highlighting script handles this with the following logic:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* If g:tex_stylish exists and is 1<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;then the file will be treated as a &quot;sty&quot; file, so the &quot;_&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;will be allowed as part of keywords<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(regardless of g:tex_isk)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* Else if the file's suffix is sty, cls, clo, dtx, or ltx,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;then the file will be treated as a &quot;sty&quot; file, so the &quot;_&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;will be allowed as part of keywords<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(regardless of g:tex_isk)<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* If g:tex_isk exists, then it will be used for the local&nbsp;<a class="Type" href="options.html#'iskeyword'">'iskeyword'</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* Else the local&nbsp;<a class="Type" href="options.html#'iskeyword'">'iskeyword'</a>&nbsp;will be set to 48-57,a-z,A-Z,192-255<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#tex-supersub" name="tex-supersub">tex-supersub</a>&nbsp;<a class="Constant" href="syntax.html#g:tex_superscripts" name="g:tex_superscripts">g:tex_superscripts</a>&nbsp;<a class="Constant" href="syntax.html#g:tex_subscripts" name="g:tex_subscripts">g:tex_subscripts</a><br>
&nbsp;<span class="PreProc">Tex: Fine Subscript and Superscript Control</span><br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;See&nbsp;<a class="Identifier" href="syntax.html#tex-conceal">tex-conceal</a>&nbsp;for how to enable concealed character replacement.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;See&nbsp;<a class="Identifier" href="syntax.html#g:tex_conceal">g:tex_conceal</a>&nbsp;for selectively concealing accents, bold/italic,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;math, Greek, and superscripts/subscripts.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;One may exert fine control over which superscripts and subscripts one<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wants syntax-based concealment for (see&nbsp;<a class="Identifier" href="syntax.html#:syn-cchar">:syn-cchar</a>).&nbsp;&nbsp;Since not all<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fonts support all characters, one may override the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;concealed-replacement lists; by default these lists are given by:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:tex_superscripts= &quot;[0-9a-zA-W.,:;+-&lt;&gt;/()=]&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:tex_subscripts= &quot;[0-9aehijklmnoprstuvx,+-/().]&quot;</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For example, I use Luxi Mono Bold; it doesn't support subscript<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;characters for &quot;hklmnpst&quot;, so I put<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:tex_subscripts= &quot;[0-9aeijoruvx,+-/().]&quot;</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in ~/.vim/ftplugin/tex/tex.vim in order to avoid having inscrutable<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;utf-8 glyphs appear.<br>
<br>
<br>
<span class="Statement">TF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#tf.vim" name="tf.vim">tf.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-tf-syntax" name="ft-tf-syntax">ft-tf-syntax</a><br>
<br>
There is one option for the tf syntax highlighting.<br>
<br>
For syncing, minlines defaults to 100.&nbsp;&nbsp;If you prefer another value, you can<br>
set &quot;tf_minlines&quot; to the value you desire.&nbsp;&nbsp;Example:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let tf_minlines = your choice</div>
<br>
<span class="Statement">VIM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#vim.vim" name="vim.vim">vim.vim</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#ft-vim-syntax" name="ft-vim-syntax">ft-vim-syntax</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:vimsyn_minlines" name="g:vimsyn_minlines">g:vimsyn_minlines</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:vimsyn_maxlines" name="g:vimsyn_maxlines">g:vimsyn_maxlines</a><br>
There is a trade-off between more accurate syntax highlighting versus screen<br>
updating speed.&nbsp;&nbsp;To improve accuracy, you may wish to increase the<br>
g:vimsyn_minlines variable.&nbsp;&nbsp;The g:vimsyn_maxlines variable may be used to<br>
improve screen updating rates (see&nbsp;<a class="Identifier" href="syntax.html#:syn-sync">:syn-sync</a>&nbsp;for more on this).<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g:vimsyn_minlines : used to set synchronization minlines<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g:vimsyn_maxlines : used to set synchronization maxlines</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(g:vim_minlines and g:vim_maxlines are deprecated variants of<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;these two options)<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:vimsyn_embed" name="g:vimsyn_embed">g:vimsyn_embed</a><br>
The g:vimsyn_embed option allows users to select what, if any, types of<br>
embedded script highlighting they wish to have.<br>
<br>
<div class="helpExample">&nbsp;&nbsp; g:vimsyn_embed == 0&nbsp;&nbsp; : don't support any embedded scripts<br>
&nbsp;&nbsp; g:vimsyn_embed =~ 'l' : support embedded lua<br>
&nbsp;&nbsp; g:vimsyn_embed =~ 'm' : support embedded mzscheme<br>
&nbsp;&nbsp; g:vimsyn_embed =~ 'p' : support embedded perl<br>
&nbsp;&nbsp; g:vimsyn_embed =~ 'P' : support embedded python<br>
&nbsp;&nbsp; g:vimsyn_embed =~ 'r' : support embedded ruby<br>
&nbsp;&nbsp; g:vimsyn_embed =~ 't' : support embedded tcl</div>
<br>
By default, g:vimsyn_embed is a string supporting interpreters that your vim<br>
itself supports.&nbsp;&nbsp;Concatenate multiple characters to support multiple types<br>
of embedded interpreters; ie. g:vimsyn_embed= &quot;mp&quot; supports embedded mzscheme<br>
and embedded perl.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:vimsyn_folding" name="g:vimsyn_folding">g:vimsyn_folding</a><br>
<br>
Some folding is now supported with syntax/vim.vim:<br>
<br>
<div class="helpExample">&nbsp;&nbsp; g:vimsyn_folding == 0 or doesn't exist: no syntax-based folding<br>
&nbsp;&nbsp; g:vimsyn_folding =~ 'a' : augroups<br>
&nbsp;&nbsp; g:vimsyn_folding =~ 'f' : fold functions<br>
&nbsp;&nbsp; g:vimsyn_folding =~ 'l' : fold lua&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;script<br>
&nbsp;&nbsp; g:vimsyn_folding =~ 'm' : fold mzscheme script<br>
&nbsp;&nbsp; g:vimsyn_folding =~ 'p' : fold perl&nbsp;&nbsp;&nbsp;&nbsp; script<br>
&nbsp;&nbsp; g:vimsyn_folding =~ 'P' : fold python&nbsp;&nbsp; script<br>
&nbsp;&nbsp; g:vimsyn_folding =~ 'r' : fold ruby&nbsp;&nbsp;&nbsp;&nbsp; script<br>
&nbsp;&nbsp; g:vimsyn_folding =~ 't' : fold tcl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;script</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:vimsyn_noerror" name="g:vimsyn_noerror">g:vimsyn_noerror</a><br>
Not all error highlighting that syntax/vim.vim does may be correct; Vim script<br>
is a difficult language to highlight correctly.&nbsp;&nbsp;A way to suppress error<br>
highlighting is to put the following line in your&nbsp;<a class="Identifier" href="starting.html#vimrc">vimrc</a>:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:vimsyn_noerror = 1</div>
<br>
<br>
<br>
<span class="Statement">XF86CONFIG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#xf86conf.vim" name="xf86conf.vim">xf86conf.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-xf86conf-syntax" name="ft-xf86conf-syntax">ft-xf86conf-syntax</a><br>
<br>
The syntax of XF86Config file differs in XFree86 v3.x and v4.x.&nbsp;&nbsp;Both<br>
variants are supported.&nbsp;&nbsp;Automatic detection is used, but is far from perfect.<br>
You may need to specify the version manually.&nbsp;&nbsp;Set the variable<br>
xf86conf_xfree86_version to 3 or 4 according to your XFree86 version in<br>
your .vimrc.&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let xf86conf_xfree86_version=3</div>
When using a mix of versions, set the b:xf86conf_xfree86_version variable.<br>
<br>
<span class="Todo">Note</span>&nbsp;that spaces and underscores in option names are not supported.&nbsp;&nbsp;Use<br>
&quot;SyncOnGreen&quot; instead of &quot;__s yn con gr_e_e_n&quot; if you want the option name<br>
highlighted.<br>
<br>
<br>
<span class="Statement">XML&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#xml.vim" name="xml.vim">xml.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-xml-syntax" name="ft-xml-syntax">ft-xml-syntax</a><br>
<br>
Xml namespaces are highlighted by default.&nbsp;&nbsp;This can be inhibited by<br>
setting a global variable:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let g:xml_namespace_transparent=1</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#xml-folding" name="xml-folding">xml-folding</a><br>
The xml syntax file provides syntax&nbsp;<a class="Identifier" href="fold.html#folding">folding</a>&nbsp;(see&nbsp;<a class="Identifier" href="syntax.html#:syn-fold">:syn-fold</a>) between<br>
start and end tags.&nbsp;&nbsp;This can be turned on by<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let g:xml_syntax_folding = 1<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:set foldmethod=syntax</div>
<br>
<span class="Todo">Note</span>: syntax folding might slow down syntax highlighting significantly,<br>
especially for large files.<br>
<br>
<br>
X Pixmaps (XPM)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#xpm.vim" name="xpm.vim">xpm.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-xpm-syntax" name="ft-xpm-syntax">ft-xpm-syntax</a><br>
<br>
xpm.vim creates its syntax items dynamically based upon the contents of the<br>
XPM file.&nbsp;&nbsp;Thus if you make changes e.g. in the color specification strings,<br>
you have to source it again e.g. with &quot;:set syn=xpm&quot;.<br>
<br>
To copy a pixel with one of the colors, yank a &quot;pixel&quot; with &quot;yl&quot; and insert it<br>
somewhere else with &quot;P&quot;.<br>
<br>
Do you want to draw with the mouse?&nbsp;&nbsp;Try the following:<br>
<div class="helpExample">&nbsp;&nbsp; :function! GetPixel()<br>
&nbsp;&nbsp; :&nbsp;&nbsp; let c = getline(&quot;.&quot;)[col(&quot;.&quot;) - 1]<br>
&nbsp;&nbsp; :&nbsp;&nbsp; echo c<br>
&nbsp;&nbsp; :&nbsp;&nbsp; exe &quot;noremap &lt;LeftMouse&gt; &lt;LeftMouse&gt;r&quot;.c<br>
&nbsp;&nbsp; :&nbsp;&nbsp; exe &quot;noremap &lt;LeftDrag&gt;&nbsp;&nbsp;&lt;LeftMouse&gt;r&quot;.c<br>
&nbsp;&nbsp; :endfunction<br>
&nbsp;&nbsp; :noremap &lt;RightMouse&gt; &lt;LeftMouse&gt;:call GetPixel()&lt;CR&gt;<br>
&nbsp;&nbsp; :set guicursor=n:hor20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot; to see the color beneath the cursor</div>
This turns the right button into a pipette and the left button into a pen.<br>
It will work with XPM files that have one character per pixel only and you<br>
must not click outside of the pixel strings, but feel free to improve it.<br>
<br>
It will look much better with a font in a quadratic cell size, e.g. for X:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:set guifont=-*-clean-medium-r-*-*-8-*-*-*-*-80-*</div>
<br>
<br>
<span class="Statement">YAML&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#yaml.vim" name="yaml.vim">yaml.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-yaml-syntax" name="ft-yaml-syntax">ft-yaml-syntax</a><br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#g:yaml_schema" name="g:yaml_schema">g:yaml_schema</a>&nbsp;<a class="Constant" href="syntax.html#b:yaml_schema" name="b:yaml_schema">b:yaml_schema</a><br>
A YAML schema is a combination of a set of tags and a mechanism for resolving&nbsp;<br>
non-specific tags. For user this means that YAML parser may, depending on&nbsp;<br>
plain scalar contents, treat plain scalar (which can actually be only string&nbsp;<br>
and nothing else) as a value of the other type: null, boolean, floating-point,&nbsp;<br>
integer.&nbsp;<a class="Comment" href="syntax.html#g:yaml_schema">g:yaml_schema</a>&nbsp;option determines according to which schema values&nbsp;<br>
will be highlighted specially. Supported schemas are<br>
<br>
<span class="PreProc">Schema&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Description</span><br>
failsafe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;No additional highlighting.<br>
json&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Supports JSON-style numbers, booleans and null.<br>
core&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Supports more number, boolean and null styles.<br>
pyyaml&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;In addition to core schema supports highlighting timestamps,&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;but there are some differences in what is recognized as&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numbers and many additional boolean values not present in core&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;schema.<br>
<br>
Default schema is&nbsp;<span class="Comment">core</span>.<br>
<br>
<span class="Todo">Note</span>&nbsp;that schemas are not actually limited to plain scalars, but this is the&nbsp;<br>
only difference between schemas defined in YAML specification and the only&nbsp;<br>
difference defined in the syntax file.<br>
<br>
<br>
<span class="Statement">ZSH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#zsh.vim" name="zsh.vim">zsh.vim</a>&nbsp;<a class="Constant" href="syntax.html#ft-zsh-syntax" name="ft-zsh-syntax">ft-zsh-syntax</a><br>
<br>
The syntax script for zsh allows for syntax-based folding:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:let g:zsh_fold_enable = 1</div>
<br>
<span class="PreProc">==============================================================================</span><br>
5. Defining a syntax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-define" name=":syn-define">:syn-define</a>&nbsp;<a class="Constant" href="syntax.html#E410" name="E410">E410</a><br>
<br>
Vim understands three types of syntax items:<br>
<br>
1. Keyword<br>
&nbsp;&nbsp; It can only contain keyword characters, according to the&nbsp;<a class="Type" href="options.html#'iskeyword'">'iskeyword'</a><br>
&nbsp;&nbsp; option.&nbsp;&nbsp;It cannot contain other syntax items.&nbsp;&nbsp;It will only match with a<br>
&nbsp;&nbsp; complete word (there are no keyword characters before or after the match).<br>
&nbsp;&nbsp; The keyword &quot;if&quot; would match in &quot;if(a=b)&quot;, but not in &quot;ifdef x&quot;, because<br>
&nbsp;&nbsp; &quot;(&quot; is not a keyword character and &quot;d&quot; is.<br>
<br>
2. Match<br>
&nbsp;&nbsp; This is a match with a single regexp pattern.<br>
<br>
3. Region<br>
&nbsp;&nbsp; This starts at a match of the &quot;start&quot; regexp pattern and ends with a match<br>
&nbsp;&nbsp; with the &quot;end&quot; regexp pattern.&nbsp;&nbsp;Any other text can appear in between.&nbsp;&nbsp;A<br>
&nbsp;&nbsp; &quot;skip&quot; regexp pattern can be used to avoid matching the &quot;end&quot; pattern.<br>
<br>
Several syntax ITEMs can be put into one syntax GROUP.&nbsp;&nbsp;For a syntax group<br>
you can give highlighting attributes.&nbsp;&nbsp;For example, you could have an item<br>
to define a &quot;/* .. */&quot; comment and another one that defines a &quot;// ..&quot; comment,<br>
and put them both in the &quot;Comment&quot; group.&nbsp;&nbsp;You can then specify that a<br>
&quot;Comment&quot; will be in bold font and have a blue color.&nbsp;&nbsp;You are free to make<br>
one highlight group for one syntax item, or put all items into one group.<br>
This depends on how you want to specify your highlighting attributes.&nbsp;&nbsp;Putting<br>
each item in its own group results in having to specify the highlighting<br>
for a lot of groups.<br>
<br>
<span class="Todo">Note</span>&nbsp;that a syntax group and a highlight group are similar.&nbsp;&nbsp;For a highlight<br>
group you will have given highlight attributes.&nbsp;&nbsp;These attributes will be used<br>
for the syntax group with the same name.<br>
<br>
In case more than one item matches at the same position, the one that was<br>
defined LAST wins.&nbsp;&nbsp;Thus you can override previously defined syntax items by<br>
using an item that matches the same text.&nbsp;&nbsp;But a keyword always goes before a<br>
match or region.&nbsp;&nbsp;And a keyword with matching case always goes before a<br>
keyword with ignoring case.<br>
<br>
<br>
<span class="Statement">PRIORITY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#:syn-priority" name=":syn-priority">:syn-priority</a><br>
<br>
When several syntax items may match, these rules are used:<br>
<br>
1. When multiple Match or Region items start in the same position, the item<br>
&nbsp;&nbsp; defined last has priority.<br>
2. A Keyword has priority over Match and Region items.<br>
3. An item that starts in an earlier position has priority over items that<br>
&nbsp;&nbsp; start in later positions.<br>
<br>
<br>
<span class="Statement">DEFINING CASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#:syn-case" name=":syn-case">:syn-case</a>&nbsp;<a class="Constant" href="syntax.html#E390" name="E390">E390</a><br>
<br>
:sy[ntax] case [match | ignore]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This defines if the following &quot;:syntax&quot; commands will work with<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;matching case, when using &quot;match&quot;, or with ignoring case, when using<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;ignore&quot;.&nbsp;&nbsp;<span class="Todo">Note</span>&nbsp;that any items before this are not affected, and all<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;items until the next &quot;:syntax case&quot; command are affected.<br>
<br>
:sy[ntax] case<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Show either &quot;syntax case match&quot; or &quot;syntax case ignore&quot; (translated).<br>
<br>
<span class="Statement">SPELL CHECKING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#:syn-spell" name=":syn-spell">:syn-spell</a><br>
<br>
:sy[ntax] spell [toplevel | notoplevel | default]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This defines where spell checking is to be done for text that is not<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in a syntax item:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;toplevel:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Text is spell checked.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;notoplevel:&nbsp;&nbsp;&nbsp;&nbsp; Text is not spell checked.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When there is a @Spell cluster no spell checking.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For text in syntax items use the @Spell and @NoSpell clusters<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="spell.html#spell-syntax">spell-syntax</a>.&nbsp;&nbsp;When there is no @Spell and no @NoSpell cluster then<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spell checking is done for &quot;default&quot; and &quot;toplevel&quot;.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;To activate spell checking the&nbsp;<a class="Type" href="options.html#'spell'">'spell'</a>&nbsp;option must be set.<br>
<br>
:sy[ntax] spell<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Show either &quot;syntax spell toplevel&quot;, &quot;syntax spell notoplevel&quot; or<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;syntax spell default&quot; (translated).<br>
<br>
<br>
<span class="Statement">SYNTAX ISKEYWORD SETTING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#:syn-iskeyword" name=":syn-iskeyword">:syn-iskeyword</a><br>
<br>
:sy[ntax] iskeyword [clear |&nbsp;<span class="Special">{option}</span>]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This defines the keyword characters.&nbsp;&nbsp;It's like the&nbsp;<a class="Type" href="options.html#'iskeyword'">'iskeyword'</a>&nbsp;option<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for but only applies to syntax highlighting.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clear:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Syntax specific iskeyword setting is disabled and the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buffer-local&nbsp;<a class="Type" href="options.html#'iskeyword'">'iskeyword'</a>&nbsp;setting is used.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Special">{option}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the syntax&nbsp;<a class="Type" href="options.html#'iskeyword'">'iskeyword'</a>&nbsp;option to a new value.&nbsp;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp;:syntax iskeyword @,48-57,192-255,$,_</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This would set the syntax specific iskeyword option to include all<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alphabetic characters, plus the numeric characters, all accented<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;characters and also includes the &quot;_&quot; and the &quot;$&quot;.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If no argument is given, the current value will be output.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Setting this option influences what&nbsp;<a class="Identifier" href="pattern.html#/\k">/\k</a>&nbsp;matches in syntax patterns<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and also determines where&nbsp;<a class="Identifier" href="syntax.html#:syn-keyword">:syn-keyword</a>&nbsp;will be checked for a new<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;match.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;It is recommended when writing syntax files, to use this command to<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set the correct value for the specific syntax language and not change<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;<a class="Type" href="options.html#'iskeyword'">'iskeyword'</a>&nbsp;option.<br>
<br>
<span class="Statement">DEFINING KEYWORDS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#:syn-keyword" name=":syn-keyword">:syn-keyword</a><br>
<br>
:sy[ntax] keyword&nbsp;<span class="Special">{group-name}</span>&nbsp;[<span class="Special">{options}</span>]&nbsp;<span class="Special">{keyword}</span>&nbsp;.. [<span class="Special">{options}</span>]<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This defines a number of keywords.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Special">{group-name}</span>&nbsp;&nbsp;&nbsp;&nbsp;Is a syntax group name such as &quot;Comment&quot;.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[<span class="Special">{options}</span>]&nbsp;&nbsp;&nbsp;&nbsp; See&nbsp;<a class="Identifier" href="syntax.html#:syn-arguments">:syn-arguments</a>&nbsp;below.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Special">{keyword}</span>&nbsp;..&nbsp;&nbsp;&nbsp;&nbsp;Is a list of keywords which are part of this group.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp;:syntax keyword&nbsp;&nbsp; Type&nbsp;&nbsp; int long char</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;<span class="Special">{options}</span>&nbsp;can be given anywhere in the line.&nbsp;&nbsp;They will apply to<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all keywords given, also for options that come after a keyword.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;These examples do exactly the same:<br>
<div class="helpExample">&nbsp;&nbsp;:syntax keyword&nbsp;&nbsp; Type&nbsp;&nbsp; contained int long char<br>
&nbsp;&nbsp;:syntax keyword&nbsp;&nbsp; Type&nbsp;&nbsp; int long contained char<br>
&nbsp;&nbsp;:syntax keyword&nbsp;&nbsp; Type&nbsp;&nbsp; int long char contained</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#E789" name="E789">E789</a>&nbsp;<a class="Constant" href="syntax.html#E890" name="E890">E890</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When you have a keyword with an optional tail, like Ex commands in<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Vim, you can put the optional characters inside [], to define all the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;variations at once:<br>
<div class="helpExample">&nbsp;&nbsp;:syntax keyword&nbsp;&nbsp; vimCommand&nbsp;&nbsp; ab[breviate] n[ext]</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Don't forget that a keyword can only be recognized if all the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;characters are included in the&nbsp;<a class="Type" href="options.html#'iskeyword'">'iskeyword'</a>&nbsp;option.&nbsp;&nbsp;If one character<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isn't, the keyword will never be recognized.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Multi-byte characters can also be used.&nbsp;&nbsp;These do not have to be in<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Type" href="options.html#'iskeyword'">'iskeyword'</a>.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;See&nbsp;<a class="Identifier" href="syntax.html#:syn-iskeyword">:syn-iskeyword</a>&nbsp;for defining syntax specific iskeyword settings.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A keyword always has higher priority than a match or region, the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keyword is used if more than one item matches.&nbsp;&nbsp;Keywords do not nest<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and a keyword can't contain anything else.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Todo">Note</span>&nbsp;that when you have a keyword that is the same as an option (even<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;one that isn't allowed here), you can not use it.&nbsp;&nbsp;Use a match<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;instead.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The maximum length of a keyword is 80 characters.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The same keyword can be defined multiple times, when its containment<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;differs.&nbsp;&nbsp;For example, you can define the keyword once not contained<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and use one highlight group, and once contained, and use a different<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;highlight group.&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp;:syn keyword vimCommand tag<br>
&nbsp;&nbsp;:syn keyword vimSetting contained tag</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; When finding &quot;tag&quot; outside of any syntax item, the &quot;vimCommand&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;highlight group is used.&nbsp;&nbsp;When finding &quot;tag&quot; in a syntax item that<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;contains &quot;vimSetting&quot;, the &quot;vimSetting&quot; group is used.<br>
<br>
<br>
<span class="Statement">DEFINING MATCHES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#:syn-match" name=":syn-match">:syn-match</a><br>
<br>
:sy[ntax] match&nbsp;<span class="Special">{group-name}</span>&nbsp;[<span class="Special">{options}</span>]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Special">[excludenl]</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Special">[keepend]</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Special">{pattern}</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[<span class="Special">{options}</span>]<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This defines one match.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Special">{group-name}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A syntax group name such as &quot;Comment&quot;.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[<span class="Special">{options}</span>]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; See&nbsp;<a class="Identifier" href="syntax.html#:syn-arguments">:syn-arguments</a>&nbsp;below.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Special">[excludenl]</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Don't make a pattern with the end-of-line &quot;$&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extend a containing match or region.&nbsp;&nbsp;Must be<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;given before the pattern.&nbsp;<a class="Identifier" href="syntax.html#:syn-excludenl">:syn-excludenl</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keepend&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Don't allow contained matches to go past a<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;match with the end pattern.&nbsp;&nbsp;See<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#:syn-keepend">:syn-keepend</a>.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Special">{pattern}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The search pattern that defines the match.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;See&nbsp;<a class="Identifier" href="syntax.html#:syn-pattern">:syn-pattern</a>&nbsp;below.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Todo">Note</span>&nbsp;that the pattern may match more than one<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line, which makes the match depend on where<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Vim starts searching for the pattern.&nbsp;&nbsp;You<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;need to make sure syncing takes care of this.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Example (match a character constant):<br>
<div class="helpExample">&nbsp;&nbsp;:syntax match Character /'.'/hs=s+1,he=e-1</div>
<br>
<br>
<span class="Statement">DEFINING REGIONS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#:syn-region" name=":syn-region">:syn-region</a>&nbsp;<a class="Constant" href="syntax.html#:syn-start" name=":syn-start">:syn-start</a>&nbsp;<a class="Constant" href="syntax.html#:syn-skip" name=":syn-skip">:syn-skip</a>&nbsp;<a class="Constant" href="syntax.html#:syn-end" name=":syn-end">:syn-end</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#E398" name="E398">E398</a>&nbsp;<a class="Constant" href="syntax.html#E399" name="E399">E399</a><br>
:sy[ntax] region&nbsp;<span class="Special">{group-name}</span>&nbsp;[<span class="Special">{options}</span>]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[matchgroup=<span class="Special">{group-name}</span>]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Special">[keepend]</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Special">[extend]</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Special">[excludenl]</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start={start_pattern} ..<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[skip={skip_pattern}]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end={end_pattern} ..<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[<span class="Special">{options}</span>]<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This defines one region.&nbsp;&nbsp;It may span several lines.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Special">{group-name}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A syntax group name such as &quot;Comment&quot;.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[<span class="Special">{options}</span>]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; See&nbsp;<a class="Identifier" href="syntax.html#:syn-arguments">:syn-arguments</a>&nbsp;below.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[matchgroup=<span class="Special">{group-name}</span>]&nbsp;&nbsp;The syntax group to use for the following<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start or end pattern matches only.&nbsp;&nbsp;Not used<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for the text in between the matched start and<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end patterns.&nbsp;&nbsp;Use NONE to reset to not using<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a different group for the start or end match.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;See&nbsp;<a class="Identifier" href="syntax.html#:syn-matchgroup">:syn-matchgroup</a>.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keepend&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Don't allow contained matches to go past a<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;match with the end pattern.&nbsp;&nbsp;See<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#:syn-keepend">:syn-keepend</a>.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extend&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Override a &quot;keepend&quot; for an item this region<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is contained in.&nbsp;&nbsp;See&nbsp;<a class="Identifier" href="syntax.html#:syn-extend">:syn-extend</a>.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;excludenl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Don't make a pattern with the end-of-line &quot;$&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extend a containing match or item.&nbsp;&nbsp;Only<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;useful for end patterns.&nbsp;&nbsp;Must be given before<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the patterns it applies to.&nbsp;<a class="Identifier" href="syntax.html#:syn-excludenl">:syn-excludenl</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start={start_pattern}&nbsp;&nbsp; The search pattern that defines the start of<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the region.&nbsp;&nbsp;See&nbsp;<a class="Identifier" href="syntax.html#:syn-pattern">:syn-pattern</a>&nbsp;below.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;skip={skip_pattern}&nbsp;&nbsp;&nbsp;&nbsp; The search pattern that defines text inside<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the region where not to look for the end<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern.&nbsp;&nbsp;See&nbsp;<a class="Identifier" href="syntax.html#:syn-pattern">:syn-pattern</a>&nbsp;below.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end={end_pattern}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The search pattern that defines the end of<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the region.&nbsp;&nbsp;See&nbsp;<a class="Identifier" href="syntax.html#:syn-pattern">:syn-pattern</a>&nbsp;below.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp;:syntax region String&nbsp;&nbsp; start=+&quot;+&nbsp;&nbsp;skip=+\\&quot;+&nbsp;&nbsp;end=+&quot;+</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The start/skip/end patterns and the options can be given in any order.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;There can be zero or one skip pattern.&nbsp;&nbsp;There must be one or more<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start and end patterns.&nbsp;&nbsp;This means that you can omit the skip<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern, but you must give at least one start and one end pattern.&nbsp;&nbsp;It<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is allowed to have white space before and after the equal sign<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(although it mostly looks better without white space).<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When more than one start pattern is given, a match with one of these<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is sufficient.&nbsp;&nbsp;This means there is an OR relation between the start<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;patterns.&nbsp;&nbsp;The last one that matches is used.&nbsp;&nbsp;The same is true for<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the end patterns.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The search for the end pattern starts right after the start pattern.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Offsets are not used for this.&nbsp;&nbsp;This implies that the match for the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end pattern will never overlap with the start pattern.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The skip and end pattern can match across line breaks, but since the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;search for the pattern can start in any line it often does not do what<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;you want.&nbsp;&nbsp;The skip pattern doesn't avoid a match of an end pattern in<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the next line.&nbsp;&nbsp;Use single-line patterns to avoid trouble.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Todo">Note</span>: The decision to start a region is only based on a matching start<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern.&nbsp;&nbsp;There is no check for a matching end pattern.&nbsp;&nbsp;This does NOT<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;work:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:syn region First&nbsp;&nbsp;start=&quot;(&quot;&nbsp;&nbsp;end=&quot;:&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:syn region Second start=&quot;(&quot;&nbsp;&nbsp;end=&quot;;&quot;</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The Second always matches before the First (last defined pattern has<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;higher priority).&nbsp;&nbsp;The Second region then continues until the next<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';', no matter if there is a ':' before it.&nbsp;&nbsp;Using a match does work:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:syn match First&nbsp;&nbsp;&quot;(\_.\{-}:&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:syn match Second &quot;(\_.\{-};&quot;</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This pattern matches any character or line break with &quot;\_.&quot; and<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repeats that with &quot;\<span class="Special">{-}</span>&quot; (repeat as few as possible).<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-keepend" name=":syn-keepend">:syn-keepend</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;By default, a contained match can obscure a match for the end pattern.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is useful for nesting.&nbsp;&nbsp;For example, a region that starts with<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;{&quot; and ends with &quot;}&quot;, can contain another region.&nbsp;&nbsp;An encountered &quot;}&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;will then end the contained region, but not the outer region:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; starts outer &quot;{}&quot; region<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; starts contained &quot;{}&quot; region<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ends contained &quot;{}&quot; region<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ends outer &quot;{} region<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If you don't want this, the &quot;keepend&quot; argument will make the matching<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of an end pattern of the outer region also end any contained item.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This makes it impossible to nest the same region, but allows for<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;contained items to highlight parts of the end pattern, without causing<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;that to skip the match with the end pattern.&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp;:syn match&nbsp;&nbsp;vimComment +&quot;[^&quot;]\+$+<br>
&nbsp;&nbsp;:syn region vimCommand start=&quot;set&quot; end=&quot;$&quot; contains=vimComment keepend</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The &quot;keepend&quot; makes the vimCommand always end at the end of the line,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;even though the contained vimComment includes a match with the&nbsp;<span class="Special">&lt;EOL&gt;</span>.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When &quot;keepend&quot; is not used, a match with an end pattern is retried<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;after each contained match.&nbsp;&nbsp;When &quot;keepend&quot; is included, the first<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;encountered match with an end pattern is used, truncating any<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;contained matches.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-extend" name=":syn-extend">:syn-extend</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The &quot;keepend&quot; behavior can be changed by using the &quot;extend&quot; argument.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When an item with &quot;extend&quot; is contained in an item that uses<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;keepend&quot;, the &quot;keepend&quot; is ignored and the containing region will be<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extended.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This can be used to have some contained items extend a region while<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;others don't.&nbsp;&nbsp;Example:<br>
<br>
<div class="helpExample">&nbsp;&nbsp; :syn region htmlRef start=+&lt;a&gt;+ end=+&lt;/a&gt;+ keepend contains=htmlItem,htmlScript<br>
&nbsp;&nbsp; :syn match htmlItem +&lt;[^&gt;]*&gt;+ contained<br>
&nbsp;&nbsp; :syn region htmlScript start=+&lt;script+ end=+&lt;/script[^&gt;]*&gt;+ contained extend</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Here the htmlItem item does not make the htmlRef item continue<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;further, it is only used to highlight the &lt;&gt; items.&nbsp;&nbsp;The htmlScript<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;item does extend the htmlRef item.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Another example:<br>
<div class="helpExample">&nbsp;&nbsp; :syn region xmlFold start=&quot;&lt;a&gt;&quot; end=&quot;&lt;/a&gt;&quot; fold transparent keepend extend</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This defines a region with &quot;keepend&quot;, so that its end cannot be<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;changed by contained items, like when the &quot;&lt;/a&gt;&quot; is matched to<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;highlight it differently.&nbsp;&nbsp;But when the xmlFold region is nested (it<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;includes itself), the &quot;extend&quot; applies, so that the &quot;&lt;/a&gt;&quot; of a nested<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;region only ends that region, and not the one it is contained in.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-excludenl" name=":syn-excludenl">:syn-excludenl</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When a pattern for a match or end pattern of a region includes a '$'<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to match the end-of-line, it will make a region item that it is<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;contained in continue on the next line.&nbsp;&nbsp;For example, a match with<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;\\$&quot; (backslash at the end of the line) can make a region continue<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;that would normally stop at the end of the line.&nbsp;&nbsp;This is the default<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;behavior.&nbsp;&nbsp;If this is not wanted, there are two ways to avoid it:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1. Use &quot;keepend&quot; for the containing item.&nbsp;&nbsp;This will keep all<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; contained matches from extending the match or region.&nbsp;&nbsp;It can be<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; used when all contained items must not extend the containing item.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2. Use &quot;excludenl&quot; in the contained item.&nbsp;&nbsp;This will keep that match<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from extending the containing match or region.&nbsp;&nbsp;It can be used if<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; only some contained items must not extend the containing item.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;excludenl&quot; must be given before the pattern it applies to.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-matchgroup" name=":syn-matchgroup">:syn-matchgroup</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;matchgroup&quot; can be used to highlight the start and/or end pattern<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;differently than the body of the region.&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp;:syntax region String matchgroup=Quote start=+&quot;+&nbsp;&nbsp;skip=+\\&quot;+&nbsp;&nbsp;end=+&quot;+</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This will highlight the quotes with the &quot;Quote&quot; group, and the text in<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;between with the &quot;String&quot; group.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The &quot;matchgroup&quot; is used for all start and end patterns that follow,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;until the next &quot;matchgroup&quot;.&nbsp;&nbsp;Use &quot;matchgroup=NONE&quot; to go back to not<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;using a matchgroup.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;In a start or end pattern that is highlighted with &quot;matchgroup&quot; the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;contained items of the region are not used.&nbsp;&nbsp;This can be used to avoid<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;that a contained item matches in the start or end pattern match.&nbsp;&nbsp;When<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;using &quot;transparent&quot;, this does not apply to a start or end pattern<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;match that is highlighted with &quot;matchgroup&quot;.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Here is an example, which highlights three levels of parentheses in<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;different colors:<br>
<div class="helpExample">&nbsp;&nbsp; :sy region par1 matchgroup=par1 start=/(/ end=/)/ contains=par2<br>
&nbsp;&nbsp; :sy region par2 matchgroup=par2 start=/(/ end=/)/ contains=par3 contained<br>
&nbsp;&nbsp; :sy region par3 matchgroup=par3 start=/(/ end=/)/ contains=par1 contained<br>
&nbsp;&nbsp; :hi par1 ctermfg=red guifg=red<br>
&nbsp;&nbsp; :hi par2 ctermfg=blue guifg=blue<br>
&nbsp;&nbsp; :hi par3 ctermfg=darkgreen guifg=darkgreen</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#E849" name="E849">E849</a><br>
The maximum number of syntax groups is 19999.<br>
<br>
<span class="PreProc">==============================================================================</span><br>
6. :syntax arguments&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-arguments" name=":syn-arguments">:syn-arguments</a><br>
<br>
The :syntax commands that define syntax items take a number of arguments.<br>
The common ones are explained here.&nbsp;&nbsp;The arguments may be given in any order<br>
and may be mixed with patterns.<br>
<br>
Not all commands accept all arguments.&nbsp;&nbsp;This table shows which arguments<br>
can not be used for all commands:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#E395" name="E395">E395</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="PreProc">contains&nbsp;&nbsp;oneline&nbsp;&nbsp; fold&nbsp;&nbsp;display&nbsp;&nbsp;extend concealends</span><br>
:syntax keyword&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>
:syntax match&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yes&nbsp;&nbsp;&nbsp;&nbsp; yes&nbsp;&nbsp;&nbsp;&nbsp; yes&nbsp;&nbsp;&nbsp;&nbsp; -<br>
:syntax region&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yes&nbsp;&nbsp;&nbsp;&nbsp; yes&nbsp;&nbsp;&nbsp;&nbsp; yes&nbsp;&nbsp;&nbsp;&nbsp; yes&nbsp;&nbsp;&nbsp;&nbsp; yes&nbsp;&nbsp;&nbsp;&nbsp;yes<br>
<br>
These arguments can be used for all three commands:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conceal<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cchar<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;contained<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;containedin<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nextgroup<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;transparent<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;skipwhite<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;skipnl<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;skipempty<br>
<br>
conceal&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#conceal" name="conceal">conceal</a>&nbsp;<a class="Constant" href="syntax.html#:syn-conceal" name=":syn-conceal">:syn-conceal</a><br>
<br>
When the &quot;conceal&quot; argument is given, the item is marked as concealable.<br>
Whether or not it is actually concealed depends on the value of the<br>
<a class="Type" href="options.html#'conceallevel'">'conceallevel'</a>&nbsp;option.&nbsp;&nbsp;The&nbsp;<a class="Type" href="options.html#'concealcursor'">'concealcursor'</a>&nbsp;option is used to decide whether<br>
concealable items in the current line are displayed unconcealed to be able to<br>
edit the line.<br>
Another way to conceal text is with&nbsp;<a class="Identifier" href="eval.html#matchadd()">matchadd()</a>.<br>
<br>
concealends&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-concealends" name=":syn-concealends">:syn-concealends</a><br>
<br>
When the &quot;concealends&quot; argument is given, the start and end matches of<br>
the region, but not the contents of the region, are marked as concealable.<br>
Whether or not they are actually concealed depends on the setting on the<br>
<a class="Type" href="options.html#'conceallevel'">'conceallevel'</a>&nbsp;option. The ends of a region can only be concealed separately<br>
in this way when they have their own highlighting via &quot;matchgroup&quot;<br>
<br>
cchar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-cchar" name=":syn-cchar">:syn-cchar</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#E844" name="E844">E844</a><br>
The &quot;cchar&quot; argument defines the character shown in place of the item<br>
when it is concealed (setting &quot;cchar&quot; only makes sense when the conceal<br>
argument is given.) If &quot;cchar&quot; is not set then the default conceal<br>
character defined in the&nbsp;<a class="Type" href="options.html#'listchars'">'listchars'</a>&nbsp;option is used.&nbsp;&nbsp;The character cannot be<br>
a control character such as Tab.&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp; :syntax match Entity &quot;&amp;amp;&quot; conceal cchar=&amp;</div>
See&nbsp;<a class="Identifier" href="syntax.html#hl-Conceal">hl-Conceal</a>&nbsp;for highlighting.<br>
<br>
contained&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-contained" name=":syn-contained">:syn-contained</a><br>
<br>
When the &quot;contained&quot; argument is given, this item will not be recognized at<br>
the top level, but only when it is mentioned in the &quot;contains&quot; field of<br>
another match.&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp; :syntax keyword Todo&nbsp;&nbsp;&nbsp;&nbsp;TODO&nbsp;&nbsp;&nbsp;&nbsp;contained<br>
&nbsp;&nbsp; :syntax match&nbsp;&nbsp; Comment &quot;//.*&quot;&nbsp;&nbsp;contains=Todo</div>
<br>
<br>
display&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-display" name=":syn-display">:syn-display</a><br>
<br>
If the &quot;display&quot; argument is given, this item will be skipped when the<br>
detected highlighting will not be displayed.&nbsp;&nbsp;This will speed up highlighting,<br>
by skipping this item when only finding the syntax state for the text that is<br>
to be displayed.<br>
<br>
Generally, you can use &quot;display&quot; for match and region items that meet these<br>
conditions:<br>
- The item does not continue past the end of a line.&nbsp;&nbsp;Example for C: A region<br>
&nbsp;&nbsp;for a &quot;/*&quot; comment can't contain &quot;display&quot;, because it continues on the next<br>
&nbsp;&nbsp;line.<br>
- The item does not contain items that continue past the end of the line or<br>
&nbsp;&nbsp;make it continue on the next line.<br>
- The item does not change the size of any item it is contained in.&nbsp;&nbsp;Example<br>
&nbsp;&nbsp;for C: A match with &quot;\\$&quot; in a preprocessor match can't have &quot;display&quot;,<br>
&nbsp;&nbsp;because it may make that preprocessor match shorter.<br>
- The item does not allow other items to match that didn't match otherwise,<br>
&nbsp;&nbsp;and that item may extend the match too far.&nbsp;&nbsp;Example for C: A match for a<br>
&nbsp;&nbsp;&quot;//&quot; comment can't use &quot;display&quot;, because a &quot;/*&quot; inside that comment would<br>
&nbsp;&nbsp;match then and start a comment which extends past the end of the line.<br>
<br>
Examples, for the C language, where &quot;display&quot; can be used:<br>
- match with a number<br>
- match with a label<br>
<br>
<br>
transparent&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-transparent" name=":syn-transparent">:syn-transparent</a><br>
<br>
If the &quot;transparent&quot; argument is given, this item will not be highlighted<br>
itself, but will take the highlighting of the item it is contained in.&nbsp;&nbsp;This<br>
is useful for syntax items that don't need any highlighting but are used<br>
only to skip over a part of the text.<br>
<br>
The &quot;contains=&quot; argument is also inherited from the item it is contained in,<br>
unless a &quot;contains&quot; argument is given for the transparent item itself.&nbsp;&nbsp;To<br>
avoid that unwanted items are contained, use &quot;contains=NONE&quot;.&nbsp;&nbsp;Example, which<br>
highlights words in strings, but makes an exception for &quot;vim&quot;:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:syn match myString /'[^']*'/ contains=myWord,myVim<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:syn match myWord&nbsp;&nbsp; /\&lt;[a-z]*\&gt;/ contained<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:syn match myVim&nbsp;&nbsp;&nbsp;&nbsp;/\&lt;vim\&gt;/ transparent contained contains=NONE<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:hi link myString String<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:hi link myWord&nbsp;&nbsp; Comment</div>
Since the &quot;myVim&quot; match comes after &quot;myWord&quot; it is the preferred match (last<br>
match in the same position overrules an earlier one).&nbsp;&nbsp;The &quot;transparent&quot;<br>
argument makes the &quot;myVim&quot; match use the same highlighting as &quot;myString&quot;.&nbsp;&nbsp;But<br>
it does not contain anything.&nbsp;&nbsp;If the &quot;contains=NONE&quot; argument would be left<br>
out, then &quot;myVim&quot; would use the contains argument from myString and allow<br>
&quot;myWord&quot; to be contained, which will be highlighted as a Constant.&nbsp;&nbsp;This<br>
happens because a contained match doesn't match inside itself in the same<br>
position, thus the &quot;myVim&quot; match doesn't overrule the &quot;myWord&quot; match here.<br>
<br>
When you look at the colored text, it is like looking at layers of contained<br>
items.&nbsp;&nbsp;The contained item is on top of the item it is contained in, thus you<br>
see the contained item.&nbsp;&nbsp;When a contained item is transparent, you can look<br>
through, thus you see the item it is contained in.&nbsp;&nbsp;In a picture:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;look from here<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; |&nbsp;&nbsp; |&nbsp;&nbsp; |&nbsp;&nbsp; |&nbsp;&nbsp; |<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;V&nbsp;&nbsp; V&nbsp;&nbsp; V&nbsp;&nbsp; V&nbsp;&nbsp; V&nbsp;&nbsp; V<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xxxx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yyy&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; more contained items<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;....................&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;contained item (transparent)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=============================&nbsp;&nbsp; first item<br>
<br>
The 'x', 'y' and '=' represent a highlighted syntax item.&nbsp;&nbsp;The '.' represent a<br>
transparent group.<br>
<br>
What you see is:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=======xxxx=======yyy========<br>
<br>
Thus you look through the transparent &quot;....&quot;.<br>
<br>
<br>
oneline&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-oneline" name=":syn-oneline">:syn-oneline</a><br>
<br>
The &quot;oneline&quot; argument indicates that the region does not cross a line<br>
boundary.&nbsp;&nbsp;It must match completely in the current line.&nbsp;&nbsp;However, when the<br>
region has a contained item that does cross a line boundary, it continues on<br>
the next line anyway.&nbsp;&nbsp;A contained item can be used to recognize a line<br>
continuation pattern.&nbsp;&nbsp;But the &quot;end&quot; pattern must still match in the first<br>
line, otherwise the region doesn't even start.<br>
<br>
When the start pattern includes a &quot;\n&quot; to match an end-of-line, the end<br>
pattern must be found in the same line as where the start pattern ends.&nbsp;&nbsp;The<br>
end pattern may also include an end-of-line.&nbsp;&nbsp;Thus the &quot;oneline&quot; argument<br>
means that the end of the start pattern and the start of the end pattern must<br>
be within one line.&nbsp;&nbsp;This can't be changed by a skip pattern that matches a<br>
line break.<br>
<br>
<br>
fold&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-fold" name=":syn-fold">:syn-fold</a><br>
<br>
The &quot;fold&quot; argument makes the fold level increase by one for this item.<br>
Example:<br>
<div class="helpExample">&nbsp;&nbsp; :syn region myFold start=&quot;{&quot; end=&quot;}&quot; transparent fold<br>
&nbsp;&nbsp; :syn sync fromstart<br>
&nbsp;&nbsp; :set foldmethod=syntax</div>
This will make each {} block form one fold.<br>
<br>
The fold will start on the line where the item starts, and end where the item<br>
ends.&nbsp;&nbsp;If the start and end are within the same line, there is no fold.<br>
The&nbsp;<a class="Type" href="options.html#'foldnestmax'">'foldnestmax'</a>&nbsp;option limits the nesting of syntax folds.<br>
<span class="Special">{not available when Vim was compiled without&nbsp;</span><a class="Identifier" href="various.html#+folding">+folding</a><span class="Special">&nbsp;feature}</span><br>
<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-contains" name=":syn-contains">:syn-contains</a>&nbsp;<a class="Constant" href="syntax.html#E405" name="E405">E405</a>&nbsp;<a class="Constant" href="syntax.html#E406" name="E406">E406</a>&nbsp;<a class="Constant" href="syntax.html#E407" name="E407">E407</a>&nbsp;<a class="Constant" href="syntax.html#E408" name="E408">E408</a>&nbsp;<a class="Constant" href="syntax.html#E409" name="E409">E409</a><br>
contains=<span class="Special">{group-name}</span>,..<br>
<br>
The &quot;contains&quot; argument is followed by a list of syntax group names.&nbsp;&nbsp;These<br>
groups will be allowed to begin inside the item (they may extend past the<br>
containing group's end).&nbsp;&nbsp;This allows for recursive nesting of matches and<br>
regions.&nbsp;&nbsp;If there is no &quot;contains&quot; argument, no groups will be contained in<br>
this item.&nbsp;&nbsp;The group names do not need to be defined before they can be used<br>
here.<br>
<br>
contains=ALL<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the only item in the contains list is &quot;ALL&quot;, then all<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;groups will be accepted inside the item.<br>
<br>
contains=ALLBUT,<span class="Special">{group-name}</span>,..<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the first item in the contains list is &quot;ALLBUT&quot;, then all<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;groups will be accepted inside the item, except the ones that<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;are listed.&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp;:syntax region Block start=&quot;{&quot; end=&quot;}&quot; ... contains=ALLBUT,Function</div>
<br>
contains=TOP<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the first item in the contains list is &quot;TOP&quot;, then all<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;groups will be accepted that don't have the &quot;contained&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;argument.<br>
contains=TOP,<span class="Special">{group-name}</span>,..<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Like &quot;TOP&quot;, but excluding the groups that are listed.<br>
<br>
contains=CONTAINED<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the first item in the contains list is &quot;CONTAINED&quot;, then<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all groups will be accepted that have the &quot;contained&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;argument.<br>
contains=CONTAINED,<span class="Special">{group-name}</span>,..<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Like &quot;CONTAINED&quot;, but excluding the groups that are<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listed.<br>
<br>
<br>
The&nbsp;<span class="Special">{group-name}</span>&nbsp;in the &quot;contains&quot; list can be a pattern.&nbsp;&nbsp;All group names<br>
that match the pattern will be included (or excluded, if &quot;ALLBUT&quot; is used).<br>
The pattern cannot contain white space or a ','.&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp; ... contains=Comment.*,Keyw[0-3]</div>
The matching will be done at moment the syntax command is executed.&nbsp;&nbsp;Groups<br>
that are defined later will not be matched.&nbsp;&nbsp;Also, if the current syntax<br>
command defines a new group, it is not matched.&nbsp;&nbsp;Be careful: When putting<br>
syntax commands in a file you can't rely on groups NOT being defined, because<br>
the file may have been sourced before, and &quot;:syn clear&quot; doesn't remove the<br>
group names.<br>
<br>
The contained groups will also match in the start and end patterns of a<br>
region.&nbsp;&nbsp;If this is not wanted, the &quot;matchgroup&quot; argument can be used<br>
<a class="Identifier" href="syntax.html#:syn-matchgroup">:syn-matchgroup</a>.&nbsp;&nbsp;The &quot;ms=&quot; and &quot;me=&quot; offsets can be used to change the<br>
region where contained items do match.&nbsp;&nbsp;<span class="Todo">Note</span>&nbsp;that this may also limit the<br>
area that is highlighted<br>
<br>
<br>
containedin=<span class="Special">{group-name}</span>...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-containedin" name=":syn-containedin">:syn-containedin</a><br>
<br>
The &quot;containedin&quot; argument is followed by a list of syntax group names.&nbsp;&nbsp;The<br>
item will be allowed to begin inside these groups.&nbsp;&nbsp;This works as if the<br>
containing item has a &quot;contains=&quot; argument that includes this item.<br>
<br>
The&nbsp;<span class="Special">{group-name}</span>... can be used just like for &quot;contains&quot;, as explained above.<br>
<br>
This is useful when adding a syntax item afterwards.&nbsp;&nbsp;An item can be told to<br>
be included inside an already existing item, without changing the definition<br>
of that item.&nbsp;&nbsp;For example, to highlight a word in a C comment after loading<br>
the C syntax:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:syn keyword myword HELP containedin=cComment contained</div>
<span class="Todo">Note</span>&nbsp;that &quot;contained&quot; is also used, to avoid that the item matches at the top<br>
level.<br>
<br>
Matches for &quot;containedin&quot; are added to the other places where the item can<br>
appear.&nbsp;&nbsp;A &quot;contains&quot; argument may also be added as usual.&nbsp;&nbsp;Don't forget that<br>
keywords never contain another item, thus adding them to &quot;containedin&quot; won't<br>
work.<br>
<br>
<br>
nextgroup=<span class="Special">{group-name}</span>,..&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-nextgroup" name=":syn-nextgroup">:syn-nextgroup</a><br>
<br>
The &quot;nextgroup&quot; argument is followed by a list of syntax group names,<br>
separated by commas (just like with &quot;contains&quot;, so you can also use patterns).<br>
<br>
If the &quot;nextgroup&quot; argument is given, the mentioned syntax groups will be<br>
tried for a match, after the match or region ends.&nbsp;&nbsp;If none of the groups have<br>
a match, highlighting continues normally.&nbsp;&nbsp;If there is a match, this group<br>
will be used, even when it is not mentioned in the &quot;contains&quot; field of the<br>
current group.&nbsp;&nbsp;This is like giving the mentioned group priority over all<br>
other groups.&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp; :syntax match&nbsp;&nbsp;ccFoobar&nbsp;&nbsp;&quot;Foo.\{-}Bar&quot;&nbsp;&nbsp;contains=ccFoo<br>
&nbsp;&nbsp; :syntax match&nbsp;&nbsp;ccFoo&nbsp;&nbsp;&nbsp;&nbsp; &quot;Foo&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; contained nextgroup=ccFiller<br>
&nbsp;&nbsp; :syntax region ccFiller&nbsp;&nbsp;start=&quot;.&quot;&nbsp;&nbsp;matchgroup=ccBar&nbsp;&nbsp;end=&quot;Bar&quot;&nbsp;&nbsp;contained</div>
<br>
This will highlight &quot;Foo&quot; and &quot;Bar&quot; differently, and only when there is a<br>
&quot;Bar&quot; after &quot;Foo&quot;.&nbsp;&nbsp;In the text line below, &quot;f&quot; shows where ccFoo is used for<br>
highlighting, and &quot;bbb&quot; where ccBar is used.<br>
<br>
<div class="helpExample">&nbsp;&nbsp; Foo asdfasd Bar asdf Foo asdf Bar asdf<br>
&nbsp;&nbsp; fff&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bbb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fff&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bbb</div>
<br>
<span class="Todo">Note</span>&nbsp;the use of &quot;.\<span class="Special">{-}</span>&quot; to skip as little as possible until the next Bar.<br>
when &quot;.*&quot; would be used, the &quot;asdf&quot; in between &quot;Bar&quot; and &quot;Foo&quot; would be<br>
highlighted according to the &quot;ccFoobar&quot; group, because the ccFooBar match<br>
would include the first &quot;Foo&quot; and the last &quot;Bar&quot; in the line (see&nbsp;<a class="Identifier" href="pattern.html#pattern">pattern</a>).<br>
<br>
<br>
skipwhite&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-skipwhite" name=":syn-skipwhite">:syn-skipwhite</a><br>
skipnl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-skipnl" name=":syn-skipnl">:syn-skipnl</a><br>
skipempty&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-skipempty" name=":syn-skipempty">:syn-skipempty</a><br>
<br>
These arguments are only used in combination with &quot;nextgroup&quot;.&nbsp;&nbsp;They can be<br>
used to allow the next group to match after skipping some text:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;skipwhite&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; skip over space and tab characters<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;skipnl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;skip over the end of a line<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;skipempty&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; skip over empty lines (implies a &quot;skipnl&quot;)<br>
<br>
When &quot;skipwhite&quot; is present, the white space is only skipped if there is no<br>
next group that matches the white space.<br>
<br>
When &quot;skipnl&quot; is present, the match with nextgroup may be found in the next<br>
line.&nbsp;&nbsp;This only happens when the current item ends at the end of the current<br>
line!&nbsp;&nbsp;When &quot;skipnl&quot; is not present, the nextgroup will only be found after<br>
the current item in the same line.<br>
<br>
When skipping text while looking for a next group, the matches for other<br>
groups are ignored.&nbsp;&nbsp;Only when no next group matches, other items are tried<br>
for a match again.&nbsp;&nbsp;This means that matching a next group and skipping white<br>
space and&nbsp;<span class="Special">&lt;EOL&gt;</span>s has a higher priority than other items.<br>
<br>
Example:<br>
<div class="helpExample">&nbsp;&nbsp;:syn match ifstart &quot;\&lt;if.*&quot;&nbsp;&nbsp;&nbsp;&nbsp; nextgroup=ifline skipwhite skipempty<br>
&nbsp;&nbsp;:syn match ifline&nbsp;&nbsp;&quot;[^ \t].*&quot; nextgroup=ifline skipwhite skipempty contained<br>
&nbsp;&nbsp;:syn match ifline&nbsp;&nbsp;&quot;endif&quot;&nbsp;&nbsp;&nbsp;&nbsp;contained</div>
<span class="Todo">Note</span>&nbsp;that the &quot;[^ \t].*&quot; match matches all non-white text.&nbsp;&nbsp;Thus it would also<br>
match &quot;endif&quot;.&nbsp;&nbsp;Therefore the &quot;endif&quot; match is put last, so that it takes<br>
precedence.<br>
<span class="Todo">Note</span>&nbsp;that this example doesn't work for nested &quot;if&quot;s.&nbsp;&nbsp;You need to add<br>
&quot;contains&quot; arguments to make that work (omitted for simplicity of the<br>
example).<br>
<br>
<span class="Statement">IMPLICIT CONCEAL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><a class="Constant" href="syntax.html#:syn-conceal-implicit" name=":syn-conceal-implicit">:syn-conceal-implicit</a><br>
<br>
:sy[ntax] conceal [on|off]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This defines if the following &quot;:syntax&quot; commands will define keywords,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;matches or regions with the &quot;conceal&quot; flag set. After &quot;:syn conceal<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on&quot;, all subsequent &quot;:syn keyword&quot;, &quot;:syn match&quot; or &quot;:syn region&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defined will have the &quot;conceal&quot; flag set implicitly. &quot;:syn conceal<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;off&quot; returns to the normal state where the &quot;conceal&quot; flag must be<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;given explicitly.<br>
<br>
:sy[ntax] conceal<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Show either &quot;syntax conceal on&quot; or &quot;syntax conceal off&quot; (translated).<br>
<br>
<span class="PreProc">==============================================================================</span><br>
7. Syntax patterns&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-pattern" name=":syn-pattern">:syn-pattern</a>&nbsp;<a class="Constant" href="syntax.html#E401" name="E401">E401</a>&nbsp;<a class="Constant" href="syntax.html#E402" name="E402">E402</a><br>
<br>
In the syntax commands, a pattern must be surrounded by two identical<br>
characters.&nbsp;&nbsp;This is like it works for the &quot;:s&quot; command.&nbsp;&nbsp;The most common to<br>
use is the double quote.&nbsp;&nbsp;But if the pattern contains a double quote, you can<br>
use another character that is not used in the pattern.&nbsp;&nbsp;Examples:<br>
<div class="helpExample">&nbsp;&nbsp;:syntax region Comment&nbsp;&nbsp;start=&quot;/\*&quot;&nbsp;&nbsp;end=&quot;\*/&quot;<br>
&nbsp;&nbsp;:syntax region String&nbsp;&nbsp; start=+&quot;+&nbsp;&nbsp;&nbsp;&nbsp;end=+&quot;+&nbsp;&nbsp; skip=+\\&quot;+</div>
<br>
See&nbsp;<a class="Identifier" href="pattern.html#pattern">pattern</a>&nbsp;for the explanation of what a pattern is.&nbsp;&nbsp;Syntax patterns are<br>
always interpreted like the&nbsp;<a class="Type" href="options.html#'magic'">'magic'</a>&nbsp;option is set, no matter what the actual<br>
value of&nbsp;<a class="Type" href="options.html#'magic'">'magic'</a>&nbsp;is.&nbsp;&nbsp;And the patterns are interpreted like the 'l' flag is<br>
not included in&nbsp;<a class="Type" href="options.html#'cpoptions'">'cpoptions'</a>.&nbsp;&nbsp;This was done to make syntax files portable and<br>
independent of&nbsp;<a class="Type" href="options.html#'compatible'">'compatible'</a>&nbsp;and&nbsp;<a class="Type" href="options.html#'magic'">'magic'</a>&nbsp;settings.<br>
<br>
Try to avoid patterns that can match an empty string, such as &quot;[a-z]*&quot;.<br>
This slows down the highlighting a lot, because it matches everywhere.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-pattern-offset" name=":syn-pattern-offset">:syn-pattern-offset</a><br>
The pattern can be followed by a character offset.&nbsp;&nbsp;This can be used to<br>
change the highlighted part, and to change the text area included in the<br>
match or region (which only matters when trying to match other items).&nbsp;&nbsp;Both<br>
are relative to the matched pattern.&nbsp;&nbsp;The character offset for a skip<br>
pattern can be used to tell where to continue looking for an end pattern.<br>
<br>
The offset takes the form of &quot;<span class="Special">{what}</span>=<span class="Special">{offset}</span>&quot;<br>
The&nbsp;<span class="Special">{what}</span>&nbsp;can be one of seven strings:<br>
<br>
ms&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Match Start&nbsp;&nbsp;&nbsp;&nbsp; offset for the start of the matched text<br>
me&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Match End&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; offset for the end of the matched text<br>
hs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Highlight Start offset for where the highlighting starts<br>
he&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Highlight End&nbsp;&nbsp; offset for where the highlighting ends<br>
rs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Region Start&nbsp;&nbsp;&nbsp;&nbsp;offset for where the body of a region starts<br>
re&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Region End&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;offset for where the body of a region ends<br>
lc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Leading Context offset past &quot;leading context&quot; of pattern<br>
<br>
The&nbsp;<span class="Special">{offset}</span>&nbsp;can be:<br>
<br>
s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; start of the matched pattern<br>
s+<span class="Special">{nr}</span>&nbsp;&nbsp;start of the matched pattern plus&nbsp;<span class="Special">{nr}</span>&nbsp;chars to the right<br>
s-<span class="Special">{nr}</span>&nbsp;&nbsp;start of the matched pattern plus&nbsp;<span class="Special">{nr}</span>&nbsp;chars to the left<br>
e&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end of the matched pattern<br>
e+<span class="Special">{nr}</span>&nbsp;&nbsp;end of the matched pattern plus&nbsp;<span class="Special">{nr}</span>&nbsp;chars to the right<br>
e-<span class="Special">{nr}</span>&nbsp;&nbsp;end of the matched pattern plus&nbsp;<span class="Special">{nr}</span>&nbsp;chars to the left<br>
<span class="Special">{nr}</span>&nbsp;&nbsp;&nbsp;&nbsp;(for &quot;lc&quot; only): start matching&nbsp;<span class="Special">{nr}</span>&nbsp;chars right of the start<br>
<br>
Examples: &quot;ms=s+1&quot;, &quot;hs=e-2&quot;, &quot;lc=3&quot;.<br>
<br>
Although all offsets are accepted after any pattern, they are not always<br>
meaningful.&nbsp;&nbsp;This table shows which offsets are actually used:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="PreProc">ms&nbsp;&nbsp; me&nbsp;&nbsp; hs&nbsp;&nbsp; he&nbsp;&nbsp; rs&nbsp;&nbsp; re&nbsp;&nbsp; lc</span><br>
match item&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yes&nbsp;&nbsp;yes&nbsp;&nbsp;yes&nbsp;&nbsp;yes&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;yes<br>
region item start&nbsp;&nbsp; yes&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;yes&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;yes&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;yes<br>
region item skip&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;yes&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;yes<br>
region item end&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp;&nbsp;yes&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;yes&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;yes&nbsp;&nbsp;yes<br>
<br>
Offsets can be concatenated, with a ',' in between.&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp;:syn match String&nbsp;&nbsp;/&quot;[^&quot;]*&quot;/hs=s+1,he=e-1</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;some &quot;string&quot; text<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^^^^^&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;highlighted<br>
<br>
<span class="Todo">Notes</span>:<br>
- There must be no white space between the pattern and the character<br>
&nbsp;&nbsp;offset(s).<br>
- The highlighted area will never be outside of the matched text.<br>
- A negative offset for an end pattern may not always work, because the end<br>
&nbsp;&nbsp;pattern may be detected when the highlighting should already have stopped.<br>
- Before Vim 7.2 the offsets were counted in bytes instead of characters.<br>
&nbsp;&nbsp;This didn't work well for multi-byte characters, so it was changed with the<br>
&nbsp;&nbsp;Vim 7.2 release.<br>
- The start of a match cannot be in a line other than where the pattern<br>
&nbsp;&nbsp;matched.&nbsp;&nbsp;This doesn't work: &quot;a\nb&quot;ms=e.&nbsp;&nbsp;You can make the highlighting<br>
&nbsp;&nbsp;start in another line, this does work: &quot;a\nb&quot;hs=e.<br>
<br>
Example (match a comment but don't highlight the /* and */):<br>
<div class="helpExample">&nbsp;&nbsp;:syntax region Comment start=&quot;/\*&quot;hs=e+1 end=&quot;\*/&quot;he=s-1</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* this is a comment */<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^^^^^^^^^^^^^^^^^^&nbsp;&nbsp;&nbsp;&nbsp; highlighted<br>
<br>
A more complicated Example:<br>
<div class="helpExample">&nbsp;&nbsp;:syn region Exa matchgroup=Foo start=&quot;foo&quot;hs=s+2,rs=e+2 matchgroup=Bar end=&quot;bar&quot;me=e-1,he=e-1,re=s-1</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; abcfoostringbarabc<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mmmmmmmmmmm&nbsp;&nbsp;&nbsp;&nbsp; match<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sssrrreee&nbsp;&nbsp;&nbsp;&nbsp; highlight start/region/end (&quot;Foo&quot;, &quot;Exa&quot; and &quot;Bar&quot;)<br>
<br>
Leading context&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-lc" name=":syn-lc">:syn-lc</a>&nbsp;<a class="Constant" href="syntax.html#:syn-leading" name=":syn-leading">:syn-leading</a>&nbsp;<a class="Constant" href="syntax.html#:syn-context" name=":syn-context">:syn-context</a><br>
<br>
<span class="Todo">Note</span>: This is an obsolete feature, only included for backwards compatibility<br>
with previous Vim versions.&nbsp;&nbsp;It's now recommended to use the&nbsp;<a class="Identifier" href="pattern.html#/\@<=">/\@&lt;=</a>&nbsp;construct<br>
in the pattern.<br>
<br>
The &quot;lc&quot; offset specifies leading context -- a part of the pattern that must<br>
be present, but is not considered part of the match.&nbsp;&nbsp;An offset of &quot;lc=n&quot; will<br>
cause Vim to step back n columns before attempting the pattern match, allowing<br>
characters which have already been matched in previous patterns to also be<br>
used as leading context for this match.&nbsp;&nbsp;This can be used, for instance, to<br>
specify that an &quot;escaping&quot; character must not precede the match:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;:syn match ZNoBackslash &quot;[^\\]z&quot;ms=s+1<br>
&nbsp;&nbsp;:syn match WNoBackslash &quot;[^\\]w&quot;lc=1<br>
&nbsp;&nbsp;:syn match Underline &quot;_\+&quot;</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;___zzzz ___wwww<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^^&nbsp;&nbsp;&nbsp;&nbsp; ^^^&nbsp;&nbsp;&nbsp;&nbsp; matches Underline<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^ ^&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; matches ZNoBackslash<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ^^^^ matches WNoBackslash<br>
<br>
The &quot;ms&quot; offset is automatically set to the same value as the &quot;lc&quot; offset,<br>
unless you set &quot;ms&quot; explicitly.<br>
<br>
<br>
Multi-line patterns&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-multi-line" name=":syn-multi-line">:syn-multi-line</a><br>
<br>
The patterns can include &quot;\n&quot; to match an end-of-line.&nbsp;&nbsp;Mostly this works as<br>
expected, but there are a few exceptions.<br>
<br>
When using a start pattern with an offset, the start of the match is not<br>
allowed to start in a following line.&nbsp;&nbsp;The highlighting can start in a<br>
following line though.&nbsp;&nbsp;Using the &quot;\zs&quot; item also requires that the start of<br>
the match doesn't move to another line.<br>
<br>
The skip pattern can include the &quot;\n&quot;, but the search for an end pattern will<br>
continue in the first character of the next line, also when that character is<br>
matched by the skip pattern.&nbsp;&nbsp;This is because redrawing may start in any line<br>
halfway a region and there is no check if the skip pattern started in a<br>
previous line.&nbsp;&nbsp;For example, if the skip pattern is &quot;a\nb&quot; and an end pattern<br>
is &quot;b&quot;, the end pattern does match in the second line of this:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x x a<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b x x</div>
Generally this means that the skip pattern should not match any characters<br>
after the &quot;\n&quot;.<br>
<br>
<br>
External matches&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-ext-match" name=":syn-ext-match">:syn-ext-match</a><br>
<br>
These extra regular expression items are available in region patterns:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#/\z(" name="/\z(">/\z(</a>&nbsp;<a class="Constant" href="syntax.html#/\z(\)" name="/\z(\)">/\z(\)</a>&nbsp;<a class="Constant" href="syntax.html#E50" name="E50">E50</a>&nbsp;<a class="Constant" href="syntax.html#E52" name="E52">E52</a>&nbsp;<a class="Constant" href="syntax.html#E879" name="E879">E879</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;\z(\)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Marks the sub-expression as &quot;external&quot;, meaning that it can be<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;accessed from another pattern match.&nbsp;&nbsp;Currently only usable in<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defining a syntax region start pattern.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#/\z1" name="/\z1">/\z1</a>&nbsp;<a class="Constant" href="syntax.html#/\z2" name="/\z2">/\z2</a>&nbsp;<a class="Constant" href="syntax.html#/\z3" name="/\z3">/\z3</a>&nbsp;<a class="Constant" href="syntax.html#/\z4" name="/\z4">/\z4</a>&nbsp;<a class="Constant" href="syntax.html#/\z5" name="/\z5">/\z5</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;\z1&nbsp;&nbsp;...&nbsp;&nbsp;\z9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#/\z6" name="/\z6">/\z6</a>&nbsp;<a class="Constant" href="syntax.html#/\z7" name="/\z7">/\z7</a>&nbsp;<a class="Constant" href="syntax.html#/\z8" name="/\z8">/\z8</a>&nbsp;<a class="Constant" href="syntax.html#/\z9" name="/\z9">/\z9</a>&nbsp;<a class="Constant" href="syntax.html#E66" name="E66">E66</a>&nbsp;<a class="Constant" href="syntax.html#E67" name="E67">E67</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Matches the same string that was matched by the corresponding<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sub-expression in a previous start pattern match.<br>
<br>
Sometimes the start and end patterns of a region need to share a common<br>
sub-expression.&nbsp;&nbsp;A common example is the &quot;here&quot; document in Perl and many Unix<br>
shells.&nbsp;&nbsp;This effect can be achieved with the &quot;\z&quot; special regular expression<br>
items, which marks a sub-expression as &quot;external&quot;, in the sense that it can be<br>
referenced from outside the pattern in which it is defined.&nbsp;&nbsp;The here-document<br>
example, for instance, can be done like this:<br>
<div class="helpExample">&nbsp;&nbsp;:syn region hereDoc start=&quot;&lt;&lt;\z(\I\i*\)&quot; end=&quot;^\z1$&quot;</div>
<br>
As can be seen here, the \z actually does double duty.&nbsp;&nbsp;In the start pattern,<br>
it marks the &quot;\(\I\i*\)&quot; sub-expression as external; in the end pattern, it<br>
changes the \z1 back-reference into an external reference referring to the<br>
first external sub-expression in the start pattern.&nbsp;&nbsp;External references can<br>
also be used in skip patterns:<br>
<div class="helpExample">&nbsp;&nbsp;:syn region foo start=&quot;start \(\I\i*\)&quot; skip=&quot;not end \z1&quot; end=&quot;end \z1&quot;</div>
<br>
<span class="Todo">Note</span>&nbsp;that normal and external sub-expressions are completely orthogonal and<br>
indexed separately; for instance, if the pattern &quot;\z(..\)\(..\)&quot; is applied<br>
to the string &quot;aabb&quot;, then \1 will refer to &quot;bb&quot; and \z1 will refer to &quot;aa&quot;.<br>
<span class="Todo">Note</span>&nbsp;also that external sub-expressions cannot be accessed as back-references<br>
within the same pattern like normal sub-expressions.&nbsp;&nbsp;If you want to use one<br>
sub-expression as both a normal and an external sub-expression, you can nest<br>
the two, as in &quot;\(\z(...\)\)&quot;.<br>
<br>
<span class="Todo">Note</span>&nbsp;that only matches within a single line can be used.&nbsp;&nbsp;Multi-line matches<br>
cannot be referred to.<br>
<br>
<span class="PreProc">==============================================================================</span><br>
8. Syntax clusters&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-cluster" name=":syn-cluster">:syn-cluster</a>&nbsp;<a class="Constant" href="syntax.html#E400" name="E400">E400</a><br>
<br>
:sy[ntax] cluster&nbsp;<span class="Special">{cluster-name}</span>&nbsp;[contains=<span class="Special">{group-name}</span>..]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [add=<span class="Special">{group-name}</span>..]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [remove=<span class="Special">{group-name}</span>..]<br>
<br>
This command allows you to cluster a list of syntax groups together under a<br>
single name.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;contains=<span class="Special">{group-name}</span>..<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The cluster is set to the specified list of groups.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add=<span class="Special">{group-name}</span>..<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The specified groups are added to the cluster.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;remove=<span class="Special">{group-name}</span>..<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The specified groups are removed from the cluster.<br>
<br>
A cluster so defined may be referred to in a contains=.., containedin=..,<br>
nextgroup=.., add=..&nbsp;&nbsp;or remove=.. list with a &quot;@&quot; prefix.&nbsp;&nbsp;You can also use<br>
this notation to implicitly declare a cluster before specifying its contents.<br>
<br>
Example:<br>
<div class="helpExample">&nbsp;&nbsp; :syntax match Thing &quot;# [^#]\+ #&quot; contains=@ThingMembers<br>
&nbsp;&nbsp; :syntax cluster ThingMembers contains=ThingMember1,ThingMember2</div>
<br>
As the previous example suggests, modifications to a cluster are effectively<br>
retroactive; the membership of the cluster is checked at the last minute, so<br>
to speak:<br>
<div class="helpExample">&nbsp;&nbsp; :syntax keyword A aaa<br>
&nbsp;&nbsp; :syntax keyword B bbb<br>
&nbsp;&nbsp; :syntax cluster AandB contains=A<br>
&nbsp;&nbsp; :syntax match Stuff &quot;( aaa bbb )&quot; contains=@AandB<br>
&nbsp;&nbsp; :syntax cluster AandB add=B&nbsp;&nbsp;&nbsp;&nbsp;&quot; now both keywords are matched in Stuff</div>
<br>
This also has implications for nested clusters:<br>
<div class="helpExample">&nbsp;&nbsp; :syntax keyword A aaa<br>
&nbsp;&nbsp; :syntax keyword B bbb<br>
&nbsp;&nbsp; :syntax cluster SmallGroup contains=B<br>
&nbsp;&nbsp; :syntax cluster BigGroup contains=A,@SmallGroup<br>
&nbsp;&nbsp; :syntax match Stuff &quot;( aaa bbb )&quot; contains=@BigGroup<br>
&nbsp;&nbsp; :syntax cluster BigGroup remove=B&nbsp;&nbsp;&nbsp;&nbsp;&quot; no effect, since B isn't in BigGroup<br>
&nbsp;&nbsp; :syntax cluster SmallGroup remove=B&nbsp;&nbsp;&quot; now bbb isn't matched within Stuff</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#E848" name="E848">E848</a><br>
The maximum number of clusters is 9767.<br>
<br>
<span class="PreProc">==============================================================================</span><br>
9. Including syntax files&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-include" name=":syn-include">:syn-include</a>&nbsp;<a class="Constant" href="syntax.html#E397" name="E397">E397</a><br>
<br>
It is often useful for one language's syntax file to include a syntax file for<br>
a related language.&nbsp;&nbsp;Depending on the exact relationship, this can be done in<br>
two different ways:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- If top-level syntax items in the included syntax file are to be<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;allowed at the top level in the including syntax, you can simply use<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;<a class="Identifier" href="repeat.html#:runtime">:runtime</a>&nbsp;command:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&quot; In cpp.vim:<br>
&nbsp;&nbsp;:runtime! syntax/c.vim<br>
&nbsp;&nbsp;:unlet b:current_syntax</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - If top-level syntax items in the included syntax file are to be<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;contained within a region in the including syntax, you can use the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:syntax include&quot; command:<br>
<br>
:sy[ntax] include [@<span class="Special">{grouplist-name}</span>]&nbsp;<span class="Special">{file-name}</span><br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;All syntax items declared in the included file will have the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;contained&quot; flag added.&nbsp;&nbsp;In addition, if a group list is specified,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all top-level syntax items in the included file will be added to<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;that list.<br>
<br>
<div class="helpExample">&nbsp;&nbsp; &quot; In perl.vim:<br>
&nbsp;&nbsp; :syntax include @Pod &lt;sfile&gt;:p:h/pod.vim<br>
&nbsp;&nbsp; :syntax region perlPOD start=&quot;^=head&quot; end=&quot;^=cut&quot; contains=@Pod</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When&nbsp;<span class="Special">{file-name}</span>&nbsp;is an absolute path (starts with &quot;/&quot;, &quot;c:&quot;, &quot;$VAR&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or &quot;<span class="Special">&lt;sfile&gt;</span>&quot;) that file is sourced.&nbsp;&nbsp;When it is a relative path<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(e.g., &quot;syntax/pod.vim&quot;) the file is searched for in&nbsp;<a class="Type" href="options.html#'runtimepath'">'runtimepath'</a>.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;All matching files are loaded.&nbsp;&nbsp;Using a relative path is<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;recommended, because it allows a user to replace the included file<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with his own version, without replacing the file that does the &quot;:syn<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;include&quot;.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#E847" name="E847">E847</a><br>
The maximum number of includes is 999.<br>
<br>
<span class="PreProc">==============================================================================</span><br>
10. Synchronizing&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-sync" name=":syn-sync">:syn-sync</a>&nbsp;<a class="Constant" href="syntax.html#E403" name="E403">E403</a>&nbsp;<a class="Constant" href="syntax.html#E404" name="E404">E404</a><br>
<br>
Vim wants to be able to start redrawing in any position in the document.&nbsp;&nbsp;To<br>
make this possible it needs to know the syntax state at the position where<br>
redrawing starts.<br>
<br>
:sy[ntax] sync [ccomment&nbsp;<span class="Special">[group-name]</span>&nbsp;| minlines=<span class="Special">{N}</span>&nbsp;| ...]<br>
<br>
There are four ways to synchronize:<br>
1. Always parse from the start of the file.<br>
&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#:syn-sync-first">:syn-sync-first</a><br>
2. Based on C-style comments.&nbsp;&nbsp;Vim understands how C-comments work and can<br>
&nbsp;&nbsp; figure out if the current line starts inside or outside a comment.<br>
&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#:syn-sync-second">:syn-sync-second</a><br>
3. Jumping back a certain number of lines and start parsing there.<br>
&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#:syn-sync-third">:syn-sync-third</a><br>
4. Searching backwards in the text for a pattern to sync on.<br>
&nbsp;&nbsp;&nbsp;<a class="Identifier" href="syntax.html#:syn-sync-fourth">:syn-sync-fourth</a><br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-sync-maxlines" name=":syn-sync-maxlines">:syn-sync-maxlines</a>&nbsp;<a class="Constant" href="syntax.html#:syn-sync-minlines" name=":syn-sync-minlines">:syn-sync-minlines</a><br>
For the last three methods, the line range where the parsing can start is<br>
limited by &quot;minlines&quot; and &quot;maxlines&quot;.<br>
<br>
If the &quot;minlines=<span class="Special">{N}</span>&quot; argument is given, the parsing always starts at least<br>
that many lines backwards.&nbsp;&nbsp;This can be used if the parsing may take a few<br>
lines before it's correct, or when it's not possible to use syncing.<br>
<br>
If the &quot;maxlines=<span class="Special">{N}</span>&quot; argument is given, the number of lines that are searched<br>
for a comment or syncing pattern is restricted to&nbsp;<span class="Special">N</span>&nbsp;lines backwards (after<br>
adding &quot;minlines&quot;).&nbsp;&nbsp;This is useful if you have few things to sync on and a<br>
slow machine.&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp; :syntax sync maxlines=500 ccomment</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-sync-linebreaks" name=":syn-sync-linebreaks">:syn-sync-linebreaks</a><br>
When using a pattern that matches multiple lines, a change in one line may<br>
cause a pattern to no longer match in a previous line.&nbsp;&nbsp;This means has to<br>
start above where the change was made.&nbsp;&nbsp;How many lines can be specified with<br>
the &quot;linebreaks&quot; argument.&nbsp;&nbsp;For example, when a pattern may include one line<br>
break use this:<br>
<div class="helpExample">&nbsp;&nbsp; :syntax sync linebreaks=1</div>
The result is that redrawing always starts at least one line before where a<br>
change was made.&nbsp;&nbsp;The default value for &quot;linebreaks&quot; is zero.&nbsp;&nbsp;Usually the<br>
value for &quot;minlines&quot; is bigger than &quot;linebreaks&quot;.<br>
<br>
<br>
First syncing method:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-sync-first" name=":syn-sync-first">:syn-sync-first</a><br>
<br>
<div class="helpExample">&nbsp;&nbsp; :syntax sync fromstart</div>
<br>
The file will be parsed from the start.&nbsp;&nbsp;This makes syntax highlighting<br>
accurate, but can be slow for long files.&nbsp;&nbsp;Vim caches previously parsed text,<br>
so that it's only slow when parsing the text for the first time.&nbsp;&nbsp;However,<br>
when making changes some part of the text needs to be parsed again (worst<br>
case: to the end of the file).<br>
<br>
Using &quot;fromstart&quot; is equivalent to using &quot;minlines&quot; with a very large number.<br>
<br>
<br>
Second syncing method:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-sync-second" name=":syn-sync-second">:syn-sync-second</a>&nbsp;<a class="Constant" href="syntax.html#:syn-sync-ccomment" name=":syn-sync-ccomment">:syn-sync-ccomment</a><br>
<br>
For the second method, only the &quot;ccomment&quot; argument needs to be given.<br>
Example:<br>
<div class="helpExample">&nbsp;&nbsp; :syntax sync ccomment</div>
<br>
When Vim finds that the line where displaying starts is inside a C-style<br>
comment, the last region syntax item with the group-name &quot;Comment&quot; will be<br>
used.&nbsp;&nbsp;This requires that there is a region with the group-name &quot;Comment&quot;!<br>
An alternate group name can be specified, for example:<br>
<div class="helpExample">&nbsp;&nbsp; :syntax sync ccomment javaComment</div>
This means that the last item specified with &quot;syn region javaComment&quot; will be<br>
used for the detected C comment region.&nbsp;&nbsp;This only works properly if that<br>
region does have a start pattern &quot;\/*&quot; and an end pattern &quot;*\/&quot;.<br>
<br>
The &quot;maxlines&quot; argument can be used to restrict the search to a number of<br>
lines.&nbsp;&nbsp;The &quot;minlines&quot; argument can be used to at least start a number of<br>
lines back (e.g., for when there is some construct that only takes a few<br>
lines, but it hard to sync on).<br>
<br>
<span class="Todo">Note</span>: Syncing on a C comment doesn't work properly when strings are used<br>
that cross a line and contain a &quot;*/&quot;.&nbsp;&nbsp;Since letting strings cross a line<br>
is a bad programming habit (many compilers give a warning message), and the<br>
chance of a &quot;*/&quot; appearing inside a comment is very small, this restriction<br>
is hardly ever noticed.<br>
<br>
<br>
Third syncing method:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-sync-third" name=":syn-sync-third">:syn-sync-third</a><br>
<br>
For the third method, only the &quot;minlines=<span class="Special">{N}</span>&quot; argument needs to be given.<br>
Vim will subtract&nbsp;<span class="Special">{N}</span>&nbsp;from the line number and start parsing there.&nbsp;&nbsp;This<br>
means&nbsp;<span class="Special">{N}</span>&nbsp;extra lines need to be parsed, which makes this method a bit slower.<br>
Example:<br>
<div class="helpExample">&nbsp;&nbsp; :syntax sync minlines=50</div>
<br>
&quot;lines&quot; is equivalent to &quot;minlines&quot; (used by older versions).<br>
<br>
<br>
Fourth syncing method:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-sync-fourth" name=":syn-sync-fourth">:syn-sync-fourth</a><br>
<br>
The idea is to synchronize on the end of a few specific regions, called a<br>
sync pattern.&nbsp;&nbsp;Only regions can cross lines, so when we find the end of some<br>
region, we might be able to know in which syntax item we are.&nbsp;&nbsp;The search<br>
starts in the line just above the one where redrawing starts.&nbsp;&nbsp;From there<br>
the search continues backwards in the file.<br>
<br>
This works just like the non-syncing syntax items.&nbsp;&nbsp;You can use contained<br>
matches, nextgroup, etc.&nbsp;&nbsp;But there are a few differences:<br>
- Keywords cannot be used.<br>
- The syntax items with the &quot;sync&quot; keyword form a completely separated group<br>
&nbsp;&nbsp;of syntax items.&nbsp;&nbsp;You can't mix syncing groups and non-syncing groups.<br>
- The matching works backwards in the buffer (line by line), instead of<br>
&nbsp;&nbsp;forwards.<br>
- A line continuation pattern can be given.&nbsp;&nbsp;It is used to decide which group<br>
&nbsp;&nbsp;of lines need to be searched like they were one line.&nbsp;&nbsp;This means that the<br>
&nbsp;&nbsp;search for a match with the specified items starts in the first of the<br>
&nbsp;&nbsp;consecutive that contain the continuation pattern.<br>
- When using &quot;nextgroup&quot; or &quot;contains&quot;, this only works within one line (or<br>
&nbsp;&nbsp;group of continued lines).<br>
- When using a region, it must start and end in the same line (or group of<br>
&nbsp;&nbsp;continued lines).&nbsp;&nbsp;Otherwise the end is assumed to be at the end of the<br>
&nbsp;&nbsp;line (or group of continued lines).<br>
- When a match with a sync pattern is found, the rest of the line (or group of<br>
&nbsp;&nbsp;continued lines) is searched for another match.&nbsp;&nbsp;The last match is used.<br>
&nbsp;&nbsp;This is used when a line can contain both the start end the end of a region<br>
&nbsp;&nbsp;(e.g., in a C-comment like /* this */, the last &quot;*/&quot; is used).<br>
<br>
There are two ways how a match with a sync pattern can be used:<br>
1. Parsing for highlighting starts where redrawing starts (and where the<br>
&nbsp;&nbsp; search for the sync pattern started).&nbsp;&nbsp;The syntax group that is expected<br>
&nbsp;&nbsp; to be valid there must be specified.&nbsp;&nbsp;This works well when the regions<br>
&nbsp;&nbsp; that cross lines cannot contain other regions.<br>
2. Parsing for highlighting continues just after the match.&nbsp;&nbsp;The syntax group<br>
&nbsp;&nbsp; that is expected to be present just after the match must be specified.<br>
&nbsp;&nbsp; This can be used when the previous method doesn't work well.&nbsp;&nbsp;It's much<br>
&nbsp;&nbsp; slower, because more text needs to be parsed.<br>
Both types of sync patterns can be used at the same time.<br>
<br>
Besides the sync patterns, other matches and regions can be specified, to<br>
avoid finding unwanted matches.<br>
<br>
[The reason that the sync patterns are given separately, is that mostly the<br>
search for the sync point can be much simpler than figuring out the<br>
highlighting.&nbsp;&nbsp;The reduced number of patterns means it will go (much)<br>
faster.]<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#syn-sync-grouphere" name="syn-sync-grouphere">syn-sync-grouphere</a>&nbsp;<a class="Constant" href="syntax.html#E393" name="E393">E393</a>&nbsp;<a class="Constant" href="syntax.html#E394" name="E394">E394</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;:syntax sync match&nbsp;<span class="Special">{sync-group-name}</span>&nbsp;grouphere&nbsp;<span class="Special">{group-name}</span>&nbsp;&quot;pattern&quot; ..<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Define a match that is used for syncing.&nbsp;&nbsp;<span class="Special">{group-name}</span>&nbsp;is the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name of a syntax group that follows just after the match.&nbsp;&nbsp;Parsing<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of the text for highlighting starts just after the match.&nbsp;&nbsp;A region<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;must exist for this&nbsp;<span class="Special">{group-name}</span>.&nbsp;&nbsp;The first one defined will be used.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;NONE&quot; can be used for when there is no syntax group after the match.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#syn-sync-groupthere" name="syn-sync-groupthere">syn-sync-groupthere</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;:syntax sync match&nbsp;<span class="Special">{sync-group-name}</span>&nbsp;groupthere&nbsp;<span class="Special">{group-name}</span>&nbsp;&quot;pattern&quot; ..<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Like &quot;grouphere&quot;, but&nbsp;<span class="Special">{group-name}</span>&nbsp;is the name of a syntax group that<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is to be used at the start of the line where searching for the sync<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;point started.&nbsp;&nbsp;The text between the match and the start of the sync<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern searching is assumed not to change the syntax highlighting.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For example, in C you could search backwards for &quot;/*&quot; and &quot;*/&quot;.&nbsp;&nbsp;If<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;/*&quot; is found first, you know that you are inside a comment, so the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;groupthere&quot; is &quot;cComment&quot;.&nbsp;&nbsp;If &quot;*/&quot; is found first, you know that you<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;are not in a comment, so the &quot;groupthere&quot; is &quot;NONE&quot;.&nbsp;&nbsp;(in practice<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it's a bit more complicated, because the &quot;/*&quot; and &quot;*/&quot; could appear<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inside a string.&nbsp;&nbsp;That's left as an exercise to the reader...).<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;:syntax sync match ..<br>
&nbsp;&nbsp;&nbsp;&nbsp;:syntax sync region ..<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Without a &quot;groupthere&quot; argument.&nbsp;&nbsp;Define a region or match that is<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;skipped while searching for a sync point.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#syn-sync-linecont" name="syn-sync-linecont">syn-sync-linecont</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;:syntax sync linecont&nbsp;<span class="Special">{pattern}</span><br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When&nbsp;<span class="Special">{pattern}</span>&nbsp;matches in a line, it is considered to continue in<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the next line.&nbsp;&nbsp;This means that the search for a sync point will<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;consider the lines to be concatenated.<br>
<br>
If the &quot;maxlines=<span class="Special">{N}</span>&quot; argument is given too, the number of lines that are<br>
searched for a match is restricted to&nbsp;<span class="Special">N</span>.&nbsp;&nbsp;This is useful if you have very<br>
few things to sync on and a slow machine.&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp; :syntax sync maxlines=100</div>
<br>
You can clear all sync settings with:<br>
<div class="helpExample">&nbsp;&nbsp; :syntax sync clear</div>
<br>
You can clear specific sync patterns with:<br>
<div class="helpExample">&nbsp;&nbsp; :syntax sync clear {sync-group-name} ..</div>
<br>
<span class="PreProc">==============================================================================</span><br>
11. Listing syntax items&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syntax" name=":syntax">:syntax</a>&nbsp;<a class="Constant" href="syntax.html#:sy" name=":sy">:sy</a>&nbsp;<a class="Constant" href="syntax.html#:syn" name=":syn">:syn</a>&nbsp;<a class="Constant" href="syntax.html#:syn-list" name=":syn-list">:syn-list</a><br>
<br>
This command lists all the syntax items:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;:sy[ntax] [list]</div>
<br>
To show the syntax items for one syntax group:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;:sy[ntax] list {group-name}</div>
<br>
To list the syntax groups in one cluster:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#E392" name="E392">E392</a>&nbsp;&nbsp;<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;:sy[ntax] list @{cluster-name}</div>
<br>
See above for other arguments for the &quot;:syntax&quot; command.<br>
<br>
<span class="Todo">Note</span>&nbsp;that the &quot;:syntax&quot; command can be abbreviated to &quot;:sy&quot;, although &quot;:syn&quot;<br>
is mostly used, because it looks better.<br>
<br>
<span class="PreProc">==============================================================================</span><br>
12. Highlight command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:highlight" name=":highlight">:highlight</a>&nbsp;<a class="Constant" href="syntax.html#:hi" name=":hi">:hi</a>&nbsp;<a class="Constant" href="syntax.html#E28" name="E28">E28</a>&nbsp;<a class="Constant" href="syntax.html#E411" name="E411">E411</a>&nbsp;<a class="Constant" href="syntax.html#E415" name="E415">E415</a><br>
<br>
There are three types of highlight groups:<br>
- The ones used for specific languages.&nbsp;&nbsp;For these the name starts with the<br>
&nbsp;&nbsp;name of the language.&nbsp;&nbsp;Many of these don't have any attributes, but are<br>
&nbsp;&nbsp;linked to a group of the second type.<br>
- The ones used for all syntax languages.<br>
- The ones used for the&nbsp;<a class="Type" href="options.html#'highlight'">'highlight'</a>&nbsp;option.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hitest.vim" name="hitest.vim">hitest.vim</a><br>
You can see all the groups currently active with this command:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;:so $VIMRUNTIME/syntax/hitest.vim</div>
This will open a new window containing all highlight group names, displayed<br>
in their own color.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:colo" name=":colo">:colo</a>&nbsp;<a class="Constant" href="syntax.html#:colorscheme" name=":colorscheme">:colorscheme</a>&nbsp;<a class="Constant" href="syntax.html#E185" name="E185">E185</a><br>
:colo[rscheme]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Output the name of the currently active color scheme.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is basically the same as<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:echo g:colors_name</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In case g:colors_name has not been defined :colo will<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;output &quot;default&quot;.&nbsp;&nbsp;When compiled without the&nbsp;<a class="Identifier" href="various.html#+eval">+eval</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;feature it will output &quot;unknown&quot;.<br>
<br>
:colo[rscheme]&nbsp;<span class="Special">{name}</span>&nbsp;&nbsp; Load color scheme&nbsp;<span class="Special">{name}</span>.&nbsp;&nbsp;This searches&nbsp;<a class="Type" href="options.html#'runtimepath'">'runtimepath'</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for the file &quot;colors/<span class="Special">{name}</span>.vim&quot;.&nbsp;&nbsp;The first one that<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is found is loaded.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Also searches all plugins in&nbsp;<a class="Type" href="options.html#'packpath'">'packpath'</a>, first below<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;start&quot; and then under &quot;opt&quot;.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Doesn't work recursively, thus you can't use<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:colorscheme&quot; in a color scheme script.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;To customize a colorscheme use another name, e.g.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;~/.vim/colors/mine.vim&quot;, and use&nbsp;<a class="Comment" href="repeat.html#:runtime">:runtime</a>&nbsp;to load<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the original colorscheme:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;runtime colors/evening.vim<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hi Statement ctermfg=Blue guifg=Blue</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; After the color scheme has been loaded the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="autocmd.html#ColorScheme">ColorScheme</a>&nbsp;autocommand event is triggered.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For info about writing a colorscheme file:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:edit $VIMRUNTIME/colors/README.txt</div>
<br>
:hi[ghlight]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List all the current highlight groups that have<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attributes set.<br>
<br>
:hi[ghlight]&nbsp;<span class="Special">{group-name}</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List one highlight group.<br>
<br>
:hi[ghlight] clear&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reset all highlighting to the defaults.&nbsp;&nbsp;Removes all<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;highlighting for groups added by the user!<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uses the current value of&nbsp;<a class="Type" href="options.html#'background'">'background'</a>&nbsp;to decide which<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default colors to use.<br>
<br>
:hi[ghlight] clear&nbsp;<span class="Special">{group-name}</span><br>
:hi[ghlight]&nbsp;<span class="Special">{group-name}</span>&nbsp;NONE<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Disable the highlighting for one highlight group.&nbsp;&nbsp;It<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is _not_ set back to the default colors.<br>
<br>
:hi[ghlight]&nbsp;<span class="Special">[default]</span>&nbsp;<span class="Special">{group-name}</span>&nbsp;<span class="Special">{key}</span>=<span class="Special">{arg}</span>&nbsp;..<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a highlight group, or change the highlighting for<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;an existing group.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;See&nbsp;<a class="Identifier" href="syntax.html#highlight-args">highlight-args</a>&nbsp;for the&nbsp;<span class="Special">{key}</span>=<span class="Special">{arg}</span>&nbsp;arguments.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;See&nbsp;<a class="Identifier" href="syntax.html#:highlight-default">:highlight-default</a>&nbsp;for the optional&nbsp;<span class="Special">[default]</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;argument.<br>
<br>
Normally a highlight group is added once when starting up.&nbsp;&nbsp;This sets the<br>
default values for the highlighting.&nbsp;&nbsp;After that, you can use additional<br>
highlight commands to change the arguments that you want to set to non-default<br>
values.&nbsp;&nbsp;The value &quot;NONE&quot; can be used to switch the value off or go back to<br>
the default value.<br>
<br>
A simple way to change colors is with the&nbsp;<a class="Identifier" href="syntax.html#:colorscheme">:colorscheme</a>&nbsp;command.&nbsp;&nbsp;This loads<br>
a file with &quot;:highlight&quot; commands such as this:<br>
<br>
<div class="helpExample">&nbsp;&nbsp; :hi Comment&nbsp;&nbsp;gui=bold</div>
<br>
<span class="Todo">Note</span>&nbsp;that all settings that are not included remain the same, only the<br>
specified field is used, and settings are merged with previous ones.&nbsp;&nbsp;So, the<br>
result is like this single command has been used:<br>
<div class="helpExample">&nbsp;&nbsp; :hi Comment&nbsp;&nbsp;term=bold ctermfg=Cyan guifg=#80a0ff gui=bold</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:highlight-verbose" name=":highlight-verbose">:highlight-verbose</a><br>
When listing a highlight group and&nbsp;<a class="Type" href="options.html#'verbose'">'verbose'</a>&nbsp;is non-zero, the listing will<br>
also tell where it was last set.&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:verbose hi Comment</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="PreProc">Comment&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xxx term=bold ctermfg=4 guifg=Blue</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="PreProc">Last set from /home/mool/vim/vim7/runtime/syntax/syncolor.vim</span><br>
<br>
When &quot;:hi clear&quot; is used then the script where this command is used will be<br>
mentioned for the default values. See&nbsp;<a class="Identifier" href="various.html#:verbose-cmd">:verbose-cmd</a>&nbsp;for more information.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#highlight-args" name="highlight-args">highlight-args</a>&nbsp;<a class="Constant" href="syntax.html#E416" name="E416">E416</a>&nbsp;<a class="Constant" href="syntax.html#E417" name="E417">E417</a>&nbsp;<a class="Constant" href="syntax.html#E423" name="E423">E423</a><br>
There are three types of terminals for highlighting:<br>
term&nbsp;&nbsp;&nbsp;&nbsp;a normal terminal (vt100, xterm)<br>
cterm&nbsp;&nbsp; a color terminal (MS-DOS console, color-xterm, these have the &quot;Co&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;termcap entry)<br>
gui&nbsp;&nbsp;&nbsp;&nbsp; the GUI<br>
<br>
For each type the highlighting can be given.&nbsp;&nbsp;This makes it possible to use<br>
the same syntax file on all terminals, and use the optimal highlighting.<br>
<br>
1. highlight arguments for normal terminals<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#bold" name="bold">bold</a>&nbsp;<a class="Constant" href="syntax.html#underline" name="underline">underline</a>&nbsp;<a class="Constant" href="syntax.html#undercurl" name="undercurl">undercurl</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#inverse" name="inverse">inverse</a>&nbsp;<a class="Constant" href="syntax.html#italic" name="italic">italic</a>&nbsp;<a class="Constant" href="syntax.html#standout" name="standout">standout</a><br>
term=<span class="Special">{attr-list}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#attr-list" name="attr-list">attr-list</a>&nbsp;<a class="Constant" href="syntax.html#highlight-term" name="highlight-term">highlight-term</a>&nbsp;<a class="Constant" href="syntax.html#E418" name="E418">E418</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attr-list is a comma separated list (without spaces) of the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;following items (in any order):<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bold<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;underline<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;undercurl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not always available<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reverse<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inverse&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; same as reverse<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;italic<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;standout<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NONE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no attributes used (used to reset it)<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Todo">Note</span>&nbsp;that &quot;bold&quot; can be used here and by using a bold font.&nbsp;&nbsp;They<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;have the same effect.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;undercurl&quot; is a curly underline.&nbsp;&nbsp;When &quot;undercurl&quot; is not possible<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;then &quot;underline&quot; is used.&nbsp;&nbsp;In general &quot;undercurl&quot; is only available in<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the GUI.&nbsp;&nbsp;The color is set with&nbsp;<a class="Identifier" href="syntax.html#highlight-guisp">highlight-guisp</a>.<br>
<br>
start=<span class="Special">{term-list}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#highlight-start" name="highlight-start">highlight-start</a>&nbsp;<a class="Constant" href="syntax.html#E422" name="E422">E422</a><br>
stop=<span class="Special">{term-list}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#term-list" name="term-list">term-list</a>&nbsp;<a class="Constant" href="syntax.html#highlight-stop" name="highlight-stop">highlight-stop</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;These lists of terminal codes can be used to get<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;non-standard attributes on a terminal.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The escape sequence specified with the &quot;start&quot; argument<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is written before the characters in the highlighted<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;area.&nbsp;&nbsp;It can be anything that you want to send to the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;terminal to highlight this area.&nbsp;&nbsp;The escape sequence<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;specified with the &quot;stop&quot; argument is written after the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;highlighted area.&nbsp;&nbsp;This should undo the &quot;start&quot; argument.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Otherwise the screen will look messed up.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;<span class="Special">{term-list}</span>&nbsp;can have two forms:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1. A string with escape sequences.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This is any string of characters, except that it can't start with<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;t_&quot; and blanks are not allowed.&nbsp;&nbsp;The &lt;&gt; notation is recognized<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; here, so you can use things like &quot;<span class="Special">&lt;Esc&gt;</span>&quot; and &quot;<span class="Special">&lt;Space&gt;</span>&quot;.&nbsp;&nbsp;Example:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start=<span class="Special">&lt;Esc&gt;</span>[27h;<span class="Special">&lt;Esc&gt;</span>[<span class="Special">&lt;Space&gt;</span>r;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2. A list of terminal codes.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Each terminal code has the form &quot;t_xx&quot;, where &quot;xx&quot; is the name of<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the termcap entry.&nbsp;&nbsp;The codes have to be separated with commas.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; White space is not allowed.&nbsp;&nbsp;Example:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start=t_C1,t_BL<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The terminal codes must exist for this to work.<br>
<br>
<br>
2. highlight arguments for color terminals<br>
<br>
cterm=<span class="Special">{attr-list}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#highlight-cterm" name="highlight-cterm">highlight-cterm</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;See above for the description of&nbsp;<span class="Special">{attr-list}</span>&nbsp;<a class="Identifier" href="syntax.html#attr-list">attr-list</a>.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The &quot;cterm&quot; argument is likely to be different from &quot;term&quot;, when<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;colors are used.&nbsp;&nbsp;For example, in a normal terminal comments could<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;be underlined, in a color terminal they can be made Blue.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Todo">Note</span>: Many terminals (e.g., DOS console) can't mix these attributes<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with coloring.&nbsp;&nbsp;Use only one of &quot;cterm=&quot; OR &quot;ctermfg=&quot; OR &quot;ctermbg=&quot;.<br>
<br>
ctermfg=<span class="Special">{color-nr}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#highlight-ctermfg" name="highlight-ctermfg">highlight-ctermfg</a>&nbsp;<a class="Constant" href="syntax.html#E421" name="E421">E421</a><br>
ctermbg=<span class="Special">{color-nr}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#highlight-ctermbg" name="highlight-ctermbg">highlight-ctermbg</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;<span class="Special">{color-nr}</span>&nbsp;argument is a color number.&nbsp;&nbsp;Its range is zero to<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(not including) the number given by the termcap entry &quot;Co&quot;.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The actual color with this number depends on the type of terminal<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and its settings.&nbsp;&nbsp;Sometimes the color also depends on the settings of<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;cterm&quot;.&nbsp;&nbsp;For example, on some systems &quot;cterm=bold ctermfg=3&quot; gives<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;another color, on others you just get color 3.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For an xterm this depends on your resources, and is a bit<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unpredictable.&nbsp;&nbsp;See your xterm documentation for the defaults.&nbsp;&nbsp;The<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;colors for a color-xterm can be changed from the .Xdefaults file.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unfortunately this means that it's not possible to get the same colors<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for each user.&nbsp;&nbsp;See&nbsp;<a class="Identifier" href="syntax.html#xterm-color">xterm-color</a>&nbsp;for info about color xterms.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The MSDOS standard colors are fixed (in a console window), so these<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;have been used for the names.&nbsp;&nbsp;But the meaning of color names in X11<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;are fixed, so these color settings have been used, to make the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;highlighting settings portable (complicated, isn't it?).&nbsp;&nbsp;The<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;following names are recognized, with the color number used:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#cterm-colors" name="cterm-colors">cterm-colors</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="PreProc">NR-16&nbsp;&nbsp; NR-8&nbsp;&nbsp;&nbsp;&nbsp;COLOR NAME</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Black<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DarkBlue<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DarkGreen<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DarkCyan<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DarkRed<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DarkMagenta<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Brown, DarkYellow<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LightGray, LightGrey, Gray, Grey<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DarkGray, DarkGrey<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Blue, LightBlue<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Green, LightGreen<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cyan, LightCyan<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Red, LightRed<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Magenta, LightMagenta<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Yellow, LightYellow<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;White<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The number under &quot;NR-16&quot; is used for 16-color terminals (<a class="Type" href="term.html#'t_Co'">'t_Co'</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;greater than or equal to 16).&nbsp;&nbsp;The number under &quot;NR-8&quot; is used for<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8-color terminals (<a class="Type" href="term.html#'t_Co'">'t_Co'</a>&nbsp;less than 16).&nbsp;&nbsp;The '*' indicates that the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bold attribute is set for ctermfg.&nbsp;&nbsp;In many 8-color terminals (e.g.,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;linux&quot;), this causes the bright colors to appear.&nbsp;&nbsp;This doesn't work<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for background colors!&nbsp;&nbsp;Without the '*' the bold attribute is removed.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If you want to set the bold attribute in a different way, put a<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;cterm=&quot; argument AFTER the &quot;ctermfg=&quot; or &quot;ctermbg=&quot; argument.&nbsp;&nbsp;Or use<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a number instead of a color name.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The case of the color names is ignored.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Todo">Note</span>&nbsp;that for 16 color ansi style terminals (including xterms), the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numbers in the NR-8 column is used.&nbsp;&nbsp;Here '*' means 'add 8' so that Blue<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is 12, DarkGray is 8 etc.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Todo">Note</span>&nbsp;that for some color terminals these names may result in the wrong<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;colors!<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;You can also use &quot;NONE&quot; to remove the color.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:hi-normal-cterm" name=":hi-normal-cterm">:hi-normal-cterm</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When setting the &quot;ctermfg&quot; or &quot;ctermbg&quot; colors for the Normal group,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;these will become the colors used for the non-highlighted text.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:highlight Normal ctermfg=grey ctermbg=darkblue</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; When setting the &quot;ctermbg&quot; color for the Normal group, the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Type" href="options.html#'background'">'background'</a>&nbsp;option will be adjusted automatically, under the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;condition that the color is recognized and&nbsp;<a class="Type" href="options.html#'background'">'background'</a>&nbsp;was not set<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;explicitly.&nbsp;&nbsp;This causes the highlight groups that depend on<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Type" href="options.html#'background'">'background'</a>&nbsp;to change!&nbsp;&nbsp;This means you should set the colors for<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Normal first, before setting other colors.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When a colorscheme is being used, changing&nbsp;<a class="Type" href="options.html#'background'">'background'</a>&nbsp;causes it to<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;be reloaded, which may reset all colors (including Normal).&nbsp;&nbsp;First<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete the &quot;g:colors_name&quot; variable when you don't want this.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When you have set &quot;ctermfg&quot; or &quot;ctermbg&quot; for the Normal group, Vim<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;needs to reset the color when exiting.&nbsp;&nbsp;This is done with the &quot;op&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;termcap entry&nbsp;<a class="Identifier" href="term.html#t_op">t_op</a>.&nbsp;&nbsp;If this doesn't work correctly, try setting the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Type" href="term.html#'t_op'">'t_op'</a>&nbsp;option in your .vimrc.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#E419" name="E419">E419</a>&nbsp;<a class="Constant" href="syntax.html#E420" name="E420">E420</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When Vim knows the normal foreground and background colors, &quot;fg&quot; and<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;bg&quot; can be used as color names.&nbsp;&nbsp;This only works after setting the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;colors for the Normal group and for the MS-DOS console.&nbsp;&nbsp;Example, for<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reverse video:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:highlight Visual ctermfg=bg ctermbg=fg</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Todo">Note</span>&nbsp;that the colors are used that are valid at the moment this<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;command are given.&nbsp;&nbsp;If the Normal group colors are changed later, the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;fg&quot; and &quot;bg&quot; colors will not be adjusted.<br>
<br>
<br>
3. highlight arguments for the GUI<br>
<br>
gui=<span class="Special">{attr-list}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#highlight-gui" name="highlight-gui">highlight-gui</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;These give the attributes to use in the GUI mode.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;See&nbsp;<a class="Identifier" href="syntax.html#attr-list">attr-list</a>&nbsp;for a description.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Todo">Note</span>&nbsp;that &quot;bold&quot; can be used here and by using a bold font.&nbsp;&nbsp;They<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;have the same effect.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Todo">Note</span>&nbsp;that the attributes are ignored for the &quot;Normal&quot; group.<br>
<br>
font=<span class="Special">{font-name}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#highlight-font" name="highlight-font">highlight-font</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;font-name is the name of a font, as it is used on the system Vim<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;runs on.&nbsp;&nbsp;For X11 this is a complicated name, for example:<br>
<div class="helpExample">&nbsp;&nbsp; font=-misc-fixed-bold-r-normal--14-130-75-75-c-70-iso8859-1</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The font-name &quot;NONE&quot; can be used to revert to the default font.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When setting the font for the &quot;Normal&quot; group, this becomes the default<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;font (until the&nbsp;<a class="Type" href="options.html#'guifont'">'guifont'</a>&nbsp;option is changed; the last one set is<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;used).<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The following only works with Motif and Athena, not with other GUIs:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When setting the font for the &quot;Menu&quot; group, the menus will be changed.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When setting the font for the &quot;Tooltip&quot; group, the tooltips will be<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;changed.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;All fonts used, except for Menu and Tooltip, should be of the same<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;character size as the default font!&nbsp;&nbsp;Otherwise redrawing problems will<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;occur.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;To use a font name with an embedded space or other special character,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;put it in single quotes.&nbsp;&nbsp;The single quote cannot be used then.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:hi comment font='Monospace 10'</div>
<br>
guifg=<span class="Special">{color-name}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#highlight-guifg" name="highlight-guifg">highlight-guifg</a><br>
guibg=<span class="Special">{color-name}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#highlight-guibg" name="highlight-guibg">highlight-guibg</a><br>
guisp=<span class="Special">{color-name}</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#highlight-guisp" name="highlight-guisp">highlight-guisp</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;These give the foreground (guifg), background (guibg) and special<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(guisp) color to use in the GUI.&nbsp;&nbsp;&quot;guisp&quot; is used for undercurl.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;There are a few special names:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NONE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no color (transparent)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;use normal background color<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;background&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;use normal background color<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;use normal foreground color<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreground&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;use normal foreground color<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;To use a color name with an embedded space or other special character,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;put it in single quotes.&nbsp;&nbsp;The single quote cannot be used then.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Example:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:hi comment guifg='salmon pink'</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#gui-colors" name="gui-colors">gui-colors</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suggested color names (these are available on most systems):<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Red&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LightRed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DarkRed<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Green&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LightGreen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DarkGreen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SeaGreen<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Blue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LightBlue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DarkBlue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SlateBlue<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cyan&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LightCyan&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DarkCyan<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Magenta&nbsp;&nbsp;&nbsp;&nbsp; LightMagenta&nbsp;&nbsp;&nbsp;&nbsp;DarkMagenta<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Yellow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LightYellow&nbsp;&nbsp;&nbsp;&nbsp; Brown&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DarkYellow<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gray&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LightGray&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DarkGray<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Black&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; White<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Orange&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Purple&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Violet<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;In the Win32 GUI version, additional system colors are available.&nbsp;&nbsp;See<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="gui_w32.html#win32-colors">win32-colors</a>.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;You can also specify a color by its Red, Green and Blue values.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The format is &quot;#rrggbb&quot;, where<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;rr&quot;&nbsp;&nbsp;&nbsp;&nbsp;is the Red value<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;gg&quot;&nbsp;&nbsp;&nbsp;&nbsp;is the Green value<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;bb&quot;&nbsp;&nbsp;&nbsp;&nbsp;is the Blue value<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;All values are hexadecimal, range from &quot;00&quot; to &quot;ff&quot;.&nbsp;&nbsp;Examples:<br>
<div class="helpExample">&nbsp;&nbsp;:highlight Comment guifg=#11f0c3 guibg=#ff00ff</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#highlight-groups" name="highlight-groups">highlight-groups</a>&nbsp;<a class="Constant" href="syntax.html#highlight-default" name="highlight-default">highlight-default</a><br>
These are the default highlighting groups.&nbsp;&nbsp;These groups are used by the<br>
<a class="Type" href="options.html#'highlight'">'highlight'</a>&nbsp;option default.&nbsp;&nbsp;<span class="Todo">Note</span>&nbsp;that the highlighting depends on the value<br>
of&nbsp;<a class="Type" href="options.html#'background'">'background'</a>.&nbsp;&nbsp;You can see the current settings with the &quot;:highlight&quot;<br>
command.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-ColorColumn" name="hl-ColorColumn">hl-ColorColumn</a><br>
ColorColumn&nbsp;&nbsp;&nbsp;&nbsp; used for the columns set with&nbsp;<a class="Type" href="options.html#'colorcolumn'">'colorcolumn'</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-Conceal" name="hl-Conceal">hl-Conceal</a><br>
Conceal&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; placeholder characters substituted for concealed<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text (see&nbsp;<a class="Type" href="options.html#'conceallevel'">'conceallevel'</a>)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-Cursor" name="hl-Cursor">hl-Cursor</a><br>
Cursor&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the character under the cursor<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-CursorIM" name="hl-CursorIM">hl-CursorIM</a><br>
CursorIM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;like Cursor, but used when in IME mode&nbsp;<a class="Identifier" href="mbyte.html#CursorIM">CursorIM</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-CursorColumn" name="hl-CursorColumn">hl-CursorColumn</a><br>
CursorColumn&nbsp;&nbsp;&nbsp;&nbsp;the screen column that the cursor is in when&nbsp;<a class="Type" href="options.html#'cursorcolumn'">'cursorcolumn'</a>&nbsp;is<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-CursorLine" name="hl-CursorLine">hl-CursorLine</a><br>
CursorLine&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the screen line that the cursor is in when&nbsp;<a class="Type" href="options.html#'cursorline'">'cursorline'</a>&nbsp;is<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-Directory" name="hl-Directory">hl-Directory</a><br>
Directory&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; directory names (and other special names in listings)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-DiffAdd" name="hl-DiffAdd">hl-DiffAdd</a><br>
DiffAdd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; diff mode: Added line&nbsp;<a class="Identifier" href="diff.html">diff.txt</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-DiffChange" name="hl-DiffChange">hl-DiffChange</a><br>
DiffChange&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;diff mode: Changed line&nbsp;<a class="Identifier" href="diff.html">diff.txt</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-DiffDelete" name="hl-DiffDelete">hl-DiffDelete</a><br>
DiffDelete&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;diff mode: Deleted line&nbsp;<a class="Identifier" href="diff.html">diff.txt</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-DiffText" name="hl-DiffText">hl-DiffText</a><br>
DiffText&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;diff mode: Changed text within a changed line&nbsp;<a class="Identifier" href="diff.html">diff.txt</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-EndOfBuffer" name="hl-EndOfBuffer">hl-EndOfBuffer</a><br>
EndOfBuffer&nbsp;&nbsp;&nbsp;&nbsp; filler lines (~) after the last line in the buffer.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;By default, this is highlighted like&nbsp;<a class="Identifier" href="syntax.html#hl-NonText">hl-NonText</a>.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-ErrorMsg" name="hl-ErrorMsg">hl-ErrorMsg</a><br>
ErrorMsg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;error messages on the command line<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-VertSplit" name="hl-VertSplit">hl-VertSplit</a><br>
VertSplit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the column separating vertically split windows<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-Folded" name="hl-Folded">hl-Folded</a><br>
Folded&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line used for closed folds<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-FoldColumn" name="hl-FoldColumn">hl-FoldColumn</a><br>
FoldColumn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Type" href="options.html#'foldcolumn'">'foldcolumn'</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-SignColumn" name="hl-SignColumn">hl-SignColumn</a><br>
SignColumn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;column where&nbsp;<a class="Identifier" href="sign.html#signs">signs</a>&nbsp;are displayed<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-IncSearch" name="hl-IncSearch">hl-IncSearch</a><br>
IncSearch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Type" href="options.html#'incsearch'">'incsearch'</a>&nbsp;highlighting; also used for the text replaced with<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:s///c&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-LineNr" name="hl-LineNr">hl-LineNr</a><br>
LineNr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Line number for &quot;:number&quot; and &quot;:#&quot; commands, and when&nbsp;<a class="Type" href="options.html#'number'">'number'</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or&nbsp;<a class="Type" href="options.html#'relativenumber'">'relativenumber'</a>&nbsp;option is set.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-CursorLineNr" name="hl-CursorLineNr">hl-CursorLineNr</a><br>
CursorLineNr&nbsp;&nbsp;&nbsp;&nbsp;Like LineNr when&nbsp;<a class="Type" href="options.html#'cursorline'">'cursorline'</a>&nbsp;or&nbsp;<a class="Type" href="options.html#'relativenumber'">'relativenumber'</a>&nbsp;is set for<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the cursor line.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-MatchParen" name="hl-MatchParen">hl-MatchParen</a><br>
MatchParen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The character under the cursor or just before it, if it<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is a paired bracket, and its match.&nbsp;<a class="Identifier" href="pi_paren.html">pi_paren.txt</a><br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-ModeMsg" name="hl-ModeMsg">hl-ModeMsg</a><br>
ModeMsg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Type" href="options.html#'showmode'">'showmode'</a>&nbsp;message (e.g., &quot;-- INSERT --&quot;)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-MoreMsg" name="hl-MoreMsg">hl-MoreMsg</a><br>
MoreMsg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="message.html#more-prompt">more-prompt</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-NonText" name="hl-NonText">hl-NonText</a><br>
NonText&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '@' at the end of the window, characters from&nbsp;<a class="Type" href="options.html#'showbreak'">'showbreak'</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and other characters that do not really exist in the text<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(e.g., &quot;&gt;&quot; displayed when a double-wide character doesn't<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fit at the end of the line).<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-Normal" name="hl-Normal">hl-Normal</a><br>
Normal&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;normal text<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-Pmenu" name="hl-Pmenu">hl-Pmenu</a><br>
Pmenu&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Popup menu: normal item.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-PmenuSel" name="hl-PmenuSel">hl-PmenuSel</a><br>
PmenuSel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Popup menu: selected item.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-PmenuSbar" name="hl-PmenuSbar">hl-PmenuSbar</a><br>
PmenuSbar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Popup menu: scrollbar.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-PmenuThumb" name="hl-PmenuThumb">hl-PmenuThumb</a><br>
PmenuThumb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Popup menu: Thumb of the scrollbar.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-Question" name="hl-Question">hl-Question</a><br>
Question&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Identifier" href="message.html#hit-enter">hit-enter</a>&nbsp;prompt and yes/no questions<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-QuickFixLine" name="hl-QuickFixLine">hl-QuickFixLine</a><br>
QuickFixLine&nbsp;&nbsp;&nbsp;&nbsp;Current&nbsp;<a class="Identifier" href="quickfix.html#quickfix">quickfix</a>&nbsp;item in the quickfix window.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-Search" name="hl-Search">hl-Search</a><br>
Search&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Last search pattern highlighting (see&nbsp;<a class="Type" href="options.html#'hlsearch'">'hlsearch'</a>).<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Also used for similar items that need to stand out.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-SpecialKey" name="hl-SpecialKey">hl-SpecialKey</a><br>
SpecialKey&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Meta and special keys listed with &quot;:map&quot;, also for text used<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to show unprintable characters in the text,&nbsp;<a class="Type" href="options.html#'listchars'">'listchars'</a>.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generally: text that is displayed differently from what it<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;really is.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-SpellBad" name="hl-SpellBad">hl-SpellBad</a><br>
SpellBad&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Word that is not recognized by the spellchecker.&nbsp;<a class="Identifier" href="spell.html#spell">spell</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This will be combined with the highlighting used otherwise.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-SpellCap" name="hl-SpellCap">hl-SpellCap</a><br>
SpellCap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Word that should start with a capital.&nbsp;<a class="Identifier" href="spell.html#spell">spell</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This will be combined with the highlighting used otherwise.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-SpellLocal" name="hl-SpellLocal">hl-SpellLocal</a><br>
SpellLocal&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Word that is recognized by the spellchecker as one that is<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;used in another region.&nbsp;<a class="Identifier" href="spell.html#spell">spell</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This will be combined with the highlighting used otherwise.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-SpellRare" name="hl-SpellRare">hl-SpellRare</a><br>
SpellRare&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Word that is recognized by the spellchecker as one that is<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hardly ever used.&nbsp;<a class="Identifier" href="spell.html#spell">spell</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This will be combined with the highlighting used otherwise.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-StatusLine" name="hl-StatusLine">hl-StatusLine</a><br>
StatusLine&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;status line of current window<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-StatusLineNC" name="hl-StatusLineNC">hl-StatusLineNC</a><br>
StatusLineNC&nbsp;&nbsp;&nbsp;&nbsp;status lines of not-current windows<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Todo">Note</span>: if this is equal to &quot;StatusLine&quot; Vim will use &quot;^^^&quot; in<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the status line of the current window.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-TabLine" name="hl-TabLine">hl-TabLine</a><br>
TabLine&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tab pages line, not active tab page label<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-TabLineFill" name="hl-TabLineFill">hl-TabLineFill</a><br>
TabLineFill&nbsp;&nbsp;&nbsp;&nbsp; tab pages line, where there are no labels<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-TabLineSel" name="hl-TabLineSel">hl-TabLineSel</a><br>
TabLineSel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tab pages line, active tab page label<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-Title" name="hl-Title">hl-Title</a><br>
Title&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; titles for output from &quot;:set all&quot;, &quot;:autocmd&quot; etc.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-Visual" name="hl-Visual">hl-Visual</a><br>
Visual&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Visual mode selection<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-VisualNOS" name="hl-VisualNOS">hl-VisualNOS</a><br>
VisualNOS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Visual mode selection when vim is &quot;Not Owning the Selection&quot;.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Only X11 Gui's&nbsp;<a class="Identifier" href="gui_x11.html#gui-x11">gui-x11</a>&nbsp;and&nbsp;<a class="Identifier" href="term.html#xterm-clipboard">xterm-clipboard</a>&nbsp;supports this.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-WarningMsg" name="hl-WarningMsg">hl-WarningMsg</a><br>
WarningMsg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;warning messages<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-WildMenu" name="hl-WildMenu">hl-WildMenu</a><br>
WildMenu&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;current match in&nbsp;<a class="Type" href="options.html#'wildmenu'">'wildmenu'</a>&nbsp;completion<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-User1" name="hl-User1">hl-User1</a>&nbsp;<a class="Constant" href="syntax.html#hl-User1..9" name="hl-User1..9">hl-User1..9</a>&nbsp;<a class="Constant" href="syntax.html#hl-User9" name="hl-User9">hl-User9</a><br>
The&nbsp;<a class="Type" href="options.html#'statusline'">'statusline'</a>&nbsp;syntax allows the use of 9 different highlights in the<br>
statusline and ruler (via&nbsp;<a class="Type" href="options.html#'rulerformat'">'rulerformat'</a>).&nbsp;&nbsp;The names are User1 to User9.<br>
<br>
For the GUI you can use the following groups to set the colors for the menu,<br>
scrollbars and tooltips.&nbsp;&nbsp;They don't have defaults.&nbsp;&nbsp;This doesn't work for the<br>
Win32 GUI.&nbsp;&nbsp;Only three highlight arguments have any effect here: font, guibg,<br>
and guifg.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-Menu" name="hl-Menu">hl-Menu</a><br>
Menu&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Current font, background and foreground colors of the menus.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Also used for the toolbar.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Applicable highlight arguments: font, guibg, guifg.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Todo">NOTE</span>: For Motif and Athena the font argument actually<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;specifies a fontset at all times, no matter if&nbsp;<a class="Type" href="options.html#'guifontset'">'guifontset'</a>&nbsp;is<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;empty, and as such it is tied to the current&nbsp;<a class="Identifier" href="mlang.html#:language">:language</a>&nbsp;when<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-Scrollbar" name="hl-Scrollbar">hl-Scrollbar</a><br>
Scrollbar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Current background and foreground of the main window's<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scrollbars.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Applicable highlight arguments: guibg, guifg.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hl-Tooltip" name="hl-Tooltip">hl-Tooltip</a><br>
Tooltip&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Current font, background and foreground of the tooltips.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Applicable highlight arguments: font, guibg, guifg.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Todo">NOTE</span>: For Motif and Athena the font argument actually<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;specifies a fontset at all times, no matter if&nbsp;<a class="Type" href="options.html#'guifontset'">'guifontset'</a>&nbsp;is<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;empty, and as such it is tied to the current&nbsp;<a class="Identifier" href="mlang.html#:language">:language</a>&nbsp;when<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set.<br>
<br>
<span class="PreProc">==============================================================================</span><br>
13. Linking groups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:hi-link" name=":hi-link">:hi-link</a>&nbsp;<a class="Constant" href="syntax.html#:highlight-link" name=":highlight-link">:highlight-link</a>&nbsp;<a class="Constant" href="syntax.html#E412" name="E412">E412</a>&nbsp;<a class="Constant" href="syntax.html#E413" name="E413">E413</a><br>
<br>
When you want to use the same highlighting for several syntax groups, you<br>
can do this more easily by linking the groups into one common highlight<br>
group, and give the color attributes only for that group.<br>
<br>
To set a link:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;:hi[ghlight][!]&nbsp;<span class="Special">[default]</span>&nbsp;link&nbsp;<span class="Special">{from-group}</span>&nbsp;<span class="Special">{to-group}</span><br>
<br>
To remove a link:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;:hi[ghlight][!]&nbsp;<span class="Special">[default]</span>&nbsp;link&nbsp;<span class="Special">{from-group}</span>&nbsp;NONE<br>
<br>
<span class="Todo">Notes</span>:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#E414" name="E414">E414</a><br>
- If the&nbsp;<span class="Special">{from-group}</span>&nbsp;and/or&nbsp;<span class="Special">{to-group}</span>&nbsp;doesn't exist, it is created.&nbsp;&nbsp;You<br>
&nbsp;&nbsp;don't get an error message for a non-existing group.<br>
- As soon as you use a &quot;:highlight&quot; command for a linked group, the link is<br>
&nbsp;&nbsp;removed.<br>
- If there are already highlight settings for the&nbsp;<span class="Special">{from-group}</span>, the link is<br>
&nbsp;&nbsp;not made, unless the '!' is given.&nbsp;&nbsp;For a &quot;:highlight link&quot; command in a<br>
&nbsp;&nbsp;sourced file, you don't get an error message.&nbsp;&nbsp;This can be used to skip<br>
&nbsp;&nbsp;links for groups that already have settings.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:hi-default" name=":hi-default">:hi-default</a>&nbsp;<a class="Constant" href="syntax.html#:highlight-default" name=":highlight-default">:highlight-default</a><br>
The&nbsp;<span class="Special">[default]</span>&nbsp;argument is used for setting the default highlighting for a<br>
group.&nbsp;&nbsp;If highlighting has already been specified for the group the command<br>
will be ignored.&nbsp;&nbsp;Also when there is an existing link.<br>
<br>
Using&nbsp;<span class="Special">[default]</span>&nbsp;is especially useful to overrule the highlighting of a<br>
specific syntax file.&nbsp;&nbsp;For example, the C syntax file contains:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:highlight default link cComment Comment</div>
If you like Question highlighting for C comments, put this in your vimrc file:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:highlight link cComment Question</div>
Without the &quot;default&quot; in the C syntax file, the highlighting would be<br>
overruled when the syntax file is loaded.<br>
<br>
<span class="PreProc">==============================================================================</span><br>
14. Cleaning up&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syn-clear" name=":syn-clear">:syn-clear</a>&nbsp;<a class="Constant" href="syntax.html#E391" name="E391">E391</a><br>
<br>
If you want to clear the syntax stuff for the current buffer, you can use this<br>
command:<br>
<div class="helpExample">&nbsp;&nbsp;:syntax clear</div>
<br>
This command should be used when you want to switch off syntax highlighting,<br>
or when you want to switch to using another syntax.&nbsp;&nbsp;It's normally not needed<br>
in a syntax file itself, because syntax is cleared by the autocommands that<br>
load the syntax file.<br>
The command also deletes the &quot;b:current_syntax&quot; variable, since no syntax is<br>
loaded after this command.<br>
<br>
If you want to disable syntax highlighting for all buffers, you need to remove<br>
the autocommands that load the syntax files:<br>
<div class="helpExample">&nbsp;&nbsp;:syntax off</div>
<br>
What this command actually does, is executing the command<br>
<div class="helpExample">&nbsp;&nbsp;:source $VIMRUNTIME/syntax/nosyntax.vim</div>
See the &quot;nosyntax.vim&quot; file for details.&nbsp;&nbsp;<span class="Todo">Note</span>&nbsp;that for this to work<br>
$VIMRUNTIME must be valid.&nbsp;&nbsp;See&nbsp;<a class="Identifier" href="starting.html#$VIMRUNTIME">$VIMRUNTIME</a>.<br>
<br>
To clean up specific syntax groups for the current buffer:<br>
<div class="helpExample">&nbsp;&nbsp;:syntax clear {group-name} ..</div>
This removes all patterns and keywords for&nbsp;<span class="Special">{group-name}</span>.<br>
<br>
To clean up specific syntax group lists for the current buffer:<br>
<div class="helpExample">&nbsp;&nbsp;:syntax clear @{grouplist-name} ..</div>
This sets&nbsp;<span class="Special">{grouplist-name}</span>'s contents to an empty list.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syntax-reset" name=":syntax-reset">:syntax-reset</a>&nbsp;<a class="Constant" href="syntax.html#:syn-reset" name=":syn-reset">:syn-reset</a><br>
If you have changed the colors and messed them up, use this command to get the<br>
defaults back:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;:syntax reset</div>
<br>
It is a bit of a wrong name, since it does not reset any syntax items, it only<br>
affects the highlighting.<br>
<br>
This doesn't change the colors for the&nbsp;<a class="Type" href="options.html#'highlight'">'highlight'</a>&nbsp;option.<br>
<br>
<span class="Todo">Note</span>&nbsp;that the syntax colors that you set in your vimrc file will also be reset<br>
back to their Vim default.<br>
<span class="Todo">Note</span>&nbsp;that if you are using a color scheme, the colors defined by the color<br>
scheme for syntax highlighting will be lost.<br>
<br>
What this actually does is:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let g:syntax_cmd = &quot;reset&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;runtime! syntax/syncolor.vim</div>
<br>
<span class="Todo">Note</span>&nbsp;that this uses the&nbsp;<a class="Type" href="options.html#'runtimepath'">'runtimepath'</a>&nbsp;option.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#syncolor" name="syncolor">syncolor</a><br>
If you want to use different colors for syntax highlighting, you can add a Vim<br>
script file to set these colors.&nbsp;&nbsp;Put this file in a directory in<br>
<a class="Type" href="options.html#'runtimepath'">'runtimepath'</a>&nbsp;which comes after $VIMRUNTIME, so that your settings overrule<br>
the default colors.&nbsp;&nbsp;This way these colors will be used after the &quot;:syntax<br>
reset&quot; command.<br>
<br>
For Unix you can use the file ~/.vim/after/syntax/syncolor.vim.&nbsp;&nbsp;Example:<br>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if &amp;background == &quot;light&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;highlight comment ctermfg=darkgreen guifg=darkgreen<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;highlight comment ctermfg=green guifg=green<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;endif</div>
<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*E679*</div>
Do make sure this syncolor.vim script does not use a &quot;syntax on&quot;, set the<br>
<a class="Type" href="options.html#'background'">'background'</a>&nbsp;option or uses a &quot;colorscheme&quot; command, because it results in an<br>
endless loop.<br>
<br>
<span class="Todo">Note</span>&nbsp;that when a color scheme is used, there might be some confusion whether<br>
your defined colors are to be used or the colors from the scheme.&nbsp;&nbsp;This<br>
depends on the color scheme file.&nbsp;&nbsp;See&nbsp;<a class="Identifier" href="syntax.html#:colorscheme">:colorscheme</a>.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#syntax_cmd" name="syntax_cmd">syntax_cmd</a><br>
The &quot;syntax_cmd&quot; variable is set to one of these values when the<br>
syntax/syncolor.vim files are loaded:<br>
&nbsp;&nbsp; &quot;on&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;:syntax on&quot; command.&nbsp;&nbsp;Highlight colors are overruled but<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;links are kept<br>
&nbsp;&nbsp; &quot;enable&quot;&nbsp;&nbsp;&nbsp;&nbsp; &quot;:syntax enable&quot; command.&nbsp;&nbsp;Only define colors for groups that<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't have highlighting yet.&nbsp;&nbsp;Use &quot;:syntax default&quot;.<br>
&nbsp;&nbsp; &quot;reset&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:syntax reset&quot; command or loading a color scheme.&nbsp;&nbsp;Define all<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the colors.<br>
&nbsp;&nbsp; &quot;skip&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Don't define colors.&nbsp;&nbsp;Used to skip the default settings when a<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;syncolor.vim file earlier in&nbsp;<a class="Type" href="options.html#'runtimepath'">'runtimepath'</a>&nbsp;has already set<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;them.<br>
<br>
<span class="PreProc">==============================================================================</span><br>
15. Highlighting tags&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#tag-highlight" name="tag-highlight">tag-highlight</a><br>
<br>
If you want to highlight all the tags in your file, you can use the following<br>
mappings.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Special">&lt;F11&gt;</span>&nbsp;&nbsp; -- Generate tags.vim file, and highlight tags.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Special">&lt;F12&gt;</span>&nbsp;&nbsp; -- Just highlight tags based on existing tags.vim file.<br>
<br>
<div class="helpExample">&nbsp;&nbsp;:map &lt;F11&gt;&nbsp;&nbsp;:sp tags&lt;CR&gt;:%s/^\([^&nbsp;&nbsp;&nbsp;&nbsp; :]*:\)\=\([^&nbsp;&nbsp;&nbsp;&nbsp;]*\).*/syntax keyword Tag \2/&lt;CR&gt;:wq! tags.vim&lt;CR&gt;/^&lt;CR&gt;&lt;F12&gt;<br>
&nbsp;&nbsp;:map &lt;F12&gt;&nbsp;&nbsp;:so tags.vim&lt;CR&gt;</div>
<br>
WARNING: The longer the tags file, the slower this will be, and the more<br>
memory Vim will consume.<br>
<br>
Only highlighting typedefs, unions and structs can be done too.&nbsp;&nbsp;For this you<br>
must use Exuberant ctags (found at&nbsp;<span class="Constant"><a href="http://ctags.sf.net">http://ctags.sf.net</a></span>).<br>
<br>
Put these lines in your Makefile:<br>
<br>
# Make a highlight file for types.&nbsp;&nbsp;Requires Exuberant ctags and awk<br>
types: types.vim<br>
types.vim: *.[ch]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctags --c-kinds=gstu -o- *.[ch] |\<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;awk 'BEGIN{printf(&quot;syntax keyword Type\t&quot;)}\<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{printf(&quot;%s &quot;, $$1)}END{print &quot;&quot;}' &gt; $@<br>
<br>
And put these lines in your .vimrc:<br>
<br>
<div class="helpExample">&nbsp;&nbsp; &quot; load the types.vim highlighting file, if it exists<br>
&nbsp;&nbsp; autocmd BufRead,BufNewFile *.[ch] let fname = expand('&lt;afile&gt;:p:h') . '/types.vim'<br>
&nbsp;&nbsp; autocmd BufRead,BufNewFile *.[ch] if filereadable(fname)<br>
&nbsp;&nbsp; autocmd BufRead,BufNewFile *.[ch]&nbsp;&nbsp; exe 'so ' . fname<br>
&nbsp;&nbsp; autocmd BufRead,BufNewFile *.[ch] endif</div>
<br>
<span class="PreProc">==============================================================================</span><br>
16. Window-local syntax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:ownsyntax" name=":ownsyntax">:ownsyntax</a><br>
<br>
Normally all windows on a buffer share the same syntax settings. It is<br>
possible, however, to set a particular window on a file to have its own<br>
private syntax setting. A possible example would be to edit LaTeX source<br>
with conventional highlighting in one window, while seeing the same source<br>
highlighted differently (so as to hide control sequences and indicate bold,<br>
italic etc regions) in another. The&nbsp;<a class="Type" href="options.html#'scrollbind'">'scrollbind'</a>&nbsp;option is useful here.<br>
<br>
To set the current window to have the syntax &quot;foo&quot;, separately from all other<br>
windows on the buffer:<br>
<div class="helpExample">&nbsp;&nbsp; :ownsyntax foo</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#w:current_syntax" name="w:current_syntax">w:current_syntax</a><br>
This will set the &quot;w:current_syntax&quot; variable to &quot;foo&quot;.&nbsp;&nbsp;The value of<br>
&quot;b:current_syntax&quot; does not change.&nbsp;&nbsp;This is implemented by saving and<br>
restoring &quot;b:current_syntax&quot;, since the syntax files do set<br>
&quot;b:current_syntax&quot;.&nbsp;&nbsp;The value set by the syntax file is assigned to<br>
&quot;w:current_syntax&quot;.<br>
<span class="Todo">Note</span>: This resets the&nbsp;<a class="Type" href="options.html#'spell'">'spell'</a>,&nbsp;<a class="Type" href="options.html#'spellcapcheck'">'spellcapcheck'</a>&nbsp;and&nbsp;<a class="Type" href="options.html#'spellfile'">'spellfile'</a>&nbsp;options.<br>
<br>
Once a window has its own syntax, syntax commands executed from other windows<br>
on the same buffer (including :syntax clear) have no effect. Conversely,<br>
syntax commands executed from that window do not affect other windows on the<br>
same buffer.<br>
<br>
A window with its own syntax reverts to normal behavior when another buffer<br>
is loaded into that window or the file is reloaded.<br>
When splitting the window, the new window will use the original syntax.<br>
<br>
<span class="PreProc">==============================================================================</span><br>
17. Color xterms&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#xterm-color" name="xterm-color">xterm-color</a>&nbsp;<a class="Constant" href="syntax.html#color-xterm" name="color-xterm">color-xterm</a><br>
<br>
Most color xterms have only eight colors.&nbsp;&nbsp;If you don't get colors with the<br>
default setup, it should work with these lines in your .vimrc:<br>
<div class="helpExample">&nbsp;&nbsp; :if &amp;term =~ &quot;xterm&quot;<br>
&nbsp;&nbsp; :&nbsp;&nbsp;if has(&quot;terminfo&quot;)<br>
&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;set t_Co=8<br>
&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;set t_Sf=&lt;Esc&gt;[3%p1%dm<br>
&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;set t_Sb=&lt;Esc&gt;[4%p1%dm<br>
&nbsp;&nbsp; :&nbsp;&nbsp;else<br>
&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;set t_Co=8<br>
&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;set t_Sf=&lt;Esc&gt;[3%dm<br>
&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;set t_Sb=&lt;Esc&gt;[4%dm<br>
&nbsp;&nbsp; :&nbsp;&nbsp;endif<br>
&nbsp;&nbsp; :endif</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [<span class="Special">&lt;Esc&gt;</span>&nbsp;is a real escape, type&nbsp;<span class="Special">CTRL-V</span>&nbsp;<span class="Special">&lt;Esc&gt;</span>]<br>
<br>
You might want to change the first &quot;if&quot; to match the name of your terminal,<br>
e.g. &quot;dtterm&quot; instead of &quot;xterm&quot;.<br>
<br>
<span class="Todo">Note</span>: Do these settings BEFORE doing &quot;:syntax on&quot;.&nbsp;&nbsp;Otherwise the colors may<br>
be wrong.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#xiterm" name="xiterm">xiterm</a>&nbsp;<a class="Constant" href="syntax.html#rxvt" name="rxvt">rxvt</a><br>
The above settings have been mentioned to work for xiterm and rxvt too.<br>
But for using 16 colors in an rxvt these should work with terminfo:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:set t_AB=&lt;Esc&gt;[%?%p1%{8}%&lt;%t25;%p1%{40}%+%e5;%p1%{32}%+%;%dm<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:set t_AF=&lt;Esc&gt;[%?%p1%{8}%&lt;%t22;%p1%{30}%+%e1;%p1%{22}%+%;%dm</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#colortest.vim" name="colortest.vim">colortest.vim</a><br>
To test your color setup, a file has been included in the Vim distribution.<br>
To use it, execute this command:<br>
<div class="helpExample">&nbsp;&nbsp; :runtime syntax/colortest.vim</div>
<br>
Some versions of xterm (and other terminals, like the Linux console) can<br>
output lighter foreground colors, even though the number of colors is defined<br>
at 8.&nbsp;&nbsp;Therefore Vim sets the &quot;cterm=bold&quot; attribute for light foreground<br>
colors, when&nbsp;<a class="Type" href="term.html#'t_Co'">'t_Co'</a>&nbsp;is 8.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#xfree-xterm" name="xfree-xterm">xfree-xterm</a><br>
To get 16 colors or more, get the newest xterm version (which should be<br>
included with XFree86 3.3 and later).&nbsp;&nbsp;You can also find the latest version<br>
at:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://invisible-island.net/xterm/xterm.html">http://invisible-island.net/xterm/xterm.html</a></div>
Here is a good way to configure it.&nbsp;&nbsp;This uses 88 colors and enables the<br>
termcap-query feature, which allows Vim to ask the xterm how many colors it<br>
supports.<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;./configure --disable-bold-color --enable-88-color --enable-tcap-query</div>
If you only get 8 colors, check the xterm compilation settings.<br>
(Also see&nbsp;<a class="Identifier" href="mbyte.html#UTF8-xterm">UTF8-xterm</a>&nbsp;for using this xterm with UTF-8 character encoding).<br>
<br>
This xterm should work with these lines in your .vimrc (for 16 colors):<br>
<div class="helpExample">&nbsp;&nbsp; :if has(&quot;terminfo&quot;)<br>
&nbsp;&nbsp; :&nbsp;&nbsp;set t_Co=16<br>
&nbsp;&nbsp; :&nbsp;&nbsp;set t_AB=&lt;Esc&gt;[%?%p1%{8}%&lt;%t%p1%{40}%+%e%p1%{92}%+%;%dm<br>
&nbsp;&nbsp; :&nbsp;&nbsp;set t_AF=&lt;Esc&gt;[%?%p1%{8}%&lt;%t%p1%{30}%+%e%p1%{82}%+%;%dm<br>
&nbsp;&nbsp; :else<br>
&nbsp;&nbsp; :&nbsp;&nbsp;set t_Co=16<br>
&nbsp;&nbsp; :&nbsp;&nbsp;set t_Sf=&lt;Esc&gt;[3%dm<br>
&nbsp;&nbsp; :&nbsp;&nbsp;set t_Sb=&lt;Esc&gt;[4%dm<br>
&nbsp;&nbsp; :endif</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [<span class="Special">&lt;Esc&gt;</span>&nbsp;is a real escape, type&nbsp;<span class="Special">CTRL-V</span>&nbsp;<span class="Special">&lt;Esc&gt;</span>]<br>
<br>
Without&nbsp;<a class="Identifier" href="various.html#+terminfo">+terminfo</a>, Vim will recognize these settings, and automatically<br>
translate cterm colors of 8 and above to &quot;<span class="Special">&lt;Esc&gt;</span>[9%dm&quot; and &quot;<span class="Special">&lt;Esc&gt;</span>[10%dm&quot;.<br>
Colors above 16 are also translated automatically.<br>
<br>
For 256 colors this has been reported to work:<br>
<br>
<div class="helpExample">&nbsp;&nbsp; :set t_AB=&lt;Esc&gt;[48;5;%dm<br>
&nbsp;&nbsp; :set t_AF=&lt;Esc&gt;[38;5;%dm</div>
<br>
Or just set the TERM environment variable to &quot;xterm-color&quot; or &quot;xterm-16color&quot;<br>
and try if that works.<br>
<br>
You probably want to use these X resources (in your ~/.Xdefaults file):<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XTerm*color0:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #000000<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XTerm*color1:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #c00000<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XTerm*color2:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #008000<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XTerm*color3:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #808000<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XTerm*color4:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #0000c0<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XTerm*color5:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #c000c0<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XTerm*color6:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #008080<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XTerm*color7:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #c0c0c0<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XTerm*color8:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #808080<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XTerm*color9:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #ff6060<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XTerm*color10:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#00ff00<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XTerm*color11:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#ffff00<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XTerm*color12:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#8080ff<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XTerm*color13:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#ff40ff<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XTerm*color14:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#00ffff<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XTerm*color15:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#ffffff<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Xterm*cursorColor:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Black<br>
<br>
[<span class="Todo">Note</span>: The cursorColor is required to work around a bug, which changes the<br>
cursor color to the color of the last drawn text.&nbsp;&nbsp;This has been fixed by a<br>
newer version of xterm, but not everybody is using it yet.]<br>
<br>
To get these right away, reload the .Xdefaults file to the X Option database<br>
Manager (you only need to do this when you just changed the .Xdefaults file):<br>
<div class="helpExample">&nbsp;&nbsp;xrdb -merge ~/.Xdefaults</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#xterm-blink" name="xterm-blink">xterm-blink</a>&nbsp;<a class="Constant" href="syntax.html#xterm-blinking-cursor" name="xterm-blinking-cursor">xterm-blinking-cursor</a><br>
To make the cursor blink in an xterm, see tools/blink.c.&nbsp;&nbsp;Or use Thomas<br>
Dickey's xterm above patchlevel 107 (see above for where to get it), with<br>
these resources:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XTerm*cursorBlink:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XTerm*cursorOnTime:&nbsp;&nbsp;&nbsp;&nbsp; 400<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XTerm*cursorOffTime:&nbsp;&nbsp;&nbsp;&nbsp;250<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XTerm*cursorColor:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;White<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#hpterm-color" name="hpterm-color">hpterm-color</a><br>
These settings work (more or less) for an hpterm, which only supports 8<br>
foreground colors:<br>
<div class="helpExample">&nbsp;&nbsp; :if has(&quot;terminfo&quot;)<br>
&nbsp;&nbsp; :&nbsp;&nbsp;set t_Co=8<br>
&nbsp;&nbsp; :&nbsp;&nbsp;set t_Sf=&lt;Esc&gt;[&amp;v%p1%dS<br>
&nbsp;&nbsp; :&nbsp;&nbsp;set t_Sb=&lt;Esc&gt;[&amp;v7S<br>
&nbsp;&nbsp; :else<br>
&nbsp;&nbsp; :&nbsp;&nbsp;set t_Co=8<br>
&nbsp;&nbsp; :&nbsp;&nbsp;set t_Sf=&lt;Esc&gt;[&amp;v%dS<br>
&nbsp;&nbsp; :&nbsp;&nbsp;set t_Sb=&lt;Esc&gt;[&amp;v7S<br>
&nbsp;&nbsp; :endif</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [<span class="Special">&lt;Esc&gt;</span>&nbsp;is a real escape, type&nbsp;<span class="Special">CTRL-V</span>&nbsp;<span class="Special">&lt;Esc&gt;</span>]<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#Eterm" name="Eterm">Eterm</a>&nbsp;<a class="Constant" href="syntax.html#enlightened-terminal" name="enlightened-terminal">enlightened-terminal</a><br>
These settings have been reported to work for the Enlightened terminal<br>
emulator, or Eterm.&nbsp;&nbsp;They might work for all xterm-like terminals that use the<br>
bold attribute to get bright colors.&nbsp;&nbsp;Add an &quot;:if&quot; like above when needed.<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :set t_Co=16<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :set t_AF=^[[%?%p1%{8}%&lt;%t3%p1%d%e%p1%{22}%+%d;1%;m<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :set t_AB=^[[%?%p1%{8}%&lt;%t4%p1%d%e%p1%{32}%+%d;1%;m</div>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#TTpro-telnet" name="TTpro-telnet">TTpro-telnet</a><br>
These settings should work for TTpro telnet.&nbsp;&nbsp;Tera Term Pro is a freeware /<br>
open-source program for MS-Windows.<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set t_Co=16<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set t_AB=^[[%?%p1%{8}%&lt;%t%p1%{40}%+%e%p1%{32}%+5;%;%dm<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set t_AF=^[[%?%p1%{8}%&lt;%t%p1%{30}%+%e%p1%{22}%+1;%;%dm</div>
Also make sure TTpro's Setup / Window / Full Color is enabled, and make sure<br>
that Setup / Font / Enable Bold is NOT enabled.<br>
(info provided by John Love-Jensen &lt;eljay@Adobe.COM&gt;)<br>
<br>
<br>
<span class="PreProc">==============================================================================</span><br>
18. When syntax is slow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="Constant" href="syntax.html#:syntime" name=":syntime">:syntime</a><br>
<br>
This is aimed at authors of a syntax file.<br>
<br>
If your syntax causes redrawing to be slow, here are a few hints on making it<br>
faster.&nbsp;&nbsp;To see slowness switch on some features that usually interfere, such<br>
as&nbsp;<a class="Type" href="options.html#'relativenumber'">'relativenumber'</a>&nbsp;and&nbsp;<a class="Identifier" href="fold.html#folding">folding</a>.<br>
<br>
<span class="Todo">Note</span>: this is only available when compiled with the&nbsp;<a class="Identifier" href="various.html#+profile">+profile</a>&nbsp;feature.<br>
You many need to build Vim with &quot;huge&quot; features.<br>
<br>
To find out what patterns are consuming most time, get an overview with this<br>
sequence:<br>
<div class="helpExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:syntime on<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ redraw the text at least once with CTRL-L ]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:syntime report</div>
<br>
This will display a list of syntax patterns that were used, sorted by the time<br>
it took to match them against the text.<br>
<br>
:syntime on&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Start measuring syntax times.&nbsp;&nbsp;This will add some<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;overhead to compute the time spent on syntax pattern<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;matching.<br>
<br>
:syntime off&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stop measuring syntax times.<br>
<br>
:syntime clear&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set all the counters to zero, restart measuring.<br>
<br>
:syntime report&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Show the syntax items used since &quot;:syntime on&quot; in the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;current window.&nbsp;&nbsp;Use a wider display to see more of<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the output.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The list is sorted by total time. The columns are:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TOTAL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Total time in seconds spent on<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;matching this pattern.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COUNT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Number of times the pattern was used.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MATCH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Number of times the pattern actually<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;matched<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SLOWEST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The longest time for one try.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AVERAGE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The average time for one try.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name of the syntax item.&nbsp;&nbsp;<span class="Todo">Note</span>&nbsp;that<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this is not unique.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PATTERN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The pattern being used.<br>
<br>
Pattern matching gets slow when it has to try many alternatives.&nbsp;&nbsp;Try to<br>
include as much literal text as possible to reduce the number of ways a<br>
pattern does NOT match.<br>
<br>
When using the &quot;\@&lt;=&quot; and &quot;\@&lt;!&quot; items, add a maximum size to avoid trying at<br>
all positions in the current and previous line.&nbsp;&nbsp;For example, if the item is<br>
literal text specify the size of that text (in bytes):<br>
<br>
&quot;&lt;\@&lt;=span&quot;&nbsp;&nbsp;&nbsp;&nbsp; Matches &quot;span&quot; in &quot;&lt;span&quot;.&nbsp;&nbsp;This tries matching with &quot;&lt;&quot; in<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;many places.<br>
&quot;&lt;\@1&lt;=span&quot;&nbsp;&nbsp;&nbsp;&nbsp;Matches the same, but only tries one byte before &quot;span&quot;.<br>
<br>
<br>
&nbsp;vim:tw=78:sw=4:ts=8:ft=help:norl:<br>
</div>
</article>
<footer>
<a href="#top">Return to the top</a> - <a href="index.html">Return to main</a>
<span class="EnglishJapaneseLink">
<span class="CurrentLanguage">English</span>
</span>
<br />
<div style="text-align:right;">
Hosted by <a href="https://github.com/vim-jp/vimdoc-en">vimdoc-en project</a><br />
If you met any problem, please report it to <a href="https://github.com/vim-jp/vimdoc-en/issues">issue</a>.<br />
</div>
</footer>
<!--<script src="js/check-referrer.js" type="text/javascript"></script>-->
</body>
</html>
<!-- vim:set ts=8 sts=2 sw=2 tw=0 et: -->
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/hilarryxu/vimdoc.git
git@gitee.com:hilarryxu/vimdoc.git
hilarryxu
vimdoc
vimdoc
master

搜索帮助