В течение вашей карьеры вы столкнетесь с различными стилями форматирования. Мой совет - привыкнуть к этому - научиться адаптировать свой стиль к файлу, над которым вы работаете. Среди прочих причин, инструменты для перевода из одного стиля в другой, как правило, не обходятся без внесения изменений в файл, и это затрудняет использование такого инструмента, как diff
чтобы увидеть существенные изменения, которые вы сделали.
Тем не менее, Vim предоставляет несколько хуков для выполнения команд при чтении и записи файлов. Увидеть
:help autocommand
Например,
au BufWrite * %s/\s\+$//
удалит завершающие пробелы из буфера непосредственно перед записью его на диск. Командой может быть любая команда ex, включая вызов функции или фильтрацию всего буфера через внешнюю программу.
Событие BufWrite инициируется непосредственно перед записью буфера. Другое название для этого - BufWritePre. Если вы хотите записать буфер, а затем отменить изменения, сделанные в событии BufWritePre, вы можете использовать команду BufWritePost, чтобы отменить эти изменения. Событие BufRead (также известное как BufReadPost) можно использовать для запуска команд, которые форматируют текст так, как вы хотите, когда файл читается.
* Будет соответствовать любому имени файла. Вы можете использовать шаблоны имен файлов, такие как .c,.cpp, для запуска ваших автокоманд только тогда, когда определенные типы файлов читаются или записываются.
В качестве другого примера,
au BufRead *.[ch] normal gg=G
выполнит повторный отступ любого прочитанного вами исходного файла C в соответствии с вашими правилами отступа. Увидеть
:help =
:help C-indenting