Найти тему
Блокнот математика

Рубрика "Секреты Вим". Отступы.

Отступы в программном коде полезны — с этим не поспоришь. В большинстве языков, кроме Питона, они восстанавливаются по синтаксису.

Вим может делать отступы в программном коде, для этого есть удобные настройки и средства.

Есть четыре опции, каждая из которых отменяет предыдущие: autoindent, smartindent, cindent и indentexpr. Первые три логические, то есть set cindent включает, а set nocindent выключает опцию; последняя — для профессионалов (содержит выражение, по которому делаются отступы).

Первая простая — берет отступ с предыдущей строки. Просто, но эффективно. Вошел в блок или вышел — увеличил или уменьшил отступ командами >> или <<

Сколько пробелов — определяет переменная shiftwidth (по умолчанию 8). Можно включить флаг smarttab и тогда табуляция будет делать такие отступы. А expandtab предпишет замену символов табуляции на соответствующее число пробелов. Саму табуляцию, если надо, можно вставить <C-V><Tab>.

Второй вариант умнее, он учитывает синтаксис (по возможности). Третий еще продвинутее, разницу между ними трудно провести. Они работают не только для С-подобных языков, все зависит от того, знает ли Вим синтаксис языка. Скорее всего, знает. Для фортрана требуется дополнительная настройка, так как надо отличать старый фортран от нового - нормального и современного. О Фортране в Виме — в другой раз.

Все сказанное выше остается в силе, Вим просто берет на себя часть работы.

Так, когда я пишу, отступив от края на 2 пробела,
do i=1,N
то на следующей строке имею отступ в 8 пробелов от тех двух, что уже были. Мне нравится shiftwidth=4, покомпактнее выходит.

Наконец, как восстановить отступы по синтаксису, если пишете не на Питоне. Это делает команда = по движению. Так, =G расставит отступы до конца файла. Можно выделить несколько строк через V и нажатием = выровнять их. Очень удобно, если вам в руки попал чужой код.

Справа код до , слева — после =G.
Справа код до , слева — после =G.

До встречи через неделю!

Путеводитель по каналу