1" Vim support file to detect file types 2" 3" Maintainer: Bram Moolenaar <[email protected]> 4" Last Change: 2019 Feb 07 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 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 1742au BufNewFile,BufRead *.vhdl_[0-9]* call s:StarSetf('vhdl') 1743 1744" Vim script 1745au BufNewFile,BufRead *.vim,*.vba,.exrc,_exrc setf vim 1746 1747" Viminfo file 1748au BufNewFile,BufRead .viminfo,_viminfo setf viminfo 1749 1750" Virata Config Script File or Drupal module 1751au BufRead,BufNewFile *.hw,*.module,*.pkg 1752 \ if getline(1) =~ '<?php' | 1753 \ setf php | 1754 \ else | 1755 \ setf virata | 1756 \ endif 1757 1758" Visual Basic (also uses *.bas) or FORM 1759au BufNewFile,BufRead *.frm call dist#ft#FTVB("form") 1760 1761" SaxBasic is close to Visual Basic 1762au BufNewFile,BufRead *.sba setf vb 1763 1764" Vgrindefs file 1765au BufNewFile,BufRead vgrindefs setf vgrindefs 1766 1767" VRML V1.0c 1768au BufNewFile,BufRead *.wrl setf vrml 1769 1770" Vroom (vim testing and executable documentation) 1771au BufNewFile,BufRead *.vroom setf vroom 1772 1773" Webmacro 1774au BufNewFile,BufRead *.wm setf webmacro 1775 1776" WebAssembly 1777au BufNewFile,BufRead *.wast,*.wat setf wast 1778 1779" Wget config 1780au BufNewFile,BufRead .wgetrc,wgetrc setf wget 1781 1782" Website MetaLanguage 1783au BufNewFile,BufRead *.wml setf wml 1784 1785" Winbatch 1786au BufNewFile,BufRead *.wbt setf winbatch 1787 1788" WSML 1789au BufNewFile,BufRead *.wsml setf wsml 1790 1791" WPL 1792au BufNewFile,BufRead *.wpl setf xml 1793 1794" WvDial 1795au BufNewFile,BufRead wvdial.conf,.wvdialrc setf wvdial 1796 1797" CVS RC file 1798au BufNewFile,BufRead .cvsrc setf cvsrc 1799 1800" CVS commit file 1801au BufNewFile,BufRead cvs\d\+ setf cvs 1802 1803" WEB (*.web is also used for Winbatch: Guess, based on expecting "%" comment 1804" lines in a WEB file). 1805au BufNewFile,BufRead *.web 1806 \ if getline(1)[0].getline(2)[0].getline(3)[0].getline(4)[0].getline(5)[0] =~ "%" | 1807 \ setf web | 1808 \ else | 1809 \ setf winbatch | 1810 \ endif 1811 1812" Windows Scripting Host and Windows Script Component 1813au BufNewFile,BufRead *.ws[fc] setf wsh 1814 1815" XHTML 1816au BufNewFile,BufRead *.xhtml,*.xht setf xhtml 1817 1818" X Pixmap (dynamically sets colors, use BufEnter to make it work better) 1819au BufEnter *.xpm 1820 \ if getline(1) =~ "XPM2" | 1821 \ setf xpm2 | 1822 \ else | 1823 \ setf xpm | 1824 \ endif 1825au BufEnter *.xpm2 setf xpm2 1826 1827" XFree86 config 1828au BufNewFile,BufRead XF86Config 1829 \ if getline(1) =~ '\<XConfigurator\>' | 1830 \ let b:xf86conf_xfree86_version = 3 | 1831 \ endif | 1832 \ setf xf86conf 1833au BufNewFile,BufRead */xorg.conf.d/*.conf 1834 \ let b:xf86conf_xfree86_version = 4 | 1835 \ setf xf86conf 1836 1837" Xorg config 1838au BufNewFile,BufRead xorg.conf,xorg.conf-4 let b:xf86conf_xfree86_version = 4 | setf xf86conf 1839 1840" Xinetd conf 1841au BufNewFile,BufRead */etc/xinetd.conf setf xinetd 1842 1843" XS Perl extension interface language 1844au BufNewFile,BufRead *.xs setf xs 1845 1846" X resources file 1847au BufNewFile,BufRead .Xdefaults,.Xpdefaults,.Xresources,xdm-config,*.ad setf xdefaults 1848 1849" Xmath 1850au BufNewFile,BufRead *.msc,*.msf setf xmath 1851au BufNewFile,BufRead *.ms 1852 \ if !dist#ft#FTnroff() | setf xmath | endif 1853 1854" XML specific variants: docbk and xbl 1855au BufNewFile,BufRead *.xml call dist#ft#FTxml() 1856 1857" XMI (holding UML models) is also XML 1858au BufNewFile,BufRead *.xmi setf xml 1859 1860" CSPROJ files are Visual Studio.NET's XML-based project config files 1861au BufNewFile,BufRead *.csproj,*.csproj.user setf xml 1862 1863" Qt Linguist translation source and Qt User Interface Files are XML 1864au BufNewFile,BufRead *.ts,*.ui setf xml 1865 1866" TPM's are RDF-based descriptions of TeX packages (Nikolai Weibull) 1867au BufNewFile,BufRead *.tpm setf xml 1868 1869" Xdg menus 1870au BufNewFile,BufRead */etc/xdg/menus/*.menu setf xml 1871 1872" ATI graphics driver configuration 1873au BufNewFile,BufRead fglrxrc setf xml 1874 1875" Web Services Description Language (WSDL) 1876au BufNewFile,BufRead *.wsdl setf xml 1877 1878" XLIFF (XML Localisation Interchange File Format) is also XML 1879au BufNewFile,BufRead *.xlf setf xml 1880au BufNewFile,BufRead *.xliff setf xml 1881 1882" XML User Interface Language 1883au BufNewFile,BufRead *.xul setf xml 1884 1885" X11 xmodmap (also see below) 1886au BufNewFile,BufRead *Xmodmap setf xmodmap 1887 1888" Xquery 1889au BufNewFile,BufRead *.xq,*.xql,*.xqm,*.xquery,*.xqy setf xquery 1890 1891" XSD 1892au BufNewFile,BufRead *.xsd setf xsd 1893 1894" Xslt 1895au BufNewFile,BufRead *.xsl,*.xslt setf xslt 1896 1897" Yacc 1898au BufNewFile,BufRead *.yy,*.yxx,*.y++ setf yacc 1899 1900" Yacc or racc 1901au BufNewFile,BufRead *.y call dist#ft#FTy() 1902 1903" Yaml 1904au BufNewFile,BufRead *.yaml,*.yml setf yaml 1905 1906" Raml 1907au BufNewFile,BufRead *.raml setf raml 1908 1909" yum conf (close enough to dosini) 1910au BufNewFile,BufRead */etc/yum.conf setf dosini 1911 1912" Zimbu 1913au BufNewFile,BufRead *.zu setf zimbu 1914" Zimbu Templates 1915au BufNewFile,BufRead *.zut setf zimbutempl 1916 1917" Zope 1918" dtml (zope dynamic template markup language), pt (zope page template), 1919" cpt (zope form controller page template) 1920au BufNewFile,BufRead *.dtml,*.pt,*.cpt call dist#ft#FThtml() 1921" zsql (zope sql method) 1922au BufNewFile,BufRead *.zsql call dist#ft#SQL() 1923 1924" Z80 assembler asz80 1925au BufNewFile,BufRead *.z8a setf z8a 1926 1927augroup END 1928 1929 1930" Source the user-specified filetype file, for backwards compatibility with 1931" Vim 5.x. 1932if exists("myfiletypefile") && filereadable(expand(myfiletypefile)) 1933 execute "source " . myfiletypefile 1934endif 1935 1936 1937" Check for "*" after loading myfiletypefile, so that scripts.vim is only used 1938" when there are no matching file name extensions. 1939" Don't do this for compressed files. 1940augroup filetypedetect 1941au BufNewFile,BufRead * 1942 \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat 1943 \ | runtime! scripts.vim | endif 1944au StdinReadPost * if !did_filetype() | runtime! scripts.vim | endif 1945 1946 1947" Extra checks for when no filetype has been detected now. Mostly used for 1948" patterns that end in "*". E.g., "zsh*" matches "zsh.vim", but that's a Vim 1949" script file. 1950" Most of these should call s:StarSetf() to avoid names ending in .gz and the 1951" like are used. 1952 1953" More Apache style config files 1954au BufNewFile,BufRead */etc/proftpd/*.conf*,*/etc/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" GTK RC 2012au BufNewFile,BufRead .gtkrc*,gtkrc* call s:StarSetf('gtkrc') 2013 2014" Jam 2015au BufNewFile,BufRead Prl*.*,JAM*.* call s:StarSetf('jam') 2016 2017" Jargon 2018au! BufNewFile,BufRead *jarg* 2019 \ if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'THIS IS THE JARGON FILE' 2020 \| call s:StarSetf('jargon') 2021 \|endif 2022 2023" Kconfig 2024au BufNewFile,BufRead Kconfig.* call s:StarSetf('kconfig') 2025 2026" Lilo: Linux loader 2027au BufNewFile,BufRead lilo.conf* call s:StarSetf('lilo') 2028 2029" Logcheck 2030au BufNewFile,BufRead */etc/logcheck/*.d*/* call s:StarSetf('logcheck') 2031 2032" Makefile 2033au BufNewFile,BufRead [mM]akefile* call s:StarSetf('make') 2034 2035" Ruby Makefile 2036au BufNewFile,BufRead [rR]akefile* call s:StarSetf('ruby') 2037 2038" Mail (also matches muttrc.vim, so this is below the other checks) 2039au BufNewFile,BufRead {neo,}mutt[[:alnum:]._-]\\\{6\} setf mail 2040 2041au BufNewFile,BufRead reportbug-* call s:StarSetf('mail') 2042 2043" Modconf 2044au BufNewFile,BufRead */etc/modutils/* 2045 \ if executable(expand("<afile>")) != 1 2046 \| call s:StarSetf('modconf') 2047 \|endif 2048au BufNewFile,BufRead */etc/modprobe.* call s:StarSetf('modconf') 2049 2050" Mutt setup file 2051au BufNewFile,BufRead .mutt{ng,}rc*,*/.mutt{ng,}/mutt{ng,}rc* call s:StarSetf('muttrc') 2052au BufNewFile,BufRead mutt{ng,}rc*,Mutt{ng,}rc* call s:StarSetf('muttrc') 2053 2054" Neomutt setup file 2055au BufNewFile,BufRead .neomuttrc*,*/.neomutt/neomuttrc* call s:StarSetf('neomuttrc') 2056au BufNewFile,BufRead neomuttrc*,Neomuttrc* call s:StarSetf('neomuttrc') 2057 2058" Nroff macros 2059au BufNewFile,BufRead tmac.* call s:StarSetf('nroff') 2060 2061" OpenBSD hostname.if 2062au BufNewFile,BufRead /etc/hostname.* call s:StarSetf('config') 2063 2064" Pam conf 2065au BufNewFile,BufRead */etc/pam.d/* call s:StarSetf('pamconf') 2066 2067" Printcap and Termcap 2068au BufNewFile,BufRead *printcap* 2069 \ if !did_filetype() 2070 \| let b:ptcap_type = "print" | call s:StarSetf('ptcap') 2071 \|endif 2072au BufNewFile,BufRead *termcap* 2073 \ if !did_filetype() 2074 \| let b:ptcap_type = "term" | call s:StarSetf('ptcap') 2075 \|endif 2076 2077" ReDIF 2078" Only used when the .rdf file was not detected to be XML. 2079au BufRead,BufNewFile *.rdf call dist#ft#Redif() 2080 2081" Remind 2082au BufNewFile,BufRead .reminders* call s:StarSetf('remind') 2083 2084" Shell scripts ending in a star 2085au BufNewFile,BufRead .bashrc*,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,bash-fc[-.]*,,PKGBUILD* call dist#ft#SetFileTypeSH("bash") 2086au BufNewFile,BufRead .kshrc* call dist#ft#SetFileTypeSH("ksh") 2087au BufNewFile,BufRead .profile* call dist#ft#SetFileTypeSH(getline(1)) 2088 2089" tcsh scripts ending in a star 2090au BufNewFile,BufRead .tcshrc* call dist#ft#SetFileTypeShell("tcsh") 2091 2092" csh scripts ending in a star 2093au BufNewFile,BufRead .login*,.cshrc* call dist#ft#CSH() 2094 2095" Vim script 2096au BufNewFile,BufRead *vimrc* call s:StarSetf('vim') 2097 2098" Subversion commit file 2099au BufNewFile,BufRead svn-commit*.tmp setf svn 2100 2101" X resources file 2102au BufNewFile,BufRead Xresources*,*/app-defaults/*,*/Xresources/* call s:StarSetf('xdefaults') 2103 2104" XFree86 config 2105au BufNewFile,BufRead XF86Config-4* 2106 \ let b:xf86conf_xfree86_version = 4 | call s:StarSetf('xf86conf') 2107au BufNewFile,BufRead XF86Config* 2108 \ if getline(1) =~ '\<XConfigurator\>' 2109 \| let b:xf86conf_xfree86_version = 3 2110 \|endif 2111 \|call s:StarSetf('xf86conf') 2112 2113" X11 xmodmap 2114au BufNewFile,BufRead *xmodmap* call s:StarSetf('xmodmap') 2115 2116" Xinetd conf 2117au BufNewFile,BufRead */etc/xinetd.d/* call s:StarSetf('xinetd') 2118 2119" yum conf (close enough to dosini) 2120au BufNewFile,BufRead */etc/yum.repos.d/* call s:StarSetf('dosini') 2121 2122" Z-Shell script ending in a star 2123au BufNewFile,BufRead .zsh*,.zlog*,.zcompdump* call s:StarSetf('zsh') 2124au BufNewFile,BufRead zsh*,zlog* call s:StarSetf('zsh') 2125 2126 2127" Plain text files, needs to be far down to not override others. This avoids 2128" the "conf" type being used if there is a line starting with '#'. 2129au BufNewFile,BufRead *.text,README setf text 2130 2131" Help files match *.txt but should have a last line that is a modeline. 2132au BufNewFile,BufRead *.txt 2133 \ if getline('$') !~ 'vim:.*ft=help' 2134 \| setf text 2135 \| endif 2136 2137 2138" Use the filetype detect plugins. They may overrule any of the previously 2139" detected filetypes. 2140runtime! ftdetect/*.vim 2141 2142" NOTE: The above command could have ended the filetypedetect autocmd group 2143" and started another one. Let's make sure it has ended to get to a consistent 2144" state. 2145augroup END 2146 2147" Generic configuration file. Use FALLBACK, it's just guessing! 2148au filetypedetect BufNewFile,BufRead,StdinReadPost * 2149 \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat 2150 \ && (getline(1) =~ '^#' || getline(2) =~ '^#' || getline(3) =~ '^#' 2151 \ || getline(4) =~ '^#' || getline(5) =~ '^#') | 2152 \ setf FALLBACK conf | 2153 \ endif 2154 2155 2156" If the GUI is already running, may still need to install the Syntax menu. 2157" Don't do it when the 'M' flag is included in 'guioptions'. 2158if has("menu") && has("gui_running") 2159 \ && !exists("did_install_syntax_menu") && &guioptions !~# "M" 2160 source <sfile>:p:h/menu.vim 2161endif 2162 2163" Function called for testing all functions defined here. These are 2164" script-local, thus need to be executed here. 2165" Returns a string with error messages (hopefully empty). 2166func! TestFiletypeFuncs(testlist) 2167 let output = '' 2168 for f in a:testlist 2169 try 2170 exe f 2171 catch 2172 let output = output . "\n" . f . ": " . v:exception 2173 endtry 2174 endfor 2175 return output 2176endfunc 2177 2178" Restore 'cpoptions' 2179let &cpo = s:cpo_save 2180unlet s:cpo_save 2181