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