Quiero escribir una función Emacs Lisp que activará flyspell-mode
independientemente del estado actual del modo. La función flyspell-mode-on
está en desuso. La documentación sugiere que un argumento prefijo positivo a su vez, flyspell-mode
, pero desafortunadamente corriendoCómo llamar a la función Emacs Lisp interactiva con un argumento de prefijo, desde otra función Emacs Lisp?
(flyspell-mode 1)
produce un mensaje de error:
Wrong number of arguments: (lambda (flyspell-mode 1)), 0
Si pudiera encontrar la manera de llamar flyspell-mode
con un argumento prefijo , Creo que podría resolver este problema.
La sección más relevante que puedo encontrar en el manual de Emacs Lisp es la sección titulada "Llamada interactiva", que describe comandos como call-interactively
. Esto es enfáticamente no es lo que quiero.
(El último problema que estoy tratando de resolver es el de crear un gancho de modo que se convierte en el modo independientemente de su estado actual.)
N. B. El título de la pregunta emacs lisp call function with prefix argument programmatically hace que parezca estar relacionado, pero esa pregunta era acerca de cómo crear un comando interactivo, y el problema finalmente se resolvió usando call-interactively
.
EDITAR: Esta cuestión es discutible; He encontrado una solución alternativa al problema original:
(add-hook 'text-mode-hook
(function (lambda()
(require 'flyspell)
(if flyspell-mode nil (flyspell-mode)))))
Pero todavía me gustaría saber cómo llamar a una función Emacs Lisp con un argumento prefijo, desde otra función Emacs Lisp, con nada interactiva.
ACTUALIZACIÓN: Tal vez debería haber preguntado por qué estaba recibiendo ese mensaje de error ...
Estoy ejecutando emacs 21, ya que emacsen 22 y 23 causaron algunas pérdidas en algunos modos heredados que uso pero que ya no se mantienen. –
@NormanRamsey Wow, eso está envejeciendo. En cuanto a por qué recibes este mensaje de error, bueno, no hay nada más que la función 'flyspell-mode' en tu versión sin tomar ningún argumento y leyendo' current-prefix-arg' directamente; este es un defecto de diseño corregido en versiones posteriores. – Gilles