Используйте переменную mark-active
:
mark-active is a variable defined in `C source code'.
Its value is nil
Local in buffer whole-line-or-region.el; global value is nil
Automatically becomes buffer-local when set in any fashion.
Documentation:
Non-nil means the mark and region are currently active in this buffer.
Возможно, вы также захотите проверить, если отметка === указывает, действительно ли вы ищете регион:
(if (and mark-active
(/= (point) (mark)))
Если вы хотите написать функцию, которая требует определения региона, вы можете использовать interactive
, например, так:
(defun my-fn-that-requires-a-region (beg end)
"Some documentation string mentioning BEG and END."
(interactive "r")
(message "%d / %d" beg end))
Если вызывается в интерактивном режиме, должна быть установлена метка или сгенерирована ошибка. Вызывается программно, любые два значения должны быть переданы; проверка параметров не производится.