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