12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714 |
- " Vim support file to detect file types
- "
- " Maintainer: Bram Moolenaar <Bram@vim.org>
- " Last Change: 2022 Dec 05
- " Listen very carefully, I will say this only once
- if exists("did_load_filetypes")
- finish
- endif
- let did_load_filetypes = 1
- " Line continuation is used here, remove 'C' from 'cpoptions'
- let s:cpo_save = &cpo
- set cpo&vim
- augroup filetypedetect
- " Ignored extensions
- if exists("*fnameescape")
- au BufNewFile,BufRead ?\+.orig,?\+.bak,?\+.old,?\+.new,?\+.dpkg-dist,?\+.dpkg-old,?\+.dpkg-new,?\+.dpkg-bak,?\+.rpmsave,?\+.rpmnew,?\+.pacsave,?\+.pacnew
- \ exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r"))
- au BufNewFile,BufRead *~
- \ let s:name = expand("<afile>") |
- \ let s:short = substitute(s:name, '\~$', '', '') |
- \ if s:name != s:short && s:short != "" |
- \ exe "doau filetypedetect BufRead " . fnameescape(s:short) |
- \ endif |
- \ unlet! s:name s:short
- au BufNewFile,BufRead ?\+.in
- \ if expand("<afile>:t") != "configure.in" |
- \ exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r")) |
- \ endif
- elseif &verbose > 0
- echomsg "Warning: some filetypes will not be recognized because this version of Vim does not have fnameescape()"
- endif
- " Pattern used to match file names which should not be inspected.
- " Currently finds compressed files.
- if !exists("g:ft_ignore_pat")
- let g:ft_ignore_pat = '\.\(Z\|gz\|bz2\|zip\|tgz\)$'
- endif
- " Function used for patterns that end in a star: don't set the filetype if the
- " file name matches ft_ignore_pat.
- " When using this, the entry should probably be further down below with the
- " other StarSetf() calls.
- func s:StarSetf(ft)
- if expand("<amatch>") !~ g:ft_ignore_pat
- exe 'setf ' . a:ft
- endif
- endfunc
- " Vim help file
- au BufNewFile,BufRead $VIMRUNTIME/doc/*.txt setf help
- " Abaqus or Trasys
- au BufNewFile,BufRead *.inp call dist#ft#Check_inp()
- " 8th (Firth-derivative)
- au BufNewFile,BufRead *.8th setf 8th
- " A-A-P recipe
- au BufNewFile,BufRead *.aap setf aap
- " A2ps printing utility
- au BufNewFile,BufRead */etc/a2ps.cfg,*/etc/a2ps/*.cfg,a2psrc,.a2psrc setf a2ps
- " ABAB/4
- au BufNewFile,BufRead *.abap setf abap
- " ABC music notation
- au BufNewFile,BufRead *.abc setf abc
- " ABEL
- au BufNewFile,BufRead *.abl setf abel
- " AceDB
- au BufNewFile,BufRead *.wrm setf acedb
- " Ada (83, 9X, 95)
- au BufNewFile,BufRead *.adb,*.ads,*.ada setf ada
- if has("vms")
- au BufNewFile,BufRead *.gpr,*.ada_m,*.adc setf ada
- else
- au BufNewFile,BufRead *.gpr setf ada
- endif
- " AHDL
- au BufNewFile,BufRead *.tdf setf ahdl
- " AIDL
- au BufNewFile,BufRead *.aidl setf aidl
- " AMPL
- au BufNewFile,BufRead *.run setf ampl
- " Ant
- au BufNewFile,BufRead build.xml setf ant
- " Arduino
- au BufNewFile,BufRead *.ino,*.pde setf arduino
- " Apache config file
- au BufNewFile,BufRead .htaccess,*/etc/httpd/*.conf setf apache
- au BufNewFile,BufRead */etc/apache2/sites-*/*.com setf apache
- " XA65 MOS6510 cross assembler
- au BufNewFile,BufRead *.a65 setf a65
- " Applescript
- au BufNewFile,BufRead *.scpt setf applescript
- " Applix ELF
- au BufNewFile,BufRead *.am
- \ if expand("<afile>") !~? 'Makefile.am\>' | setf elf | endif
- " ALSA configuration
- au BufNewFile,BufRead .asoundrc,*/usr/share/alsa/alsa.conf,*/etc/asound.conf setf alsaconf
- " Arc Macro Language
- au BufNewFile,BufRead *.aml setf aml
- " APT config file
- au BufNewFile,BufRead apt.conf setf aptconf
- au BufNewFile,BufRead */.aptitude/config setf aptconf
- " more generic pattern far down
- " Arch Inventory file
- au BufNewFile,BufRead .arch-inventory,=tagging-method setf arch
- " ART*Enterprise (formerly ART-IM)
- au BufNewFile,BufRead *.art setf art
- " AsciiDoc
- au BufNewFile,BufRead *.asciidoc,*.adoc setf asciidoc
- " ASN.1
- au BufNewFile,BufRead *.asn,*.asn1 setf asn
- " Active Server Pages (with Visual Basic Script)
- au BufNewFile,BufRead *.asa
- \ if exists("g:filetype_asa") |
- \ exe "setf " . g:filetype_asa |
- \ else |
- \ setf aspvbs |
- \ endif
- " Active Server Pages (with Perl or Visual Basic Script)
- au BufNewFile,BufRead *.asp
- \ if exists("g:filetype_asp") |
- \ exe "setf " . g:filetype_asp |
- \ elseif getline(1) . getline(2) . getline(3) =~? "perlscript" |
- \ setf aspperl |
- \ else |
- \ setf aspvbs |
- \ endif
- " Grub (must be before pattern *.lst)
- au BufNewFile,BufRead */boot/grub/menu.lst,*/boot/grub/grub.conf,*/etc/grub.conf setf grub
- " Maxima, see:
- " https://maxima.sourceforge.io/docs/manual/maxima_71.html#file_005ftype_005fmaxima
- " Must be before the pattern *.mac.
- " *.dem omitted - also used by gnuplot demos
- " *.mc omitted - used by dist#ft#McSetf()
- au BufNewFile,BufRead *.demo,*.dm{1,2,3,t},*.wxm,maxima-init.mac setf maxima
- " Assembly (all kinds)
- " *.lst is not pure assembly, it has two extra columns (address, byte codes)
- au BufNewFile,BufRead *.asm,*.[sS],*.[aA],*.mac,*.lst call dist#ft#FTasm()
- " Assembly - Macro (VAX)
- au BufNewFile,BufRead *.mar setf vmasm
- " Astro
- au BufNewFile,BufRead *.astro setf astro
- " Atlas
- au BufNewFile,BufRead *.atl,*.as setf atlas
- " Atom is based on XML
- au BufNewFile,BufRead *.atom setf xml
- " Autoit v3
- au BufNewFile,BufRead *.au3 setf autoit
- " Autohotkey
- au BufNewFile,BufRead *.ahk setf autohotkey
- " Automake
- au BufNewFile,BufRead [mM]akefile.am,GNUmakefile.am setf automake
- " Autotest .at files are actually m4
- au BufNewFile,BufRead *.at setf m4
- " Avenue
- au BufNewFile,BufRead *.ave setf ave
- " Awk
- au BufNewFile,BufRead *.awk,*.gawk setf awk
- " B
- au BufNewFile,BufRead *.mch,*.ref,*.imp setf b
- " BASIC or Visual Basic
- au BufNewFile,BufRead *.bas call dist#ft#FTbas()
- au BufNewFile,BufRead *.bi,*.bm call dist#ft#FTbas()
- " Visual Basic Script (close to Visual Basic) or Visual Basic .NET
- au BufNewFile,BufRead *.vb,*.vbs,*.dsm,*.ctl setf vb
- " IBasic file (similar to QBasic)
- au BufNewFile,BufRead *.iba,*.ibi setf ibasic
- " FreeBasic file (similar to QBasic)
- au BufNewFile,BufRead *.fb setf freebasic
- " Batch file for MSDOS. See dist#ft#FTsys for *.sys
- au BufNewFile,BufRead *.bat setf dosbatch
- " *.cmd is close to a Batch file, but on OS/2 Rexx files also use *.cmd.
- au BufNewFile,BufRead *.cmd
- \ if getline(1) =~ '^/\*' | setf rexx | else | setf dosbatch | endif
- " ABB RAPID or Batch file for MSDOS.
- au BufNewFile,BufRead *.sys\c call dist#ft#FTsys()
- " Batch file for 4DOS
- au BufNewFile,BufRead *.btm call dist#ft#FTbtm()
- " BC calculator
- au BufNewFile,BufRead *.bc setf bc
- " BDF font
- au BufNewFile,BufRead *.bdf setf bdf
- " Beancount
- au BufNewFile,BufRead *.beancount setf beancount
- " BibTeX bibliography database file
- au BufNewFile,BufRead *.bib setf bib
- " BibTeX Bibliography Style
- au BufNewFile,BufRead *.bst setf bst
- " Bicep
- au BufNewFile,BufRead *.bicep setf bicep
- " BIND configuration
- " sudoedit uses namedXXXX.conf
- au BufNewFile,BufRead named*.conf,rndc*.conf,rndc*.key setf named
- " BIND zone
- au BufNewFile,BufRead named.root setf bindzone
- au BufNewFile,BufRead *.db call dist#ft#BindzoneCheck('')
- " Blank
- au BufNewFile,BufRead *.bl setf blank
- " Bitbake
- au BufNewFile,BufRead *.bb,*.bbappend,*.bbclass,*/build/conf/*.conf,*/meta{-*,}/conf/*.conf setf bitbake
- " Blkid cache file
- au BufNewFile,BufRead */etc/blkid.tab,*/etc/blkid.tab.old setf xml
- " BSDL
- au BufNewFile,BufRead *.bsd,*.bsdl setf bsdl
- " Bazel (http://bazel.io)
- autocmd BufRead,BufNewFile *.bzl,*.bazel,WORKSPACE setf bzl
- if has("fname_case")
- " There is another check for BUILD further below.
- autocmd BufRead,BufNewFile *.BUILD,BUILD setf bzl
- endif
- " C or lpc
- au BufNewFile,BufRead *.c call dist#ft#FTlpc()
- au BufNewFile,BufRead *.lpc,*.ulpc setf lpc
- " Calendar
- au BufNewFile,BufRead calendar setf calendar
- " C#
- au BufNewFile,BufRead *.cs,*.csx setf cs
- " CSDL
- au BufNewFile,BufRead *.csdl setf csdl
- " Cabal
- au BufNewFile,BufRead *.cabal setf cabal
- " Cdrdao TOC
- au BufNewFile,BufRead *.toc setf cdrtoc
- " Cdrdao config
- au BufNewFile,BufRead */etc/cdrdao.conf,*/etc/defaults/cdrdao,*/etc/default/cdrdao,.cdrdao setf cdrdaoconf
- " Cfengine
- au BufNewFile,BufRead cfengine.conf setf cfengine
- " ChaiScript
- au BufRead,BufNewFile *.chai setf chaiscript
- " Chatito
- au BufNewFile,BufRead *.chatito setf chatito
- " Comshare Dimension Definition Language
- au BufNewFile,BufRead *.cdl setf cdl
- " Conary Recipe
- au BufNewFile,BufRead *.recipe setf conaryrecipe
- " Controllable Regex Mutilator
- au BufNewFile,BufRead *.crm setf crm
- " Cyn++
- au BufNewFile,BufRead *.cyn setf cynpp
- " Cynlib
- " .cc and .cpp files can be C++ or Cynlib.
- au BufNewFile,BufRead *.cc
- \ if exists("cynlib_syntax_for_cc")|setf cynlib|else|setf cpp|endif
- au BufNewFile,BufRead *.cpp
- \ if exists("cynlib_syntax_for_cpp")|setf cynlib|else|setf cpp|endif
- " C++
- au BufNewFile,BufRead *.cxx,*.c++,*.hh,*.hxx,*.hpp,*.ipp,*.moc,*.tcc,*.inl setf cpp
- if has("fname_case")
- au BufNewFile,BufRead *.C,*.H setf cpp
- endif
- " .h files can be C, Ch C++, ObjC or ObjC++.
- " Set c_syntax_for_h if you want C, ch_syntax_for_h if you want Ch. ObjC is
- " detected automatically.
- au BufNewFile,BufRead *.h call dist#ft#FTheader()
- " Ch (CHscript)
- au BufNewFile,BufRead *.chf setf ch
- " TLH files are C++ headers generated by Visual C++'s #import from typelibs
- au BufNewFile,BufRead *.tlh setf cpp
- " Cascading Style Sheets
- au BufNewFile,BufRead *.css setf css
- " Century Term Command Scripts (*.cmd too)
- au BufNewFile,BufRead *.con setf cterm
- " Changelog
- au BufNewFile,BufRead changelog.Debian,changelog.dch,NEWS.Debian,NEWS.dch,*/debian/changelog
- \ setf debchangelog
- au BufNewFile,BufRead [cC]hange[lL]og
- \ if getline(1) =~ '; urgency='
- \| setf debchangelog
- \| else
- \| setf changelog
- \| endif
- au BufNewFile,BufRead NEWS
- \ if getline(1) =~ '; urgency='
- \| setf debchangelog
- \| endif
- " CHILL
- au BufNewFile,BufRead *..ch setf chill
- " Changes for WEB and CWEB or CHILL
- au BufNewFile,BufRead *.ch call dist#ft#FTchange()
- " ChordPro
- au BufNewFile,BufRead *.chopro,*.crd,*.cho,*.crdpro,*.chordpro setf chordpro
- " Clang-format
- au BufNewFile,BufRead .clang-format setf yaml
- " Clang-tidy
- au BufNewFile,BufRead .clang-tidy setf yaml
- " Clean
- au BufNewFile,BufRead *.dcl,*.icl setf clean
- " Clever
- au BufNewFile,BufRead *.eni setf cl
- " Clever or dtd
- au BufNewFile,BufRead *.ent call dist#ft#FTent()
- " Clipper, FoxPro, ABB RAPID or eviews
- au BufNewFile,BufRead *.prg\c call dist#ft#FTprg()
- " Clojure
- au BufNewFile,BufRead *.clj,*.cljs,*.cljx,*.cljc setf clojure
- " Cmake
- au BufNewFile,BufRead CMakeLists.txt,*.cmake,*.cmake.in setf cmake
- " Cmusrc
- au BufNewFile,BufRead */.cmus/{autosave,rc,command-history,*.theme} setf cmusrc
- au BufNewFile,BufRead */cmus/{rc,*.theme} setf cmusrc
- " Cobol
- au BufNewFile,BufRead *.cbl,*.cob,*.lib setf cobol
- " cobol or zope form controller python script? (heuristic)
- au BufNewFile,BufRead *.cpy
- \ if getline(1) =~ '^##' |
- \ setf python |
- \ else |
- \ setf cobol |
- \ endif
- " Coco/R
- au BufNewFile,BufRead *.atg setf coco
- " Cold Fusion
- au BufNewFile,BufRead *.cfm,*.cfi,*.cfc setf cf
- " Configure scripts
- au BufNewFile,BufRead configure.in,configure.ac setf config
- " Cooklang
- au BufNewFile,BufRead *.cook setf cook
- " Clinical Quality Language (CQL)
- " .cql is also mentioned as the 'XDCC Catcher queue list' file extension.
- " If support for XDCC Catcher is needed in the future, the contents of the file
- " needs to be inspected.
- au BufNewFile,BufRead *.cql setf cqlang
- " CSV Files
- au BufNewFile,BufRead *.csv setf csv
- " CUDA Compute Unified Device Architecture
- au BufNewFile,BufRead *.cu,*.cuh setf cuda
- " Dockerfile; Podman uses the same syntax with name Containerfile
- " Also see Dockerfile.* below.
- au BufNewFile,BufRead Containerfile,Dockerfile,dockerfile,*.[dD]ockerfile setf dockerfile
- " WildPackets EtherPeek Decoder
- au BufNewFile,BufRead *.dcd setf dcd
- " Enlightenment configuration files
- au BufNewFile,BufRead *enlightenment/*.cfg setf c
- " Eterm
- au BufNewFile,BufRead *Eterm/*.cfg setf eterm
- " Elixir or Euphoria
- au BufNewFile,BufRead *.ex call dist#ft#ExCheck()
- " Elixir
- au BufRead,BufNewFile mix.lock,*.exs setf elixir
- au BufRead,BufNewFile *.eex,*.leex setf eelixir
- " Elvish
- au BufRead,BufNewFile *.elv setf elvish
- " Euphoria 3 or 4
- au BufNewFile,BufRead *.eu,*.ew,*.exu,*.exw call dist#ft#EuphoriaCheck()
- if has("fname_case")
- au BufNewFile,BufRead *.EU,*.EW,*.EX,*.EXU,*.EXW call dist#ft#EuphoriaCheck()
- endif
- " Lynx config files
- au BufNewFile,BufRead lynx.cfg setf lynx
- " LyRiCs
- au BufNewFile,BufRead *.lrc setf lyrics
- " Modula-3 configuration language (must be before *.cfg and *makefile)
- au BufNewFile,BufRead *.quake,cm3.cfg setf m3quake
- au BufNewFile,BufRead m3makefile,m3overrides setf m3build
- " Quake
- au BufNewFile,BufRead *baseq[2-3]/*.cfg,*id1/*.cfg setf quake
- au BufNewFile,BufRead *quake[1-3]/*.cfg setf quake
- " Quake C
- au BufNewFile,BufRead *.qc setf c
- " Configure files
- au BufNewFile,BufRead *.cfg\c call dist#ft#FTcfg()
- " Cucumber
- au BufNewFile,BufRead *.feature setf cucumber
- " Communicating Sequential Processes
- au BufNewFile,BufRead *.csp,*.fdr setf csp
- " CUPL logic description and simulation
- au BufNewFile,BufRead *.pld setf cupl
- au BufNewFile,BufRead *.si setf cuplsim
- " Dart
- au BufRead,BufNewfile *.dart,*.drt setf dart
- " Debian Control
- au BufNewFile,BufRead */debian/control setf debcontrol
- au BufNewFile,BufRead control
- \ if getline(1) =~ '^Source:'
- \| setf debcontrol
- \| endif
- " Debian Copyright
- au BufNewFile,BufRead */debian/copyright setf debcopyright
- au BufNewFile,BufRead copyright
- \ if getline(1) =~ '^Format:'
- \| setf debcopyright
- \| endif
- " Debian Sources.list
- au BufNewFile,BufRead */etc/apt/sources.list setf debsources
- au BufNewFile,BufRead */etc/apt/sources.list.d/*.list setf debsources
- " Deny hosts
- au BufNewFile,BufRead denyhosts.conf setf denyhosts
- " dnsmasq(8) configuration files
- au BufNewFile,BufRead */etc/dnsmasq.conf setf dnsmasq
- " ROCKLinux package description
- au BufNewFile,BufRead *.desc setf desc
- " the D language or dtrace
- au BufNewFile,BufRead */dtrace/*.d setf dtrace
- au BufNewFile,BufRead *.d call dist#ft#DtraceCheck()
- " Desktop files
- au BufNewFile,BufRead *.desktop,*.directory setf desktop
- " Dict config
- au BufNewFile,BufRead dict.conf,.dictrc setf dictconf
- " Dictd config
- au BufNewFile,BufRead dictd*.conf setf dictdconf
- " DEP3 formatted patch files
- au BufNewFile,BufRead */debian/patches/* call dist#ft#Dep3patch()
- " Diff files
- au BufNewFile,BufRead *.diff,*.rej setf diff
- au BufNewFile,BufRead *.patch
- \ if getline(1) =~# '^From [0-9a-f]\{40,\} Mon Sep 17 00:00:00 2001$' |
- \ setf gitsendemail |
- \ else |
- \ setf diff |
- \ endif
- " Dircolors
- au BufNewFile,BufRead .dir_colors,.dircolors,*/etc/DIR_COLORS setf dircolors
- " Diva (with Skill) or InstallShield
- au BufNewFile,BufRead *.rul
- \ if getline(1).getline(2).getline(3).getline(4).getline(5).getline(6) =~? 'InstallShield' |
- \ setf ishd |
- \ else |
- \ setf diva |
- \ endif
- " DCL (Digital Command Language - vms) or DNS zone file
- au BufNewFile,BufRead *.com call dist#ft#BindzoneCheck('dcl')
- " DOT
- au BufNewFile,BufRead *.dot,*.gv setf dot
- " Dune
- au BufNewFile,BufRead jbuild,dune,dune-project,dune-workspace setf dune
- " Dylan - lid files
- au BufNewFile,BufRead *.lid setf dylanlid
- " Dylan - intr files (melange)
- au BufNewFile,BufRead *.intr setf dylanintr
- " Dylan
- au BufNewFile,BufRead *.dylan setf dylan
- " Microsoft Module Definition
- au BufNewFile,BufRead *.def setf def
- " Dracula
- au BufNewFile,BufRead *.drac,*.drc,*lvs,*lpe setf dracula
- " Datascript
- au BufNewFile,BufRead *.ds setf datascript
- " dsl: DSSSL or Structurizr
- au BufNewFile,BufRead *.dsl
- \ if getline(1) =~ '^\s*<\!' |
- \ setf dsl |
- \ else |
- \ setf structurizr |
- \ endif
- " DTD (Document Type Definition for XML)
- au BufNewFile,BufRead *.dtd setf dtd
- " DTS/DSTI (device tree files)
- au BufNewFile,BufRead *.dts,*.dtsi setf dts
- " EDIF (*.edf,*.edif,*.edn,*.edo) or edn
- au BufNewFile,BufRead *.ed\(f\|if\|o\) setf edif
- au BufNewFile,BufRead *.edn
- \ if getline(1) =~ '^\s*(\s*edif\>' |
- \ setf edif |
- \ else |
- \ setf clojure |
- \ endif
- " EditorConfig (close enough to dosini)
- au BufNewFile,BufRead .editorconfig setf dosini
- " Embedix Component Description
- au BufNewFile,BufRead *.ecd setf ecd
- " Eiffel or Specman or Euphoria
- au BufNewFile,BufRead *.e,*.E call dist#ft#FTe()
- " Elinks configuration
- au BufNewFile,BufRead elinks.conf setf elinks
- " ERicsson LANGuage; Yaws is erlang too
- au BufNewFile,BufRead *.erl,*.hrl,*.yaws setf erlang
- " Elm
- au BufNewFile,BufRead *.elm setf elm
- " Elm Filter Rules file
- au BufNewFile,BufRead filter-rules setf elmfilt
- " ESMTP rc file
- au BufNewFile,BufRead *esmtprc setf esmtprc
- " ESQL-C
- au BufNewFile,BufRead *.ec,*.EC setf esqlc
- " Esterel
- au BufNewFile,BufRead *.strl setf esterel
- " Essbase script
- au BufNewFile,BufRead *.csc setf csc
- " Exim
- au BufNewFile,BufRead exim.conf setf exim
- " Expect
- au BufNewFile,BufRead *.exp setf expect
- " Exports
- au BufNewFile,BufRead exports setf exports
- " Falcon
- au BufNewFile,BufRead *.fal setf falcon
- " Fantom
- au BufNewFile,BufRead *.fan,*.fwt setf fan
- " Factor
- au BufNewFile,BufRead *.factor setf factor
- " Fennel
- autocmd BufRead,BufNewFile *.fnl setf fennel
- " Fetchmail RC file
- au BufNewFile,BufRead .fetchmailrc setf fetchmail
- " Fish shell
- au BufNewFile,BufRead *.fish setf fish
- " FlexWiki - disabled, because it has side effects when a .wiki file
- " is not actually FlexWiki
- "au BufNewFile,BufRead *.wiki setf flexwiki
- " Focus Executable
- au BufNewFile,BufRead *.fex,*.focexec setf focexec
- " Focus Master file (but not for auto.master)
- au BufNewFile,BufRead auto.master setf conf
- au BufNewFile,BufRead *.mas,*.master setf master
- " Forth
- au BufNewFile,BufRead *.ft,*.fth setf forth
- " Reva Forth
- au BufNewFile,BufRead *.frt setf reva
- " Fortran
- if has("fname_case")
- au BufNewFile,BufRead *.F,*.FOR,*.FPP,*.FTN,*.F77,*.F90,*.F95,*.F03,*.F08 setf fortran
- endif
- au BufNewFile,BufRead *.f,*.for,*.fortran,*.fpp,*.ftn,*.f77,*.f90,*.f95,*.f03,*.f08 setf fortran
- " Framescript
- au BufNewFile,BufRead *.fsl setf framescript
- " FStab
- au BufNewFile,BufRead fstab,mtab setf fstab
- " Fusion
- au BufRead,BufNewFile *.fusion setf fusion
- " F# or Forth
- au BufNewFile,BufRead *.fs call dist#ft#FTfs()
- " FHIR Shorthand (FSH)
- au BufNewFile,BufRead *.fsh setf fsh
- " F#
- au BufNewFile,BufRead *.fsi,*.fsx setf fsharp
- " GDB command files
- au BufNewFile,BufRead .gdbinit,gdbinit,.gdbearlyinit,gdbearlyinit,*.gdb setf gdb
- " GDMO
- au BufNewFile,BufRead *.mo,*.gdmo setf gdmo
- " GDscript
- au BufNewFile,BufRead *.gd setf gdscript
- " Godot resource
- au BufRead,BufNewFile *.tscn,*.tres setf gdresource
- " Godot shader
- au BufRead,BufNewFile *.gdshader,*.shader setf gdshader
- " Gedcom
- au BufNewFile,BufRead *.ged,lltxxxxx.txt setf gedcom
- " Gemtext
- au BufNewFile,BufRead *.gmi,*.gemini setf gemtext
- " Gift (Moodle)
- autocmd BufRead,BufNewFile *.gift setf gift
- " Git
- au BufNewFile,BufRead COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG setf gitcommit
- au BufNewFile,BufRead NOTES_EDITMSG,EDIT_DESCRIPTION setf gitcommit
- au BufNewFile,BufRead *.git/config,.gitconfig,*/etc/gitconfig setf gitconfig
- au BufNewFile,BufRead */.config/git/config setf gitconfig
- au BufNewFile,BufRead *.git/config.worktree setf gitconfig
- au BufNewFile,BufRead *.git/worktrees/*/config.worktree setf gitconfig
- au BufNewFile,BufRead .gitmodules,*.git/modules/*/config setf gitconfig
- if !empty($XDG_CONFIG_HOME)
- au BufNewFile,BufRead $XDG_CONFIG_HOME/git/config setf gitconfig
- au BufNewFile,BufRead $XDG_CONFIG_HOME/git/attributes setf gitattributes
- au BufNewFile,BufRead $XDG_CONFIG_HOME/git/ignore setf gitignore
- endif
- au BufNewFile,BufRead .gitattributes,*.git/info/attributes setf gitattributes
- au BufNewFile,BufRead */.config/git/attributes setf gitattributes
- au BufNewFile,BufRead */etc/gitattributes setf gitattributes
- au BufNewFile,BufRead .gitignore,*.git/info/exclude setf gitignore
- au BufNewFile,BufRead */.config/git/ignore setf gitignore
- au BufNewFile,BufRead git-rebase-todo setf gitrebase
- au BufRead,BufNewFile .gitsendemail.msg.?????? setf gitsendemail
- au BufNewFile,BufRead *.git/*
- \ if getline(1) =~# '^\x\{40,\}\>\|^ref: ' |
- \ setf git |
- \ endif
- " Gkrellmrc
- au BufNewFile,BufRead gkrellmrc,gkrellmrc_? setf gkrellmrc
- " Gleam
- au BufNewFile,BufRead *.gleam setf gleam
- " GLSL
- au BufNewFile,BufRead *.glsl setf glsl
- " GP scripts (2.0 and onward)
- au BufNewFile,BufRead *.gp,.gprc setf gp
- " GPG
- au BufNewFile,BufRead */.gnupg/options setf gpg
- au BufNewFile,BufRead */.gnupg/gpg.conf setf gpg
- au BufNewFile,BufRead */usr/*/gnupg/options.skel setf gpg
- if !empty($GNUPGHOME)
- au BufNewFile,BufRead $GNUPGHOME/options setf gpg
- au BufNewFile,BufRead $GNUPGHOME/gpg.conf setf gpg
- endif
- " gnash(1) configuration files
- au BufNewFile,BufRead gnashrc,.gnashrc,gnashpluginrc,.gnashpluginrc setf gnash
- " Gitolite
- au BufNewFile,BufRead gitolite.conf setf gitolite
- au BufNewFile,BufRead {,.}gitolite.rc,example.gitolite.rc setf perl
- " Glimmer-flavored TypeScript and JavaScript
- au BufNewFile,BufRead *.gts setf typescript.glimmer
- au BufNewFile,BufRead *.gjs setf javascript.glimmer
- " Gnuplot scripts
- au BufNewFile,BufRead *.gpi,.gnuplot setf gnuplot
- " Go (Google)
- au BufNewFile,BufRead *.go setf go
- au BufNewFile,BufRead Gopkg.lock setf toml
- au BufRead,BufNewFile go.work setf gowork
- " GrADS scripts
- au BufNewFile,BufRead *.gs setf grads
- " GraphQL
- au BufNewFile,BufRead *.graphql,*.graphqls,*.gql setf graphql
- " Gretl
- au BufNewFile,BufRead *.gretl setf gretl
- " Groovy
- au BufNewFile,BufRead *.gradle,*.groovy setf groovy
- " GNU Server Pages
- au BufNewFile,BufRead *.gsp setf gsp
- " Group file
- au BufNewFile,BufRead */etc/group,*/etc/group-,*/etc/group.edit,*/etc/gshadow,*/etc/gshadow-,*/etc/gshadow.edit,*/var/backups/group.bak,*/var/backups/gshadow.bak setf group
- " GTK RC
- au BufNewFile,BufRead .gtkrc,gtkrc setf gtkrc
- " GYP
- au BufNewFile,BufRead *.gyp,*.gypi setf gyp
- " Hack
- au BufRead,BufNewFile *.hack,*.hackpartial setf hack
- " Haml
- au BufNewFile,BufRead *.haml setf haml
- " Hamster Classic | Playground files
- au BufNewFile,BufRead *.hsm setf hamster
- " Handlebars
- au BufNewFile,BufRead *.hbs setf handlebars
- " Hare
- au BufNewFile,BufRead *.ha setf hare
- " Haskell
- au BufNewFile,BufRead *.hs,*.hsc,*.hs-boot,*.hsig setf haskell
- au BufNewFile,BufRead *.lhs setf lhaskell
- au BufNewFile,BufRead *.chs setf chaskell
- au BufNewFile,BufRead cabal.project setf cabalproject
- au BufNewFile,BufRead $HOME/.cabal/config setf cabalconfig
- au BufNewFile,BufRead cabal.config setf cabalconfig
- " Haste
- au BufNewFile,BufRead *.ht setf haste
- au BufNewFile,BufRead *.htpp setf hastepreproc
- " HCL
- au BufRead,BufNewFile *.hcl setf hcl
- " Hercules
- au BufNewFile,BufRead *.vc,*.ev,*.sum,*.errsum setf hercules
- " HEEx
- au BufRead,BufNewFile *.heex setf heex
- " HEX (Intel)
- au BufNewFile,BufRead *.hex,*.h32 setf hex
- " Hjson
- au BufNewFile,BufRead *.hjson setf hjson
- " HLS Playlist (or another form of playlist)
- au BufNewFile,BufRead *.m3u,*.m3u8 setf hlsplaylist
- " Hollywood
- au BufRead,BufNewFile *.hws setf hollywood
- " Hoon
- au BufRead,BufNewFile *.hoon setf hoon
- " Tilde (must be before HTML)
- au BufNewFile,BufRead *.t.html setf tilde
- " HTML (.shtml and .stm for server side)
- au BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm call dist#ft#FThtml()
- au BufNewFile,BufRead *.cshtml setf html
- " HTML with Ruby - eRuby
- au BufNewFile,BufRead *.erb,*.rhtml setf eruby
- " HTML with M4
- au BufNewFile,BufRead *.html.m4 setf htmlm4
- " Some template. Used to be HTML Cheetah.
- au BufNewFile,BufRead *.tmpl setf template
- " Host config
- au BufNewFile,BufRead */etc/host.conf setf hostconf
- " Hosts access
- au BufNewFile,BufRead */etc/hosts.allow,*/etc/hosts.deny setf hostsaccess
- " Hyper Builder
- au BufNewFile,BufRead *.hb setf hb
- " Httest
- au BufNewFile,BufRead *.htt,*.htb setf httest
- " i3
- au BufNewFile,BufRead */i3/config setf i3config
- au BufNewFile,BufRead */.i3/config setf i3config
- " sway
- au BufNewFile,BufRead */sway/config setf swayconfig
- au BufNewFile,BufRead */.sway/config setf swayconfig
- " Icon
- au BufNewFile,BufRead *.icn setf icon
- " IDL (Interface Description Language)
- au BufNewFile,BufRead *.idl call dist#ft#FTidl()
- " Microsoft IDL (Interface Description Language) Also *.idl
- " MOF = WMI (Windows Management Instrumentation) Managed Object Format
- au BufNewFile,BufRead *.odl,*.mof setf msidl
- " Icewm menu
- au BufNewFile,BufRead */.icewm/menu setf icemenu
- " Indent profile (must come before IDL *.pro!)
- au BufNewFile,BufRead .indent.pro setf indent
- au BufNewFile,BufRead indent.pro call dist#ft#ProtoCheck('indent')
- " IDL (Interactive Data Language)
- au BufNewFile,BufRead *.pro call dist#ft#ProtoCheck('idlang')
- " Indent RC
- au BufNewFile,BufRead indentrc setf indent
- " Inform
- au BufNewFile,BufRead *.inf,*.INF setf inform
- " Initng
- au BufNewFile,BufRead */etc/initng/*/*.i,*.ii setf initng
- " Innovation Data Processing
- au BufRead,BufNewFile upstream.dat\c,upstream.*.dat\c,*.upstream.dat\c setf upstreamdat
- au BufRead,BufNewFile fdrupstream.log,upstream.log\c,upstream.*.log\c,*.upstream.log\c,UPSTREAM-*.log\c setf upstreamlog
- au BufRead,BufNewFile upstreaminstall.log\c,upstreaminstall.*.log\c,*.upstreaminstall.log\c setf upstreaminstalllog
- au BufRead,BufNewFile usserver.log\c,usserver.*.log\c,*.usserver.log\c setf usserverlog
- au BufRead,BufNewFile usw2kagt.log\c,usw2kagt.*.log\c,*.usw2kagt.log\c setf usw2kagtlog
- " Ipfilter
- au BufNewFile,BufRead ipf.conf,ipf6.conf,ipf.rules setf ipfilter
- " Informix 4GL (source - canonical, include file, I4GL+M4 preproc.)
- au BufNewFile,BufRead *.4gl,*.4gh,*.m4gl setf fgl
- " .INI file for MSDOS
- au BufNewFile,BufRead *.ini setf dosini
- " SysV Inittab
- au BufNewFile,BufRead inittab setf inittab
- " Inno Setup
- au BufNewFile,BufRead *.iss setf iss
- " J
- au BufNewFile,BufRead *.ijs setf j
- " JAL
- au BufNewFile,BufRead *.jal,*.JAL setf jal
- " Jam
- au BufNewFile,BufRead *.jpl,*.jpr setf jam
- " Java
- au BufNewFile,BufRead *.java,*.jav setf java
- " JavaCC
- au BufNewFile,BufRead *.jj,*.jjt setf javacc
- " JavaScript, ECMAScript, ES module script, CommonJS script
- au BufNewFile,BufRead *.js,*.jsm,*.javascript,*.es,*.mjs,*.cjs setf javascript
- " JavaScript with React
- au BufNewFile,BufRead *.jsx setf javascriptreact
- " Java Server Pages
- au BufNewFile,BufRead *.jsp setf jsp
- " Java Properties resource file (note: doesn't catch font.properties.pl)
- au BufNewFile,BufRead *.properties,*.properties_??,*.properties_??_?? setf jproperties
- " Eclipse preference files use Java Properties syntax
- au BufNewFile,BufRead org.eclipse.*.prefs setf jproperties
- " Jess
- au BufNewFile,BufRead *.clp setf jess
- " Jgraph
- au BufNewFile,BufRead *.jgr setf jgraph
- " Jovial
- au BufNewFile,BufRead *.jov,*.j73,*.jovial setf jovial
- " Jq
- au BufNewFile,BufRead *.jq setf jq
- " JSON5
- au BufNewFile,BufRead *.json5 setf json5
- " JSON Patch (RFC 6902)
- au BufNewFile,BufRead *.json-patch setf json
- " Jupyter Notebook is also json
- au BufNewFile,BufRead *.ipynb setf json
- " Other files that look like json
- au BufNewFile,BufRead .prettierrc,.firebaserc setf json
- " JSONC (JSON with comments)
- au BufNewFile,BufRead *.jsonc,.babelrc,.eslintrc,.jsfmtrc setf jsonc
- au BufNewFile,BufRead .jshintc,.hintrc,.swrc,[jt]sconfig*.json setf jsonc
- " JSON
- au BufNewFile,BufRead *.json,*.jsonp,*.webmanifest setf json
- " Jsonnet
- au BufNewFile,BufRead *.jsonnet,*.libsonnet setf jsonnet
- " Julia
- au BufNewFile,BufRead *.jl setf julia
- " Kixtart
- au BufNewFile,BufRead *.kix setf kix
- " Kuka Robot Language
- au BufNewFile,BufRead *.src\c call dist#ft#FTsrc()
- au BufNewFile,BufRead *.dat\c call dist#ft#FTdat()
- au BufNewFile,BufRead *.sub\c setf krl
- " Kimwitu[++]
- au BufNewFile,BufRead *.k setf kwt
- " Kivy
- au BufNewFile,BufRead *.kv setf kivy
- " Kotlin
- au BufNewFile,BufRead *.kt,*.ktm,*.kts setf kotlin
- " KDE script
- au BufNewFile,BufRead *.ks setf kscript
- " Kconfig
- au BufNewFile,BufRead Kconfig,Kconfig.debug setf kconfig
- " Lace (ISE)
- au BufNewFile,BufRead *.ace,*.ACE setf lace
- " Larch Shared Language
- au BufNewFile,BufRead .lsl call dist#ft#FTlsl()
- " Latexmkrc
- au BufNewFile,BufRead .latexmkrc,latexmkrc setf perl
- " Latte
- au BufNewFile,BufRead *.latte,*.lte setf latte
- " Limits
- au BufNewFile,BufRead */etc/limits,*/etc/*limits.conf,*/etc/*limits.d/*.conf setf limits
- " LambdaProlog or SML (see dist#ft#FTmod for *.mod)
- au BufNewFile,BufRead *.sig call dist#ft#FTsig()
- " LDAP LDIF
- au BufNewFile,BufRead *.ldif setf ldif
- " Ld loader
- au BufNewFile,BufRead *.ld setf ld
- " Ledger
- au BufRead,BufNewFile *.ldg,*.ledger,*.journal setf ledger
- " Less
- au BufNewFile,BufRead *.less setf less
- " Lex
- au BufNewFile,BufRead *.lex,*.l,*.lxx,*.l++ setf lex
- " Libao
- au BufNewFile,BufRead */etc/libao.conf,*/.libao setf libao
- " Libsensors
- au BufNewFile,BufRead */etc/sensors.conf,*/etc/sensors3.conf setf sensors
- " LFTP
- au BufNewFile,BufRead lftp.conf,.lftprc,*lftp/rc setf lftp
- " Lifelines (or Lex for C++!)
- au BufNewFile,BufRead *.ll setf lifelines
- " Lilo: Linux loader
- au BufNewFile,BufRead lilo.conf setf lilo
- " Lilypond
- au BufNewFile,BufRead *.ly,*.ily setf lilypond
- " Lisp (*.el = ELisp, *.cl = Common Lisp)
- " *.jl was removed, it's also used for Julia, better skip than guess wrong.
- if has("fname_case")
- au BufNewFile,BufRead *.lsp,*.lisp,*.asd,*.el,*.cl,*.L,.emacs,.sawfishrc setf lisp
- else
- au BufNewFile,BufRead *.lsp,*.lisp,*.asd,*.el,*.cl,.emacs,.sawfishrc setf lisp
- endif
- " SBCL implementation of Common Lisp
- au BufNewFile,BufRead sbclrc,.sbclrc setf lisp
- " Liquid
- au BufNewFile,BufRead *.liquid setf liquid
- " Lite
- au BufNewFile,BufRead *.lite,*.lt setf lite
- " LiteStep RC files
- au BufNewFile,BufRead */LiteStep/*/*.rc setf litestep
- " Login access
- au BufNewFile,BufRead */etc/login.access setf loginaccess
- " Login defs
- au BufNewFile,BufRead */etc/login.defs setf logindefs
- " Logtalk
- au BufNewFile,BufRead *.lgt setf logtalk
- " LOTOS
- au BufNewFile,BufRead *.lot,*.lotos setf lotos
- " Lout (also: *.lt)
- au BufNewFile,BufRead *.lou,*.lout setf lout
- " Lua
- au BufNewFile,BufRead *.lua setf lua
- " Luacheck
- au BufNewFile,BufRead .luacheckrc setf lua
- " Luarocks
- au BufNewFile,BufRead *.rockspec setf lua
- " Linden Scripting Language (Second Life)
- au BufNewFile,BufRead *.lsl call dist#ft#FTlsl()
- " Lynx style file (or LotusScript!)
- au BufNewFile,BufRead *.lss setf lss
- " M4
- au BufNewFile,BufRead *.m4
- \ if expand("<afile>") !~? 'html.m4$\|fvwm2rc' | setf m4 | endif
- " MaGic Point
- au BufNewFile,BufRead *.mgp setf mgp
- " Mail (for Elm, trn, mutt, muttng, rn, slrn, neomutt)
- au BufNewFile,BufRead snd.\d\+,.letter,.letter.\d\+,.followup,.article,.article.\d\+,pico.\d\+,mutt{ng,}-*-\w\+,mutt[[:alnum:]_-]\\\{6\},neomutt-*-\w\+,neomutt[[:alnum:]_-]\\\{6\},ae\d\+.txt,/tmp/SLRN[0-9A-Z.]\+,*.eml setf mail
- " Mail aliases
- au BufNewFile,BufRead */etc/mail/aliases,*/etc/aliases setf mailaliases
- " Mailcap configuration file
- au BufNewFile,BufRead .mailcap,mailcap setf mailcap
- " Makefile
- au BufNewFile,BufRead *[mM]akefile,*.mk,*.mak,*.dsp setf make
- " MakeIndex
- au BufNewFile,BufRead *.ist,*.mst setf ist
- " Mallard
- au BufNewFile,BufRead *.page setf mallard
- " Manpage
- au BufNewFile,BufRead *.man setf man
- " Man config
- au BufNewFile,BufRead */etc/man.conf,man.config setf manconf
- " Maple V
- au BufNewFile,BufRead *.mv,*.mpl,*.mws setf maple
- " Map (UMN mapserver config file)
- au BufNewFile,BufRead *.map setf map
- " Markdown
- au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md setf markdown
- " Mason
- au BufNewFile,BufRead *.mason,*.mhtml,*.comp setf mason
- " Mathematica, Matlab, Murphi, Objective C or Octave
- au BufNewFile,BufRead *.m call dist#ft#FTm()
- " Mathematica notebook
- au BufNewFile,BufRead *.nb setf mma
- " Maya Extension Language
- au BufNewFile,BufRead *.mel setf mel
- " Mercurial (hg) commit file
- au BufNewFile,BufRead hg-editor-*.txt setf hgcommit
- " Mercurial config (looks like generic config file)
- au BufNewFile,BufRead *.hgrc,*hgrc setf cfg
- " Mermaid
- au BufNewFile,BufRead *.mmd,*.mmdc,*.mermaid setf mermaid
- " Meson Build system config
- au BufNewFile,BufRead meson.build,meson_options.txt setf meson
- au BufNewFile,BufRead *.wrap setf dosini
- " Messages (logs mostly)
- au BufNewFile,BufRead */log/{auth,cron,daemon,debug,kern,lpr,mail,messages,news/news,syslog,user}{,.log,.err,.info,.warn,.crit,.notice}{,.[0-9]*,-[0-9]*} setf messages
- " Metafont
- au BufNewFile,BufRead *.mf setf mf
- " MetaPost
- au BufNewFile,BufRead *.mp setf mp
- au BufNewFile,BufRead *.mpxl,*.mpiv,*.mpvi let b:mp_metafun = 1 | setf mp
- " MGL
- au BufNewFile,BufRead *.mgl setf mgl
- " MIX - Knuth assembly
- au BufNewFile,BufRead *.mix,*.mixal setf mix
- " MMIX or VMS makefile
- au BufNewFile,BufRead *.mms call dist#ft#FTmms()
- " Symbian meta-makefile definition (MMP)
- au BufNewFile,BufRead *.mmp setf mmp
- " ABB Rapid, Modula-2, Modsim III or LambdaProlog
- au BufNewFile,BufRead *.mod\c call dist#ft#FTmod()
- " Modula-2 (.md removed in favor of Markdown, see dist#ft#FTmod for *.MOD)
- au BufNewFile,BufRead *.m2,*.DEF,*.mi setf modula2
- " Modula-3 (.m3, .i3, .mg, .ig)
- au BufNewFile,BufRead *.[mi][3g] setf modula3
- " Larch/Modula-3
- au BufNewFile,BufRead *.lm3 setf modula3
- " Monk
- au BufNewFile,BufRead *.isc,*.monk,*.ssc,*.tsc setf monk
- " MOO
- au BufNewFile,BufRead *.moo setf moo
- " Moonscript
- au BufNewFile,BufRead *.moon setf moonscript
- " Modconf
- au BufNewFile,BufRead */etc/modules.conf,*/etc/modules,*/etc/conf.modules setf modconf
- " MPD is based on XML
- au BufNewFile,BufRead *.mpd setf xml
- " Mplayer config
- au BufNewFile,BufRead mplayer.conf,*/.mplayer/config setf mplayerconf
- " Motorola S record
- au BufNewFile,BufRead *.s19,*.s28,*.s37,*.mot,*.srec setf srec
- " Mrxvtrc
- au BufNewFile,BufRead mrxvtrc,.mrxvtrc setf mrxvtrc
- " Msql
- au BufNewFile,BufRead *.msql setf msql
- " Mysql
- au BufNewFile,BufRead *.mysql setf mysql
- " Tcl Shell RC file
- au BufNewFile,BufRead tclsh.rc setf tcl
- " M$ Resource files
- " /etc/Muttrc.d/file.rc is muttrc
- au BufNewFile,BufRead *.rc,*.rch
- \ if expand("<afile>") !~ "/etc/Muttrc.d/" |
- \ setf rc |
- \ endif
- " MuPAD source
- au BufRead,BufNewFile *.mu setf mupad
- " Mush
- au BufNewFile,BufRead *.mush setf mush
- " Mutt setup file (also for Muttng)
- au BufNewFile,BufRead Mutt{ng,}rc setf muttrc
- " N1QL
- au BufRead,BufNewfile *.n1ql,*.nql setf n1ql
- " Nano
- au BufNewFile,BufRead */etc/nanorc,*.nanorc setf nanorc
- " Nastran input/DMAP
- "au BufNewFile,BufRead *.dat setf nastran
- " Natural
- au BufNewFile,BufRead *.NS[ACGLMNPS] setf natural
- " Noemutt setup file
- au BufNewFile,BufRead Neomuttrc setf neomuttrc
- " Netrc
- au BufNewFile,BufRead .netrc setf netrc
- " Nginx
- au BufNewFile,BufRead *.nginx,nginx*.conf,*nginx.conf,*/etc/nginx/*,*/usr/local/nginx/conf/*,*/nginx/*.conf setf nginx
- " Nim file
- au BufNewFile,BufRead *.nim,*.nims,*.nimble setf nim
- " Ninja file
- au BufNewFile,BufRead *.ninja setf ninja
- " Nix
- au BufRead,BufNewFile *.nix setf nix
- " NPM RC file
- au BufNewFile,BufRead npmrc,.npmrc setf dosini
- " Novell netware batch files
- au BufNewFile,BufRead *.ncf setf ncf
- " Nroff/Troff (*.ms and *.t are checked below)
- au BufNewFile,BufRead *.me
- \ if expand("<afile>") != "read.me" && expand("<afile>") != "click.me" |
- \ setf nroff |
- \ endif
- au BufNewFile,BufRead *.tr,*.nr,*.roff,*.tmac,*.mom setf nroff
- au BufNewFile,BufRead *.[1-9] call dist#ft#FTnroff()
- " Nroff or Objective C++
- au BufNewFile,BufRead *.mm call dist#ft#FTmm()
- " Not Quite C
- au BufNewFile,BufRead *.nqc setf nqc
- " NSE - Nmap Script Engine - uses Lua syntax
- au BufNewFile,BufRead *.nse setf lua
- " NSIS
- au BufNewFile,BufRead *.nsi,*.nsh setf nsis
- " Oblivion Language and Oblivion Script Extender
- au BufNewFile,BufRead *.obl,*.obse,*.oblivion,*.obscript setf obse
- " OCaml
- au BufNewFile,BufRead *.ml,*.mli,*.mll,*.mly,.ocamlinit,*.mlt,*.mlp,*.mlip,*.mli.cppo,*.ml.cppo setf ocaml
- " Occam
- au BufNewFile,BufRead *.occ setf occam
- " Octave
- au BufNewFile,BufRead octave.conf,.octaverc,octaverc setf octave
- " Omnimark
- au BufNewFile,BufRead *.xom,*.xin setf omnimark
- " OPAM
- au BufNewFile,BufRead opam,*.opam,*.opam.template setf opam
- " OpenFOAM
- au BufNewFile,BufRead [a-zA-Z0-9]*Dict\(.*\)\=,[a-zA-Z]*Properties\(.*\)\=,*Transport\(.*\),fvSchemes,fvSolution,fvConstrains,fvModels,*/constant/g,*/0\(\.orig\)\=/* call dist#ft#FTfoam()
- " OpenROAD
- au BufNewFile,BufRead *.or setf openroad
- " OPL
- au BufNewFile,BufRead *.[Oo][Pp][Ll] setf opl
- " OpenSCAD
- au BufNewFile,BufRead *.scad setf openscad
- " Oracle config file
- au BufNewFile,BufRead *.ora setf ora
- " Org
- au BufNewFile,BufRead *.org,*.org_archive setf org
- " Packet filter conf
- au BufNewFile,BufRead pf.conf setf pf
- " ini style config files, using # comments
- au BufNewFile,BufRead */etc/pacman.conf,mpv.conf setf confini
- au BufNewFile,BufRead */.aws/config,*/.aws/credentials setf confini
- " Pacman hooks
- au BufNewFile,BufRead *.hook
- \ if getline(1) == '[Trigger]' |
- \ setf conf |
- \ endif
- " Pam conf
- au BufNewFile,BufRead */etc/pam.conf setf pamconf
- " Pam environment
- au BufNewFile,BufRead pam_env.conf,.pam_environment setf pamenv
- " PApp
- au BufNewFile,BufRead *.papp,*.pxml,*.pxsl setf papp
- " Password file
- au BufNewFile,BufRead */etc/passwd,*/etc/passwd-,*/etc/passwd.edit,*/etc/shadow,*/etc/shadow-,*/etc/shadow.edit,*/var/backups/passwd.bak,*/var/backups/shadow.bak setf passwd
- " Pascal (also *.p, *.pp, *.inc)
- au BufNewFile,BufRead *.pas setf pascal
- " Pascal or Puppet manifest
- au BufNewFile,BufRead *.pp call dist#ft#FTpp()
- " Delphi or Lazarus program file
- au BufNewFile,BufRead *.dpr,*.lpr setf pascal
- " Free Pascal makefile definition file
- au BufNewFile,BufRead *.fpc setf fpcmake
- " Path of Exile item filter
- au BufNewFile,BufRead *.filter setf poefilter
- " PDF
- au BufNewFile,BufRead *.pdf setf pdf
- " PCMK - HAE - crm configure edit
- au BufNewFile,BufRead *.pcmk setf pcmk
- " Perl
- if has("fname_case")
- au BufNewFile,BufRead *.pl,*.PL call dist#ft#FTpl()
- else
- au BufNewFile,BufRead *.pl call dist#ft#FTpl()
- endif
- au BufNewFile,BufRead *.plx,*.al,*.psgi setf perl
- " Perl, XPM or XPM2
- au BufNewFile,BufRead *.pm
- \ if getline(1) =~ "XPM2" |
- \ setf xpm2 |
- \ elseif getline(1) =~ "XPM" |
- \ setf xpm |
- \ else |
- \ setf perl |
- \ endif
- " Perl POD
- au BufNewFile,BufRead *.pod setf pod
- " Php, php3, php4, etc.
- " Also Phtml (was used for PHP 2 in the past).
- " Also .ctp for Cake template file.
- " Also .phpt for php tests.
- " Also .theme for Drupal theme files.
- au BufNewFile,BufRead *.php,*.php\d,*.phtml,*.ctp,*.phpt,*.theme setf php
- " PHP config
- au BufNewFile,BufRead php.ini-* setf dosini
- " Pike and Cmod
- au BufNewFile,BufRead *.pike,*.pmod setf pike
- au BufNewFile,BufRead *.cmod setf cmod
- " Pinfo config
- au BufNewFile,BufRead */etc/pinforc,*/.pinforc setf pinfo
- " Palm Resource compiler
- au BufNewFile,BufRead *.rcp setf pilrc
- " Pine config
- au BufNewFile,BufRead .pinerc,pinerc,.pinercex,pinercex setf pine
- " Pipenv Pipfiles
- au BufNewFile,BufRead Pipfile setf toml
- au BufNewFile,BufRead Pipfile.lock setf json
- " PL/1, PL/I
- au BufNewFile,BufRead *.pli,*.pl1 setf pli
- " PL/M (also: *.inp)
- au BufNewFile,BufRead *.plm,*.p36,*.pac setf plm
- " PL/SQL
- au BufNewFile,BufRead *.pls,*.plsql setf plsql
- " PLP
- au BufNewFile,BufRead *.plp setf plp
- " PO and PO template (GNU gettext)
- au BufNewFile,BufRead *.po,*.pot setf po
- " Postfix main config
- au BufNewFile,BufRead main.cf,main.cf.proto setf pfmain
- " PostScript (+ font files, encapsulated PostScript, Adobe Illustrator)
- au BufNewFile,BufRead *.ps,*.pfa,*.afm,*.eps,*.epsf,*.epsi,*.ai setf postscr
- " PostScript Printer Description
- au BufNewFile,BufRead *.ppd setf ppd
- " Povray
- au BufNewFile,BufRead *.pov setf pov
- " Povray configuration
- au BufNewFile,BufRead .povrayrc setf povini
- " Povray, Pascal, PHP or assembly
- au BufNewFile,BufRead *.inc call dist#ft#FTinc()
- " PowerShell
- au BufNewFile,BufRead *.ps1,*.psd1,*.psm1,*.pssc setf ps1
- au BufNewFile,BufRead *.ps1xml setf ps1xml
- au BufNewFile,BufRead *.cdxml,*.psc1 setf xml
- " Printcap and Termcap
- au BufNewFile,BufRead *printcap
- \ let b:ptcap_type = "print" | setf ptcap
- au BufNewFile,BufRead *termcap
- \ let b:ptcap_type = "term" | setf ptcap
- " Prisma
- au BufRead,BufNewFile *.prisma setf prisma
- " PCCTS / ANTLR
- "au BufNewFile,BufRead *.g setf antlr
- au BufNewFile,BufRead *.g setf pccts
- " PPWizard
- au BufNewFile,BufRead *.it,*.ih setf ppwiz
- " Pug
- au BufRead,BufNewFile *.pug setf pug
- " Puppet
- au BufNewFile,BufRead Puppetfile setf ruby
- " Embedded Puppet
- au BufNewFile,BufRead *.epp setf epuppet
- " Obj 3D file format
- " TODO: is there a way to avoid MS-Windows Object files?
- au BufNewFile,BufRead *.obj setf obj
- " Oracle Pro*C/C++
- au BufNewFile,BufRead *.pc setf proc
- " Privoxy actions file
- au BufNewFile,BufRead *.action setf privoxy
- " Procmail
- au BufNewFile,BufRead .procmail,.procmailrc setf procmail
- " Progress or CWEB
- au BufNewFile,BufRead *.w call dist#ft#FTprogress_cweb()
- " Progress or assembly
- au BufNewFile,BufRead *.i call dist#ft#FTprogress_asm()
- " Progress or Pascal
- au BufNewFile,BufRead *.p call dist#ft#FTprogress_pascal()
- " Software Distributor Product Specification File (POSIX 1387.2-1995)
- au BufNewFile,BufRead *.psf setf psf
- au BufNewFile,BufRead INDEX,INFO
- \ if getline(1) =~ '^\s*\(distribution\|installed_software\|root\|bundle\|product\)\s*$' |
- \ setf psf |
- \ endif
- " Prolog
- au BufNewFile,BufRead *.pdb setf prolog
- " Promela
- au BufNewFile,BufRead *.pml setf promela
- " Property Specification Language (PSL)
- au BufNewFile,BufRead *.psl setf psl
- " Google protocol buffers
- au BufNewFile,BufRead *.proto setf proto
- au BufNewFile,BufRead *.pbtxt setf pbtxt
- " Poke
- au BufNewFile,BufRead *.pk setf poke
- " Protocols
- au BufNewFile,BufRead */etc/protocols setf protocols
- " Pyret
- au BufNewFile,BufRead *.arr setf pyret
- " Pyrex
- au BufNewFile,BufRead *.pyx,*.pxd setf pyrex
- " Python, Python Shell Startup and Python Stub Files
- " Quixote (Python-based web framework)
- au BufNewFile,BufRead *.py,*.pyw,.pythonstartup,.pythonrc setf python
- au BufNewFile,BufRead *.ptl,*.pyi,SConstruct setf python
- " QL
- au BufRead,BufNewFile *.ql,*.qll setf ql
- " Quarto
- au BufRead,BufNewFile *.qmd setf quarto
- " Radiance
- au BufNewFile,BufRead *.rad,*.mat setf radiance
- " Raku (formerly Perl6)
- au BufNewFile,BufRead *.pm6,*.p6,*.t6,*.pod6,*.raku,*.rakumod,*.rakudoc,*.rakutest setf raku
- " Ratpoison config/command files
- au BufNewFile,BufRead .ratpoisonrc,ratpoisonrc setf ratpoison
- " RCS file
- au BufNewFile,BufRead *\,v setf rcs
- " Readline
- au BufNewFile,BufRead .inputrc,inputrc setf readline
- " Registry for MS-Windows
- au BufNewFile,BufRead *.reg
- \ if getline(1) =~? '^REGEDIT[0-9]*\s*$\|^Windows Registry Editor Version \d*\.\d*\s*$' | setf registry | endif
- " Renderman Interface Bytestream
- au BufNewFile,BufRead *.rib setf rib
- " Rego Policy Language
- au BufNewFile,BufRead *.rego setf rego
- " Rexx
- au BufNewFile,BufRead *.rex,*.orx,*.rxo,*.rxj,*.jrexx,*.rexxj,*.rexx,*.testGroup,*.testUnit setf rexx
- " R Help file
- if has("fname_case")
- au BufNewFile,BufRead *.rd,*.Rd setf rhelp
- else
- au BufNewFile,BufRead *.rd setf rhelp
- endif
- " R noweb file
- if has("fname_case")
- au BufNewFile,BufRead *.Rnw,*.rnw,*.Snw,*.snw setf rnoweb
- else
- au BufNewFile,BufRead *.rnw,*.snw setf rnoweb
- endif
- " R Markdown file
- if has("fname_case")
- au BufNewFile,BufRead *.Rmd,*.rmd,*.Smd,*.smd setf rmd
- else
- au BufNewFile,BufRead *.rmd,*.smd setf rmd
- endif
- " R profile file
- au BufNewFile,BufRead .Rprofile,Rprofile,Rprofile.site setf r
- " RSS looks like XML
- au BufNewFile,BufRead *.rss setf xml
- " R reStructuredText file
- if has("fname_case")
- au BufNewFile,BufRead *.Rrst,*.rrst,*.Srst,*.srst setf rrst
- else
- au BufNewFile,BufRead *.rrst,*.srst setf rrst
- endif
- " Rexx, Rebol or R
- au BufNewFile,BufRead *.r,*.R call dist#ft#FTr()
- " Remind
- au BufNewFile,BufRead .reminders,*.remind,*.rem setf remind
- " ReScript
- au BufNewFile,BufRead *.res,*.resi setf rescript
- " Resolv.conf
- au BufNewFile,BufRead resolv.conf setf resolv
- " Relax NG Compact
- au BufNewFile,BufRead *.rnc setf rnc
- " Relax NG XML
- au BufNewFile,BufRead *.rng setf rng
- " RPL/2
- au BufNewFile,BufRead *.rpl setf rpl
- " Robot Framework
- au BufNewFile,BufRead *.robot,*.resource setf robot
- " Robots.txt
- au BufNewFile,BufRead robots.txt setf robots
- " Rpcgen
- au BufNewFile,BufRead *.x setf rpcgen
- " MikroTik RouterOS script
- au BufRead,BufNewFile *.rsc setf routeros
- " reStructuredText Documentation Format
- au BufNewFile,BufRead *.rst setf rst
- " RTF
- au BufNewFile,BufRead *.rtf setf rtf
- " Interactive Ruby shell
- au BufNewFile,BufRead .irbrc,irbrc setf ruby
- " Ruby
- au BufNewFile,BufRead *.rb,*.rbw setf ruby
- " RubyGems
- au BufNewFile,BufRead *.gemspec setf ruby
- " RBS (Ruby Signature)
- au BufNewFile,BufRead *.rbs setf rbs
- " Rackup
- au BufNewFile,BufRead *.ru setf ruby
- " Bundler
- au BufNewFile,BufRead Gemfile setf ruby
- " Ruby on Rails
- au BufNewFile,BufRead *.builder,*.rxml,*.rjs setf ruby
- " Rantfile and Rakefile is like Ruby
- au BufNewFile,BufRead [rR]antfile,*.rant,[rR]akefile,*.rake setf ruby
- " Rust
- au BufNewFile,BufRead *.rs setf rust
- au BufNewFile,BufRead Cargo.lock,*/.cargo/config,*/.cargo/credentials setf toml
- " S-lang (or shader language, or SmallLisp)
- au BufNewFile,BufRead *.sl setf slang
- " Samba config
- au BufNewFile,BufRead smb.conf setf samba
- " SAS script
- au BufNewFile,BufRead *.sas setf sas
- " Sass
- au BufNewFile,BufRead *.sass setf sass
- " Sather
- au BufNewFile,BufRead *.sa setf sather
- " Scala
- au BufNewFile,BufRead *.scala setf scala
- " SBT - Scala Build Tool
- au BufNewFile,BufRead *.sbt setf sbt
- " SuperCollider
- au BufNewFile,BufRead *.sc call dist#ft#FTsc()
- au BufNewFile,BufRead *.quark setf supercollider
- " scdoc
- au BufNewFile,BufRead *.scd call dist#ft#FTscd()
- " Scilab
- au BufNewFile,BufRead *.sci,*.sce setf scilab
- " SCSS
- au BufNewFile,BufRead *.scss setf scss
- " SD: Streaming Descriptors
- au BufNewFile,BufRead *.sd setf sd
- " SDL
- au BufNewFile,BufRead *.sdl,*.pr setf sdl
- " sed
- au BufNewFile,BufRead *.sed setf sed
- " SubRip
- au BufNewFile,BufRead *.srt setf srt
- " SubStation Alpha
- au BufNewFile,BufRead *.ass,*.ssa setf ssa
- " svelte
- au BufNewFile,BufRead *.svelte setf svelte
- " Sieve (RFC 3028, 5228)
- au BufNewFile,BufRead *.siv,*.sieve setf sieve
- " Sendmail
- au BufNewFile,BufRead sendmail.cf setf sm
- " Sendmail .mc files are actually m4. Could also be MS Message text file or
- " Maxima.
- au BufNewFile,BufRead *.mc call dist#ft#McSetf()
- " Services
- au BufNewFile,BufRead */etc/services setf services
- " Service Location config
- au BufNewFile,BufRead */etc/slp.conf setf slpconf
- " Service Location registration
- au BufNewFile,BufRead */etc/slp.reg setf slpreg
- " Service Location SPI
- au BufNewFile,BufRead */etc/slp.spi setf slpspi
- " Setserial config
- au BufNewFile,BufRead */etc/serial.conf setf setserial
- " SGML
- au BufNewFile,BufRead *.sgm,*.sgml
- \ if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'linuxdoc' |
- \ setf sgmllnx |
- \ elseif getline(1) =~ '<!DOCTYPE.*DocBook' || getline(2) =~ '<!DOCTYPE.*DocBook' |
- \ let b:docbk_type = "sgml" |
- \ let b:docbk_ver = 4 |
- \ setf docbk |
- \ else |
- \ setf sgml |
- \ endif
- " SGMLDECL
- au BufNewFile,BufRead *.decl,*.dcl,*.dec
- \ if getline(1).getline(2).getline(3) =~? '^<!SGML' |
- \ setf sgmldecl |
- \ endif
- " SGML catalog file
- au BufNewFile,BufRead catalog setf catalog
- " Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc.
- " Gentoo ebuilds, Arch Linux PKGBUILDs and Alpine Linux APKBUILDs are actually
- " bash scripts.
- " NOTE: Patterns ending in a star are further down, these have lower priority.
- au BufNewFile,BufRead .bashrc,bashrc,bash.bashrc,.bash[_-]profile,.bash[_-]logout,.bash[_-]aliases,bash-fc[-.],*.ebuild,*.bash,*.eclass,PKGBUILD,APKBUILD call dist#ft#SetFileTypeSH("bash")
- au BufNewFile,BufRead .kshrc,*.ksh call dist#ft#SetFileTypeSH("ksh")
- au BufNewFile,BufRead */etc/profile,.profile,*.sh,*.env call dist#ft#SetFileTypeSH(getline(1))
- " Shell script (Arch Linux) or PHP file (Drupal)
- au BufNewFile,BufRead *.install
- \ if getline(1) =~ '<?php' |
- \ setf php |
- \ else |
- \ call dist#ft#SetFileTypeSH("bash") |
- \ endif
- " tcsh scripts (patterns ending in a star further below)
- au BufNewFile,BufRead .tcshrc,*.tcsh,tcsh.tcshrc,tcsh.login call dist#ft#SetFileTypeShell("tcsh")
- " csh scripts, but might also be tcsh scripts (on some systems csh is tcsh)
- " (patterns ending in a start further below)
- au BufNewFile,BufRead .login,.cshrc,csh.cshrc,csh.login,csh.logout,*.csh,.alias call dist#ft#CSH()
- " Zig and Zir (Zig Intermediate Representation)
- au BufNewFile,BufRead *.zig setf zig
- au BufNewFile,BufRead *.zir setf zir
- " Z-Shell script (patterns ending in a star further below)
- au BufNewFile,BufRead .zprofile,*/etc/zprofile,.zfbfmarks setf zsh
- au BufNewFile,BufRead .zshrc,.zshenv,.zlogin,.zlogout,.zcompdump setf zsh
- au BufNewFile,BufRead *.zsh setf zsh
- " Scheme
- au BufNewFile,BufRead *.scm,*.ss,*.sld,*.rkt,*.rktd,*.rktl setf scheme
- " Screen RC
- au BufNewFile,BufRead .screenrc,screenrc setf screen
- " Sexplib
- au BufNewFile,BufRead *.sexp setf sexplib
- " Simula
- au BufNewFile,BufRead *.sim setf simula
- " SINDA
- au BufNewFile,BufRead *.sin,*.s85 setf sinda
- " SiSU
- au BufNewFile,BufRead *.sst,*.ssm,*.ssi,*.-sst,*._sst setf sisu
- au BufNewFile,BufRead *.sst.meta,*.-sst.meta,*._sst.meta setf sisu
- " SKILL
- au BufNewFile,BufRead *.il,*.ils,*.cdf setf skill
- " SLRN
- au BufNewFile,BufRead .slrnrc setf slrnrc
- au BufNewFile,BufRead *.score setf slrnsc
- " Smalltalk
- au BufNewFile,BufRead *.st setf st
- " Smalltalk (and Rexx, TeX, and Visual Basic)
- au BufNewFile,BufRead *.cls call dist#ft#FTcls()
- " Smarty templates
- au BufNewFile,BufRead *.tpl setf smarty
- " SMIL or XML
- au BufNewFile,BufRead *.smil
- \ if getline(1) =~ '<?\s*xml.*?>' |
- \ setf xml |
- \ else |
- \ setf smil |
- \ endif
- " SMIL or SNMP MIB file
- au BufNewFile,BufRead *.smi
- \ if getline(1) =~ '\<smil\>' |
- \ setf smil |
- \ else |
- \ setf mib |
- \ endif
- " SMITH
- au BufNewFile,BufRead *.smt,*.smith setf smith
- " Snobol4 and spitbol
- au BufNewFile,BufRead *.sno,*.spt setf snobol4
- " SNMP MIB files
- au BufNewFile,BufRead *.mib,*.my setf mib
- " Snort Configuration
- au BufNewFile,BufRead *.hog,snort.conf,vision.conf setf hog
- au BufNewFile,BufRead *.rules call dist#ft#FTRules()
- " Solidity
- au BufRead,BufNewFile *.sol setf solidity
- " SPARQL queries
- au BufNewFile,BufRead *.rq,*.sparql setf sparql
- " Spec (Linux RPM)
- au BufNewFile,BufRead *.spec setf spec
- " Speedup (AspenTech plant simulator)
- au BufNewFile,BufRead *.speedup,*.spdata,*.spd setf spup
- " Slice
- au BufNewFile,BufRead *.ice setf slice
- " Microsoft Visual Studio Solution
- au BufNewFile,BufRead *.sln setf solution
- au BufNewFile,BufRead *.slnf setf json
- " Spice
- au BufNewFile,BufRead *.sp,*.spice setf spice
- " Spyce
- au BufNewFile,BufRead *.spy,*.spi setf spyce
- " Squid
- au BufNewFile,BufRead squid.conf setf squid
- " SQL for Oracle Designer
- au BufNewFile,BufRead *.tyb,*.typ,*.tyc,*.pkb,*.pks setf sql
- " SQL
- au BufNewFile,BufRead *.sql call dist#ft#SQL()
- " SQLJ
- au BufNewFile,BufRead *.sqlj setf sqlj
- " SQR
- au BufNewFile,BufRead *.sqr,*.sqi setf sqr
- " Squirrel
- au BufNewFile,BufRead *.nut setf squirrel
- " OpenSSH configuration
- au BufNewFile,BufRead ssh_config,*/.ssh/config,*/.ssh/*.conf setf sshconfig
- au BufNewFile,BufRead */etc/ssh/ssh_config.d/*.conf setf sshconfig
- " OpenSSH server configuration
- au BufNewFile,BufRead sshd_config setf sshdconfig
- au BufNewFile,BufRead */etc/ssh/sshd_config.d/*.conf setf sshdconfig
- " OpenVPN configuration
- au BufNewFile,BufRead *.ovpn setf openvpn
- au BufNewFile,BufRead */openvpn/*/*.conf setf openvpn
- " Stata
- au BufNewFile,BufRead *.ado,*.do,*.imata,*.mata setf stata
- " Also *.class, but not when it's a Java bytecode file
- au BufNewFile,BufRead *.class
- \ if getline(1) !~ "^\xca\xfe\xba\xbe" | setf stata | endif
- " SMCL
- au BufNewFile,BufRead *.hlp,*.ihlp,*.smcl setf smcl
- " Stored Procedures
- au BufNewFile,BufRead *.stp setf stp
- " Standard ML
- au BufNewFile,BufRead *.sml setf sml
- " Sratus VOS command macro
- au BufNewFile,BufRead *.cm setf voscm
- " Swift
- au BufNewFile,BufRead *.swift setf swift
- au BufNewFile,BufRead *.swift.gyb setf swiftgyb
- " Swift Intermediate Language or SILE
- au BufNewFile,BufRead *.sil call dist#ft#FTsil()
- " Sysctl
- au BufNewFile,BufRead */etc/sysctl.conf,*/etc/sysctl.d/*.conf setf sysctl
- " Systemd unit files
- au BufNewFile,BufRead */systemd/*.{automount,dnssd,link,mount,netdev,network,nspawn,path,service,slice,socket,swap,target,timer} setf systemd
- " Systemd overrides
- au BufNewFile,BufRead */etc/systemd/*.conf.d/*.conf setf systemd
- au BufNewFile,BufRead */etc/systemd/system/*.d/*.conf setf systemd
- au BufNewFile,BufRead */.config/systemd/user/*.d/*.conf setf systemd
- " Systemd temp files
- au BufNewFile,BufRead */etc/systemd/system/*.d/.#* setf systemd
- au BufNewFile,BufRead */etc/systemd/system/.#* setf systemd
- au BufNewFile,BufRead */.config/systemd/user/*.d/.#* setf systemd
- au BufNewFile,BufRead */.config/systemd/user/.#* setf systemd
- " Synopsys Design Constraints
- au BufNewFile,BufRead *.sdc setf sdc
- " Sudoers
- au BufNewFile,BufRead */etc/sudoers,sudoers.tmp setf sudoers
- " SVG (Scalable Vector Graphics)
- au BufNewFile,BufRead *.svg setf svg
- " Surface
- au BufRead,BufNewFile *.sface setf surface
- " Tads (or Nroff or Perl test file)
- au BufNewFile,BufRead *.t
- \ if !dist#ft#FTnroff() && !dist#ft#FTperl() | setf tads | endif
- " Tags
- au BufNewFile,BufRead tags setf tags
- " TAK
- au BufNewFile,BufRead *.tak setf tak
- " Task
- au BufRead,BufNewFile {pending,completed,undo}.data setf taskdata
- au BufRead,BufNewFile *.task setf taskedit
- " Tcl (JACL too)
- au BufNewFile,BufRead *.tcl,*.tm,*.tk,*.itcl,*.itk,*.jacl,.tclshrc,.wishrc setf tcl
- " Teal
- au BufRead,BufNewFile *.tl setf teal
- " TealInfo
- au BufNewFile,BufRead *.tli setf tli
- " Telix Salt
- au BufNewFile,BufRead *.slt setf tsalt
- " Tera Term Language or Turtle
- au BufRead,BufNewFile *.ttl
- \ if getline(1) =~ '^@\?\(prefix\|base\)' |
- \ setf turtle |
- \ else |
- \ setf teraterm |
- \ endif
- " Terminfo
- au BufNewFile,BufRead *.ti setf terminfo
- " Terraform variables
- au BufRead,BufNewFile *.tfvars setf terraform-vars
- " TeX
- au BufNewFile,BufRead *.latex,*.sty,*.dtx,*.ltx,*.bbl setf tex
- au BufNewFile,BufRead *.tex call dist#ft#FTtex()
- " ConTeXt
- au BufNewFile,BufRead *.mkii,*.mkiv,*.mkvi,*.mkxl,*.mklx setf context
- " Texinfo
- au BufNewFile,BufRead *.texinfo,*.texi,*.txi setf texinfo
- " TeX configuration
- au BufNewFile,BufRead texmf.cnf setf texmf
- " Tidy config
- au BufNewFile,BufRead .tidyrc,tidyrc,tidy.conf setf tidy
- " TF mud client
- au BufNewFile,BufRead .tfrc,tfrc setf tf
- " TF mud client or terraform
- au BufNewFile,BufRead *.tf call dist#ft#FTtf()
- " TLA+
- au BufNewFile,BufRead *.tla setf tla
- " tmux configuration
- au BufNewFile,BufRead {.,}tmux*.conf setf tmux
- " TOML
- au BufNewFile,BufRead *.toml setf toml
- " TPP - Text Presentation Program
- au BufNewFile,BufRead *.tpp setf tpp
- " Treetop
- au BufRead,BufNewFile *.treetop setf treetop
- " Trustees
- au BufNewFile,BufRead trustees.conf setf trustees
- " TSS - Geometry
- au BufNewFile,BufReadPost *.tssgm setf tssgm
- " TSS - Optics
- au BufNewFile,BufReadPost *.tssop setf tssop
- " TSS - Command Line (temporary)
- au BufNewFile,BufReadPost *.tsscl setf tsscl
- " TSV Files
- au BufNewFile,BufRead *.tsv setf tsv
- " TWIG files
- au BufNewFile,BufReadPost *.twig setf twig
- " TypeScript or Qt translation file (which is XML)
- au BufNewFile,BufReadPost *.ts
- \ if getline(1) =~ '<?xml' |
- \ setf xml |
- \ else |
- \ setf typescript |
- \ endif
- " TypeScript module and common
- au BufNewFile,BufRead *.mts,*.cts setf typescript
- " TypeScript with React
- au BufNewFile,BufRead *.tsx setf typescriptreact
- " Motif UIT/UIL files
- au BufNewFile,BufRead *.uit,*.uil setf uil
- " Udev conf
- au BufNewFile,BufRead */etc/udev/udev.conf setf udevconf
- " Udev permissions
- au BufNewFile,BufRead */etc/udev/permissions.d/*.permissions setf udevperm
- "
- " Udev symlinks config
- au BufNewFile,BufRead */etc/udev/cdsymlinks.conf setf sh
- " UnrealScript
- au BufNewFile,BufRead *.uc setf uc
- " Updatedb
- au BufNewFile,BufRead */etc/updatedb.conf setf updatedb
- " Upstart (init(8)) config files
- au BufNewFile,BufRead */usr/share/upstart/*.conf setf upstart
- au BufNewFile,BufRead */usr/share/upstart/*.override setf upstart
- au BufNewFile,BufRead */etc/init/*.conf,*/etc/init/*.override setf upstart
- au BufNewFile,BufRead */.init/*.conf,*/.init/*.override setf upstart
- au BufNewFile,BufRead */.config/upstart/*.conf setf upstart
- au BufNewFile,BufRead */.config/upstart/*.override setf upstart
- " Vala
- au BufNewFile,BufRead *.vala setf vala
- " VDF
- au BufNewFile,BufRead *.vdf setf vdf
- " VDM
- au BufRead,BufNewFile *.vdmpp,*.vpp setf vdmpp
- au BufRead,BufNewFile *.vdmrt setf vdmrt
- au BufRead,BufNewFile *.vdmsl,*.vdm setf vdmsl
- " Vera
- au BufNewFile,BufRead *.vr,*.vri,*.vrh setf vera
- " Vagrant (uses Ruby syntax)
- au BufNewFile,BufRead Vagrantfile setf ruby
- " Verilog HDL
- au BufNewFile,BufRead *.v setf verilog
- " Verilog-AMS HDL
- au BufNewFile,BufRead *.va,*.vams setf verilogams
- " SystemVerilog
- au BufNewFile,BufRead *.sv,*.svh setf systemverilog
- " VHS tape
- " .tape is also used by TapeCalc, which we do not support ATM. If TapeCalc
- " support is needed the contents of the file needs to be inspected.
- au BufNewFile,BufRead *.tape setf vhs
- " VHDL
- au BufNewFile,BufRead *.hdl,*.vhd,*.vhdl,*.vbe,*.vst,*.vho setf vhdl
- " Vim script
- au BufNewFile,BufRead *.vim,*.vba,.exrc,_exrc setf vim
- " Viminfo file
- au BufNewFile,BufRead .viminfo,_viminfo setf viminfo
- " Virata Config Script File or Drupal module
- au BufRead,BufNewFile *.hw,*.module,*.pkg
- \ if getline(1) =~ '<?php' |
- \ setf php |
- \ else |
- \ setf virata |
- \ endif
- " Visual Basic (also uses *.bas) or FORM
- au BufNewFile,BufRead *.frm call dist#ft#FTfrm()
- " SaxBasic is close to Visual Basic
- au BufNewFile,BufRead *.sba setf vb
- " Vgrindefs file
- au BufNewFile,BufRead vgrindefs setf vgrindefs
- " VRML V1.0c
- au BufNewFile,BufRead *.wrl setf vrml
- " Vroom (vim testing and executable documentation)
- au BufNewFile,BufRead *.vroom setf vroom
- " Vue.js Single File Component
- au BufNewFile,BufRead *.vue setf vue
- " WebAssembly
- au BufNewFile,BufRead *.wast,*.wat setf wast
- " Webmacro
- au BufNewFile,BufRead *.wm setf webmacro
- " Wget config
- au BufNewFile,BufRead .wgetrc,wgetrc setf wget
- " Wget2 config
- au BufNewFile,BufRead .wget2rc,wget2rc setf wget2
- " Website MetaLanguage
- au BufNewFile,BufRead *.wml setf wml
- " Winbatch
- au BufNewFile,BufRead *.wbt setf winbatch
- " WSML
- au BufNewFile,BufRead *.wsml setf wsml
- " WPL
- au BufNewFile,BufRead *.wpl setf xml
- " WvDial
- au BufNewFile,BufRead wvdial.conf,.wvdialrc setf wvdial
- " CVS RC file
- au BufNewFile,BufRead .cvsrc setf cvsrc
- " CVS commit file
- au BufNewFile,BufRead cvs\d\+ setf cvs
- " WEB (*.web is also used for Winbatch: Guess, based on expecting "%" comment
- " lines in a WEB file).
- au BufNewFile,BufRead *.web
- \ if getline(1)[0].getline(2)[0].getline(3)[0].getline(4)[0].getline(5)[0] =~ "%" |
- \ setf web |
- \ else |
- \ setf winbatch |
- \ endif
- " Windows Scripting Host and Windows Script Component
- au BufNewFile,BufRead *.ws[fc] setf wsh
- " XHTML
- au BufNewFile,BufRead *.xhtml,*.xht setf xhtml
- " X Pixmap (dynamically sets colors, this used to trigger on BufEnter to make
- " it work better, but that breaks setting 'filetype' manually)
- au BufNewFile,BufRead *.xpm
- \ if getline(1) =~ "XPM2" |
- \ setf xpm2 |
- \ else |
- \ setf xpm |
- \ endif
- au BufNewFile,BufRead *.xpm2 setf xpm2
- " XFree86 config
- au BufNewFile,BufRead XF86Config
- \ if getline(1) =~ '\<XConfigurator\>' |
- \ let b:xf86conf_xfree86_version = 3 |
- \ endif |
- \ setf xf86conf
- au BufNewFile,BufRead */xorg.conf.d/*.conf
- \ let b:xf86conf_xfree86_version = 4 |
- \ setf xf86conf
- " Xorg config
- au BufNewFile,BufRead xorg.conf,xorg.conf-4 let b:xf86conf_xfree86_version = 4 | setf xf86conf
- " Xinetd conf
- au BufNewFile,BufRead */etc/xinetd.conf setf xinetd
- " XS Perl extension interface language
- au BufNewFile,BufRead *.xs setf xs
- " X resources file
- au BufNewFile,BufRead .Xdefaults,.Xpdefaults,.Xresources,xdm-config,*.ad setf xdefaults
- " Xmath
- au BufNewFile,BufRead *.msc,*.msf setf xmath
- au BufNewFile,BufRead *.ms
- \ if !dist#ft#FTnroff() | setf xmath | endif
- " XML specific variants: docbk and xbl
- au BufNewFile,BufRead *.xml call dist#ft#FTxml()
- " XMI (holding UML models) is also XML
- au BufNewFile,BufRead *.xmi setf xml
- " CSPROJ files are Visual Studio.NET's XML-based C# project config files
- au BufNewFile,BufRead *.csproj,*.csproj.user setf xml
- " FSPROJ files are Visual Studio.NET's XML-based F# project config files
- au BufNewFile,BufRead *.fsproj,*.fsproj.user setf xml
- " VBPROJ files are Visual Studio.NET's XML-based Visual Basic project config files
- au BufNewFile,BufRead *.vbproj,*.vbproj.user setf xml
- " Qt Linguist translation source and Qt User Interface Files are XML
- " However, for .ts TypeScript is more common.
- au BufNewFile,BufRead *.ui setf xml
- " TPM's are RDF-based descriptions of TeX packages (Nikolai Weibull)
- au BufNewFile,BufRead *.tpm setf xml
- " Xdg menus
- au BufNewFile,BufRead */etc/xdg/menus/*.menu setf xml
- " ATI graphics driver configuration
- au BufNewFile,BufRead fglrxrc setf xml
- " Web Services Description Language (WSDL)
- au BufNewFile,BufRead *.wsdl setf xml
- " Workflow Description Language (WDL)
- au BufNewFile,BufRead *.wdl setf wdl
- " XLIFF (XML Localisation Interchange File Format) is also XML
- au BufNewFile,BufRead *.xlf setf xml
- au BufNewFile,BufRead *.xliff setf xml
- " XML User Interface Language
- au BufNewFile,BufRead *.xul setf xml
- " X11 xmodmap (also see below)
- au BufNewFile,BufRead *Xmodmap setf xmodmap
- " Xquery
- au BufNewFile,BufRead *.xq,*.xql,*.xqm,*.xquery,*.xqy setf xquery
- " XSD
- au BufNewFile,BufRead *.xsd setf xsd
- " Xslt
- au BufNewFile,BufRead *.xsl,*.xslt setf xslt
- " Yacc
- au BufNewFile,BufRead *.yy,*.yxx,*.y++ setf yacc
- " Yacc or racc
- au BufNewFile,BufRead *.y call dist#ft#FTy()
- " Yaml
- au BufNewFile,BufRead *.yaml,*.yml setf yaml
- " Raml
- au BufNewFile,BufRead *.raml setf raml
- " yum conf (close enough to dosini)
- au BufNewFile,BufRead */etc/yum.conf setf dosini
- " YANG
- au BufRead,BufNewFile *.yang setf yang
- " Zimbu
- au BufNewFile,BufRead *.zu setf zimbu
- " Zimbu Templates
- au BufNewFile,BufRead *.zut setf zimbutempl
- " Zope
- " dtml (zope dynamic template markup language), pt (zope page template),
- " cpt (zope form controller page template)
- au BufNewFile,BufRead *.dtml,*.pt,*.cpt call dist#ft#FThtml()
- " zsql (zope sql method)
- au BufNewFile,BufRead *.zsql call dist#ft#SQL()
- " Z80 assembler asz80
- au BufNewFile,BufRead *.z8a setf z8a
- augroup END
- " Source the user-specified filetype file, for backwards compatibility with
- " Vim 5.x.
- if exists("myfiletypefile") && filereadable(expand(myfiletypefile))
- execute "source " . myfiletypefile
- endif
- " Check for "*" after loading myfiletypefile, so that scripts.vim is only used
- " when there are no matching file name extensions.
- " Don't do this for compressed files.
- augroup filetypedetect
- au BufNewFile,BufRead *
- \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat
- \ | runtime! scripts.vim | endif
- au StdinReadPost * if !did_filetype() | runtime! scripts.vim | endif
- " Plain text files, needs to be far down to not override others. This avoids
- " the "conf" type being used if there is a line starting with '#'.
- " But before patterns matching everything in a directory.
- au BufNewFile,BufRead *.text,README,LICENSE,COPYING,AUTHORS setf text
- " Extra checks for when no filetype has been detected now. Mostly used for
- " patterns that end in "*". E.g., "zsh*" matches "zsh.vim", but that's a Vim
- " script file.
- " Most of these should call s:StarSetf() to avoid names ending in .gz and the
- " like are used.
- " More Apache style config files
- au BufNewFile,BufRead */etc/proftpd/*.conf*,*/etc/proftpd/conf.*/* call s:StarSetf('apachestyle')
- au BufNewFile,BufRead proftpd.conf* call s:StarSetf('apachestyle')
- " More Apache config files
- au BufNewFile,BufRead access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf* call s:StarSetf('apache')
- au BufNewFile,BufRead */etc/apache2/*.conf*,*/etc/apache2/conf.*/*,*/etc/apache2/mods-*/*,*/etc/apache2/sites-*/*,*/etc/httpd/conf.*/*,*/etc/httpd/mods-*/*,*/etc/httpd/sites-*/*,*/etc/httpd/conf.d/*.conf* call s:StarSetf('apache')
- " APT config file
- au BufNewFile,BufRead */etc/apt/apt.conf.d/{[-_[:alnum:]]\+,[-_.[:alnum:]]\+.conf} call s:StarSetf('aptconf')
- " Asterisk config file
- au BufNewFile,BufRead *asterisk/*.conf* call s:StarSetf('asterisk')
- au BufNewFile,BufRead *asterisk*/*voicemail.conf* call s:StarSetf('asteriskvm')
- " Bazaar version control
- au BufNewFile,BufRead bzr_log.* setf bzr
- " Bazel build file
- if !has("fname_case")
- au BufNewFile,BufRead *.BUILD,BUILD setf bzl
- endif
- " BIND zone
- au BufNewFile,BufRead */named/db.*,*/bind/db.* call s:StarSetf('bindzone')
- au BufNewFile,BufRead cabal.project.* call s:StarSetf('cabalproject')
- " Calendar
- au BufNewFile,BufRead */.calendar/*,
- \*/share/calendar/*/calendar.*,*/share/calendar/calendar.*
- \ call s:StarSetf('calendar')
- " Changelog
- au BufNewFile,BufRead [cC]hange[lL]og*
- \ if getline(1) =~ '; urgency='
- \| call s:StarSetf('debchangelog')
- \|else
- \| call s:StarSetf('changelog')
- \|endif
- " Crontab
- au BufNewFile,BufRead crontab,crontab.*,*/etc/cron.d/* call s:StarSetf('crontab')
- " dnsmasq(8) configuration
- au BufNewFile,BufRead */etc/dnsmasq.d/* call s:StarSetf('dnsmasq')
- " Dockerfile
- au BufNewFile,BufRead Dockerfile.*,Containerfile.* call s:StarSetf('dockerfile')
- " Dracula
- au BufNewFile,BufRead drac.* call s:StarSetf('dracula')
- " Fvwm
- au BufNewFile,BufRead */.fvwm/* call s:StarSetf('fvwm')
- au BufNewFile,BufRead *fvwmrc*,*fvwm95*.hook
- \ let b:fvwm_version = 1 | call s:StarSetf('fvwm')
- au BufNewFile,BufRead *fvwm2rc*
- \ if expand("<afile>:e") == "m4"
- \| call s:StarSetf('fvwm2m4')
- \|else
- \| let b:fvwm_version = 2 | call s:StarSetf('fvwm')
- \|endif
- " Gedcom
- au BufNewFile,BufRead */tmp/lltmp* call s:StarSetf('gedcom')
- " Git
- au BufNewFile,BufRead */.gitconfig.d/*,*/etc/gitconfig.d/* call s:StarSetf('gitconfig')
- " Gitolite
- au BufNewFile,BufRead */gitolite-admin/conf/* call s:StarSetf('gitolite')
- " GTK RC
- au BufNewFile,BufRead .gtkrc*,gtkrc* call s:StarSetf('gtkrc')
- " Jam
- au BufNewFile,BufRead Prl*.*,JAM*.* call s:StarSetf('jam')
- " Jargon
- au! BufNewFile,BufRead *jarg*
- \ if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'THIS IS THE JARGON FILE'
- \| call s:StarSetf('jargon')
- \|endif
- " Java Properties resource file (note: doesn't catch font.properties.pl)
- au BufNewFile,BufRead *.properties_??_??_* call s:StarSetf('jproperties')
- " Kconfig
- au BufNewFile,BufRead Kconfig.* call s:StarSetf('kconfig')
- " Lilo: Linux loader
- au BufNewFile,BufRead lilo.conf* call s:StarSetf('lilo')
- " Libsensors
- au BufNewFile,BufRead */etc/sensors.d/[^.]* call s:StarSetf('sensors')
- " Logcheck
- au BufNewFile,BufRead */etc/logcheck/*.d*/* call s:StarSetf('logcheck')
- " Makefile
- au BufNewFile,BufRead [mM]akefile* call s:StarSetf('make')
- " Ruby Makefile
- au BufNewFile,BufRead [rR]akefile* call s:StarSetf('ruby')
- " Mail (also matches muttrc.vim, so this is below the other checks)
- au BufNewFile,BufRead {neo,}mutt[[:alnum:]._-]\\\{6\} setf mail
- au BufNewFile,BufRead reportbug-* call s:StarSetf('mail')
- " Modconf
- au BufNewFile,BufRead */etc/modutils/*
- \ if executable(expand("<afile>")) != 1
- \| call s:StarSetf('modconf')
- \|endif
- au BufNewFile,BufRead */etc/modprobe.* call s:StarSetf('modconf')
- " Mutt setup files (must be before catch *.rc)
- au BufNewFile,BufRead */etc/Muttrc.d/* call s:StarSetf('muttrc')
- " Mutt setup file
- au BufNewFile,BufRead .mutt{ng,}rc*,*/.mutt{ng,}/mutt{ng,}rc* call s:StarSetf('muttrc')
- au BufNewFile,BufRead mutt{ng,}rc*,Mutt{ng,}rc* call s:StarSetf('muttrc')
- " Neomutt setup file
- au BufNewFile,BufRead .neomuttrc*,*/.neomutt/neomuttrc* call s:StarSetf('neomuttrc')
- au BufNewFile,BufRead neomuttrc*,Neomuttrc* call s:StarSetf('neomuttrc')
- " Nroff macros
- au BufNewFile,BufRead tmac.* call s:StarSetf('nroff')
- " OpenBSD hostname.if
- au BufNewFile,BufRead */etc/hostname.* call s:StarSetf('config')
- " Pam conf
- au BufNewFile,BufRead */etc/pam.d/* call s:StarSetf('pamconf')
- " Printcap and Termcap
- au BufNewFile,BufRead *printcap*
- \ if !did_filetype()
- \| let b:ptcap_type = "print" | call s:StarSetf('ptcap')
- \|endif
- au BufNewFile,BufRead *termcap*
- \ if !did_filetype()
- \| let b:ptcap_type = "term" | call s:StarSetf('ptcap')
- \|endif
- " ReDIF
- " Only used when the .rdf file was not detected to be XML.
- au BufRead,BufNewFile *.rdf call dist#ft#Redif()
- " Remind
- au BufNewFile,BufRead .reminders* call s:StarSetf('remind')
- " SGML catalog file
- au BufNewFile,BufRead sgml.catalog* call s:StarSetf('catalog')
- " avoid doc files being recognized a shell files
- au BufNewFile,BufRead */doc/{,.}bash[_-]completion{,.d,.sh}{,/*} setf text
- " Shell scripts ending in a star
- au BufNewFile,BufRead .bashrc*,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,bash-fc[-.]*,PKGBUILD*,APKBUILD*,*/{,.}bash[_-]completion{,.d,.sh}{,/*} call dist#ft#SetFileTypeSH("bash")
- au BufNewFile,BufRead .kshrc* call dist#ft#SetFileTypeSH("ksh")
- au BufNewFile,BufRead .profile* call dist#ft#SetFileTypeSH(getline(1))
- " Sudoers
- au BufNewFile,BufRead */etc/sudoers.d/* call s:StarSetf('sudoers')
- " tcsh scripts ending in a star
- au BufNewFile,BufRead .tcshrc* call dist#ft#SetFileTypeShell("tcsh")
- " csh scripts ending in a star
- au BufNewFile,BufRead .login*,.cshrc* call dist#ft#CSH()
- " tmux configuration with arbitrary extension
- au BufNewFile,BufRead {.,}tmux*.conf* setf tmux
- " VHDL
- au BufNewFile,BufRead *.vhdl_[0-9]* call s:StarSetf('vhdl')
- " Vim script
- au BufNewFile,BufRead *vimrc* call s:StarSetf('vim')
- " Subversion commit file
- au BufNewFile,BufRead svn-commit*.tmp setf svn
- " X resources file
- au BufNewFile,BufRead Xresources*,*/app-defaults/*,*/Xresources/* call s:StarSetf('xdefaults')
- " XFree86 config
- au BufNewFile,BufRead XF86Config-4*
- \ let b:xf86conf_xfree86_version = 4 | call s:StarSetf('xf86conf')
- au BufNewFile,BufRead XF86Config*
- \ if getline(1) =~ '\<XConfigurator\>'
- \| let b:xf86conf_xfree86_version = 3
- \|endif
- \|call s:StarSetf('xf86conf')
- " X11 xmodmap
- au BufNewFile,BufRead *xmodmap* call s:StarSetf('xmodmap')
- " Xinetd conf
- au BufNewFile,BufRead */etc/xinetd.d/* call s:StarSetf('xinetd')
- " yum conf (close enough to dosini)
- au BufNewFile,BufRead */etc/yum.repos.d/* call s:StarSetf('dosini')
- " Z-Shell script ending in a star
- au BufNewFile,BufRead .zsh*,.zlog*,.zcompdump* call s:StarSetf('zsh')
- au BufNewFile,BufRead zsh*,zlog* call s:StarSetf('zsh')
- " Help files match *.txt but should have a last line that is a modeline.
- au BufNewFile,BufRead *.txt
- \ if getline('$') !~ 'vim:.*ft=help'
- \| setf text
- \| endif
- " Blueprint markup files
- au BufNewFile,BufRead *.blp setf blueprint
- " Use the filetype detect plugins. They may overrule any of the previously
- " detected filetypes.
- runtime! ftdetect/*.vim
- " NOTE: The above command could have ended the filetypedetect autocmd group
- " and started another one. Let's make sure it has ended to get to a consistent
- " state.
- augroup END
- " Generic configuration file. Use FALLBACK, it's just guessing!
- au filetypedetect BufNewFile,BufRead,StdinReadPost *
- \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat
- \ && (getline(1) =~ '^#' || getline(2) =~ '^#' || getline(3) =~ '^#'
- \ || getline(4) =~ '^#' || getline(5) =~ '^#') |
- \ setf FALLBACK conf |
- \ endif
- " If the GUI is already running, may still need to install the Syntax menu.
- " Don't do it when the 'M' flag is included in 'guioptions'.
- if has("menu") && has("gui_running")
- \ && !exists("did_install_syntax_menu") && &guioptions !~# "M"
- source <sfile>:p:h/menu.vim
- endif
- " Function called for testing all functions defined here. These are
- " script-local, thus need to be executed here.
- " Returns a string with error messages (hopefully empty).
- func TestFiletypeFuncs(testlist)
- let output = ''
- for f in a:testlist
- try
- exe f
- catch
- let output = output . "\n" . f . ": " . v:exception
- endtry
- endfor
- return output
- endfunc
- " Restore 'cpoptions'
- let &cpo = s:cpo_save
- unlet s:cpo_save
|