1" Vim support file to detect file types 2" 3" Maintainer: Bram Moolenaar <[email protected]> 4" Last Change: 2021 Aug 23 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 or Objective C 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" Mplayer config 1096au BufNewFile,BufRead mplayer.conf,*/.mplayer/config setf mplayerconf 1097 1098" Motorola S record 1099au BufNewFile,BufRead *.s19,*.s28,*.s37,*.mot,*.srec setf srec 1100 1101" Mrxvtrc 1102au BufNewFile,BufRead mrxvtrc,.mrxvtrc setf mrxvtrc 1103 1104" Msql 1105au BufNewFile,BufRead *.msql setf msql 1106 1107" Mysql 1108au BufNewFile,BufRead *.mysql setf mysql 1109 1110" Mutt setup files (must be before catch *.rc) 1111au BufNewFile,BufRead */etc/Muttrc.d/* call s:StarSetf('muttrc') 1112 1113" M$ Resource files 1114au BufNewFile,BufRead *.rc,*.rch setf rc 1115 1116" MuPAD source 1117au BufRead,BufNewFile *.mu setf mupad 1118 1119" Mush 1120au BufNewFile,BufRead *.mush setf mush 1121 1122" Mutt setup file (also for Muttng) 1123au BufNewFile,BufRead Mutt{ng,}rc setf muttrc 1124 1125" N1QL 1126au BufRead,BufNewfile *.n1ql,*.nql setf n1ql 1127 1128" Nano 1129au BufNewFile,BufRead */etc/nanorc,*.nanorc setf nanorc 1130 1131" Nastran input/DMAP 1132"au BufNewFile,BufRead *.dat setf nastran 1133 1134" Natural 1135au BufNewFile,BufRead *.NS[ACGLMNPS] setf natural 1136 1137" Noemutt setup file 1138au BufNewFile,BufRead Neomuttrc setf neomuttrc 1139 1140" Netrc 1141au BufNewFile,BufRead .netrc setf netrc 1142 1143" Ninja file 1144au BufNewFile,BufRead *.ninja setf ninja 1145 1146" NPM RC file 1147au BufNewFile,BufRead npmrc,.npmrc setf dosini 1148 1149" Novell netware batch files 1150au BufNewFile,BufRead *.ncf setf ncf 1151 1152" Nroff/Troff (*.ms and *.t are checked below) 1153au BufNewFile,BufRead *.me 1154 \ if expand("<afile>") != "read.me" && expand("<afile>") != "click.me" | 1155 \ setf nroff | 1156 \ endif 1157au BufNewFile,BufRead *.tr,*.nr,*.roff,*.tmac,*.mom setf nroff 1158au BufNewFile,BufRead *.[1-9] call dist#ft#FTnroff() 1159 1160" Nroff or Objective C++ 1161au BufNewFile,BufRead *.mm call dist#ft#FTmm() 1162 1163" Not Quite C 1164au BufNewFile,BufRead *.nqc setf nqc 1165 1166" NSE - Nmap Script Engine - uses Lua syntax 1167au BufNewFile,BufRead *.nse setf lua 1168 1169" NSIS 1170au BufNewFile,BufRead *.nsi,*.nsh setf nsis 1171 1172" OCaml 1173au BufNewFile,BufRead *.ml,*.mli,*.mll,*.mly,.ocamlinit,*.mlt,*.mlp,*.mlip,*.mli.cppo,*.ml.cppo setf ocaml 1174 1175" Occam 1176au BufNewFile,BufRead *.occ setf occam 1177 1178" Omnimark 1179au BufNewFile,BufRead *.xom,*.xin setf omnimark 1180 1181" OPAM 1182au BufNewFile,BufRead opam,*.opam,*.opam.template setf opam 1183 1184" OpenROAD 1185au BufNewFile,BufRead *.or setf openroad 1186 1187" OPL 1188au BufNewFile,BufRead *.[Oo][Pp][Ll] setf opl 1189 1190" Oracle config file 1191au BufNewFile,BufRead *.ora setf ora 1192 1193" Packet filter conf 1194au BufNewFile,BufRead pf.conf setf pf 1195 1196" Pacman Config (close enough to dosini) 1197au BufNewFile,BufRead */etc/pacman.conf setf dosini 1198 1199" Pacman hooks 1200au BufNewFile,BufRead *.hook 1201 \ if getline(1) == '[Trigger]' | 1202 \ setf dosini | 1203 \ endif 1204 1205" Pam conf 1206au BufNewFile,BufRead */etc/pam.conf setf pamconf 1207 1208" Pam environment 1209au BufNewFile,BufRead pam_env.conf,.pam_environment setf pamenv 1210 1211" PApp 1212au BufNewFile,BufRead *.papp,*.pxml,*.pxsl setf papp 1213 1214" Password file 1215au 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 1216 1217" Pascal (also *.p, *.pp, *.inc) 1218au BufNewFile,BufRead *.pas setf pascal 1219 1220" Pascal or Puppet manifest 1221au BufNewFile,BufRead *.pp call dist#ft#FTpp() 1222 1223" Delphi or Lazarus program file 1224au BufNewFile,BufRead *.dpr,*.lpr setf pascal 1225 1226" Free Pascal makefile definition file 1227au BufNewFile,BufRead *.fpc setf fpcmake 1228 1229" PDF 1230au BufNewFile,BufRead *.pdf setf pdf 1231 1232" PCMK - HAE - crm configure edit 1233au BufNewFile,BufRead *.pcmk setf pcmk 1234 1235" Perl 1236if has("fname_case") 1237 au BufNewFile,BufRead *.pl,*.PL call dist#ft#FTpl() 1238else 1239 au BufNewFile,BufRead *.pl call dist#ft#FTpl() 1240endif 1241au BufNewFile,BufRead *.plx,*.al,*.psgi setf perl 1242 1243" Perl, XPM or XPM2 1244au BufNewFile,BufRead *.pm 1245 \ if getline(1) =~ "XPM2" | 1246 \ setf xpm2 | 1247 \ elseif getline(1) =~ "XPM" | 1248 \ setf xpm | 1249 \ else | 1250 \ setf perl | 1251 \ endif 1252 1253" Perl POD 1254au BufNewFile,BufRead *.pod setf pod 1255 1256" Php, php3, php4, etc. 1257" Also Phtml (was used for PHP 2 in the past) 1258" Also .ctp for Cake template file 1259au BufNewFile,BufRead *.php,*.php\d,*.phtml,*.ctp setf php 1260 1261" PHP config 1262au BufNewFile,BufRead php.ini-* setf dosini 1263 1264" Pike and Cmod 1265au BufNewFile,BufRead *.pike,*.pmod setf pike 1266au BufNewFile,BufRead *.cmod setf cmod 1267 1268" Pinfo config 1269au BufNewFile,BufRead */etc/pinforc,*/.pinforc setf pinfo 1270 1271" Palm Resource compiler 1272au BufNewFile,BufRead *.rcp setf pilrc 1273 1274" Pine config 1275au BufNewFile,BufRead .pinerc,pinerc,.pinercex,pinercex setf pine 1276 1277" Pipenv Pipfiles 1278au BufNewFile,BufRead Pipfile setf config 1279au BufNewFile,BufRead Pipfile.lock setf json 1280 1281" PL/1, PL/I 1282au BufNewFile,BufRead *.pli,*.pl1 setf pli 1283 1284" PL/M (also: *.inp) 1285au BufNewFile,BufRead *.plm,*.p36,*.pac setf plm 1286 1287" PL/SQL 1288au BufNewFile,BufRead *.pls,*.plsql setf plsql 1289 1290" PLP 1291au BufNewFile,BufRead *.plp setf plp 1292 1293" PO and PO template (GNU gettext) 1294au BufNewFile,BufRead *.po,*.pot setf po 1295 1296" Postfix main config 1297au BufNewFile,BufRead main.cf setf pfmain 1298 1299" PostScript (+ font files, encapsulated PostScript, Adobe Illustrator) 1300au BufNewFile,BufRead *.ps,*.pfa,*.afm,*.eps,*.epsf,*.epsi,*.ai setf postscr 1301 1302" PostScript Printer Description 1303au BufNewFile,BufRead *.ppd setf ppd 1304 1305" Povray 1306au BufNewFile,BufRead *.pov setf pov 1307 1308" Povray configuration 1309au BufNewFile,BufRead .povrayrc setf povini 1310 1311" Povray, Pascal, PHP or assembly 1312au BufNewFile,BufRead *.inc call dist#ft#FTinc() 1313 1314" PowerShell 1315au BufNewFile,BufRead *.ps1,*.psd1,*.psm1,*.pssc setf ps1 1316au BufNewFile,BufRead *.ps1xml setf ps1xml 1317au BufNewFile,BufRead *.cdxml,*.psc1 setf xml 1318 1319" Printcap and Termcap 1320au BufNewFile,BufRead *printcap 1321 \ let b:ptcap_type = "print" | setf ptcap 1322au BufNewFile,BufRead *termcap 1323 \ let b:ptcap_type = "term" | setf ptcap 1324 1325" PCCTS / ANTLR 1326"au BufNewFile,BufRead *.g setf antlr 1327au BufNewFile,BufRead *.g setf pccts 1328 1329" PPWizard 1330au BufNewFile,BufRead *.it,*.ih setf ppwiz 1331 1332" Puppet 1333au BufNewFile,BufRead Puppetfile setf ruby 1334 1335" Embedded Puppet 1336au BufNewFile,BufRead *.epp setf epuppet 1337 1338" Obj 3D file format 1339" TODO: is there a way to avoid MS-Windows Object files? 1340au BufNewFile,BufRead *.obj setf obj 1341 1342" Oracle Pro*C/C++ 1343au BufNewFile,BufRead *.pc setf proc 1344 1345" Privoxy actions file 1346au BufNewFile,BufRead *.action setf privoxy 1347 1348" Procmail 1349au BufNewFile,BufRead .procmail,.procmailrc setf procmail 1350 1351" Progress or CWEB 1352au BufNewFile,BufRead *.w call dist#ft#FTprogress_cweb() 1353 1354" Progress or assembly 1355au BufNewFile,BufRead *.i call dist#ft#FTprogress_asm() 1356 1357" Progress or Pascal 1358au BufNewFile,BufRead *.p call dist#ft#FTprogress_pascal() 1359 1360" Software Distributor Product Specification File (POSIX 1387.2-1995) 1361au BufNewFile,BufRead *.psf setf psf 1362au BufNewFile,BufRead INDEX,INFO 1363 \ if getline(1) =~ '^\s*\(distribution\|installed_software\|root\|bundle\|product\)\s*$' | 1364 \ setf psf | 1365 \ endif 1366 1367" Prolog 1368au BufNewFile,BufRead *.pdb setf prolog 1369 1370" Promela 1371au BufNewFile,BufRead *.pml setf promela 1372 1373" Property Specification Language (PSL) 1374au BufNewFile,BufRead *.psl setf psl 1375 1376" Google protocol buffers 1377au BufNewFile,BufRead *.proto setf proto 1378au BufNewFile,BufRead *.pbtxt setf pbtxt 1379 1380" Poke 1381au BufNewFile,BufRead *.pk setf poke 1382 1383" Protocols 1384au BufNewFile,BufRead */etc/protocols setf protocols 1385 1386" Pyret 1387au BufNewFile,BufRead *.arr setf pyret 1388 1389" Pyrex 1390au BufNewFile,BufRead *.pyx,*.pxd setf pyrex 1391 1392" Python, Python Shell Startup and Python Stub Files 1393" Quixote (Python-based web framework) 1394au BufNewFile,BufRead *.py,*.pyw,.pythonstartup,.pythonrc setf python 1395au BufNewFile,BufRead *.ptl,*.pyi,SConstruct setf python 1396 1397" Radiance 1398au BufNewFile,BufRead *.rad,*.mat setf radiance 1399 1400" Raku (formelly Perl6) 1401au BufNewFile,BufRead *.pm6,*.p6,*.t6,*.pod6,*.raku,*.rakumod,*.rakudoc,*.rakutest setf raku 1402 1403" Ratpoison config/command files 1404au BufNewFile,BufRead .ratpoisonrc,ratpoisonrc setf ratpoison 1405 1406" RCS file 1407au BufNewFile,BufRead *\,v setf rcs 1408 1409" Readline 1410au BufNewFile,BufRead .inputrc,inputrc setf readline 1411 1412" Registry for MS-Windows 1413au BufNewFile,BufRead *.reg 1414 \ if getline(1) =~? '^REGEDIT[0-9]*\s*$\|^Windows Registry Editor Version \d*\.\d*\s*$' | setf registry | endif 1415 1416" Renderman Interface Bytestream 1417au BufNewFile,BufRead *.rib setf rib 1418 1419" Rego Policy Language 1420au BufNewFile,BufRead *.rego setf rego 1421 1422" Rexx 1423au BufNewFile,BufRead *.rex,*.orx,*.rxo,*.rxj,*.jrexx,*.rexxj,*.rexx,*.testGroup,*.testUnit setf rexx 1424 1425" R Help file 1426if has("fname_case") 1427 au BufNewFile,BufRead *.rd,*.Rd setf rhelp 1428else 1429 au BufNewFile,BufRead *.rd setf rhelp 1430endif 1431 1432" R noweb file 1433if has("fname_case") 1434 au BufNewFile,BufRead *.Rnw,*.rnw,*.Snw,*.snw setf rnoweb 1435else 1436 au BufNewFile,BufRead *.rnw,*.snw setf rnoweb 1437endif 1438 1439" R Markdown file 1440if has("fname_case") 1441 au BufNewFile,BufRead *.Rmd,*.rmd,*.Smd,*.smd setf rmd 1442else 1443 au BufNewFile,BufRead *.rmd,*.smd setf rmd 1444endif 1445 1446" RSS looks like XML 1447au BufNewFile,BufRead *.rss setf xml 1448 1449" R reStructuredText file 1450if has("fname_case") 1451 au BufNewFile,BufRead *.Rrst,*.rrst,*.Srst,*.srst setf rrst 1452else 1453 au BufNewFile,BufRead *.rrst,*.srst setf rrst 1454endif 1455 1456" Rexx, Rebol or R 1457au BufNewFile,BufRead *.r,*.R call dist#ft#FTr() 1458 1459" Remind 1460au BufNewFile,BufRead .reminders,*.remind,*.rem setf remind 1461 1462" Resolv.conf 1463au BufNewFile,BufRead resolv.conf setf resolv 1464 1465" Relax NG Compact 1466au BufNewFile,BufRead *.rnc setf rnc 1467 1468" Relax NG XML 1469au BufNewFile,BufRead *.rng setf rng 1470 1471" RPL/2 1472au BufNewFile,BufRead *.rpl setf rpl 1473 1474" Robots.txt 1475au BufNewFile,BufRead robots.txt setf robots 1476 1477" Rpcgen 1478au BufNewFile,BufRead *.x setf rpcgen 1479 1480" reStructuredText Documentation Format 1481au BufNewFile,BufRead *.rst setf rst 1482 1483" RTF 1484au BufNewFile,BufRead *.rtf setf rtf 1485 1486" Interactive Ruby shell 1487au BufNewFile,BufRead .irbrc,irbrc setf ruby 1488 1489" Ruby 1490au BufNewFile,BufRead *.rb,*.rbw setf ruby 1491 1492" RubyGems 1493au BufNewFile,BufRead *.gemspec setf ruby 1494 1495" RBS (Ruby Signature) 1496au BufNewFile,BufRead *.rbs setf rbs 1497 1498" Rackup 1499au BufNewFile,BufRead *.ru setf ruby 1500 1501" Bundler 1502au BufNewFile,BufRead Gemfile setf ruby 1503 1504" Ruby on Rails 1505au BufNewFile,BufRead *.builder,*.rxml,*.rjs setf ruby 1506 1507" Rantfile and Rakefile is like Ruby 1508au BufNewFile,BufRead [rR]antfile,*.rant,[rR]akefile,*.rake setf ruby 1509 1510" Rust 1511au BufNewFile,BufRead *.rs setf rust 1512 1513" S-lang (or shader language, or SmallLisp) 1514au BufNewFile,BufRead *.sl setf slang 1515 1516" Samba config 1517au BufNewFile,BufRead smb.conf setf samba 1518 1519" SAS script 1520au BufNewFile,BufRead *.sas setf sas 1521 1522" Sass 1523au BufNewFile,BufRead *.sass setf sass 1524 1525" Sather 1526au BufNewFile,BufRead *.sa setf sather 1527 1528" Scala 1529au BufNewFile,BufRead *.scala,*.sc setf scala 1530 1531" SBT - Scala Build Tool 1532au BufNewFile,BufRead *.sbt setf sbt 1533 1534" Scilab 1535au BufNewFile,BufRead *.sci,*.sce setf scilab 1536 1537" scdoc 1538au BufNewFile,BufRead *.scd setf scdoc 1539 1540" SCSS 1541au BufNewFile,BufRead *.scss setf scss 1542 1543" SD: Streaming Descriptors 1544au BufNewFile,BufRead *.sd setf sd 1545 1546" SDL 1547au BufNewFile,BufRead *.sdl,*.pr setf sdl 1548 1549" sed 1550au BufNewFile,BufRead *.sed setf sed 1551 1552" svelte 1553au BufNewFile,BufRead *.svelte setf svelte 1554 1555" Sieve (RFC 3028, 5228) 1556au BufNewFile,BufRead *.siv,*.sieve setf sieve 1557 1558" Sendmail 1559au BufNewFile,BufRead sendmail.cf setf sm 1560 1561" Sendmail .mc files are actually m4. Could also be MS Message text file. 1562au BufNewFile,BufRead *.mc call dist#ft#McSetf() 1563 1564" Services 1565au BufNewFile,BufRead */etc/services setf services 1566 1567" Service Location config 1568au BufNewFile,BufRead */etc/slp.conf setf slpconf 1569 1570" Service Location registration 1571au BufNewFile,BufRead */etc/slp.reg setf slpreg 1572 1573" Service Location SPI 1574au BufNewFile,BufRead */etc/slp.spi setf slpspi 1575 1576" Setserial config 1577au BufNewFile,BufRead */etc/serial.conf setf setserial 1578 1579" SGML 1580au BufNewFile,BufRead *.sgm,*.sgml 1581 \ if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'linuxdoc' | 1582 \ setf sgmllnx | 1583 \ elseif getline(1) =~ '<!DOCTYPE.*DocBook' || getline(2) =~ '<!DOCTYPE.*DocBook' | 1584 \ let b:docbk_type = "sgml" | 1585 \ let b:docbk_ver = 4 | 1586 \ setf docbk | 1587 \ else | 1588 \ setf sgml | 1589 \ endif 1590 1591" SGMLDECL 1592au BufNewFile,BufRead *.decl,*.dcl,*.dec 1593 \ if getline(1).getline(2).getline(3) =~? '^<!SGML' | 1594 \ setf sgmldecl | 1595 \ endif 1596 1597" SGML catalog file 1598au BufNewFile,BufRead catalog setf catalog 1599 1600" Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc. 1601" Gentoo ebuilds, Arch Linux PKGBUILDs and Alpine Linux APKBUILDs are actually 1602" bash scripts. 1603" NOTE: Patterns ending in a star are further down, these have lower priority. 1604au BufNewFile,BufRead .bashrc,bashrc,bash.bashrc,.bash[_-]profile,.bash[_-]logout,.bash[_-]aliases,bash-fc[-.],*.ebuild,*.bash,*.eclass,PKGBUILD,APKBUILD call dist#ft#SetFileTypeSH("bash") 1605au BufNewFile,BufRead .kshrc,*.ksh call dist#ft#SetFileTypeSH("ksh") 1606au BufNewFile,BufRead */etc/profile,.profile,*.sh,*.env call dist#ft#SetFileTypeSH(getline(1)) 1607 1608" Shell script (Arch Linux) or PHP file (Drupal) 1609au BufNewFile,BufRead *.install 1610 \ if getline(1) =~ '<?php' | 1611 \ setf php | 1612 \ else | 1613 \ call dist#ft#SetFileTypeSH("bash") | 1614 \ endif 1615 1616" tcsh scripts (patterns ending in a star further below) 1617au BufNewFile,BufRead .tcshrc,*.tcsh,tcsh.tcshrc,tcsh.login call dist#ft#SetFileTypeShell("tcsh") 1618 1619" csh scripts, but might also be tcsh scripts (on some systems csh is tcsh) 1620" (patterns ending in a start further below) 1621au BufNewFile,BufRead .login,.cshrc,csh.cshrc,csh.login,csh.logout,*.csh,.alias call dist#ft#CSH() 1622 1623" Z-Shell script (patterns ending in a star further below) 1624au BufNewFile,BufRead .zprofile,*/etc/zprofile,.zfbfmarks setf zsh 1625au BufNewFile,BufRead .zshrc,.zshenv,.zlogin,.zlogout,.zcompdump setf zsh 1626au BufNewFile,BufRead *.zsh setf zsh 1627 1628" Scheme 1629au BufNewFile,BufRead *.scm,*.ss,*.rkt,*.rktd,*.rktl setf scheme 1630 1631" Screen RC 1632au BufNewFile,BufRead .screenrc,screenrc setf screen 1633 1634" Sexplib 1635au BufNewFile,BufRead *.sexp setf sexplib 1636 1637" Simula 1638au BufNewFile,BufRead *.sim setf simula 1639 1640" SINDA 1641au BufNewFile,BufRead *.sin,*.s85 setf sinda 1642 1643" SiSU 1644au BufNewFile,BufRead *.sst,*.ssm,*.ssi,*.-sst,*._sst setf sisu 1645au BufNewFile,BufRead *.sst.meta,*.-sst.meta,*._sst.meta setf sisu 1646 1647" SKILL 1648au BufNewFile,BufRead *.il,*.ils,*.cdf setf skill 1649 1650" SLRN 1651au BufNewFile,BufRead .slrnrc setf slrnrc 1652au BufNewFile,BufRead *.score setf slrnsc 1653 1654" Smalltalk (and TeX) 1655au BufNewFile,BufRead *.st setf st 1656au BufNewFile,BufRead *.cls 1657 \ if getline(1) =~ '^%' | 1658 \ setf tex | 1659 \ elseif getline(1)[0] == '#' && getline(1) =~ 'rexx' | 1660 \ setf rexx | 1661 \ else | 1662 \ setf st | 1663 \ endif 1664 1665" Smarty templates 1666au BufNewFile,BufRead *.tpl setf smarty 1667 1668" SMIL or XML 1669au BufNewFile,BufRead *.smil 1670 \ if getline(1) =~ '<?\s*xml.*?>' | 1671 \ setf xml | 1672 \ else | 1673 \ setf smil | 1674 \ endif 1675 1676" SMIL or SNMP MIB file 1677au BufNewFile,BufRead *.smi 1678 \ if getline(1) =~ '\<smil\>' | 1679 \ setf smil | 1680 \ else | 1681 \ setf mib | 1682 \ endif 1683 1684" SMITH 1685au BufNewFile,BufRead *.smt,*.smith setf smith 1686 1687" Snobol4 and spitbol 1688au BufNewFile,BufRead *.sno,*.spt setf snobol4 1689 1690" SNMP MIB files 1691au BufNewFile,BufRead *.mib,*.my setf mib 1692 1693" Snort Configuration 1694au BufNewFile,BufRead *.hog,snort.conf,vision.conf setf hog 1695au BufNewFile,BufRead *.rules call dist#ft#FTRules() 1696 1697" SPARQL queries 1698au BufNewFile,BufRead *.rq,*.sparql setf sparql 1699 1700" Spec (Linux RPM) 1701au BufNewFile,BufRead *.spec setf spec 1702 1703" Speedup (AspenTech plant simulator) 1704au BufNewFile,BufRead *.speedup,*.spdata,*.spd setf spup 1705 1706" Slice 1707au BufNewFile,BufRead *.ice setf slice 1708 1709" Spice 1710au BufNewFile,BufRead *.sp,*.spice setf spice 1711 1712" Spyce 1713au BufNewFile,BufRead *.spy,*.spi setf spyce 1714 1715" Squid 1716au BufNewFile,BufRead squid.conf setf squid 1717 1718" SQL for Oracle Designer 1719au BufNewFile,BufRead *.tyb,*.typ,*.tyc,*.pkb,*.pks setf sql 1720 1721" SQL 1722au BufNewFile,BufRead *.sql call dist#ft#SQL() 1723 1724" SQLJ 1725au BufNewFile,BufRead *.sqlj setf sqlj 1726 1727" SQR 1728au BufNewFile,BufRead *.sqr,*.sqi setf sqr 1729 1730" OpenSSH configuration 1731au BufNewFile,BufRead ssh_config,*/.ssh/config setf sshconfig 1732au BufNewFile,BufRead */etc/ssh/ssh_config.d/*.conf setf sshconfig 1733 1734" OpenSSH server configuration 1735au BufNewFile,BufRead sshd_config setf sshdconfig 1736au BufNewFile,BufRead */etc/ssh/sshd_config.d/*.conf setf sshdconfig 1737 1738" Stata 1739au BufNewFile,BufRead *.ado,*.do,*.imata,*.mata setf stata 1740" Also *.class, but not when it's a Java bytecode file 1741au BufNewFile,BufRead *.class 1742 \ if getline(1) !~ "^\xca\xfe\xba\xbe" | setf stata | endif 1743 1744" SMCL 1745au BufNewFile,BufRead *.hlp,*.ihlp,*.smcl setf smcl 1746 1747" Stored Procedures 1748au BufNewFile,BufRead *.stp setf stp 1749 1750" Standard ML 1751au BufNewFile,BufRead *.sml setf sml 1752 1753" Sratus VOS command macro 1754au BufNewFile,BufRead *.cm setf voscm 1755 1756" Swift 1757au BufNewFile,BufRead *.swift setf swift 1758au BufNewFile,BufRead *.swift.gyb setf swiftgyb 1759 1760" Swift Intermediate Language 1761au BufNewFile,BufRead *.sil setf sil 1762 1763" Sysctl 1764au BufNewFile,BufRead */etc/sysctl.conf,*/etc/sysctl.d/*.conf setf sysctl 1765 1766" Systemd unit files 1767au BufNewFile,BufRead */systemd/*.{automount,dnssd,link,mount,netdev,network,nspawn,path,service,slice,socket,swap,target,timer} setf systemd 1768" Systemd overrides 1769au BufNewFile,BufRead */etc/systemd/*.conf.d/*.conf setf systemd 1770au BufNewFile,BufRead */etc/systemd/system/*.d/*.conf setf systemd 1771au BufNewFile,BufRead */.config/systemd/user/*.d/*.conf setf systemd 1772" Systemd temp files 1773au BufNewFile,BufRead */etc/systemd/system/*.d/.#* setf systemd 1774au BufNewFile,BufRead */etc/systemd/system/.#* setf systemd 1775au BufNewFile,BufRead */.config/systemd/user/*.d/.#* setf systemd 1776au BufNewFile,BufRead */.config/systemd/user/.#* setf systemd 1777 1778" Synopsys Design Constraints 1779au BufNewFile,BufRead *.sdc setf sdc 1780 1781" Sudoers 1782au BufNewFile,BufRead */etc/sudoers,sudoers.tmp setf sudoers 1783 1784" SVG (Scalable Vector Graphics) 1785au BufNewFile,BufRead *.svg setf svg 1786 1787" Tads (or Nroff or Perl test file) 1788au BufNewFile,BufRead *.t 1789 \ if !dist#ft#FTnroff() && !dist#ft#FTperl() | setf tads | endif 1790 1791" Tags 1792au BufNewFile,BufRead tags setf tags 1793 1794" TAK 1795au BufNewFile,BufRead *.tak setf tak 1796 1797" Task 1798au BufRead,BufNewFile {pending,completed,undo}.data setf taskdata 1799au BufRead,BufNewFile *.task setf taskedit 1800 1801" Tcl (JACL too) 1802au BufNewFile,BufRead *.tcl,*.tk,*.itcl,*.itk,*.jacl setf tcl 1803 1804" TealInfo 1805au BufNewFile,BufRead *.tli setf tli 1806 1807" Telix Salt 1808au BufNewFile,BufRead *.slt setf tsalt 1809 1810" Tera Term Language or Turtle 1811au BufRead,BufNewFile *.ttl 1812 \ if getline(1) =~ '^@\?\(prefix\|base\)' | 1813 \ setf turtle | 1814 \ else | 1815 \ setf teraterm | 1816 \ endif 1817 1818" Terminfo 1819au BufNewFile,BufRead *.ti setf terminfo 1820 1821" TeX 1822au BufNewFile,BufRead *.latex,*.sty,*.dtx,*.ltx,*.bbl setf tex 1823au BufNewFile,BufRead *.tex call dist#ft#FTtex() 1824 1825" ConTeXt 1826au BufNewFile,BufRead *.mkii,*.mkiv,*.mkvi,*.mkxl,*.mklx setf context 1827 1828" Texinfo 1829au BufNewFile,BufRead *.texinfo,*.texi,*.txi setf texinfo 1830 1831" TeX configuration 1832au BufNewFile,BufRead texmf.cnf setf texmf 1833 1834" Tidy config 1835au BufNewFile,BufRead .tidyrc,tidyrc,tidy.conf setf tidy 1836 1837" TF mud client 1838au BufNewFile,BufRead *.tf,.tfrc,tfrc setf tf 1839 1840" tmux configuration 1841au BufNewFile,BufRead {.,}tmux*.conf setf tmux 1842 1843" TOML 1844au BufNewFile,BufRead *.toml setf toml 1845 1846" TPP - Text Presentation Program 1847au BufNewFile,BufReadPost *.tpp setf tpp 1848 1849" Treetop 1850au BufRead,BufNewFile *.treetop setf treetop 1851 1852" Trustees 1853au BufNewFile,BufRead trustees.conf setf trustees 1854 1855" TSS - Geometry 1856au BufNewFile,BufReadPost *.tssgm setf tssgm 1857 1858" TSS - Optics 1859au BufNewFile,BufReadPost *.tssop setf tssop 1860 1861" TSS - Command Line (temporary) 1862au BufNewFile,BufReadPost *.tsscl setf tsscl 1863 1864" TWIG files 1865au BufNewFile,BufReadPost *.twig setf twig 1866 1867" Typescript or Qt translation file (which is XML) 1868au BufNewFile,BufReadPost *.ts 1869 \ if getline(1) =~ '<?xml' | 1870 \ setf xml | 1871 \ else | 1872 \ setf typescript | 1873 \ endif 1874 1875" TypeScript with React 1876au BufNewFile,BufRead *.tsx setf typescriptreact 1877 1878" Motif UIT/UIL files 1879au BufNewFile,BufRead *.uit,*.uil setf uil 1880 1881" Udev conf 1882au BufNewFile,BufRead */etc/udev/udev.conf setf udevconf 1883 1884" Udev permissions 1885au BufNewFile,BufRead */etc/udev/permissions.d/*.permissions setf udevperm 1886" 1887" Udev symlinks config 1888au BufNewFile,BufRead */etc/udev/cdsymlinks.conf setf sh 1889 1890" UnrealScript 1891au BufNewFile,BufRead *.uc setf uc 1892 1893" Updatedb 1894au BufNewFile,BufRead */etc/updatedb.conf setf updatedb 1895 1896" Upstart (init(8)) config files 1897au BufNewFile,BufRead */usr/share/upstart/*.conf setf upstart 1898au BufNewFile,BufRead */usr/share/upstart/*.override setf upstart 1899au BufNewFile,BufRead */etc/init/*.conf,*/etc/init/*.override setf upstart 1900au BufNewFile,BufRead */.init/*.conf,*/.init/*.override setf upstart 1901au BufNewFile,BufRead */.config/upstart/*.conf setf upstart 1902au BufNewFile,BufRead */.config/upstart/*.override setf upstart 1903 1904" Vera 1905au BufNewFile,BufRead *.vr,*.vri,*.vrh setf vera 1906 1907" Verilog HDL 1908au BufNewFile,BufRead *.v setf verilog 1909 1910" Verilog-AMS HDL 1911au BufNewFile,BufRead *.va,*.vams setf verilogams 1912 1913" SystemVerilog 1914au BufNewFile,BufRead *.sv,*.svh setf systemverilog 1915 1916" VHDL 1917au BufNewFile,BufRead *.hdl,*.vhd,*.vhdl,*.vbe,*.vst,*.vho setf vhdl 1918 1919" Vim script 1920au BufNewFile,BufRead *.vim,*.vba,.exrc,_exrc setf vim 1921 1922" Viminfo file 1923au BufNewFile,BufRead .viminfo,_viminfo setf viminfo 1924 1925" Virata Config Script File or Drupal module 1926au BufRead,BufNewFile *.hw,*.module,*.pkg 1927 \ if getline(1) =~ '<?php' | 1928 \ setf php | 1929 \ else | 1930 \ setf virata | 1931 \ endif 1932 1933" Visual Basic (also uses *.bas) or FORM 1934au BufNewFile,BufRead *.frm call dist#ft#FTVB("form") 1935 1936" SaxBasic is close to Visual Basic 1937au BufNewFile,BufRead *.sba setf vb 1938 1939" Vgrindefs file 1940au BufNewFile,BufRead vgrindefs setf vgrindefs 1941 1942" VRML V1.0c 1943au BufNewFile,BufRead *.wrl setf vrml 1944 1945" Vroom (vim testing and executable documentation) 1946au BufNewFile,BufRead *.vroom setf vroom 1947 1948" Vue.js Single File Component 1949au BufNewFile,BufRead *.vue setf vue 1950 1951" WebAssembly 1952au BufNewFile,BufRead *.wast,*.wat setf wast 1953 1954" Webmacro 1955au BufNewFile,BufRead *.wm setf webmacro 1956 1957" Wget config 1958au BufNewFile,BufRead .wgetrc,wgetrc setf wget 1959 1960" Website MetaLanguage 1961au BufNewFile,BufRead *.wml setf wml 1962 1963" Winbatch 1964au BufNewFile,BufRead *.wbt setf winbatch 1965 1966" WSML 1967au BufNewFile,BufRead *.wsml setf wsml 1968 1969" WPL 1970au BufNewFile,BufRead *.wpl setf xml 1971 1972" WvDial 1973au BufNewFile,BufRead wvdial.conf,.wvdialrc setf wvdial 1974 1975" CVS RC file 1976au BufNewFile,BufRead .cvsrc setf cvsrc 1977 1978" CVS commit file 1979au BufNewFile,BufRead cvs\d\+ setf cvs 1980 1981" WEB (*.web is also used for Winbatch: Guess, based on expecting "%" comment 1982" lines in a WEB file). 1983au BufNewFile,BufRead *.web 1984 \ if getline(1)[0].getline(2)[0].getline(3)[0].getline(4)[0].getline(5)[0] =~ "%" | 1985 \ setf web | 1986 \ else | 1987 \ setf winbatch | 1988 \ endif 1989 1990" Windows Scripting Host and Windows Script Component 1991au BufNewFile,BufRead *.ws[fc] setf wsh 1992 1993" XHTML 1994au BufNewFile,BufRead *.xhtml,*.xht setf xhtml 1995 1996" X Pixmap (dynamically sets colors, use BufEnter to make it work better) 1997au BufEnter *.xpm 1998 \ if getline(1) =~ "XPM2" | 1999 \ setf xpm2 | 2000 \ else | 2001 \ setf xpm | 2002 \ endif 2003au BufEnter *.xpm2 setf xpm2 2004 2005" XFree86 config 2006au BufNewFile,BufRead XF86Config 2007 \ if getline(1) =~ '\<XConfigurator\>' | 2008 \ let b:xf86conf_xfree86_version = 3 | 2009 \ endif | 2010 \ setf xf86conf 2011au BufNewFile,BufRead */xorg.conf.d/*.conf 2012 \ let b:xf86conf_xfree86_version = 4 | 2013 \ setf xf86conf 2014 2015" Xorg config 2016au BufNewFile,BufRead xorg.conf,xorg.conf-4 let b:xf86conf_xfree86_version = 4 | setf xf86conf 2017 2018" Xinetd conf 2019au BufNewFile,BufRead */etc/xinetd.conf setf xinetd 2020 2021" XS Perl extension interface language 2022au BufNewFile,BufRead *.xs setf xs 2023 2024" X resources file 2025au BufNewFile,BufRead .Xdefaults,.Xpdefaults,.Xresources,xdm-config,*.ad setf xdefaults 2026 2027" Xmath 2028au BufNewFile,BufRead *.msc,*.msf setf xmath 2029au BufNewFile,BufRead *.ms 2030 \ if !dist#ft#FTnroff() | setf xmath | endif 2031 2032" XML specific variants: docbk and xbl 2033au BufNewFile,BufRead *.xml call dist#ft#FTxml() 2034 2035" XMI (holding UML models) is also XML 2036au BufNewFile,BufRead *.xmi setf xml 2037 2038" CSPROJ files are Visual Studio.NET's XML-based project config files 2039au BufNewFile,BufRead *.csproj,*.csproj.user setf xml 2040 2041" Qt Linguist translation source and Qt User Interface Files are XML 2042" However, for .ts Typescript is more common. 2043au BufNewFile,BufRead *.ui setf xml 2044 2045" TPM's are RDF-based descriptions of TeX packages (Nikolai Weibull) 2046au BufNewFile,BufRead *.tpm setf xml 2047 2048" Xdg menus 2049au BufNewFile,BufRead */etc/xdg/menus/*.menu setf xml 2050 2051" ATI graphics driver configuration 2052au BufNewFile,BufRead fglrxrc setf xml 2053 2054" Web Services Description Language (WSDL) 2055au BufNewFile,BufRead *.wsdl setf xml 2056 2057" XLIFF (XML Localisation Interchange File Format) is also XML 2058au BufNewFile,BufRead *.xlf setf xml 2059au BufNewFile,BufRead *.xliff setf xml 2060 2061" XML User Interface Language 2062au BufNewFile,BufRead *.xul setf xml 2063 2064" X11 xmodmap (also see below) 2065au BufNewFile,BufRead *Xmodmap setf xmodmap 2066 2067" Xquery 2068au BufNewFile,BufRead *.xq,*.xql,*.xqm,*.xquery,*.xqy setf xquery 2069 2070" XSD 2071au BufNewFile,BufRead *.xsd setf xsd 2072 2073" Xslt 2074au BufNewFile,BufRead *.xsl,*.xslt setf xslt 2075 2076" Yacc 2077au BufNewFile,BufRead *.yy,*.yxx,*.y++ setf yacc 2078 2079" Yacc or racc 2080au BufNewFile,BufRead *.y call dist#ft#FTy() 2081 2082" Yaml 2083au BufNewFile,BufRead *.yaml,*.yml setf yaml 2084 2085" Raml 2086au BufNewFile,BufRead *.raml setf raml 2087 2088" yum conf (close enough to dosini) 2089au BufNewFile,BufRead */etc/yum.conf setf dosini 2090 2091" Zimbu 2092au BufNewFile,BufRead *.zu setf zimbu 2093" Zimbu Templates 2094au BufNewFile,BufRead *.zut setf zimbutempl 2095 2096" Zope 2097" dtml (zope dynamic template markup language), pt (zope page template), 2098" cpt (zope form controller page template) 2099au BufNewFile,BufRead *.dtml,*.pt,*.cpt call dist#ft#FThtml() 2100" zsql (zope sql method) 2101au BufNewFile,BufRead *.zsql call dist#ft#SQL() 2102 2103" Z80 assembler asz80 2104au BufNewFile,BufRead *.z8a setf z8a 2105 2106augroup END 2107 2108 2109" Source the user-specified filetype file, for backwards compatibility with 2110" Vim 5.x. 2111if exists("myfiletypefile") && filereadable(expand(myfiletypefile)) 2112 execute "source " . myfiletypefile 2113endif 2114 2115 2116" Check for "*" after loading myfiletypefile, so that scripts.vim is only used 2117" when there are no matching file name extensions. 2118" Don't do this for compressed files. 2119augroup filetypedetect 2120au BufNewFile,BufRead * 2121 \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat 2122 \ | runtime! scripts.vim | endif 2123au StdinReadPost * if !did_filetype() | runtime! scripts.vim | endif 2124 2125 2126" Extra checks for when no filetype has been detected now. Mostly used for 2127" patterns that end in "*". E.g., "zsh*" matches "zsh.vim", but that's a Vim 2128" script file. 2129" Most of these should call s:StarSetf() to avoid names ending in .gz and the 2130" like are used. 2131 2132" More Apache style config files 2133au BufNewFile,BufRead */etc/proftpd/*.conf*,*/etc/proftpd/conf.*/* call s:StarSetf('apachestyle') 2134au BufNewFile,BufRead proftpd.conf* call s:StarSetf('apachestyle') 2135 2136" More Apache config files 2137au BufNewFile,BufRead access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf* call s:StarSetf('apache') 2138au BufNewFile,BufRead */etc/apache2/*.conf*,*/etc/apache2/conf.*/*,*/etc/apache2/mods-*/*,*/etc/apache2/sites-*/*,*/etc/httpd/conf.d/*.conf* call s:StarSetf('apache') 2139 2140" Asterisk config file 2141au BufNewFile,BufRead *asterisk/*.conf* call s:StarSetf('asterisk') 2142au BufNewFile,BufRead *asterisk*/*voicemail.conf* call s:StarSetf('asteriskvm') 2143 2144" Bazaar version control 2145au BufNewFile,BufRead bzr_log.* setf bzr 2146 2147" Bazel build file 2148if !has("fname_case") 2149 au BufNewFile,BufRead *.BUILD,BUILD setf bzl 2150endif 2151 2152" BIND zone 2153au BufNewFile,BufRead */named/db.*,*/bind/db.* call s:StarSetf('bindzone') 2154 2155au BufNewFile,BufRead cabal.project.* call s:StarSetf('cabalproject') 2156 2157" Calendar 2158au BufNewFile,BufRead */.calendar/*, 2159 \*/share/calendar/*/calendar.*,*/share/calendar/calendar.* 2160 \ call s:StarSetf('calendar') 2161 2162" Changelog 2163au BufNewFile,BufRead [cC]hange[lL]og* 2164 \ if getline(1) =~ '; urgency=' 2165 \| call s:StarSetf('debchangelog') 2166 \|else 2167 \| call s:StarSetf('changelog') 2168 \|endif 2169 2170" Crontab 2171au BufNewFile,BufRead crontab,crontab.*,*/etc/cron.d/* call s:StarSetf('crontab') 2172 2173" dnsmasq(8) configuration 2174au BufNewFile,BufRead */etc/dnsmasq.d/* call s:StarSetf('dnsmasq') 2175 2176" Dracula 2177au BufNewFile,BufRead drac.* call s:StarSetf('dracula') 2178 2179" Fvwm 2180au BufNewFile,BufRead */.fvwm/* call s:StarSetf('fvwm') 2181au BufNewFile,BufRead *fvwmrc*,*fvwm95*.hook 2182 \ let b:fvwm_version = 1 | call s:StarSetf('fvwm') 2183au BufNewFile,BufRead *fvwm2rc* 2184 \ if expand("<afile>:e") == "m4" 2185 \| call s:StarSetf('fvwm2m4') 2186 \|else 2187 \| let b:fvwm_version = 2 | call s:StarSetf('fvwm') 2188 \|endif 2189 2190" Gedcom 2191au BufNewFile,BufRead */tmp/lltmp* call s:StarSetf('gedcom') 2192 2193" Git 2194au BufNewFile,BufRead */.gitconfig.d/*,/etc/gitconfig.d/* call s:StarSetf('gitconfig') 2195 2196" Gitolite 2197au BufNewFile,BufRead */gitolite-admin/conf/* call s:StarSetf('gitolite') 2198 2199" GTK RC 2200au BufNewFile,BufRead .gtkrc*,gtkrc* call s:StarSetf('gtkrc') 2201 2202" Jam 2203au BufNewFile,BufRead Prl*.*,JAM*.* call s:StarSetf('jam') 2204 2205" Jargon 2206au! BufNewFile,BufRead *jarg* 2207 \ if getline(1).getline(2).getline(3).getline(4).getline(5) =~? 'THIS IS THE JARGON FILE' 2208 \| call s:StarSetf('jargon') 2209 \|endif 2210 2211" Java Properties resource file (note: doesn't catch font.properties.pl) 2212au BufNewFile,BufRead *.properties_??_??_* call s:StarSetf('jproperties') 2213 2214" Kconfig 2215au BufNewFile,BufRead Kconfig.* call s:StarSetf('kconfig') 2216 2217" Lilo: Linux loader 2218au BufNewFile,BufRead lilo.conf* call s:StarSetf('lilo') 2219 2220" Logcheck 2221au BufNewFile,BufRead */etc/logcheck/*.d*/* call s:StarSetf('logcheck') 2222 2223" Makefile 2224au BufNewFile,BufRead [mM]akefile* call s:StarSetf('make') 2225 2226" Ruby Makefile 2227au BufNewFile,BufRead [rR]akefile* call s:StarSetf('ruby') 2228 2229" Mail (also matches muttrc.vim, so this is below the other checks) 2230au BufNewFile,BufRead {neo,}mutt[[:alnum:]._-]\\\{6\} setf mail 2231 2232au BufNewFile,BufRead reportbug-* call s:StarSetf('mail') 2233 2234" Modconf 2235au BufNewFile,BufRead */etc/modutils/* 2236 \ if executable(expand("<afile>")) != 1 2237 \| call s:StarSetf('modconf') 2238 \|endif 2239au BufNewFile,BufRead */etc/modprobe.* call s:StarSetf('modconf') 2240 2241" Mutt setup file 2242au BufNewFile,BufRead .mutt{ng,}rc*,*/.mutt{ng,}/mutt{ng,}rc* call s:StarSetf('muttrc') 2243au BufNewFile,BufRead mutt{ng,}rc*,Mutt{ng,}rc* call s:StarSetf('muttrc') 2244 2245" Neomutt setup file 2246au BufNewFile,BufRead .neomuttrc*,*/.neomutt/neomuttrc* call s:StarSetf('neomuttrc') 2247au BufNewFile,BufRead neomuttrc*,Neomuttrc* call s:StarSetf('neomuttrc') 2248 2249" Nroff macros 2250au BufNewFile,BufRead tmac.* call s:StarSetf('nroff') 2251 2252" OpenBSD hostname.if 2253au BufNewFile,BufRead /etc/hostname.* call s:StarSetf('config') 2254 2255" Pam conf 2256au BufNewFile,BufRead */etc/pam.d/* call s:StarSetf('pamconf') 2257 2258" Printcap and Termcap 2259au BufNewFile,BufRead *printcap* 2260 \ if !did_filetype() 2261 \| let b:ptcap_type = "print" | call s:StarSetf('ptcap') 2262 \|endif 2263au BufNewFile,BufRead *termcap* 2264 \ if !did_filetype() 2265 \| let b:ptcap_type = "term" | call s:StarSetf('ptcap') 2266 \|endif 2267 2268" ReDIF 2269" Only used when the .rdf file was not detected to be XML. 2270au BufRead,BufNewFile *.rdf call dist#ft#Redif() 2271 2272" Remind 2273au BufNewFile,BufRead .reminders* call s:StarSetf('remind') 2274 2275" SGML catalog file 2276au BufNewFile,BufRead sgml.catalog* call s:StarSetf('catalog') 2277 2278" avoid doc files being recognized a shell files 2279au BufNewFile,BufRead */doc/{,.}bash[_-]completion{,.d,.sh}{,/*} setf text 2280 2281" Shell scripts ending in a star 2282au BufNewFile,BufRead .bashrc*,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,bash-fc[-.]*,PKGBUILD*,APKBUILD*,*/{,.}bash[_-]completion{,.d,.sh}{,/*} call dist#ft#SetFileTypeSH("bash") 2283au BufNewFile,BufRead .kshrc* call dist#ft#SetFileTypeSH("ksh") 2284au BufNewFile,BufRead .profile* call dist#ft#SetFileTypeSH(getline(1)) 2285 2286" tcsh scripts ending in a star 2287au BufNewFile,BufRead .tcshrc* call dist#ft#SetFileTypeShell("tcsh") 2288 2289" csh scripts ending in a star 2290au BufNewFile,BufRead .login*,.cshrc* call dist#ft#CSH() 2291 2292" VHDL 2293au BufNewFile,BufRead *.vhdl_[0-9]* call s:StarSetf('vhdl') 2294 2295" Vim script 2296au BufNewFile,BufRead *vimrc* call s:StarSetf('vim') 2297 2298" Subversion commit file 2299au BufNewFile,BufRead svn-commit*.tmp setf svn 2300 2301" X resources file 2302au BufNewFile,BufRead Xresources*,*/app-defaults/*,*/Xresources/* call s:StarSetf('xdefaults') 2303 2304" XFree86 config 2305au BufNewFile,BufRead XF86Config-4* 2306 \ let b:xf86conf_xfree86_version = 4 | call s:StarSetf('xf86conf') 2307au BufNewFile,BufRead XF86Config* 2308 \ if getline(1) =~ '\<XConfigurator\>' 2309 \| let b:xf86conf_xfree86_version = 3 2310 \|endif 2311 \|call s:StarSetf('xf86conf') 2312 2313" X11 xmodmap 2314au BufNewFile,BufRead *xmodmap* call s:StarSetf('xmodmap') 2315 2316" Xinetd conf 2317au BufNewFile,BufRead */etc/xinetd.d/* call s:StarSetf('xinetd') 2318 2319" yum conf (close enough to dosini) 2320au BufNewFile,BufRead */etc/yum.repos.d/* call s:StarSetf('dosini') 2321 2322" Z-Shell script ending in a star 2323au BufNewFile,BufRead .zsh*,.zlog*,.zcompdump* call s:StarSetf('zsh') 2324au BufNewFile,BufRead zsh*,zlog* call s:StarSetf('zsh') 2325 2326 2327" Plain text files, needs to be far down to not override others. This avoids 2328" the "conf" type being used if there is a line starting with '#'. 2329au BufNewFile,BufRead *.text,README setf text 2330 2331" Help files match *.txt but should have a last line that is a modeline. 2332au BufNewFile,BufRead *.txt 2333 \ if getline('$') !~ 'vim:.*ft=help' 2334 \| setf text 2335 \| endif 2336 2337 2338" Use the filetype detect plugins. They may overrule any of the previously 2339" detected filetypes. 2340runtime! ftdetect/*.vim 2341 2342" NOTE: The above command could have ended the filetypedetect autocmd group 2343" and started another one. Let's make sure it has ended to get to a consistent 2344" state. 2345augroup END 2346 2347" Generic configuration file. Use FALLBACK, it's just guessing! 2348au filetypedetect BufNewFile,BufRead,StdinReadPost * 2349 \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat 2350 \ && (getline(1) =~ '^#' || getline(2) =~ '^#' || getline(3) =~ '^#' 2351 \ || getline(4) =~ '^#' || getline(5) =~ '^#') | 2352 \ setf FALLBACK conf | 2353 \ endif 2354 2355 2356" If the GUI is already running, may still need to install the Syntax menu. 2357" Don't do it when the 'M' flag is included in 'guioptions'. 2358if has("menu") && has("gui_running") 2359 \ && !exists("did_install_syntax_menu") && &guioptions !~# "M" 2360 source <sfile>:p:h/menu.vim 2361endif 2362 2363" Function called for testing all functions defined here. These are 2364" script-local, thus need to be executed here. 2365" Returns a string with error messages (hopefully empty). 2366func! TestFiletypeFuncs(testlist) 2367 let output = '' 2368 for f in a:testlist 2369 try 2370 exe f 2371 catch 2372 let output = output . "\n" . f . ": " . v:exception 2373 endtry 2374 endfor 2375 return output 2376endfunc 2377 2378" Restore 'cpoptions' 2379let &cpo = s:cpo_save 2380unlet s:cpo_save 2381