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