Dans certains cas, Vim ne reconnaît pas le type de fichier dans lequel on travaille. On peut définir ce type en mettant à un endroit du fichier une ligne contenant :
; vim: filetype=bindzone
Dans cet exemple, le point-virgule est un commentaire et le type de fichier est défini à bindzone.

Pour les codes PHP, on peut mettre :
// vim: filetype=php shiftwidth=2 tabstop=2

Il est à noter que l'option
set modeline
doit être définie dans le .vimrc pour que cette astuce fonctionne.
http://docstore.mik.ua/orelly/unix/upt/ch30_19.htm signale que cela peut devenir un bug de sécurité.

La liste des types disponibles dans Vim est dans /usr/share/vim/vim??/syntax, où ?? correspond à la version de Vim installée.