Можно ли написать интерактивный defun с кодом «r», который имеет дополнительный необязательный аргумент (чтобы он выполнял действия в выбранной области, но с другим аргументом)? Я хотел бы что-то вроде следующего:
(defun my-function (start end &optional arg)
"Do something with selected region"
(interactive "r")
(if arg
(setq val arg)
(setq val 2))
(do things...))
Глядя на документацию, говорит
'r': точка и метка, как два числовых аргумента, сначала наименьший. Это единственная кодовая буква, которая указывает два последовательных аргумента, а не один. Нет ввода-вывода.
Я не уверен, что «Нет ввода-вывода» и «два последовательных аргумента» означают, что он принимает 2 и только 2 аргумента (т. Е. Ограничивается начальной и конечной точкой региона в качестве аргументов). Хотя это позволяет мне оценивать и запускать определение с дополнительным аргументом, Emacs, похоже, его игнорирует.
Спасибо.