32.8 Область

Текст между точкой и маркером называется областью. Различные функции оперируют текстом, ограниченным точкой и маркером, но здесь описаны только те функции, которые относятся непосредственно к самой области.

Следующие две функции сигнализируют об ошибке, если маркер ни на что не указывает. Если режим Transient Mark включен, а mark-even-if-inactive равен nil, они также сигнализируют об ошибке, если маркер неактивен.

Функция: region-beginning

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

Функция: region-end

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

Вместо использования region-beginning и region-end, команда, предназначенная для работы с областью, обычно должна использовать interactive со спецификацией ‘r’ для поиска начала и конца области. Это позволяет другим программам Lisp явно указывать границы в качестве аргументов. См. Коды символов для interactive.

Функция: use-region-p

Эта функция возвращает t, если включен режим Transient Mark, маркер активен и в буфере существует действительная область. Эта функция предназначена для использования командами, работающими с областью, а не с текстом около точки, когда маркер активен.

Область считается действительной, если она имеет ненулевой размер, или если пользовательский вариант use-empty-active-region не равен nil (по умолчанию он равен nil). Функция region-active-p похожа на use-region-p, но считает все области действительными. В большинстве случаев вам не следует использовать region-active-p, поскольку, если область пуста, часто более уместно работать с точкой.