Можно ли написать интерактивный 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 аргумента (т. Е. Ограничен началом регионаи конечная точка как аргументы).Хотя это позволяет мне оценить и запустить defun с дополнительным аргументом, Emacs, похоже, игнорирует его.
Спасибо.