au BufNewFile,BufRead *.cpp,*.cc,*.cxx,*.c++,*.C,*.H,*.hh,*.hxx,*.hpp,*.inl set ft=cpp
else
au BufNewFile,BufRead *.cpp,*.cc,*.cxx,*.c++,*.hh,*.hxx,*.hpp,*.inl set ft=cpp
endif
" .h files can be C or C++, set c_syntax_for_h if you want C
au BufNewFile,BufRead *.h if exists("c_syntax_for_h")|set ft=c|else|set ft=cpp|endif
" Cascading Style Sheets
au BufNewFile,BufRead *.css set ft=css
" Century Term Command Scripts
au BufNewFile,BufRead *.cmd,*.con set ft=cterm
" Clean
au BufNewFile,BufReadPost *.dcl,*.icl set ft=clean
" Clipper
au BufNewFile,BufRead *.prg set ft=clipper
" Cobol
au BufNewFile,BufRead *.cbl,*.cob,*.cpy,*.lib set ft=cobol
" Configure scripts
au BufNewFile,BufRead configure.in set ft=config
" Diff files
au BufNewFile,BufRead *.diff,*.rej set ft=diff
" Diva (with Skill) or InstallShield
au BufNewFile,BufRead *.rul if getline(1).getline(2).getline(3).getline(4).getline(5).getline(6) =~? 'InstallShield'|set ft=ishd|else|set ft=diva|endif
" DCL (Digital Command Language - vms)
au BufNewFile,BufRead *.com set ft=dcl
" Microsoft Module Definition
au BufNewFile,BufRead *.def set ft=def
" Dracula
au BufNewFile,BufRead drac.*,*.drac,*.drc,*lvs,*lpe set ft=dracula
" DTD (Document Type Definition for XML)
au BufNewFile,BufRead *.dtd set ft=dtd
" Eiffel
au BufNewFile,BufRead *.e,*.E set ft=eiffel
" Elm Filter Rules file
au BufNewFile,BufReadPost filter-rules set ft=elmfilt
" ESQL-C
au BufNewFile,BufRead *.ec,*.EC set ft=esqlc
" Exports
au BufNewFile,BufRead exports set ft=exports
" Focus Executable
au BufNewFile,BufRead *.fex,*.focexec set ft=focexec
" Focus Master file
au BufNewFile,BufRead *.mas,*.master set ft=master
" Forth
au BufNewFile,BufRead *.fs,*.ft set ft=forth
" Fortran
au BufNewFile,BufRead *.f,*.F,*.for,*.fpp set ft=fortran
" Fvwm
au BufNewFile,BufRead *fvwm*rc* set ft=fvwm
" GDB command files
au BufNewFile,BufRead .gdbinit set ft=gdb
" GDMO
au BufNewFile,BufRead *.mo,*.gdmo set ft=gdmo
" GP scripts (2.0 and onward)
au BufNewFile,BufRead *.gp set ft=gp
" Gnuplot scripts
au BufNewFile,BufRead *.gpi set ft=gnuplot
" Haskell
au BufNewFile,BufRead *.hs set ft=haskell
au BufNewFile,BufRead *.lhs set ft=lhaskell
" HTML (.shtml for server side)
au BufNewFile,BufRead *.html,*.htm,*.shtml set ft=html
" HTML with M4
au BufNewFile,BufRead *.html.m4 set ft=htmlm4
" IDL (Interface Description Language)
au BufNewFile,BufRead *.idl set ft=idl
" IDL (Interactive Data Language)
au BufNewFile,BufRead *.pro set ft=idlang
" Inform
au BufNewFile,BufRead *.inf,*.INF set ft=inform
" .INI file for MSDOS
au BufNewFile,BufRead *.ini set ft=dosini
" Java
au BufNewFile,BufRead *.java,*.jav set ft=java
" JavaCC
au BufNewFile,BufRead *.jj,*.jjt set ft=javacc
" JavaScript
au BufNewFile,BufRead *.js,*.javascript set ft=javascript
" Jgraph
au BufNewFile,BufRead *.jgr set ft=jgraph
" Kimwitu[++]
au BufNewFile,BufRead *.k set ft=kwt
" Lace (ISE)
au BufNewFile,BufRead *.ace,*.ACE set ft=lace
" Lex
au BufNewFile,BufRead *.lex,*.l set ft=lex
" Lilo: Linux loader
au BufNewFile,BufRead lilo.conf* set ft=lilo
" Lisp
if has("fname_case")
au BufNewFile,BufRead *.lsp,*.L set ft=lisp
else
au BufNewFile,BufRead *.lsp set ft=lisp
endif
" Lite
au BufNewFile,BufRead *.lite,*.lt set ft=lite
" LOTOS
au BufNewFile,BufRead *.lot,*.lotos set ft=lotos
" Lout (also: *.lt)
au BufNewFile,BufRead *.lou,*.lout set ft=lout
" Lua
au BufNewFile,BufRead *.lua set ft=lua
" Lynx style file
au BufNewFile,BufRead *.lss set ft=lss
" M4
au BufNewFile,BufRead *.m4 if expand("<afile>") !~? "html.m4$" | set ft=m4 | endif
" Mail (for Elm, trn and rn)
au BufNewFile,BufRead snd.*,.letter,.followup,.article,.article.[0-9]\+,pico.[0-9]\+,mutt*[0-9],ae[0-9]\+.txt set ft=mail
" Makefile
au BufNewFile,BufRead [mM]akefile*,GNUmakefile,*.mk,*.mak,*.dsp set ft=make
" Manpage
au BufNewFile,BufRead *.man set ft=man
" Maple V
au BufNewFile,BufRead *.mv,*.mpl,*.mws set ft=maple
" Matlab
au BufNewFile,BufRead *.m set ft=matlab
" Metafont
au BufNewFile,BufRead *.mf set ft=mf
" MetaPost
au BufNewFile,BufRead *.mp set ft=mp
" Modsim III
au BufNewFile,BufRead *.mod set ft=modsim3
" Modula 2
au BufNewFile,BufRead *.m2,*.DEF,*.MOD,*.md,*.mi set ft=modula2
" Modula 3
au BufNewFile,BufRead *.m3,*.i3 set ft=modula3
" Msql
au BufNewFile,BufRead *.msql set ft=msql
" M$ Resource files
au BufNewFile,BufRead *.rc set ft=rc
" Mutt setup file
au BufNewFile,BufRead .muttrc*,Muttrc set ft=muttrc
" Novell netware batch files
au BufNewFile,BufRead *.ncf set ft=ncf
" Nroff/Troff (*.ms is checked below)
au BufNewFile,BufRead *.me,*.mm,*.tr,*.nr set ft=nroff
au BufNewFile,BufRead *.[1-9] call FTCheck_nroff()
" This function checks if one of the first five lines start with a dot. In
" that case it is probably an nroff file: 'filetype' is set and 1 is returned.
" Shell scripts (sh, ksh, bash, csh); Allow .profile_foo etc.
au BufNewFile,BufRead /etc/profile,.profile*,.bashrc*,.bash_profile*,.kshrc*,*.sh,*.ksh,*.bash,*.env set ft=sh
au BufNewFile,BufRead .login*,.cshrc*,.tcshrc*,*.csh,*.tcsh set ft=csh
" Z-Shell script
au BufNewFile,BufRead .z*,zsh*,zlog* set ft=zsh
" Scheme
au BufNewFile,BufRead *.scm set ft=scheme
" Simula
au BufNewFile,BufRead *.sim set ft=simula
" SKILL
au BufNewFile,BufRead *.il set ft=skill
" SLRN
au BufNewFile,BufRead .slrnrc set ft=slrnrc
au BufNewFile,BufRead *.score set ft=slrnsc
" Smalltalk
au BufNewFile,BufRead *.st,*.cls set ft=st
" SMIL
au BufNewFile,BufReadPost *.smil set ft=smil
" SMIL or SNMP MIB file
au BufNewFile,BufRead *.smi if getline(1) =~ '\<smil\>'|set ft=smil|else|set ft=mib|endif
" SNMP MIB files
au BufNewFile,BufReadPost *.mib set ft=mib
" Spec (Linux RPM)
au BufNewFile,BufRead *.spec set ft=spec
" Speedup (AspenTech plant simulator)
au BufNewFile,BufRead *.speedup,*.spdata,*.spd set ft=spup
" Spice
au BufNewFile,BufRead *.sp,*.spice set ft=spice
" Squid: Removed, because there are too many *.conf files that aren't Squid.
"au BufNewFile,BufRead *.conf set ft=squid
" SQL (all but the first one for Oracle Designer)
au BufNewFile,BufRead *.sql,*.tyb,*.typ,*.tyc,*.pkb,*.pks set ft=sql
" Tags
au BufNewFile,BufRead tags set ft=tags
" Tcl
au BufNewFile,BufRead *.tcl,*.tk,*.itcl,*.itk set ft=tcl
" Telix Salt
au BufNewFile,BufRead *.slt set ft=tsalt
" TeX
au BufNewFile,BufRead *.tex,*.sty,*.dtx,*.ltx set ft=tex
" TF mud client
au BufNewFile,BufRead *.tf set ft=tf
" Motif UIT/UIL files
au BufNewFile,BufRead *.uit,*.uil set ft=uil
" Verilog HDL
au BufNewFile,BufRead *.v set ft=verilog
" VHDL
au BufNewFile,BufRead *.hdl,*.vhd,*.vhdl,*.vhdl_[0-9]*,*.vbe,*.vst set ft=vhdl
" Vim Help file
if has("mac")
au BufNewFile,BufRead *[/:]vim*[/:]doc[/:]*.txt,*[/:]runtime[/:]doc[/:]*.txt set ft=help
else
au BufNewFile,BufRead */vim*/doc/*.txt,*/runtime/doc/*.txt set ft=help
endif
" Vim script
au BufNewFile,BufRead *vimrc*,*.vim,.exrc,_exrc set ft=vim
" Viminfo file
au BufNewFile,BufRead .viminfo,_viminfo set ft=viminfo
" Visual Basic (also uses *.bas)
au BufNewFile,BufRead *.frm set ft=vb
" Vgrindefs file
au BufNewFile,BufRead vgrindefs set ft=vgrindefs
" VRML V1.0c
au BufNewFile,BufRead *.wrl set ft=vrml
" Winbatch
au BufNewFile,BufRead *.wbt set ft=winbatch
" CWEB
au BufNewFile,BufRead *.w set ft=cweb
" WEB (*.web is also used for Winbatch: Guess, based on expecting "%" comment
" lines in a WEB file).
au BufNewFile,BufRead *.web if getline(1)[0].getline(2)[0].getline(3)[0].getline(4)[0].getline(5)[0] =~ "%" | set ft=web | else | set ft=winbatch | endif
" Changes for WEB and CWEB
au BufNewFile,BufRead *.ch set ft=change
" X Pixmap (dynamically sets colors, use BufEnter to make it work better)
au BufEnter *.xpm set ft=xpm
" XS Perl extension interface language
au BufEnter *.xs set ft=xs
" X resources file
au BufNewFile,BufRead .Xdefaults,.Xresources,*/app-defaults/* set ft=xdefaults
" Xmath
au BufNewFile,BufRead *.msc,*.msf set ft=xmath
au BufNewFile,BufRead *.ms if !FTCheck_nroff() | set ft=xmath | endif
" vim: ts=8
" XML
au BufNewFile,BufRead *.xml set ft=xml
" Yacc
au BufNewFile,BufRead *.y set ft=yacc
" Z80 assembler asz80
au BufNewFile,BufRead *.z8a set ft=z8a
augroup END
" Source the user-specified filetype file
if exists("myfiletypefile") && file_readable(expand(myfiletypefile))
execute "source " . myfiletypefile
endif
" Check for "*" after loading myfiletypefile, so that scripts.vim is only used
" when there are no matching file name extensions.
augroup filetype
au BufNewFile,BufRead,StdinReadPost * if !did_filetype()|so <sfile>:p:h/scripts.vim|endif
augroup END
" If the GUI is already running, may still need to install the Syntax menu.
" Don't do it when the 'M' flag is included in 'guioptions'
if has("gui_running") && !exists("did_install_syntax_menu") && &guioptions !~# "M"