33.17.4 Отступ относительно предыдущих строк

В этом разделе описываются две команды, которые отступают текущую строку на основе содержимого предыдущих строк.

Команда: indent-relative &optional first-only unindented-ok

Эта команда вставляет пробелы в точке, расширяя их до той же колонки, что и следующая точка отступа в предыдущей непустой строке. Точка отступа — это непробельный символ, за которым следует пробел. Следующая точка отступа — это первая точка отступа в колонке, большей текущей колонки точки. Например, если точка находится под и слева от первого непустого символа строки текста, она перемещается в эту колонку путем вставки пробелов.

Если предыдущая непустая строка не имеет следующей точки отступа (т.е. нет такой точки в достаточно большой колонке), indent-relative либо ничего не делает (если unindented-ok не равно nil), либо вызывает tab-to-tab-stop. Таким образом, если точка находится под и справа от последней колонки короткой строки текста, эта команда обычно перемещает точку к следующей табуляционной остановке путем вставки пробелов.

Если first-only не равно nil, рассматривается только первая точка отступа.

Возвращаемое значение indent-relative непредсказуемо.

В следующем примере точка находится в начале второй строки:

            Эта строка отступлена на двенадцать пробелов.
∗Быстрая коричневая лиса прыгнула.

Выполнение выражения (indent-relative nil) дает следующее:

            Эта строка отступлена на двенадцать пробелов.
            ∗Быстрая коричневая лиса прыгнула.

В следующем примере точка находится между символами ‘m’ и ‘p’ слова ‘jumped’:

            Эта строка отступлена на двенадцать пробелов.
Быстрая коричневая лиса jum∗ped.

Выполнение выражения (indent-relative nil) дает следующее:

            Эта строка отступлена на двенадцать пробелов.
Быстрая коричневая лиса jum  ∗ped.
Команда: indent-relative-first-indent-point

Эта команда отступает текущую строку так же, как предыдущая непустая строка, вызывая indent-relative с t в качестве аргумента first-only. Возвращаемое значение непредсказуемо.

Если предыдущая непустая строка не имеет точек отступа за текущей колонкой, эта команда ничего не делает.