Spec-Zone.ru › Elisp

Отступы целой области

Этот раздел описывает команды, которые отступают все строки в области. Они возвращают непредсказуемые значения.

Команда: 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API