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