Я хочу написать функцию 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, - это раздел "Интерактивный вызов", который описывает такие команды, как call-interactively
. Это решительно не то, что я хочу.
(Конечная проблема, которую я пытаюсь решить, - создать крючок режима, который включает режим независимо от его текущего состояния.)
N.B. Название вопроса emacs Lisp функция вызова с аргументом префикса программно делает его похожим, но этот вопрос спрашивал о том, как создать интерактивную команду, и проблема была в конечном итоге решена с помощью call-interactively
.
EDIT: этот вопрос спорный; Я нашел альтернативное решение моей исходной проблемы:
(add-hook 'text-mode-hook
(function (lambda ()
(require 'flyspell)
(if flyspell-mode nil (flyspell-mode)))))
Но мне все же хотелось бы знать, как вызвать функцию Emacs Lisp с аргументом префикса, из другой функции Emacs Lisp, без чего-либо интерактивного.
UPDATE. Возможно, мне следовало спросить, почему я получил сообщение об ошибке...