Я использую утилиту, написанную на C, которая называется autotab
. Он анализирует первые несколько тысяч строк файла, который вы загружаете, и определяет значения для параметров Vim shiftwidth
, tabstop
и expandtab
.
Это компилируется с использованием, например, gcc -O autotab.c -o autotab
. Инструкции по интеграции с Vim находятся в заголовке комментария вверху.
Autotab довольно умен, но время от времени может запутаться, в частности из-за того, что он некорректно поддерживается с использованием разных стилей отступов.
Если файл явно использует вкладки или комбинацию вкладок и пробелов для отступа, Autotab определит, какой размер вкладки используется, с учетом таких факторов, как выравнивание внутренних элементов по последовательным строкам, таких как комментарии.
Он работает для различных языков программирования и простит «внеполосные» элементы, которые не подчиняются приращениям, таким как директивы предварительной обработки C, метки операторов C, не говоря уже об очевидных пустых строках.