Это вызывается 'smartindent' функцией. Если Вы имеете :set smartindent
в Вашем .vimrc, необходимо удалить его.
это кажется умным преобразованием алгоритма длинного деления. Кажется, что умные части состоят в том, что они используют операцию деления только для первой «цифры», a1, и избегают необходимости использовать другие a (x) таким же образом, применяя их на следующем шаге, вычитая их произведение (на частное) из промежуточного остатка.
То, что это действительно можно сделать и что это всегда работает, вероятно, связано с тем, что "цифры" (в данном случае с основанием 100) не являются реальными цифрами и могут на законных основаниях принимать значения как больше, чем их основание (т. е. более 100), так и даже меньше нуля. Это обеспечивает большую гибкость в выборе времени применения каждой «цифры» к операции, например, отсрочка применения вторичных цифр делителя (a (x> 1)) до тех пор, пока не будет создано частичное частное из деление предыдущего шага на (1), что, в свою очередь, позволяет применять их как вычитание произведения, а не как операцию деления.