33.12 Поля для заполнения

Пользовательская опция: fill-prefix

Эта переменная, специфичная для буфера, если она не равна nil, указывает строку текста, которая появляется в начале обычных строк текста и должна игнорироваться при заполнении. Любая строка, которая не начинается с префикса заполнения, считается началом абзаца; то же самое относится к любой строке, которая начинается с префикса заполнения, за которым следует дополнительный пробел. Строки, начинающиеся с префикса заполнения, но без дополнительного пробела, являются обычными строками текста, которые могут быть заполнены вместе. Полученные заполненные строки также начинаются с префикса заполнения.

Префикс заполнения следует за пробелами левого поля, если таковые имеются.

Пользовательская опция: fill-column

Эта переменная, специфичная для буфера, указывает максимальную ширину заполненных строк. Ее значение должно быть целым числом, представляющим количество столбцов. Все команды заполнения, выравнивания и центрирования зависят от этой переменной, включая режим автоматического заполнения (см. Автоматическое заполнение).

На практике, если вы пишете текст для чтения другими людьми, вам следует установить fill-column не более 70. В противном случае строка будет слишком длинной для комфортного чтения, и это может сделать текст неуклюжим.

Значение по умолчанию для fill-column равно 70. Чтобы отключить режим автоматического заполнения в определенном режиме, вы можете написать что-то вроде:

(add-hook 'foo-mode-hook (lambda () (auto-fill-mode -1))
Команда: set-left-margin from to margin

Эта команда устанавливает свойство left-margin для текста от from до to равным значению margin. Если включен режим автоматического заполнения, эта команда также перезаполняет область, чтобы она соответствовала новому полю.

Команда: set-right-margin from to margin

Эта команда устанавливает свойство right-margin для текста от from до to равным значению margin. Если включен режим автоматического заполнения, эта команда также перезаполняет область, чтобы она соответствовала новому полю.

Функция: current-left-margin

Эта функция возвращает правильное значение левого поля для заполнения текста вокруг точки. Значение представляет собой сумму свойства left-margin символа в начале текущей строки (или ноль, если такового нет) и значения переменной left-margin.

Функция: current-fill-column

Эта функция возвращает правильное значение столбца заполнения для заполнения текста вокруг точки. Значение представляет собой значение переменной fill-column минус значение свойства right-margin символа после точки.

Команда: move-to-left-margin &optional n force

Эта функция перемещает точку в левое поле текущей строки. Столбец, в который перемещается точка, определяется вызовом функции current-left-margin. Если аргумент n не равен nil, move-to-left-margin сначала перемещается вперед на n-1 строк.

Если force не равен nil, это означает, что необходимо исправить отступ строки, если он не соответствует значению левого поля.

Функция: delete-to-left-margin &optional from to

Эта функция удаляет отступ левого поля из текста между from и to. Количество удаляемого отступа определяется вызовом current-left-margin. В любом случае эта функция не удаляет не-пробельные символы. Если from и to опущены, по умолчанию используется весь буфер.

Функция: indent-to-left-margin

Эта функция корректирует отступ в начале текущей строки до значения, указанного переменной left-margin. (Это может включать в себя вставку или удаление пробелов.) Эта функция является значением indent-line-function в режиме Paragraph-Indent Text.

Пользовательская опция: left-margin

Эта переменная указывает базовый столбец левого поля. В режиме Fundamental RET отстукивает до этого столбца. Эта переменная автоматически становится локальной для буфера при установке любым способом.

Пользовательская опция: fill-nobreak-predicate

Эта переменная дает основным режимам возможность указать, где не следует разрывать строку. Ее значение должно быть списком функций. Всякий раз, когда заполнение рассматривает возможность разрыва строки в определенном месте буфера, оно вызывает каждую из этих функций без аргументов и с точкой, расположенной в этом месте. Если какая-либо из функций возвращает не-nil, то строка там не будет разорвана.