Отступы целой области
Этот раздел описывает команды, которые отступают все строки в области. Они возвращают непредсказуемые значения.
- Команда: indent-region start end &optional to-column
-
Эта команда отступает каждую непустую строку, начиная с start (включительно) и до end (исключительно). Если to-column равно
nil,indent-regionотступает каждую непустую строку, вызывая функцию отступа текущего режима, значение которой равноindent-line-function.Если to-column не
nil, это должно быть целое число, указывающее количество отступов; тогда эта функция задаёт каждой строке ровно этот отступ, добавляя или удаляя пробелы.Если есть префикс заполнения,
indent-regionотступает каждую строку, заставляя её начинаться с префикса заполнения.
- Переменная: indent-region-function
-
Значение этой переменной — функция, которую можно использовать
indent-regionв качестве сокращения. Она должна принимать два аргумента: начало и конец области. Вы должны разработать функцию таким образом, чтобы она давала те же результаты, что и отступы строк области по одной, но предположительно быстрее.Если значение равно
nil, сокращения нет, иindent-regionфактически работает по строкам.Функция сокращения полезна в таких режимах, как C-режим и Lisp-режим, где
indent-line-functionдолжен просматривать с начала определения функции: её применение к каждой строке потребовало бы квадратичное время. Сокращение может обновлять информацию о просмотре по мере перемещения по строкам, отступая их; это займет линейное время. В режиме, где отступ строки выполняется быстро, сокращение не требуется.indent-regionс аргументом to-column, отличным отnil, имеет другое значение и не использует эту переменную.
- Команда: indent-rigidly start end count
-
Эта функция отступает все строки, начиная с start (включительно) и до end (исключительно), вбок на count столбцов. Это сохраняет форму затронутой области, перемещая её как единое целое.
Это полезно не только для отступа областей неотступленного текста, но и для отступа областей отформатированного кода. Например, если count равно 3, эта команда добавляет 3 столбца отступа к каждой строке, начинающейся в указанной области.
Если вызывается интерактивно без префиксного аргумента, эта команда вызывает временный режим для корректировки отступа жёстко. См. Команды отступа в Руководстве по GNU Emacs.
- Команда: indent-code-rigidly start end columns &optional nochange-regexp
-
Это подобно
indent-rigidly, за исключением того, что не изменяет строки, начинающиеся внутри строк или комментариев.Кроме того, это не изменяет строку, если nochange-regexp совпадает в начале строки (если nochange-regexp не
nil).
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Region-Indent.html