Обычно на этот вопрос нельзя ответить так, что он применим ко всем текстовым редакторам.
Vim распознает файлы по суффиксу. Это обусловлено используемой по умолчанию сценарием запуска, и вы можете взломать пользовательское поведение в вашем .vimrc .
Например, я написал для себя программу на C под названием autotab которая просматривает содержимое файла и определяет параметры shiftwidth tabstop и expandtab для Vim в зависимости от того, как этот файл выглядит отформатированным.
Когда я загружаю или перезагружаю файл в Vim, эта программа анализирует содержимое, а затем выводит вышеупомянутые параметры Vim, которые интерполируются в set команду и выполняются. Например, если обнаружено, что файл использует отступ с двумя пробелами, но, очевидно, со смесью пробелов и жестких вкладок с восемью пробелами, программа выведет tabstop=8 shiftwidth=2 noexpandtab .
Точно такой же подход может быть использован для выбора подсветки синтаксиса. Напишите скрипт, который просматривает некоторые строки файла, угадывает тип и генерирует команду :set syntax ...
file утилита может быть использована в качестве основы скрипта. "Волшебная" база данных программы содержит эвристику для обнаружения некоторых языков программирования. Попробуйте запустить file на разных ваших файлах и посмотрите результат. Вы можете быть удивлены тем, насколько хорошо он идентифицирует контент. Таким образом, стратегия может быть следующей: запустить file в файл, захватить вывод, проанализировать его в различных случаях и вывести правильные заклинания Vim. Затем подключите это к .vimrc .
GIT- autotab: http://www.kylheku.com/cgit/c-snippets/tree/autotab.c