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