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