Soy nuevo en Emacs y estoy tratando de escribir algunas funciones de Emacs Lisp.Elisp: Pedir sí o no en los comandos interactivos
Me gustaría escribir una función que toma dos parámetros y puede manejar ser interactiva. Sin embargo, uno de los parámetros es un booleano; sería perfecto si pudiera usar (y-or-no-p)
, pero (interactive)
no parece tener un código de carácter para eso.
¿Alguna idea?
Actualización: estoy usando GNU Emacs 23.
Además, aquí es lo que mi función se ve como hasta ahora:
(defun foo (str bool)
(interactive "sSome text: \nsDo the thing?")
(some-func str)
(if bool (some-other-func str)))
Cuando una función toma un parámetro booleano, es común en Emacs a utilizar el argumento prefijo para que ('(interactive "sSome texto: \ nP")', no hay ningún indicador adicional). Esto proporciona una mejor experiencia de usuario (una solicitud menos en el caso más común, más consistente con los comandos básicos de Emacs). Presione 'C-u' o' M-1' cualquiera de muchas otras combinaciones de argumentos de prefijos antes del comando para pasar 't', no lo haga para pasar' nil'. Arregle que 'nil' sea el caso común. – Gilles
Interesante. Gracias, Gilles! (Debería responder con eso y el código para poder aceptarlo como la respuesta.) –