44

For example, if I want to have a file with the name gitconfig (no leading .) be recognised by vim as being of filetype=gitconfig, is there a means of indicating this in a comment or something similar within the file itself? Note, I want this to work across systems, so modifying vim's startup files is not preferred.

2 Answers2

67

This sounds like the modeline feature (see the on-line help). In gitconfig you could have a modeline like the following, near the beginning or end of the file:

# vi: ft=gitconfig

This requires modelines to be enabled and since they can be a security hazard they are disabled by default on many systems though.

Another approach which might be slightly more work is to make a .vim file containing

au BufRead,BufNewFile */gitconfig setfiletype gitconfig

and drop it in ~/.vim/ftdetect on all your systems.

jw013
  • 51,212
  • Perfect, modeline is what I was looking for. modeline is enabled, but it looks like something else in my setup is interfering with it. If I put your suggested line at the top of the file, then after I reopen it set filetype? reveals filetype 'conf'. – Murali Suriar Aug 31 '11 at 23:21
  • Maybe you can use :verbose set filetype to see where the conf value comes from - I would guess vim's system default filetype settings somewhere. – jw013 Aug 31 '11 at 23:43
  • apparently it was last set from /usr/share/vim/vim73/filetype.vim. Why would system level filetype detection override the directive I've placed in the file itself? – Murali Suriar Sep 04 '11 at 00:15
  • were you running vim as root? if yes, I think the modeline wouldn't load. – elias Jan 07 '13 at 20:15
  • Also check the value of the modelines option. :set modelines? If it's set to zero, it won't process the modeline. – Christian Long Jun 17 '15 at 17:00
1

You can create a syntax file and put it in vim's share/syntax directory (on Debian Lenny it's /usr/share/vim/vim71/syntax (your distro may vary)).

Documentation on Vim's syntax format is here: http://vimdoc.sourceforge.net/htmldoc/syntax.html

You may be able to find a ready syntax file on the Internet somewhere, but I'll leave that as an exercise for you.

bahamat
  • 39,666
  • 4
  • 75
  • 104