Vim также может определять типы файлов, проверяя их содержимое (например, если первая строка содержит bash shebang), вот цитата из filetype.txt
файла справки:
Если ваш тип файла может быть обнаружен только путем проверки содержимого файла
Создайте свой пользовательский каталог времени выполнения. Обычно вы используете первый элемент параметра runtimepath. Пример для Unix:
:!mkdir ~/.vim
Создайте файл сценария vim для этого. Пример:
if did_filetype() " filetype already set..
finish " ..don't do these checks
endif
if getline(1) =~ '^#!.*\<mine\>'
setfiletype mine
elseif getline(1) =~? '\<drawing\>'
setfiletype drawing
endif
См. $ VIMRUNTIME / scripts.vim для дополнительных примеров.
Запишите этот файл как «scripts.vim» в пользовательский каталог времени выполнения. За
пример для Unix:
:w ~/.vim/scripts.vim
Обнаружение будет работать сразу, нет необходимости перезапускать Vim.
Ваш scripts.vim загружается перед проверками по умолчанию для типов файлов, которые
означает, что ваши правила переопределяют правила по умолчанию в
$ VIMRUNTIME / scripts.vim.