Расширение ответа zoul:
Если вы хотите настроить Vim на использование определенных настроек при редактировании определенного типа файла, вам нужно использовать автокоманды:
autocmd Filetype css setlocal tabstop=4
Это сделаетэто так, что вкладки отображаются в виде 4 пробелов.Установка expandtab
приведет к тому, что Vim будет фактически вставлять пробелы (количество из которых контролируется tabstop
) при нажатии клавиши Tab;вы можете захотеть использовать softtabstop
, чтобы заставить backspace работать должным образом (то есть уменьшить отступы, когда это происходит при использовании вкладок, вместо того, чтобы всегда удалять по одному символу за раз).
Чтобы сделать полностьюОбдуманное решение о том, как все настроить, вам нужно прочитать в Vim docs по tabstop
, shiftwidth
, softtabstop
и expandtab
.Самый интересный бит находится в expandtab
(:help 'expandtab
):
Существует четыре основных способа использования вкладок в Vim:
Всегда сохранять«tabstop» на 8, установите «softtabstop» и «shiftwidth» на 4 (или 3 или что вы предпочитаете) и используйте «noexpandtab».Тогда Vim будет использовать комбинацию табуляции и пробелов, но ввод и будет вести себя так, как будто табуляция появляется каждые 4 (или 3) символа.
Установите для «tabstop» и «shiftwidth» любое значениеВы предпочитаете и используете «расширение».Таким образом, вы всегда будете вставлять пробелы.Форматирование никогда не будет испорчено при изменении «tabstop».
Установите для «tabstop» и «shiftwidth» то, что вы предпочитаете, и используйте | modeline |установить эти значения при повторном редактировании файла.Работает только при использовании Vim для редактирования файла.
Всегда устанавливайте для «tabstop» и «shiftwidth» одинаковое значение и «noexpandtab».Это должно сработать (только для начальных отступов) для любой настройки табуляции, которую используют люди.Возможно, было бы неплохо, чтобы после первой непустой вставки были вставлены пробелы, если вы сделаете это.В противном случае выровненные комментарии будут неправильными при изменении 'tabstop'.