В этом разделе описываются команды, которые отступают все строки в регионе. Они возвращают непредсказуемые значения.
Эта команда отступает каждую непустую строку, начиная между start
(включительно) и end (исключительно). Если to-column
равен nil, indent-region отступает каждую непустую строку,
вызывая функцию отступа текущего режима, то есть indent-line-function.
Если to-column не равен nil, это должно быть целое
число, указывающее количество столбцов отступа; тогда эта функция придает каждой строке
точно такое количество отступа, добавляя или удаляя пробелы.
Если есть префикс заполнения, indent-region отступает каждую строку,
заставляя ее начинаться с префикса заполнения.
Значение этой переменной — это функция, которую можно использовать
indent-region в качестве ярлыка. Она должна принимать два аргумента:
начало и конец региона. Вы должны разработать функцию таким образом, чтобы она
давала те же результаты, что и поочередный отступ строк региона, но, предположительно,
быстрее.
Если значение равно nil, ярлыка нет, и
indent-region фактически работает построчно.
Функция-ярлык полезна в таких режимах, как C-режим и Lisp-режим,
где indent-line-function должен сканировать от начала
определения функции: применение его к каждой строке было бы квадратичным по времени.
Ярлык может обновлять информацию о сканировании по мере прохода по строкам,
отступая их; это занимает линейное время. В режиме, где отступление строки
отдельно происходит быстро, ярлык не нужен.
indent-region с не-nil аргументом to-column
имеет другое значение и не использует эту переменную.
Эта функция отступает все строки, начинающиеся между start (включительно) и end (исключительно), вбок на count столбцов. Это сохраняет форму затронутого региона, перемещая его как жесткий блок.
Это полезно не только для отступа регионов неотформатированного текста, но и для отступа регионов отформатированного кода. Например, если count равно 3, эта команда добавляет 3 столбца отступа к каждой строке, начинающейся в указанном регионе.
При интерактивном вызове без аргумента префикса эта команда вызывает временный режим для жесткой корректировки отступа. См. Команды отступа в Руководство GNU Emacs.
Это похоже на indent-rigidly, за исключением того, что она не
изменяет строки, начинающиеся внутри строк или комментариев.
Кроме того, она не изменяет строку, если nochange-regexp совпадает
в начале строки (если nochange-regexp не равен nil).