Как я могу определить команду emacs X, которая что-то делает, а затем вызывает другую команду emacs Y, а также копирует интерактивный интерфейс команды Y?
Я хочу определить альтернативную версию query-replace с временно переключаемым значением case-fold-search:
(defun alt-query-replace (a b c d e)
(interactive)
(let ((case-fold-search (not case-fold-search))
(query-replace a b c d e)))
Это не работает. Когда я вызываю alt-query-replace, он говорит «неправильное количество аргументов». Я хочу, чтобы интерактивный интерфейс alt-query-replace был таким же, как и query-replace. Нужно ли проверять исходный код запроса-замены или есть общий подход?