Delegating vim filetype after removing suffix -
i know how configure vim select particular filetype based upon extension:
au bufnewfile,bufread *.foo set filetype=foo however, common case me wind opening file additional suffix. 1 specific scenario resolving version control conflicts during merge. i'll have files "foo.cpp.orig" or "foo.java.merge", etc. i'd configure vim if opens file ending in ".orig", etc. strip suffix , use remaining file extension select filetype.
and yes, know like
au bufnewfile,bufread *.java.* set filetype=java but less ideal because have manually add entry possible filetypes might editing.
" ignored extensions if exists("*fnameescape") au bufnewfile,bufread ?\+.orig,?\+.bak,?\+.old,?\+.new,?\+.dpkg-dist,?\+.dpkg-old,?\+.dpkg-new,?\+.dpkg-bak,?\+.rpmsave,?\+.rpmnew \ exe "doau filetypedetect bufread " . fnameescape(expand("<afile>:r")) au bufnewfile,bufread *~ \ let s:name = expand("<afile>") | \ let s:short = substitute(s:name, '\~$', '', '') | \ if s:name != s:short && s:short != "" | \ exe "doau filetypedetect bufread " . fnameescape(s:short) | \ endif | \ unlet! s:name s:short au bufnewfile,bufread ?\+.in \ if expand("<afile>:t") != "configure.in" | \ exe "doau filetypedetect bufread " . fnameescape(expand("<afile>:r")) | \ endif elseif &verbose > 0 echomsg "warning: filetypes not recognized because version of vim not have fnameescape()" endif actually, vim considered it. above code filetype.vim
Comments
Post a Comment