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