Я хочу написать функцию Emacs Lisp, которая будет включать flyspell-mode
независимо от текущего состояния режима. Функция flyspell-mode-on
устарела.В документации предполагается, что положительный аргумент префикса включит flyspell-mode
, но, к сожалению, запуск
(flyspell-mode 1)
приводит к сообщению об ошибке:
Wrong number of arguments: (lambda (flyspell-mode 1)), 0
Если бы я мог выяснить, как вызвать flyspell-mode
с аргументом префикса , я считаю, что смогу решить эту проблему.
Наиболее важный раздел, который я могу найти в руководстве по Emacs Lisp, - это раздел, озаглавленный «Интерактивный вызов», в котором описаны такие команды, как интерактивный вызов
. Я категорически не этого хочу.
(Конечная проблема, которую я пытаюсь решить, - создать ловушку режима, которая включает режим независимо от его текущего состояния.)
Примечание. Заголовок вопроса Функция вызова emacs lisp с аргументом префикса программно делает его связанным, но этот вопрос касался того, как создать интерактивную команду, и проблема была в конечном итоге решена с помощью звонок-интерактивно
.
РЕДАКТИРОВАТЬ : Это спорный вопрос; Я нашел альтернативное решение моей исходной проблемы:
(add-hook 'text-mode-hook
(function (lambda ()
(require 'flyspell)
(if flyspell-mode nil (flyspell-mode)))))
Но я все же хотел бы знать, как вызвать функцию Emacs Lisp с аргументом префикса из другой функции Emacs Lisp с ничем интерактивным.
ОБНОВЛЕНИЕ : Возможно, мне следовало спросить, почему я получаю это сообщение об ошибке ...