1" Vim support file to detect file types 2" 3" Maintainer: Bram Moolenaar <[email protected]> 4" Last Change: 2020 Jan 31 5 6" Listen very carefully, I will say this only once 7if exists("did_load_filetypes") 8 finish 9endif 10let did_load_filetypes = 1 11 12" Line continuation is used here, remove 'C' from 'cpoptions' 13let s:cpo_save = &cpo 14set cpo&vim 15 16augroup filetypedetect 17 18" Ignored extensions 19if exists("*fnameescape") 20au BufNewFile,BufRead ?\+.orig,?\+.bak,?\+.old,?\+.new,?\+.dpkg-dist,?\+.dpkg-old,?\+.dpkg-new,?\+.dpkg-bak,?\+.rpmsave,?\+.rpmnew,?\+.pacsave,?\+.pacnew 21 \ exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r")) 22au BufNewFile,BufRead *~ 23 \ let s:name = expand("<afile>") | 24 \ let s:short = substitute(s:name, '\~$', '', '') | 25 \ if s:name != s:short && s:short != "" | 26 \ exe "doau filetypedetect BufRead " . fnameescape(s:short) | 27 \ endif | 28 \ unlet! s:name s:short 29au BufNewFile,BufRead ?\+.in 30 \ if expand("<afile>:t") != "configure.in" | 31 \ exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r")) | 32 \ endif 33elseif &verbose > 0 34 echomsg "Warning: some filetypes will not be recognized because this version of Vim does not have fnameescape()" 35endif 36 37" Pattern used to match file names which should not be inspected. 38" Currently finds compressed files. 39if !exists("g:ft_ignore_pat") 40 let g:ft_ignore_pat = '\.\(Z\|gz\|bz2\|zip\|tgz\)$' 41endif 42 43" Function used for patterns that end in a star: don't set the filetype if the 44" file name matches ft_ignore_pat. 45" When using this, the entry should probably be further down below with the 46" other StarSetf() calls. 47func! s:StarSetf(ft) 48 if expand("<amatch>") !~ g:ft_ignore_pat 49 exe 'setf ' . a:ft 50 endif 51endfunc 52 53" Vim help file 54au BufNewFile,BufRead $VIMRUNTIME/doc/*.txt setf help 55 56" Abaqus or Trasys 57au BufNewFile,BufRead *.inp call dist#ft#Check_inp() 58 59" 8th (Firth-derivative) 60au BufNewFile,BufRead *.8th setf 8th 61 62" A-A-P recipe 63au BufNewFile,BufRead *.aap setf aap 64 65" A2ps printing utility 66au BufNewFile,BufRead */etc/a2ps.cfg,*/etc/a2ps/*.cfg,a2psrc,.a2psrc setf a2ps 67 68" ABAB/4 69au BufNewFile,BufRead *.abap setf abap 70 71" ABC music notation 72au BufNewFile,BufRead *.abc setf abc 73 74" ABEL 75au BufNewFile,BufRead *.abl setf abel 76 77" AceDB 78au BufNewFile,BufRead *.wrm setf acedb 79 80" Ada (83, 9X, 95) 81au BufNewFile,BufRead *.adb,*.ads,*.ada setf ada 82if has("vms") 83 au BufNewFile,BufRead *.gpr,*.ada_m,*.adc setf ada 84else 85 au BufNewFile,BufRead *.gpr setf ada 86endif 87 88" AHDL 89au BufNewFile,BufRead *.tdf setf ahdl 90 91" AMPL 92au BufNewFile,BufRead *.run setf ampl 93 94" Ant 95au BufNewFile,BufRead build.xml setf ant 96 97" Arduino 98au BufNewFile,BufRead *.ino,*.pde setf arduino 99 100" Apache config file 101au BufNewFile,BufRead .htaccess,*/etc/httpd/*.conf setf apache 102au BufNewFile,BufRead */etc/apache2/sites-*/*.com setf apache 103 104" XA65 MOS6510 cross assembler 105au BufNewFile,BufRead *.a65 setf a65 106 107" Applescript 108au BufNewFile,BufRead *.scpt setf applescript 109 110" Applix ELF 111au BufNewFile,BufRead *.am 112 \ if expand("<afile>") !~? 'Makefile.am\>' | setf elf | endif 113 114" ALSA configuration 115au BufNewFile,BufRead .asoundrc,*/usr/share/alsa/alsa.conf,*/etc/asound.conf setf alsaconf 116 117" Arc Macro Language 118au BufNewFile,BufRead *.aml setf aml 119 120" APT config file 121au BufNewFile,BufRead apt.conf setf aptconf 122au BufNewFile,BufRead */.aptitude/config setf aptconf 123au BufNewFile,BufRead */etc/apt/apt.conf.d/{[-_[:alnum:]]\+,[-_.[:alnum:]]\+.conf} setf aptconf 124 125" Arch Inventory file 126au BufNewFile,BufRead .arch-inventory,=tagging-method setf arch 127 128" ART*Enterprise (formerly ART-IM) 129au BufNewFile,BufRead *.art setf art 130 131" AsciiDoc 132au BufNewFile,BufRead *.asciidoc,*.adoc setf asciidoc 133 134" ASN.1 135au BufNewFile,BufRead *.asn,*.asn1 setf asn 136 137" Active Server Pages (with Visual Basic Script) 138au BufNewFile,BufRead *.asa 139 \ if exists("g:filetype_asa") | 140 \ exe "setf " . g:filetype_asa | 141 \ else | 142 \ setf aspvbs | 143 \ endif 144 145" Active Server Pages (with Perl or Visual Basic Script) 146au BufNewFile,BufRead *.asp 147 \ if exists("g:filetype_asp") | 148 \ exe "setf " . g:filetype_asp | 149 \ elseif getline(1) . getline(2) . getline(3) =~? "perlscript" | 150 \ setf aspperl | 151 \ else | 152 \ setf aspvbs | 153 \ endif 154 155" Grub (must be before catch *.lst) 156au BufNewFile,BufRead */boot/grub/menu.lst,*/boot/grub/grub.conf,*/etc/grub.conf setf grub 157 158" Assembly (all kinds) 159" *.lst is not pure assembly, it has two extra columns (address, byte codes) 160au BufNewFile,BufRead *.asm,*.[sS],*.[aA],*.mac,*.lst call dist#ft#FTasm() 161 162" Macro (VAX) 163au BufNewFile,BufRead *.mar setf vmasm 164 165" Atlas 166au BufNewFile,BufRead *.atl,*.as setf atlas 167 168" Autoit v3 169au BufNewFile,BufRead *.au3 setf autoit 170 171" Autohotkey 172au BufNewFile,BufRead *.ahk setf autohotkey 173 174" Automake 175au BufNewFile,BufRead [mM]akefile.am,GNUmakefile.am setf automake 176 177" Autotest .at files are actually m4 178au BufNewFile,BufRead *.at setf m4 179 180" Avenue 181au BufNewFile,BufRead *.ave setf ave 182 183" Awk 184au BufNewFile,BufRead *.awk setf awk 185 186" B 187au BufNewFile,BufRead *.mch,*.ref,*.imp setf b 188 189" BASIC or Visual Basic 190au BufNewFile,BufRead *.bas call dist#ft#FTVB("basic") 191 192" Visual Basic Script (close to Visual Basic) or Visual Basic .NET 193au BufNewFile,BufRead *.vb,*.vbs,*.dsm,*.ctl setf vb 194 195" IBasic file (similar to QBasic) 196au BufNewFile,BufRead *.iba,*.ibi setf ibasic 197 198" FreeBasic file (similar to QBasic) 199au BufNewFile,BufRead *.fb,*.bi setf freebasic 200 201" Batch file for MSDOS. 202au BufNewFile,BufRead *.bat,*.sys setf dosbatch 203" *.cmd is close to a Batch file, but on OS/2 Rexx files also use *.cmd. 204au BufNewFile,BufRead *.cmd 205 \ if getline(1) =~ '^/\*' | setf rexx | else | setf dosbatch | endif 206 207" Batch file for 4DOS 208au BufNewFile,BufRead *.btm call dist#ft#FTbtm() 209 210" BC calculator 211au BufNewFile,BufRead *.bc setf bc 212 213" BDF font 214au BufNewFile,BufRead *.bdf setf bdf 215 216" BibTeX bibliography database file 217au BufNewFile,BufRead *.bib setf bib 218 219" BibTeX Bibliography Style 220au BufNewFile,BufRead *.bst setf bst 221 222" BIND configuration 223" sudoedit uses namedXXXX.conf 224au BufNewFile,BufRead named*.conf,rndc*.conf,rndc*.key setf named 225 226" BIND zone 227au BufNewFile,BufRead named.root setf bindzone 228au BufNewFile,BufRead *.db call dist#ft#BindzoneCheck('') 229 230" Blank 231au BufNewFile,BufRead *.bl setf blank 232 233" Blkid cache file 234au BufNewFile,BufRead */etc/blkid.tab,*/etc/blkid.tab.old setf xml 235 236" Bazel (http://bazel.io) 237autocmd BufRead,BufNewFile *.bzl,WORKSPACE,BUILD.bazel setf bzl 238if has("fname_case") 239 " There is another check for BUILD further below. 240 autocmd BufRead,BufNewFile BUILD setf bzl 241endif 242 243" C or lpc 244au BufNewFile,BufRead *.c call dist#ft#FTlpc() 245au BufNewFile,BufRead *.lpc,*.ulpc setf lpc 246 247" Calendar 248au BufNewFile,BufRead calendar setf calendar 249 250" C# 251au BufNewFile,BufRead *.cs setf cs 252 253" CSDL 254au BufNewFile,BufRead *.csdl setf csdl 255 256" Cabal 257au BufNewFile,BufRead *.cabal setf cabal 258 259" Cdrdao TOC 260au BufNewFile,BufRead *.toc setf cdrtoc 261 262" Cdrdao config 263au BufNewFile,BufRead */etc/cdrdao.conf,*/etc/defaults/cdrdao,*/etc/default/cdrdao,.cdrdao setf cdrdaoconf 264 265" Cfengine 266au BufNewFile,BufRead cfengine.conf setf cfengine 267 268" ChaiScript 269au BufRead,BufNewFile *.chai setf chaiscript 270 271" Comshare Dimension Definition Language 272au BufNewFile,BufRead *.cdl setf cdl 273 274" Conary Recipe 275au BufNewFile,BufRead *.recipe setf conaryrecipe 276 277" Controllable Regex Mutilator 278au BufNewFile,BufRead *.crm setf crm 279 280" Cyn++ 281au BufNewFile,BufRead *.cyn setf cynpp 282 283" Cynlib 284" .cc and .cpp files can be C++ or Cynlib. 285au BufNewFile,BufRead *.cc 286 \ if exists("cynlib_syntax_for_cc")|setf cynlib|else|setf cpp|endif 287au BufNewFile,BufRead *.cpp 288 \ if exists("cynlib_syntax_for_cpp")|setf cynlib|else|setf cpp|endif 289 290" C++ 291au BufNewFile,BufRead *.cxx,*.c++,*.hh,*.hxx,*.hpp,*.ipp,*.moc,*.tcc,*.inl setf cpp 292if has("fname_case") 293 au BufNewFile,BufRead *.C,*.H setf cpp 294endif 295 296" .h files can be C, Ch C++, ObjC or ObjC++. 297" Set c_syntax_for_h if you want C, ch_syntax_for_h if you want Ch. ObjC is 298" detected automatically. 299au BufNewFile,BufRead *.h call dist#ft#FTheader() 300 301" Ch (CHscript) 302au BufNewFile,BufRead *.chf setf ch 303 304" TLH files are C++ headers generated by Visual C++'s #import from typelibs 305au BufNewFile,BufRead *.tlh setf cpp 306 307" Cascading Style Sheets 308au BufNewFile,BufRead *.css setf css 309 310" Century Term Command Scripts (*.cmd too) 311au BufNewFile,BufRead *.con setf cterm 312 313" Changelog 314au BufNewFile,BufRead changelog.Debian,changelog.dch,NEWS.Debian,NEWS.dch 315 \ setf debchangelog 316 317au BufNewFile,BufRead [cC]hange[lL]og 318 \ if getline(1) =~ '; urgency=' 319 \| setf debchangelog 320 \| else 321 \| setf changelog 322 \| endif 323 324au BufNewFile,BufRead NEWS 325 \ if getline(1) =~ '; urgency=' 326 \| setf debchangelog 327 \| endif 328 329" CHILL 330au BufNewFile,BufRead *..ch setf chill 331 332" Changes for WEB and CWEB or CHILL 333au BufNewFile,BufRead *.ch call dist#ft#FTchange() 334 335" ChordPro 336au BufNewFile,BufRead *.chopro,*.crd,*.cho,*.crdpro,*.chordpro setf chordpro 337 338" Clean 339au BufNewFile,BufRead *.dcl,*.icl setf clean 340 341" Clever 342au BufNewFile,BufRead *.eni setf cl 343 344" Clever or dtd 345au BufNewFile,BufRead *.ent call dist#ft#FTent() 346 347" Clipper (or FoxPro; could also be eviews) 348au BufNewFile,BufRead *.prg 349 \ if exists("g:filetype_prg") | 350 \ exe "setf " . g:filetype_prg | 351 \ else | 352 \ setf clipper | 353 \ endif 354 355" Clojure 356au BufNewFile,BufRead *.clj,*.cljs,*.cljx,*.cljc setf clojure 357 358" Cmake 359au BufNewFile,BufRead CMakeLists.txt,*.cmake,*.cmake.in setf cmake 360 361" Cmusrc 362au BufNewFile,BufRead */.cmus/{autosave,rc,command-history,*.theme} setf cmusrc 363au BufNewFile,BufRead */cmus/{rc,*.theme} setf cmusrc 364 365" Cobol 366au BufNewFile,BufRead *.cbl,*.cob,*.lib setf cobol 367" cobol or zope form controller python script? (heuristic) 368au BufNewFile,BufRead *.cpy 369 \ if getline(1) =~ '^##' | 370 \ setf python | 371 \ else | 372 \ setf cobol | 373 \ endif 374 375" Coco/R 376au BufNewFile,BufRead *.atg setf coco 377 378" Cold Fusion 379au BufNewFile,BufRead *.cfm,*.cfi,*.cfc setf cf 380 381" Configure scripts 382au BufNewFile,BufRead configure.in,configure.ac setf config 383 384" CUDA Cumpute Unified Device Architecture 385au BufNewFile,BufRead *.cu,*.cuh setf cuda 386 387" Dockerfile; Podman uses the same syntax with name Containerfile 388au BufNewFile,BufRead Containerfile,Dockerfile,*.Dockerfile setf dockerfile 389 390" WildPackets EtherPeek Decoder 391au BufNewFile,BufRead *.dcd setf dcd 392 393" Enlightenment configuration files 394au BufNewFile,BufRead *enlightenment/*.cfg setf c 395 396" Eterm 397au BufNewFile,BufRead *Eterm/*.cfg setf eterm 398 399" Euphoria 3 or 4 400au BufNewFile,BufRead *.eu,*.ew,*.ex,*.exu,*.exw call dist#ft#EuphoriaCheck() 401if has("fname_case") 402 au BufNewFile,BufRead *.EU,*.EW,*.EX,*.EXU,*.EXW call dist#ft#EuphoriaCheck() 403endif 404 405" Lynx config files 406au BufNewFile,BufRead lynx.cfg setf lynx 407 408" Quake 409au BufNewFile,BufRead *baseq[2-3]/*.cfg,*id1/*.cfg setf quake 410au BufNewFile,BufRead *quake[1-3]/*.cfg setf quake 411 412" Quake C 413au BufNewFile,BufRead *.qc setf c 414 415" Configure files 416au BufNewFile,BufRead *.cfg setf cfg 417 418" Cucumber 419au BufNewFile,BufRead *.feature setf cucumber 420 421" Communicating Sequential Processes 422au BufNewFile,BufRead *.csp,*.fdr setf csp 423 424" CUPL logic description and simulation 425au BufNewFile,BufRead *.pld setf cupl 426au BufNewFile,BufRead *.si setf cuplsim 427 428" Dart 429au BufRead,BufNewfile *.dart,*.drt setf dart 430 431" Debian Control 432au BufNewFile,BufRead */debian/control setf debcontrol 433au BufNewFile,BufRead control 434 \ if getline(1) =~ '^Source:' 435 \| setf debcontrol 436 \| endif 437 438" Debian Copyright 439au BufNewFile,BufRead */debian/copyright setf debcopyright 440au BufNewFile,BufRead copyright 441 \ if getline(1) =~ '^Format:' 442 \| setf debcopyright 443 \| endif 444 445" Debian Sources.list 446au BufNewFile,BufRead */etc/apt/sources.list setf debsources 447au BufNewFile,BufRead */etc/apt/sources.list.d/*.list setf debsources 448 449" Deny hosts 450au BufNewFile,BufRead denyhosts.conf setf denyhosts 451 452" dnsmasq(8) configuration files 453au BufNewFile,BufRead */etc/dnsmasq.conf setf dnsmasq 454 455" ROCKLinux package description 456au BufNewFile,BufRead *.desc setf desc 457 458" the D language or dtrace 459au BufNewFile,BufRead *.d call dist#ft#DtraceCheck() 460 461" Desktop files 462au BufNewFile,BufRead *.desktop,.directory setf desktop 463 464" Dict config 465au BufNewFile,BufRead dict.conf,.dictrc setf dictconf 466 467" Dictd config 468au BufNewFile,BufRead dictd.conf setf dictdconf 469 470" Diff files 471au BufNewFile,BufRead *.diff,*.rej setf diff 472au BufNewFile,BufRead *.patch 473 \ if getline(1) =~ '^From [0-9a-f]\{40\} Mon Sep 17 00:00:00 2001$' | 474 \ setf gitsendemail | 475 \ else | 476 \ setf diff | 477 \ endif 478 479" Dircolors 480au BufNewFile,BufRead .dir_colors,.dircolors,*/etc/DIR_COLORS setf dircolors 481 482" Diva (with Skill) or InstallShield 483au BufNewFile,BufRead *.rul 484 \ if getline(1).getline(2).getline(3).getline(4).getline(5).getline(6) =~? 'InstallShield' | 485 \ setf ishd | 486 \ else | 487 \ setf diva | 488 \ endif 489 490" DCL (Digital Command Language - vms) or DNS zone file 491au BufNewFile,BufRead *.com call dist#ft#BindzoneCheck('dcl') 492 493" DOT 494au BufNewFile,BufRead *.dot,*.gv setf dot 495 496" Dylan - lid files 497au BufNewFile,BufRead *.lid setf dylanlid 498 499" Dylan - intr files (melange) 500au BufNewFile,BufRead *.intr setf dylanintr 501 502" Dylan 503au BufNewFile,BufRead *.dylan setf dylan 504 505" Microsoft Module Definition 506au BufNewFile,BufRead *.def setf def 507 508" Dracula 509au BufNewFile,BufRead *.drac,*.drc,*lvs,*lpe setf dracula 510 511" Datascript 512au BufNewFile,BufRead *.ds setf datascript 513 514" dsl 515au BufNewFile,BufRead *.dsl setf dsl 516 517" DTD (Document Type Definition for XML) 518au BufNewFile,BufRead *.dtd setf dtd 519 520" DTS/DSTI (device tree files) 521au BufNewFile,BufRead *.dts,*.dtsi setf dts 522 523" EDIF (*.edf,*.edif,*.edn,*.edo) or edn 524au BufNewFile,BufRead *.ed\(f\|if\|o\) setf edif 525au BufNewFile,BufRead *.edn 526 \ if getline(1) =~ '^\s*(\s*edif\>' | 527 \ setf edif | 528 \ else | 529 \ setf clojure | 530 \ endif 531 532" EditorConfig (close enough to dosini) 533au BufNewFile,BufRead .editorconfig setf dosini 534 535" Embedix Component Description 536au BufNewFile,BufRead *.ecd setf ecd 537 538" Eiffel or Specman or Euphoria 539au BufNewFile,BufRead *.e,*.E call dist#ft#FTe() 540 541" Elinks configuration 542au BufNewFile,BufRead */etc/elinks.conf,*/.elinks/elinks.conf setf elinks 543 544" ERicsson LANGuage; Yaws is erlang too 545au BufNewFile,BufRead *.erl,*.hrl,*.yaws setf erlang 546 547" Elm Filter Rules file 548au BufNewFile,BufRead filter-rules setf elmfilt 549 550" ESMTP rc file 551au BufNewFile,BufRead *esmtprc setf esmtprc 552 553" ESQL-C 554au BufNewFile,BufRead *.ec,*.EC setf esqlc 555 556" Esterel 557au BufNewFile,BufRead *.strl setf esterel 558 559" Essbase script 560au BufNewFile,BufRead *.csc setf csc 561 562" Exim 563au BufNewFile,BufRead exim.conf setf exim 564 565" Expect 566au BufNewFile,BufRead *.exp setf expect 567 568" Exports 569au BufNewFile,BufRead exports setf exports 570 571" Falcon 572au BufNewFile,BufRead *.fal setf falcon 573 574" Fantom 575au BufNewFile,BufRead *.fan,*.fwt setf fan 576 577" Factor 578au BufNewFile,BufRead *.factor setf factor 579 580" Fetchmail RC file 581au BufNewFile,BufRead .fetchmailrc setf fetchmail 582 583" FlexWiki - disabled, because it has side effects when a .wiki file 584" is not actually FlexWiki 585"au BufNewFile,BufRead *.wiki setf flexwiki 586 587" Focus Executable 588au BufNewFile,BufRead *.fex,*.focexec setf focexec 589 590" Focus Master file (but not for auto.master) 591au BufNewFile,BufRead auto.master setf conf 592au BufNewFile,BufRead *.mas,*.master setf master 593 594" Forth 595au BufNewFile,BufRead *.fs,*.ft,*.fth setf forth 596 597" Reva Forth 598au BufNewFile,BufRead *.frt setf reva 599 600" Fortran 601if has("fname_case") 602 au BufNewFile,BufRead *.F,*.FOR,*.FPP,*.FTN,*.F77,*.F90,*.F95,*.F03,*.F08 setf fortran 603endif 604au BufNewFile,BufRead *.f,*.for,*.fortran,*.fpp,*.ftn,*.f77,*.f90,*.f95,*.f03,*.f08 setf fortran 605 606" Framescript 607au BufNewFile,BufRead *.fsl setf framescript 608 609" FStab 610au BufNewFile,BufRead fstab,mtab setf fstab 611 612" GDB command files 613au BufNewFile,BufRead .gdbinit setf gdb 614 615" GDMO 616au BufNewFile,BufRead *.mo,*.gdmo setf gdmo 617 618" Gedcom 619au BufNewFile,BufRead *.ged,lltxxxxx.txt setf gedcom 620 621" Git 622au BufNewFile,BufRead COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG setf gitcommit 623au BufNewFile,BufRead *.git/config,.gitconfig,/etc/gitconfig setf gitconfig 624au BufNewFile,BufRead */.config/git/config setf gitconfig 625au BufNewFile,BufRead .gitmodules,*.git/modules/*/config setf gitconfig 626if !empty($XDG_CONFIG_HOME) 627 au BufNewFile,BufRead $XDG_CONFIG_HOME/git/config setf gitconfig 628endif 629au BufNewFile,BufRead git-rebase-todo setf gitrebase 630au BufRead,BufNewFile .gitsendemail.msg.?????? setf gitsendemail 631au BufNewFile,BufRead .msg.[0-9]* 632 \ if getline(1) =~ '^From.*# This line is ignored.$' | 633 \ setf gitsendemail | 634 \ endif 635au BufNewFile,BufRead *.git/* 636 \ if getline(1) =~ '^\x\{40\}\>\|^ref: ' | 637 \ setf git | 638 \ endif 639 640" Gkrellmrc 641au BufNewFile,BufRead gkrellmrc,gkrellmrc_? setf gkrellmrc 642 643" GP scripts (2.0 and onward) 644au BufNewFile,BufRead *.gp,.gprc setf gp 645 646" GPG 647au BufNewFile,BufRead */.gnupg/options setf gpg 648au BufNewFile,BufRead */.gnupg/gpg.conf setf gpg 649au BufNewFile,BufRead */usr/*/gnupg/options.skel setf gpg 650if !empty($GNUPGHOME) 651 au BufNewFile,BufRead $GNUPGHOME/options setf gpg 652 au BufNewFile,BufRead $GNUPGHOME/gpg.conf setf gpg 653endif 654 655" gnash(1) configuration files 656au BufNewFile,BufRead gnashrc,.gnashrc,gnashpluginrc,.gnashpluginrc setf gnash 657 658" Gitolite 659au BufNewFile,BufRead gitolite.conf setf gitolite 660au BufNewFile,BufRead {,.}gitolite.rc,example.gitolite.rc setf perl 661 662" Gnuplot scripts 663au BufNewFile,BufRead *.gpi setf gnuplot 664 665" Go (Google) 666au BufNewFile,BufRead *.go setf go 667 668" GrADS scripts 669au BufNewFile,BufRead *.gs setf grads 670 671" Gretl 672au BufNewFile,BufRead *.gretl setf gretl 673 674" Groovy 675au BufNewFile,BufRead *.gradle,*.groovy setf groovy 676 677" GNU Server Pages 678au BufNewFile,BufRead *.gsp setf gsp 679 680" Group file 681au 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 682 683" GTK RC 684au BufNewFile,BufRead .gtkrc,gtkrc setf gtkrc 685 686" Haml 687au BufNewFile,BufRead *.haml setf haml 688 689" Hamster Classic | Playground files 690au BufNewFile,BufRead *.hsc,*.hsm setf hamster 691 692" Haskell 693au BufNewFile,BufRead *.hs,*.hs-boot setf haskell 694au BufNewFile,BufRead *.lhs setf lhaskell 695au BufNewFile,BufRead *.chs setf chaskell 696 697" Haste 698au BufNewFile,BufRead *.ht setf haste 699au BufNewFile,BufRead *.htpp setf hastepreproc 700 701" Hercules 702au BufNewFile,BufRead *.vc,*.ev,*.sum,*.errsum setf hercules 703 704" HEX (Intel) 705au BufNewFile,BufRead *.hex,*.h32 setf hex 706 707" Hollywood 708au BufRead,BufNewFile *.hws setf hollywood 709 710" Tilde (must be before HTML) 711au BufNewFile,BufRead *.t.html setf tilde 712 713" HTML (.shtml and .stm for server side) 714au BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm call dist#ft#FThtml() 715 716" HTML with Ruby - eRuby 717au BufNewFile,BufRead *.erb,*.rhtml setf eruby 718 719" HTML with M4 720au BufNewFile,BufRead *.html.m4 setf htmlm4 721 722" Some template. Used to be HTML Cheetah. 723au BufNewFile,BufRead *.tmpl setf template 724 725" Host config 726au BufNewFile,BufRead */etc/host.conf setf hostconf 727 728" Hosts access 729au BufNewFile,BufRead */etc/hosts.allow,*/etc/hosts.deny setf hostsaccess 730 731" Hyper Builder 732au BufNewFile,BufRead *.hb setf hb 733 734" Httest 735au BufNewFile,BufRead *.htt,*.htb setf httest 736 737" Icon 738au BufNewFile,BufRead *.icn setf icon 739 740" IDL (Interface Description Language) 741au BufNewFile,BufRead *.idl call dist#ft#FTidl() 742 743" Microsoft IDL (Interface Description Language) Also *.idl 744" MOF = WMI (Windows Management Instrumentation) Managed Object Format 745au BufNewFile,BufRead *.odl,*.mof setf msidl 746 747" Icewm menu 748au BufNewFile,BufRead */.icewm/menu setf icemenu 749 750" Indent profile (must come before IDL *.pro!) 751au BufNewFile,BufRead .indent.pro setf indent 752au BufNewFile,BufRead indent.pro call dist#ft#ProtoCheck('indent') 753 754" IDL (Interactive Data Language) 755au BufNewFile,BufRead *.pro call dist#ft#ProtoCheck('idlang') 756 757" Indent RC 758au BufNewFile,BufRead indentrc setf indent 759 760" Inform 761au BufNewFile,BufRead *.inf,*.INF setf inform 762 763" Initng 764au BufNewFile,BufRead */etc/initng/*/*.i,*.ii setf initng 765 766" Innovation Data Processing 767au BufRead,BufNewFile upstream.dat\c,upstream.*.dat\c,*.upstream.dat\c setf upstreamdat 768au BufRead,BufNewFile fdrupstream.log,upstream.log\c,upstream.*.log\c,*.upstream.log\c,UPSTREAM-*.log\c setf upstreamlog 769au BufRead,BufNewFile upstreaminstall.log\c,upstreaminstall.*.log\c,*.upstreaminstall.log\c setf upstreaminstalllog 770au BufRead,BufNewFile usserver.log\c,usserver.*.log\c,*.usserver.log\c setf usserverlog 771au BufRead,BufNewFile usw2kagt.log\c,usw2kagt.*.log\c,*.usw2kagt.log\c setf usw2kagtlog 772 773" Ipfilter 774au BufNewFile,BufRead ipf.conf,ipf6.conf,ipf.rules setf ipfilter 775 776" Informix 4GL (source - canonical, include file, I4GL+M4 preproc.) 777au BufNewFile,BufRead *.4gl,*.4gh,*.m4gl setf fgl 778 779" .INI file for MSDOS 780au BufNewFile,BufRead *.ini setf dosini 781 782" SysV Inittab 783au BufNewFile,BufRead inittab setf inittab 784 785" Inno Setup 786au BufNewFile,BufRead *.iss setf iss 787 788" J 789au BufNewFile,BufRead *.ijs setf j 790 791" JAL 792au BufNewFile,BufRead *.jal,*.JAL setf jal 793 794" Jam 795au BufNewFile,BufRead *.jpl,*.jpr setf jam 796 797" Java 798au BufNewFile,BufRead *.java,*.jav setf java 799 800" JavaCC 801au BufNewFile,BufRead *.jj,*.jjt setf javacc 802 803" JavaScript, ECMAScript, ES module script, CommonJS script 804au BufNewFile,BufRead *.js,*.javascript,*.es,*.mjs,*.cjs setf javascript 805 806" JavaScript with React 807au BufNewFile,BufRead *.jsx setf javascriptreact 808 809" Java Server Pages 810au BufNewFile,BufRead *.jsp setf jsp 811 812" Java Properties resource file (note: doesn't catch font.properties.pl) 813au BufNewFile,BufRead *.properties,*.properties_??,*.properties_??_?? setf jproperties 814 815" Jess 816au BufNewFile,BufRead *.clp setf jess 817 818" Jgraph 819au BufNewFile,BufRead *.jgr setf jgraph 820 821" Jovial 822au BufNewFile,BufRead *.jov,*.j73,*.jovial setf jovial 823 824" JSON 825au BufNewFile,BufRead *.json,*.jsonp,*.webmanifest setf json 826 827" Kixtart 828au BufNewFile,BufRead *.kix setf kix 829 830" Kimwitu[++] 831au BufNewFile,BufRead *.k setf kwt 832 833" Kivy 834au BufNewFile,BufRead *.kv setf kivy 835 836" Kotlin 837au BufNewFile,BufRead *.kt,*.ktm,*.kts setf kotlin 838 839" KDE script 840au BufNewFile,BufRead *.ks setf kscript 841 842" Kconfig 843au BufNewFile,BufRead Kconfig,Kconfig.debug setf kconfig 844 845" Lace (ISE) 846au BufNewFile,BufRead *.ace,*.ACE setf lace 847 848" Latte 849au BufNewFile,BufRead *.latte,*.lte setf latte 850 851" Limits 852au BufNewFile,BufRead */etc/limits,*/etc/*limits.conf,*/etc/*limits.d/*.conf setf limits 853 854" LambdaProlog (*.mod too, see Modsim) 855au BufNewFile,BufRead *.sig setf lprolog 856 857" LDAP LDIF 858au BufNewFile,BufRead *.ldif setf ldif 859 860" Ld loader 861au BufNewFile,BufRead *.ld setf ld 862 863" Less 864au BufNewFile,BufRead *.less setf less 865 866" Lex 867au BufNewFile,BufRead *.lex,*.l,*.lxx,*.l++ setf lex 868 869" Libao 870au BufNewFile,BufRead */etc/libao.conf,*/.libao setf libao 871 872" Libsensors 873au BufNewFile,BufRead */etc/sensors.conf,*/etc/sensors3.conf setf sensors 874 875" LFTP 876au BufNewFile,BufRead lftp.conf,.lftprc,*lftp/rc setf lftp 877 878" Lifelines (or Lex for C++!) 879au BufNewFile,BufRead *.ll setf lifelines 880 881" Lilo: Linux loader 882au BufNewFile,BufRead lilo.conf setf lilo 883 884" Lisp (*.el = ELisp, *.cl = Common Lisp, *.jl = librep Lisp) 885if has("fname_case") 886 au BufNewFile,BufRead *.lsp,*.lisp,*.el,*.cl,*.jl,*.L,.emacs,.sawfishrc setf lisp 887else 888 au BufNewFile,BufRead *.lsp,*.lisp,*.el,*.cl,*.jl,.emacs,.sawfishrc setf lisp 889endif 890 891" SBCL implementation of Common Lisp 892au BufNewFile,BufRead sbclrc,.sbclrc setf lisp 893 894" Liquid 895au BufNewFile,BufRead *.liquid setf liquid 896 897" Lite 898au BufNewFile,BufRead *.lite,*.lt setf lite 899 900" LiteStep RC files 901au BufNewFile,BufRead */LiteStep/*/*.rc setf litestep 902 903" Login access 904au BufNewFile,BufRead */etc/login.access setf loginaccess 905 906" Login defs 907au BufNewFile,BufRead */etc/login.defs setf logindefs 908 909" Logtalk 910au BufNewFile,BufRead *.lgt setf logtalk 911 912" LOTOS 913au BufNewFile,BufRead *.lot,*.lotos setf lotos 914 915" Lout (also: *.lt) 916au BufNewFile,BufRead *.lou,*.lout setf lout 917 918" Lua 919au BufNewFile,BufRead *.lua setf lua 920 921" Luarocks 922au BufNewFile,BufRead *.rockspec setf lua 923 924" Linden Scripting Language (Second Life) 925au BufNewFile,BufRead *.lsl setf lsl 926 927" Lynx style file (or LotusScript!) 928au BufNewFile,BufRead *.lss setf lss 929 930" M4 931au BufNewFile,BufRead *.m4 932 \ if expand("<afile>") !~? 'html.m4$\|fvwm2rc' | setf m4 | endif 933 934" MaGic Point 935au BufNewFile,BufRead *.mgp setf mgp 936 937" Mail (for Elm, trn, mutt, muttng, rn, slrn, neomutt) 938au 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 939 940" Mail aliases 941au BufNewFile,BufRead */etc/mail/aliases,*/etc/aliases setf mailaliases 942 943" Mailcap configuration file 944au BufNewFile,BufRead .mailcap,mailcap setf mailcap 945 946" Makefile 947au BufNewFile,BufRead *[mM]akefile,*.mk,*.mak,*.dsp setf make 948 949" MakeIndex 950au BufNewFile,BufRead *.ist,*.mst setf ist 951 952" Mallard 953au BufNewFile,BufRead *.page setf mallard 954 955" Manpage 956au BufNewFile,BufRead *.man setf man 957 958" Man config 959au BufNewFile,BufRead */etc/man.conf,man.config setf manconf 960 961" Maple V 962au BufNewFile,BufRead *.mv,*.mpl,*.mws setf maple 963 964" Map (UMN mapserver config file) 965au BufNewFile,BufRead *.map setf map 966 967" Markdown 968au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md setf markdown 969 970" Mason 971au BufNewFile,BufRead *.mason,*.mhtml,*.comp setf mason 972 973" Mathematica, Matlab, Murphi or Objective C 974au BufNewFile,BufRead *.m call dist#ft#FTm() 975 976" Mathematica notebook 977au BufNewFile,BufRead *.nb setf mma 978 979" Maya Extension Language 980au BufNewFile,BufRead *.mel setf mel 981 982" Mercurial (hg) commit file 983au BufNewFile,BufRead hg-editor-*.txt setf hgcommit 984 985" Mercurial config (looks like generic config file) 986au BufNewFile,BufRead *.hgrc,*hgrc setf cfg 987 988" Meson Build system config 989au BufNewFile,BufRead meson.build,meson_options.txt setf meson 990 991" Messages (logs mostly) 992au 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 993 994" Metafont 995au BufNewFile,BufRead *.mf setf mf 996 997" MetaPost 998au BufNewFile,BufRead *.mp setf mp 999 1000" MGL 1001au BufNewFile,BufRead *.mgl setf mgl 1002 1003" MIX - Knuth assembly 1004au BufNewFile,BufRead *.mix,*.mixal setf mix 1005 1006" MMIX or VMS makefile 1007au BufNewFile,BufRead *.mms call dist#ft#FTmms() 1008 1009" Symbian meta-makefile definition (MMP) 1010au BufNewFile,BufRead *.mmp setf mmp 1011 1012" Modsim III (or LambdaProlog) 1013au BufNewFile,BufRead *.mod 1014 \ if getline(1) =~ '\<module\>' | 1015 \ setf lprolog | 1016 \ else | 1017 \ setf modsim3 | 1018 \ endif 1019 1020" Modula 2 (.md removed in favor of Markdown) 1021au BufNewFile,BufRead *.m2,*.DEF,*.MOD,*.mi setf modula2 1022 1023" Modula 3 (.m3, .i3, .mg, .ig) 1024au BufNewFile,BufRead *.[mi][3g] setf modula3 1025 1026" Monk 1027au BufNewFile,BufRead *.isc,*.monk,*.ssc,*.tsc setf monk 1028 1029" MOO 1030au BufNewFile,BufRead *.moo setf moo 1031 1032" Modconf 1033au BufNewFile,BufRead */etc/modules.conf,*/etc/modules,*/etc/conf.modules setf modconf 1034 1035" Mplayer config 1036au BufNewFile,BufRead mplayer.conf,*/.mplayer/config setf mplayerconf 1037 1038" Motorola S record 1039au BufNewFile,BufRead *.s19,*.s28,*.s37,*.mot,*.srec setf srec 1040 1041" Mrxvtrc 1042au BufNewFile,BufRead mrxvtrc,.mrxvtrc setf mrxvtrc 1043 1044" Msql 1045au BufNewFile,BufRead *.msql setf msql 1046 1047" Mysql 1048au BufNewFile,BufRead *.mysql setf mysql 1049 1050" Mutt setup files (must be before catch *.rc) 1051au BufNewFile,BufRead */etc/Muttrc.d/* call s:StarSetf('muttrc') 1052 1053" M$ Resource files 1054au BufNewFile,BufRead *.rc,*.rch setf rc 1055 1056" MuPAD source 1057au BufRead,BufNewFile *.mu setf mupad 1058 1059" Mush 1060au BufNewFile,BufRead *.mush setf mush 1061 1062" Mutt setup file (also for Muttng) 1063au BufNewFile,BufRead Mutt{ng,}rc setf muttrc 1064 1065" N1QL 1066au BufRead,BufNewfile *.n1ql,*.nql setf n1ql 1067 1068" Nano 1069au BufNewFile,BufRead */etc/nanorc,*.nanorc setf nanorc 1070 1071" Nastran input/DMAP 1072"au BufNewFile,BufRead *.dat setf nastran 1073 1074" Natural 1075au BufNewFile,BufRead *.NS[ACGLMNPS] setf natural 1076 1077" Noemutt setup file 1078au BufNewFile,BufRead Neomuttrc setf neomuttrc 1079 1080" Netrc 1081au BufNewFile,BufRead .netrc setf netrc 1082 1083" Ninja file 1084au BufNewFile,BufRead *.ninja setf ninja 1085 1086" Novell netware batch files 1087au BufNewFile,BufRead *.ncf setf ncf 1088 1089" Nroff/Troff (*.ms and *.t are checked below) 1090au BufNewFile,BufRead *.me 1091 \ if expand("<afile>") != "read.me" && expand("<afile>") != "click.me" | 1092 \ setf nroff | 1093 \ endif 1094au BufNewFile,BufRead *.tr,*.nr,*.roff,*.tmac,*.mom setf nroff 1095au BufNewFile,BufRead *.[1-9] call dist#ft#FTnroff() 1096 1097" Nroff or Objective C++ 1098au BufNewFile,BufRead *.mm call dist#ft#FTmm() 1099 1100" Not Quite C 1101au BufNewFile,BufRead *.nqc setf nqc 1102 1103" NSE - Nmap Script Engine - uses Lua syntax 1104au BufNewFile,BufRead *.nse setf lua 1105 1106" NSIS 1107au BufNewFile,BufRead *.nsi,*.nsh setf nsis 1108 1109" OCAML 1110au BufNewFile,BufRead *.ml,*.mli,*.mll,*.mly,.ocamlinit setf ocaml 1111 1112" Occam 1113au BufNewFile,BufRead *.occ setf occam 1114 1115" Omnimark 1116au BufNewFile,BufRead *.xom,*.xin setf omnimark 1117 1118" OpenROAD 1119au BufNewFile,BufRead *.or setf openroad 1120 1121" OPL 1122au BufNewFile,BufRead *.[Oo][Pp][Ll] setf opl 1123 1124" Oracle config file 1125au BufNewFile,BufRead *.ora setf ora 1126 1127" Packet filter conf 1128au BufNewFile,BufRead pf.conf setf pf 1129 1130" Pam conf 1131au BufNewFile,BufRead */etc/pam.conf setf pamconf 1132 1133" PApp 1134au BufNewFile,BufRead *.papp,*.pxml,*.pxsl setf papp 1135 1136" Password file 1137au 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 1138 1139" Pascal (also *.p) 1140au BufNewFile,BufRead *.pas setf pascal 1141 1142" Delphi project file 1143au BufNewFile,BufRead *.dpr setf pascal 1144 1145" PDF 1146au BufNewFile,BufRead *.pdf setf pdf 1147 1148" PCMK - HAE - crm configure edit 1149au BufNewFile,BufRead *.pcmk setf pcmk 1150 1151" Perl 1152if has("fname_case") 1153 au BufNewFile,BufRead *.pl,*.PL call dist#ft#FTpl() 1154else 1155 au BufNewFile,BufRead *.pl call dist#ft#FTpl() 1156endif 1157au BufNewFile,BufRead *.plx,*.al,*.psgi setf perl 1158au BufNewFile,BufRead *.p6,*.pm6,*.pl6 setf perl6 1159 1160" Perl, XPM or XPM2 1161au BufNewFile,BufRead *.pm 1162 \ if getline(1) =~ "XPM2" | 1163 \ setf xpm2 | 1164 \ elseif getline(1) =~ "XPM" | 1165 \ setf xpm | 1166 \ else | 1167 \ setf perl | 1168 \ endif 1169 1170" Perl POD 1171au BufNewFile,BufRead *.pod setf pod 1172au BufNewFile,BufRead *.pod6 setf pod6 1173 1174" Php, php3, php4, etc. 1175" Also Phtml (was used for PHP 2 in the past) 1176" Also .ctp for Cake template file 1177au BufNewFile,BufRead *.php,*.php\d,*.phtml,*.ctp setf php 1178 1179" Pike and Cmod 1180au BufNewFile,BufRead *.pike,*.pmod setf pike 1181au BufNewFile,BufRead *.cmod setf cmod 1182 1183" Pinfo config 1184au BufNewFile,BufRead */etc/pinforc,*/.pinforc setf pinfo 1185 1186" Palm Resource compiler 1187au BufNewFile,BufRead *.rcp setf pilrc 1188 1189" Pine config 1190au BufNewFile,BufRead .pinerc,pinerc,.pinercex,pinercex setf pine 1191 1192" Pipenv Pipfiles 1193au BufNewFile,BufRead Pipfile setf config 1194au BufNewFile,BufRead Pipfile.lock setf json 1195 1196" PL/1, PL/I 1197au BufNewFile,BufRead *.pli,*.pl1 setf pli 1198 1199" PL/M (also: *.inp) 1200au BufNewFile,BufRead *.plm,*.p36,*.pac setf plm 1201 1202" PL/SQL 1203au BufNewFile,BufRead *.pls,*.plsql setf plsql 1204 1205" PLP 1206au BufNewFile,BufRead *.plp setf plp 1207 1208" PO and PO template (GNU gettext) 1209au BufNewFile,BufRead *.po,*.pot setf po 1210 1211" Postfix main config 1212au BufNewFile,BufRead main.cf setf pfmain 1213 1214" PostScript (+ font files, encapsulated PostScript, Adobe Illustrator) 1215au BufNewFile,BufRead *.ps,*.pfa,*.afm,*.eps,*.epsf,*.epsi,*.ai setf postscr 1216 1217" PostScript Printer Description 1218au BufNewFile,BufRead *.ppd setf ppd 1219 1220" Povray 1221au BufNewFile,BufRead *.pov setf pov 1222 1223" Povray configuration 1224au BufNewFile,BufRead .povrayrc setf povini 1225 1226" Povray, PHP or assembly 1227au BufNewFile,BufRead *.inc call dist#ft#FTinc() 1228 1229" Printcap and Termcap 1230au BufNewFile,BufRead *printcap 1231 \ let b:ptcap_type = "print" | setf ptcap 1232au BufNewFile,BufRead *termcap 1233 \ let b:ptcap_type = "term" | setf ptcap 1234 1235" PCCTS / ANTRL 1236"au BufNewFile,BufRead *.g setf antrl 1237au BufNewFile,BufRead *.g setf pccts 1238 1239" PPWizard 1240au BufNewFile,BufRead *.it,*.ih setf ppwiz 1241 1242" Obj 3D file format 1243" TODO: is there a way to avoid MS-Windows Object files? 1244au BufNewFile,BufRead *.obj setf obj 1245 1246" Oracle Pro*C/C++ 1247au BufNewFile,BufRead *.pc setf proc 1248 1249" Privoxy actions file 1250au BufNewFile,BufRead *.action setf privoxy 1251 1252" Procmail 1253au BufNewFile,BufRead .procmail,.procmailrc setf procmail 1254 1255" Progress or CWEB 1256au BufNewFile,BufRead *.w call dist#ft#FTprogress_cweb() 1257 1258" Progress or assembly 1259au BufNewFile,BufRead *.i call dist#ft#FTprogress_asm() 1260 1261" Progress or Pascal 1262au BufNewFile,BufRead *.p call dist#ft#FTprogress_pascal() 1263 1264" Software Distributor Product Specification File (POSIX 1387.2-1995) 1265au BufNewFile,BufRead *.psf setf psf 1266au BufNewFile,BufRead INDEX,INFO 1267 \ if getline(1) =~ '^\s*\(distribution\|installed_software\|root\|bundle\|product\)\s*$' | 1268 \ setf psf | 1269 \ endif 1270 1271" Prolog 1272au BufNewFile,BufRead *.pdb setf prolog 1273 1274" Promela 1275au BufNewFile,BufRead *.pml setf promela 1276 1277" Google protocol buffers 1278au BufNewFile,BufRead *.proto setf proto 1279 1280" Protocols 1281au BufNewFile,BufRead */etc/protocols setf protocols 1282 1283" Pyrex 1284au BufNewFile,BufRead *.pyx,*.pxd setf pyrex 1285 1286" Python, Python Shell Startup and Python Stub Files 1287" Quixote (Python-based web framework) 1288au BufNewFile,BufRead *.py,*.pyw,.pythonstartup,.pythonrc,*.ptl,*.pyi setf python 1289 1290" Radiance 1291au BufNewFile,BufRead *.rad,*.mat setf radiance 1292 1293" Ratpoison config/command files 1294au BufNewFile,BufRead .ratpoisonrc,ratpoisonrc setf ratpoison 1295 1296" RCS file 1297au BufNewFile,BufRead *\,v setf rcs 1298 1299" Readline 1300au BufNewFile,BufRead .inputrc,inputrc setf readline 1301 1302" Registry for MS-Windows 1303au BufNewFile,BufRead *.reg 1304 \ if getline(1) =~? '^REGEDIT[0-9]*\s*$\|^Windows Registry Editor Version \d*\.\d*\s*$' | setf registry | endif 1305 1306" Renderman Interface Bytestream 1307au BufNewFile,BufRead *.rib setf rib 1308 1309" Rego Policy Language 1310au BufNewFile,BufRead *.rego setf rego 1311 1312" Rexx 1313au BufNewFile,BufRead *.rex,*.orx,*.rxo,*.rxj,*.jrexx,*.rexxj,*.rexx,*.testGroup,*.testUnit setf rexx 1314 1315" R (Splus) 1316if has("fname_case") 1317 au BufNewFile,BufRead *.s,*.S setf r 1318else 1319 au BufNewFile,BufRead *.s setf r 1320endif 1321 1322" R Help file 1323if has("fname_case") 1324 au BufNewFile,BufRead *.rd,*.Rd setf rhelp 1325else 1326 au BufNewFile,BufRead *.rd setf rhelp 1327endif 1328 1329" R noweb file 1330if has("fname_case") 1331 au BufNewFile,BufRead *.Rnw,*.rnw,*.Snw,*.snw setf rnoweb 1332else 1333 au BufNewFile,BufRead *.rnw,*.snw setf rnoweb 1334endif 1335 1336" R Markdown file 1337if has("fname_case") 1338 au BufNewFile,BufRead *.Rmd,*.rmd,*.Smd,*.smd setf rmd 1339else 1340 au BufNewFile,BufRead *.rmd,*.smd setf rmd 1341endif 1342 1343" R reStructuredText file 1344if has("fname_case") 1345 au BufNewFile,BufRead *.Rrst,*.rrst,*.Srst,*.srst setf rrst 1346else 1347 au BufNewFile,BufRead *.rrst,*.srst setf rrst 1348endif 1349 1350" Rexx, Rebol or R 1351au BufNewFile,BufRead *.r,*.R call dist#ft#FTr() 1352 1353" Remind 1354au BufNewFile,BufRead .reminders,*.remind,*.rem setf remind 1355 1356" Resolv.conf 1357au BufNewFile,BufRead resolv.conf setf resolv 1358 1359" Relax NG Compact 1360au BufNewFile,BufRead *.rnc setf rnc 1361 1362" Relax NG XML 1363au BufNewFile,BufRead *.rng setf rng 1364 1365" RPL/2 1366au BufNewFile,BufRead *.rpl setf rpl 1367 1368" Robots.txt 1369au BufNewFile,BufRead robots.txt setf robots 1370 1371" Rpcgen 1372au BufNewFile,BufRead *.x setf rpcgen 1373 1374" reStructuredText Documentation Format 1375au BufNewFile,BufRead *.rst setf rst 1376 1377" RTF 1378au BufNewFile,BufRead *.rtf setf rtf 1379 1380" Interactive Ruby shell 1381au BufNewFile,BufRead .irbrc,irbrc setf ruby 1382 1383" Ruby 1384au BufNewFile,BufRead *.rb,*.rbw setf ruby 1385 1386" RubyGems 1387au BufNewFile,BufRead *.gemspec setf ruby 1388 1389" Rust 1390au BufNewFile,BufRead *.rs setf rust 1391 1392" Rackup 1393au BufNewFile,BufRead *.ru setf ruby 1394 1395" Bundler 1396au BufNewFile,BufRead Gemfile setf ruby 1397 1398" Ruby on Rails 1399au BufNewFile,BufRead *.builder,*.rxml,*.rjs setf ruby 1400 1401" Rantfile and Rakefile is like Ruby 1402au BufNewFile,BufRead [rR]antfile,*.rant,[rR]akefile,*.rake setf ruby 1403 1404" S-lang (or shader language, or SmallLisp) 1405au BufNewFile,BufRead *.sl setf slang 1406 1407" Samba config 1408au BufNewFile,BufRead smb.conf setf samba 1409 1410" SAS script 1411au BufNewFile,BufRead *.sas setf sas 1412 1413" Sass 1414au BufNewFile,BufRead *.sass setf sass 1415 1416" Sather 1417au BufNewFile,BufRead *.sa setf sather 1418 1419" Scala 1420au BufNewFile,BufRead *.scala setf scala 1421 1422" SBT - Scala Build Tool 1423au BufNewFile,BufRead *.sbt setf sbt 1424 1425" Scilab 1426au BufNewFile,BufRead *.sci,*.sce setf scilab 1427 1428" SCSS 1429au BufNewFile,BufRead *.scss setf scss 1430 1431" SD: Streaming Descriptors 1432au BufNewFile,BufRead *.sd setf sd 1433 1434" SDL 1435au BufNewFile,BufRead *.sdl,*.pr setf sdl 1436 1437" sed 1438au BufNewFile,BufRead *.sed setf sed 1439 1440" Sieve (RFC 3028, 5228) 1441au BufNewFile,BufRead *.siv,*.sieve setf sieve 1442 1443" Sendmail 1444au BufNewFile,BufRead sendmail.cf setf sm 1445 1446" Sendmail .mc files are actually m4. Could also be MS Message text file. 1447au BufNewFile,BufRead *.mc call dist#ft#McSetf() 1448 1449" Services 1450au BufNewFile,BufRead */etc/services setf services 1451 1452" Service Location config 1453au BufNewFile,BufRead */etc/slp.conf setf slpconf 1454 1455" Service Location registration 1456au BufNewFile,BufRead */etc/slp.reg setf slpreg 1457 1458" Service Location SPI 1459au BufNewFile,BufRead */etc/slp.spi setf slpspi 1460 1461" Setserial config 1462au BufNewFile,BufRead */etc/serial.conf setf setserial 1463 1464" SGML 1465au BufNewFile,BufRead *.sgm,*.sgml 1466 \ if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'linuxdoc' | 1467 \ setf sgmllnx | 1468 \ elseif getline(1) =~ '<!DOCTYPE.*DocBook' || getline(2) =~ '<!DOCTYPE.*DocBook' | 1469 \ let b:docbk_type = "sgml" | 1470 \ let b:docbk_ver = 4 | 1471 \ setf docbk | 1472 \ else | 1473 \ setf sgml | 1474 \ endif 1475 1476" SGMLDECL 1477au BufNewFile,BufRead *.decl,*.dcl,*.dec 1478 \ if getline(1).getline(2).getline(3) =~? '^<!SGML' | 1479 \ setf sgmldecl | 1480 \ endif 1481 1482" SGML catalog file 1483au BufNewFile,BufRead catalog setf catalog 1484 1485" Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc. 1486" Gentoo ebuilds and Arch Linux PKGBUILDs are actually bash scripts 1487" NOTE: Patterns ending in a star are further down, these have lower priority. 1488au BufNewFile,BufRead .bashrc,bashrc,bash.bashrc,.bash[_-]profile,.bash[_-]logout,.bash[_-]aliases,bash-fc[-.],*.bash,*/{,.}bash[_-]completion{,.d,.sh}{,/*},*.ebuild,*.eclass,PKGBUILD call dist#ft#SetFileTypeSH("bash") 1489au BufNewFile,BufRead .kshrc,*.ksh call dist#ft#SetFileTypeSH("ksh") 1490au BufNewFile,BufRead */etc/profile,.profile,*.sh,*.env call dist#ft#SetFileTypeSH(getline(1)) 1491 1492 1493" Shell script (Arch Linux) or PHP file (Drupal) 1494au BufNewFile,BufRead *.install 1495 \ if getline(1) =~ '<?php' | 1496 \ setf php | 1497 \ else | 1498 \ call dist#ft#SetFileTypeSH("bash") | 1499 \ endif 1500 1501" tcsh scripts (patterns ending in a star further below) 1502au BufNewFile,BufRead .tcshrc,*.tcsh,tcsh.tcshrc,tcsh.login call dist#ft#SetFileTypeShell("tcsh") 1503 1504" csh scripts, but might also be tcsh scripts (on some systems csh is tcsh) 1505" (patterns ending in a start further below) 1506au BufNewFile,BufRead .login,.cshrc,csh.cshrc,csh.login,csh.logout,*.csh,.alias call dist#ft#CSH() 1507 1508" Z-Shell script (patterns ending in a star further below) 1509au BufNewFile,BufRead .zprofile,*/etc/zprofile,.zfbfmarks setf zsh 1510au BufNewFile,BufRead .zshrc,.zshenv,.zlogin,.zlogout,.zcompdump setf zsh 1511au BufNewFile,BufRead *.zsh setf zsh 1512 1513" Scheme 1514au BufNewFile,BufRead *.scm,*.ss,*.rkt setf scheme 1515 1516" Screen RC 1517au BufNewFile,BufRead .screenrc,screenrc setf screen 1518 1519" Simula 1520au BufNewFile,BufRead *.sim setf simula 1521 1522" SINDA 1523au BufNewFile,BufRead *.sin,*.s85 setf sinda 1524 1525" SiSU 1526au BufNewFile,BufRead *.sst,*.ssm,*.ssi,*.-sst,*._sst setf sisu 1527au BufNewFile,BufRead *.sst.meta,*.-sst.meta,*._sst.meta setf sisu 1528 1529" SKILL 1530au BufNewFile,BufRead *.il,*.ils,*.cdf setf skill 1531 1532" SLRN 1533au BufNewFile,BufRead .slrnrc setf slrnrc 1534au BufNewFile,BufRead *.score setf slrnsc 1535 1536" Smalltalk (and TeX) 1537au BufNewFile,BufRead *.st setf st 1538au BufNewFile,BufRead *.cls 1539 \ if getline(1) =~ '^%' | 1540 \ setf tex | 1541 \ elseif getline(1)[0] == '#' && getline(1) =~ 'rexx' | 1542 \ setf rexx | 1543 \ else | 1544 \ setf st | 1545 \ endif 1546 1547" Smarty templates 1548au BufNewFile,BufRead *.tpl setf smarty 1549 1550" SMIL or XML 1551au BufNewFile,BufRead *.smil 1552 \ if getline(1) =~ '<?\s*xml.*?>' | 1553 \ setf xml | 1554 \ else | 1555 \ setf smil | 1556 \ endif 1557 1558" SMIL or SNMP MIB file 1559au BufNewFile,BufRead *.smi 1560 \ if getline(1) =~ '\<smil\>' | 1561 \ setf smil | 1562 \ else | 1563 \ setf mib | 1564 \ endif 1565 1566" SMITH 1567au BufNewFile,BufRead *.smt,*.smith setf smith 1568 1569" Snobol4 and spitbol 1570au BufNewFile,BufRead *.sno,*.spt setf snobol4 1571 1572" SNMP MIB files 1573au BufNewFile,BufRead *.mib,*.my setf mib 1574 1575" Snort Configuration 1576au BufNewFile,BufRead *.hog,snort.conf,vision.conf setf hog 1577au BufNewFile,BufRead *.rules call dist#ft#FTRules() 1578 1579" Spec (Linux RPM) 1580au BufNewFile,BufRead *.spec setf spec 1581 1582" Speedup (AspenTech plant simulator) 1583au BufNewFile,BufRead *.speedup,*.spdata,*.spd setf spup 1584 1585" Slice 1586au BufNewFile,BufRead *.ice setf slice 1587 1588" Spice 1589au BufNewFile,BufRead *.sp,*.spice setf spice 1590 1591" Spyce 1592au BufNewFile,BufRead *.spy,*.spi setf spyce 1593 1594" Squid 1595au BufNewFile,BufRead squid.conf setf squid 1596 1597" SQL for Oracle Designer 1598au BufNewFile,BufRead *.tyb,*.typ,*.tyc,*.pkb,*.pks setf sql 1599 1600" SQL 1601au BufNewFile,BufRead *.sql call dist#ft#SQL() 1602 1603" SQLJ 1604au BufNewFile,BufRead *.sqlj setf sqlj 1605 1606" SQR 1607au BufNewFile,BufRead *.sqr,*.sqi setf sqr 1608 1609" OpenSSH configuration 1610au BufNewFile,BufRead ssh_config,*/.ssh/config setf sshconfig 1611 1612" OpenSSH server configuration 1613au BufNewFile,BufRead sshd_config setf sshdconfig 1614 1615" Stata 1616au BufNewFile,BufRead *.ado,*.do,*.imata,*.mata setf stata 1617" Also *.class, but not when it's a Java bytecode file 1618au BufNewFile,BufRead *.class 1619 \ if getline(1) !~ "^\xca\xfe\xba\xbe" | setf stata | endif 1620 1621" SMCL 1622au BufNewFile,BufRead *.hlp,*.ihlp,*.smcl setf smcl 1623 1624" Stored Procedures 1625au BufNewFile,BufRead *.stp setf stp 1626 1627" Standard ML 1628au BufNewFile,BufRead *.sml setf sml 1629 1630" Sratus VOS command macro 1631au BufNewFile,BufRead *.cm setf voscm 1632 1633" Swift 1634au BufNewFile,BufRead *.swift setf swift 1635au BufNewFile,BufRead *.swift.gyb setf swiftgyb 1636 1637" Swift Intermediate Language 1638au BufNewFile,BufRead *.sil setf sil 1639 1640" Sysctl 1641au BufNewFile,BufRead */etc/sysctl.conf,*/etc/sysctl.d/*.conf setf sysctl 1642 1643" Systemd unit files 1644au BufNewFile,BufRead */systemd/*.{automount,mount,path,service,socket,swap,target,timer} setf systemd 1645" Systemd overrides 1646au BufNewFile,BufRead /etc/systemd/system/*.d/*.conf setf systemd 1647" Systemd temp files 1648au BufNewFile,BufRead /etc/systemd/system/*.d/.#* setf systemd 1649 1650" Synopsys Design Constraints 1651au BufNewFile,BufRead *.sdc setf sdc 1652 1653" Sudoers 1654au BufNewFile,BufRead */etc/sudoers,sudoers.tmp setf sudoers 1655 1656" SVG (Scalable Vector Graphics) 1657au BufNewFile,BufRead *.svg setf svg 1658 1659" Tads (or Nroff or Perl test file) 1660au BufNewFile,BufRead *.t 1661 \ if !dist#ft#FTnroff() && !dist#ft#FTperl() | setf tads | endif 1662 1663" Tags 1664au BufNewFile,BufRead tags setf tags 1665 1666" TAK 1667au BufNewFile,BufRead *.tak setf tak 1668 1669" Task 1670au BufRead,BufNewFile {pending,completed,undo}.data setf taskdata 1671au BufRead,BufNewFile *.task setf taskedit 1672 1673" Tcl (JACL too) 1674au BufNewFile,BufRead *.tcl,*.tk,*.itcl,*.itk,*.jacl setf tcl 1675 1676" TealInfo 1677au BufNewFile,BufRead *.tli setf tli 1678 1679" Telix Salt 1680au BufNewFile,BufRead *.slt setf tsalt 1681 1682" Tera Term Language 1683au BufRead,BufNewFile *.ttl setf teraterm 1684 1685" Terminfo 1686au BufNewFile,BufRead *.ti setf terminfo 1687 1688" TeX 1689au BufNewFile,BufRead *.latex,*.sty,*.dtx,*.ltx,*.bbl setf tex 1690au BufNewFile,BufRead *.tex call dist#ft#FTtex() 1691 1692" ConTeXt 1693au BufNewFile,BufRead *.mkii,*.mkiv,*.mkvi setf context 1694 1695" Texinfo 1696au BufNewFile,BufRead *.texinfo,*.texi,*.txi setf texinfo 1697 1698" TeX configuration 1699au BufNewFile,BufRead texmf.cnf setf texmf 1700 1701" Tidy config 1702au BufNewFile,BufRead .tidyrc,tidyrc setf tidy 1703 1704" TF mud client 1705au BufNewFile,BufRead *.tf,.tfrc,tfrc setf tf 1706 1707" tmux configuration 1708au BufNewFile,BufRead {.,}tmux*.conf setf tmux 1709 1710" TPP - Text Presentation Program 1711au BufNewFile,BufReadPost *.tpp setf tpp 1712 1713" Treetop 1714au BufRead,BufNewFile *.treetop setf treetop 1715 1716" Trustees 1717au BufNewFile,BufRead trustees.conf setf trustees 1718 1719" TSS - Geometry 1720au BufNewFile,BufReadPost *.tssgm setf tssgm 1721 1722" TSS - Optics 1723au BufNewFile,BufReadPost *.tssop setf tssop 1724 1725" TSS - Command Line (temporary) 1726au BufNewFile,BufReadPost *.tsscl setf tsscl 1727 1728" TWIG files 1729au BufNewFile,BufReadPost *.twig setf twig 1730 1731" Typescript 1732au BufNewFile,BufReadPost *.ts setf typescript 1733 1734" TypeScript with React 1735au BufNewFile,BufRead *.tsx setf typescriptreact 1736 1737" Motif UIT/UIL files 1738au BufNewFile,BufRead *.uit,*.uil setf uil 1739 1740" Udev conf 1741au BufNewFile,BufRead */etc/udev/udev.conf setf udevconf 1742 1743" Udev permissions 1744au BufNewFile,BufRead */etc/udev/permissions.d/*.permissions setf udevperm 1745" 1746" Udev symlinks config 1747au BufNewFile,BufRead */etc/udev/cdsymlinks.conf setf sh 1748 1749" UnrealScript 1750au BufNewFile,BufRead *.uc setf uc 1751 1752" Updatedb 1753au BufNewFile,BufRead */etc/updatedb.conf setf updatedb 1754 1755" Upstart (init(8)) config files 1756au BufNewFile,BufRead */usr/share/upstart/*.conf setf upstart 1757au BufNewFile,BufRead */usr/share/upstart/*.override setf upstart 1758au BufNewFile,BufRead */etc/init/*.conf,*/etc/init/*.override setf upstart 1759au BufNewFile,BufRead */.init/*.conf,*/.init/*.override setf upstart 1760au BufNewFile,BufRead */.config/upstart/*.conf setf upstart 1761au BufNewFile,BufRead */.config/upstart/*.override setf upstart 1762 1763" Vera 1764au BufNewFile,BufRead *.vr,*.vri,*.vrh setf vera 1765 1766" Verilog HDL 1767au BufNewFile,BufRead *.v setf verilog 1768 1769" Verilog-AMS HDL 1770au BufNewFile,BufRead *.va,*.vams setf verilogams 1771 1772" SystemVerilog 1773au BufNewFile,BufRead *.sv,*.svh setf systemverilog 1774 1775" VHDL 1776au BufNewFile,BufRead *.hdl,*.vhd,*.vhdl,*.vbe,*.vst setf vhdl 1777 1778" Vim script 1779au BufNewFile,BufRead *.vim,*.vba,.exrc,_exrc setf vim 1780 1781" Viminfo file 1782au BufNewFile,BufRead .viminfo,_viminfo setf viminfo 1783 1784" Virata Config Script File or Drupal module 1785au BufRead,BufNewFile *.hw,*.module,*.pkg 1786 \ if getline(1) =~ '<?php' | 1787 \ setf php | 1788 \ else | 1789 \ setf virata | 1790 \ endif 1791 1792" Visual Basic (also uses *.bas) or FORM 1793au BufNewFile,BufRead *.frm call dist#ft#FTVB("form") 1794 1795" SaxBasic is close to Visual Basic 1796au BufNewFile,BufRead *.sba setf vb 1797 1798" Vgrindefs file 1799au BufNewFile,BufRead vgrindefs setf vgrindefs 1800 1801" VRML V1.0c 1802au BufNewFile,BufRead *.wrl setf vrml 1803 1804" Vroom (vim testing and executable documentation) 1805au BufNewFile,BufRead *.vroom setf vroom 1806 1807" Vue.js Single File Component 1808au BufNewFile,BufRead *.vue setf vue 1809 1810" WebAssembly 1811au BufNewFile,BufRead *.wast,*.wat setf wast 1812 1813" Webmacro 1814au BufNewFile,BufRead *.wm setf webmacro 1815 1816" Wget config 1817au BufNewFile,BufRead .wgetrc,wgetrc setf wget 1818 1819" Website MetaLanguage 1820au BufNewFile,BufRead *.wml setf wml 1821 1822" Winbatch 1823au BufNewFile,BufRead *.wbt setf winbatch 1824 1825" WSML 1826au BufNewFile,BufRead *.wsml setf wsml 1827 1828" WPL 1829au BufNewFile,BufRead *.wpl setf xml 1830 1831" WvDial 1832au BufNewFile,BufRead wvdial.conf,.wvdialrc setf wvdial 1833 1834" CVS RC file 1835au BufNewFile,BufRead .cvsrc setf cvsrc 1836 1837" CVS commit file 1838au BufNewFile,BufRead cvs\d\+ setf cvs 1839 1840" WEB (*.web is also used for Winbatch: Guess, based on expecting "%" comment 1841" lines in a WEB file). 1842au BufNewFile,BufRead *.web 1843 \ if getline(1)[0].getline(2)[0].getline(3)[0].getline(4)[0].getline(5)[0] =~ "%" | 1844 \ setf web | 1845 \ else | 1846 \ setf winbatch | 1847 \ endif 1848 1849" Windows Scripting Host and Windows Script Component 1850au BufNewFile,BufRead *.ws[fc] setf wsh 1851 1852" XHTML 1853au BufNewFile,BufRead *.xhtml,*.xht setf xhtml 1854 1855" X Pixmap (dynamically sets colors, use BufEnter to make it work better) 1856au BufEnter *.xpm 1857 \ if getline(1) =~ "XPM2" | 1858 \ setf xpm2 | 1859 \ else | 1860 \ setf xpm | 1861 \ endif 1862au BufEnter *.xpm2 setf xpm2 1863 1864" XFree86 config 1865au BufNewFile,BufRead XF86Config 1866 \ if getline(1) =~ '\<XConfigurator\>' | 1867 \ let b:xf86conf_xfree86_version = 3 | 1868 \ endif | 1869 \ setf xf86conf 1870au BufNewFile,BufRead */xorg.conf.d/*.conf 1871 \ let b:xf86conf_xfree86_version = 4 | 1872 \ setf xf86conf 1873 1874" Xorg config 1875au BufNewFile,BufRead xorg.conf,xorg.conf-4 let b:xf86conf_xfree86_version = 4 | setf xf86conf 1876 1877" Xinetd conf 1878au BufNewFile,BufRead */etc/xinetd.conf setf xinetd 1879 1880" XS Perl extension interface language 1881au BufNewFile,BufRead *.xs setf xs 1882 1883" X resources file 1884au BufNewFile,BufRead .Xdefaults,.Xpdefaults,.Xresources,xdm-config,*.ad setf xdefaults 1885 1886" Xmath 1887au BufNewFile,BufRead *.msc,*.msf setf xmath 1888au BufNewFile,BufRead *.ms 1889 \ if !dist#ft#FTnroff() | setf xmath | endif 1890 1891" XML specific variants: docbk and xbl 1892au BufNewFile,BufRead *.xml call dist#ft#FTxml() 1893 1894" XMI (holding UML models) is also XML 1895au BufNewFile,BufRead *.xmi setf xml 1896 1897" CSPROJ files are Visual Studio.NET's XML-based project config files 1898au BufNewFile,BufRead *.csproj,*.csproj.user setf xml 1899 1900" Qt Linguist translation source and Qt User Interface Files are XML 1901" However, for .ts Typescript is more common. 1902au BufNewFile,BufRead *.ui setf xml 1903 1904" TPM's are RDF-based descriptions of TeX packages (Nikolai Weibull) 1905au BufNewFile,BufRead *.tpm setf xml 1906 1907" Xdg menus 1908au BufNewFile,BufRead */etc/xdg/menus/*.menu setf xml 1909 1910" ATI graphics driver configuration 1911au BufNewFile,BufRead fglrxrc setf xml 1912 1913" Web Services Description Language (WSDL) 1914au BufNewFile,BufRead *.wsdl setf xml 1915 1916" XLIFF (XML Localisation Interchange File Format) is also XML 1917au BufNewFile,BufRead *.xlf setf xml 1918au BufNewFile,BufRead *.xliff setf xml 1919 1920" XML User Interface Language 1921au BufNewFile,BufRead *.xul setf xml 1922 1923" X11 xmodmap (also see below) 1924au BufNewFile,BufRead *Xmodmap setf xmodmap 1925 1926" Xquery 1927au BufNewFile,BufRead *.xq,*.xql,*.xqm,*.xquery,*.xqy setf xquery 1928 1929" XSD 1930au BufNewFile,BufRead *.xsd setf xsd 1931 1932" Xslt 1933au BufNewFile,BufRead *.xsl,*.xslt setf xslt 1934 1935" Yacc 1936au BufNewFile,BufRead *.yy,*.yxx,*.y++ setf yacc 1937 1938" Yacc or racc 1939au BufNewFile,BufRead *.y call dist#ft#FTy() 1940 1941" Yaml 1942au BufNewFile,BufRead *.yaml,*.yml setf yaml 1943 1944" Raml 1945au BufNewFile,BufRead *.raml setf raml 1946 1947" yum conf (close enough to dosini) 1948au BufNewFile,BufRead */etc/yum.conf setf dosini 1949 1950" Zimbu 1951au BufNewFile,BufRead *.zu setf zimbu 1952" Zimbu Templates 1953au BufNewFile,BufRead *.zut setf zimbutempl 1954 1955" Zope 1956" dtml (zope dynamic template markup language), pt (zope page template), 1957" cpt (zope form controller page template) 1958au BufNewFile,BufRead *.dtml,*.pt,*.cpt call dist#ft#FThtml() 1959" zsql (zope sql method) 1960au BufNewFile,BufRead *.zsql call dist#ft#SQL() 1961 1962" Z80 assembler asz80 1963au BufNewFile,BufRead *.z8a setf z8a 1964 1965augroup END 1966 1967 1968" Source the user-specified filetype file, for backwards compatibility with 1969" Vim 5.x. 1970if exists("myfiletypefile") && filereadable(expand(myfiletypefile)) 1971 execute "source " . myfiletypefile 1972endif 1973 1974 1975" Check for "*" after loading myfiletypefile, so that scripts.vim is only used 1976" when there are no matching file name extensions. 1977" Don't do this for compressed files. 1978augroup filetypedetect 1979au BufNewFile,BufRead * 1980 \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat 1981 \ | runtime! scripts.vim | endif 1982au StdinReadPost * if !did_filetype() | runtime! scripts.vim | endif 1983 1984 1985" Extra checks for when no filetype has been detected now. Mostly used for 1986" patterns that end in "*". E.g., "zsh*" matches "zsh.vim", but that's a Vim 1987" script file. 1988" Most of these should call s:StarSetf() to avoid names ending in .gz and the 1989" like are used. 1990 1991" More Apache style config files 1992au BufNewFile,BufRead */etc/proftpd/*.conf*,*/etc/proftpd/conf.*/* call s:StarSetf('apachestyle') 1993au BufNewFile,BufRead proftpd.conf* call s:StarSetf('apachestyle') 1994 1995" More Apache config files 1996au BufNewFile,BufRead access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf* call s:StarSetf('apache') 1997au BufNewFile,BufRead */etc/apache2/*.conf*,*/etc/apache2/conf.*/*,*/etc/apache2/mods-*/*,*/etc/apache2/sites-*/*,*/etc/httpd/conf.d/*.conf* call s:StarSetf('apache') 1998 1999" Asterisk config file 2000au BufNewFile,BufRead *asterisk/*.conf* call s:StarSetf('asterisk') 2001au BufNewFile,BufRead *asterisk*/*voicemail.conf* call s:StarSetf('asteriskvm') 2002 2003" Bazaar version control 2004au BufNewFile,BufRead bzr_log.* setf bzr 2005 2006" Bazel build file 2007if !has("fname_case") 2008 au BufNewFile,BufRead BUILD setf bzl 2009endif 2010 2011" BIND zone 2012au BufNewFile,BufRead */named/db.*,*/bind/db.* call s:StarSetf('bindzone') 2013 2014" Calendar 2015au BufNewFile,BufRead */.calendar/*, 2016 \*/share/calendar/*/calendar.*,*/share/calendar/calendar.* 2017 \ call s:StarSetf('calendar') 2018 2019" Changelog 2020au BufNewFile,BufRead [cC]hange[lL]og* 2021 \ if getline(1) =~ '; urgency=' 2022 \| call s:StarSetf('debchangelog') 2023 \|else 2024 \| call s:StarSetf('changelog') 2025 \|endif 2026 2027" Crontab 2028au BufNewFile,BufRead crontab,crontab.*,*/etc/cron.d/* call s:StarSetf('crontab') 2029 2030" dnsmasq(8) configuration 2031au BufNewFile,BufRead */etc/dnsmasq.d/* call s:StarSetf('dnsmasq') 2032 2033" Dracula 2034au BufNewFile,BufRead drac.* call s:StarSetf('dracula') 2035 2036" Fvwm 2037au BufNewFile,BufRead */.fvwm/* call s:StarSetf('fvwm') 2038au BufNewFile,BufRead *fvwmrc*,*fvwm95*.hook 2039 \ let b:fvwm_version = 1 | call s:StarSetf('fvwm') 2040au BufNewFile,BufRead *fvwm2rc* 2041 \ if expand("<afile>:e") == "m4" 2042 \| call s:StarSetf('fvwm2m4') 2043 \|else 2044 \| let b:fvwm_version = 2 | call s:StarSetf('fvwm') 2045 \|endif 2046 2047" Gedcom 2048au BufNewFile,BufRead */tmp/lltmp* call s:StarSetf('gedcom') 2049 2050" Git 2051au BufNewFile,BufRead */.gitconfig.d/*,/etc/gitconfig.d/* call s:StarSetf('gitconfig') 2052 2053" Gitolite 2054au BufNewFile,BufRead */gitolite-admin/conf/* call s:StarSetf('gitolite') 2055 2056" GTK RC 2057au BufNewFile,BufRead .gtkrc*,gtkrc* call s:StarSetf('gtkrc') 2058 2059" Jam 2060au BufNewFile,BufRead Prl*.*,JAM*.* call s:StarSetf('jam') 2061 2062" Jargon 2063au! BufNewFile,BufRead *jarg* 2064 \ if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'THIS IS THE JARGON FILE' 2065 \| call s:StarSetf('jargon') 2066 \|endif 2067 2068" Java Properties resource file (note: doesn't catch font.properties.pl) 2069au BufNewFile,BufRead *.properties_??_??_* call s:StarSetf('jproperties') 2070 2071" Kconfig 2072au BufNewFile,BufRead Kconfig.* call s:StarSetf('kconfig') 2073 2074" Lilo: Linux loader 2075au BufNewFile,BufRead lilo.conf* call s:StarSetf('lilo') 2076 2077" Logcheck 2078au BufNewFile,BufRead */etc/logcheck/*.d*/* call s:StarSetf('logcheck') 2079 2080" Makefile 2081au BufNewFile,BufRead [mM]akefile* call s:StarSetf('make') 2082 2083" Ruby Makefile 2084au BufNewFile,BufRead [rR]akefile* call s:StarSetf('ruby') 2085 2086" Mail (also matches muttrc.vim, so this is below the other checks) 2087au BufNewFile,BufRead {neo,}mutt[[:alnum:]._-]\\\{6\} setf mail 2088 2089au BufNewFile,BufRead reportbug-* call s:StarSetf('mail') 2090 2091" Modconf 2092au BufNewFile,BufRead */etc/modutils/* 2093 \ if executable(expand("<afile>")) != 1 2094 \| call s:StarSetf('modconf') 2095 \|endif 2096au BufNewFile,BufRead */etc/modprobe.* call s:StarSetf('modconf') 2097 2098" Mutt setup file 2099au BufNewFile,BufRead .mutt{ng,}rc*,*/.mutt{ng,}/mutt{ng,}rc* call s:StarSetf('muttrc') 2100au BufNewFile,BufRead mutt{ng,}rc*,Mutt{ng,}rc* call s:StarSetf('muttrc') 2101 2102" Neomutt setup file 2103au BufNewFile,BufRead .neomuttrc*,*/.neomutt/neomuttrc* call s:StarSetf('neomuttrc') 2104au BufNewFile,BufRead neomuttrc*,Neomuttrc* call s:StarSetf('neomuttrc') 2105 2106" Nroff macros 2107au BufNewFile,BufRead tmac.* call s:StarSetf('nroff') 2108 2109" OpenBSD hostname.if 2110au BufNewFile,BufRead /etc/hostname.* call s:StarSetf('config') 2111 2112" Pam conf 2113au BufNewFile,BufRead */etc/pam.d/* call s:StarSetf('pamconf') 2114 2115" Printcap and Termcap 2116au BufNewFile,BufRead *printcap* 2117 \ if !did_filetype() 2118 \| let b:ptcap_type = "print" | call s:StarSetf('ptcap') 2119 \|endif 2120au BufNewFile,BufRead *termcap* 2121 \ if !did_filetype() 2122 \| let b:ptcap_type = "term" | call s:StarSetf('ptcap') 2123 \|endif 2124 2125" ReDIF 2126" Only used when the .rdf file was not detected to be XML. 2127au BufRead,BufNewFile *.rdf call dist#ft#Redif() 2128 2129" Remind 2130au BufNewFile,BufRead .reminders* call s:StarSetf('remind') 2131 2132" SGML catalog file 2133au BufNewFile,BufRead sgml.catalog* call s:StarSetf('catalog') 2134 2135" Shell scripts ending in a star 2136au BufNewFile,BufRead .bashrc*,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,bash-fc[-.]*,,PKGBUILD* call dist#ft#SetFileTypeSH("bash") 2137au BufNewFile,BufRead .kshrc* call dist#ft#SetFileTypeSH("ksh") 2138au BufNewFile,BufRead .profile* call dist#ft#SetFileTypeSH(getline(1)) 2139 2140" tcsh scripts ending in a star 2141au BufNewFile,BufRead .tcshrc* call dist#ft#SetFileTypeShell("tcsh") 2142 2143" csh scripts ending in a star 2144au BufNewFile,BufRead .login*,.cshrc* call dist#ft#CSH() 2145 2146" VHDL 2147au BufNewFile,BufRead *.vhdl_[0-9]* call s:StarSetf('vhdl') 2148 2149" Vim script 2150au BufNewFile,BufRead *vimrc* call s:StarSetf('vim') 2151 2152" Subversion commit file 2153au BufNewFile,BufRead svn-commit*.tmp setf svn 2154 2155" X resources file 2156au BufNewFile,BufRead Xresources*,*/app-defaults/*,*/Xresources/* call s:StarSetf('xdefaults') 2157 2158" XFree86 config 2159au BufNewFile,BufRead XF86Config-4* 2160 \ let b:xf86conf_xfree86_version = 4 | call s:StarSetf('xf86conf') 2161au BufNewFile,BufRead XF86Config* 2162 \ if getline(1) =~ '\<XConfigurator\>' 2163 \| let b:xf86conf_xfree86_version = 3 2164 \|endif 2165 \|call s:StarSetf('xf86conf') 2166 2167" X11 xmodmap 2168au BufNewFile,BufRead *xmodmap* call s:StarSetf('xmodmap') 2169 2170" Xinetd conf 2171au BufNewFile,BufRead */etc/xinetd.d/* call s:StarSetf('xinetd') 2172 2173" yum conf (close enough to dosini) 2174au BufNewFile,BufRead */etc/yum.repos.d/* call s:StarSetf('dosini') 2175 2176" Z-Shell script ending in a star 2177au BufNewFile,BufRead .zsh*,.zlog*,.zcompdump* call s:StarSetf('zsh') 2178au BufNewFile,BufRead zsh*,zlog* call s:StarSetf('zsh') 2179 2180 2181" Plain text files, needs to be far down to not override others. This avoids 2182" the "conf" type being used if there is a line starting with '#'. 2183au BufNewFile,BufRead *.text,README setf text 2184 2185" Help files match *.txt but should have a last line that is a modeline. 2186au BufNewFile,BufRead *.txt 2187 \ if getline('$') !~ 'vim:.*ft=help' 2188 \| setf text 2189 \| endif 2190 2191 2192" Use the filetype detect plugins. They may overrule any of the previously 2193" detected filetypes. 2194runtime! ftdetect/*.vim 2195 2196" NOTE: The above command could have ended the filetypedetect autocmd group 2197" and started another one. Let's make sure it has ended to get to a consistent 2198" state. 2199augroup END 2200 2201" Generic configuration file. Use FALLBACK, it's just guessing! 2202au filetypedetect BufNewFile,BufRead,StdinReadPost * 2203 \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat 2204 \ && (getline(1) =~ '^#' || getline(2) =~ '^#' || getline(3) =~ '^#' 2205 \ || getline(4) =~ '^#' || getline(5) =~ '^#') | 2206 \ setf FALLBACK conf | 2207 \ endif 2208 2209 2210" If the GUI is already running, may still need to install the Syntax menu. 2211" Don't do it when the 'M' flag is included in 'guioptions'. 2212if has("menu") && has("gui_running") 2213 \ && !exists("did_install_syntax_menu") && &guioptions !~# "M" 2214 source <sfile>:p:h/menu.vim 2215endif 2216 2217" Function called for testing all functions defined here. These are 2218" script-local, thus need to be executed here. 2219" Returns a string with error messages (hopefully empty). 2220func! TestFiletypeFuncs(testlist) 2221 let output = '' 2222 for f in a:testlist 2223 try 2224 exe f 2225 catch 2226 let output = output . "\n" . f . ": " . v:exception 2227 endtry 2228 endfor 2229 return output 2230endfunc 2231 2232" Restore 'cpoptions' 2233let &cpo = s:cpo_save 2234unlet s:cpo_save 2235