Обычно на этот вопрос нельзя ответить так, что он применим ко всем текстовым редакторам.
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