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