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