Cómo usar argumentos 'interactivos' al llamar al comando desde el código

12

Tengo un comando llamado testque simplemente toma una entrada del usuario y la repite:

(defun test (input)
  (interactive "MInput: ")
  (message "%s" input))

Quiero escribir otra función que lo llame. Lo siguiente falla:

(defun test-forward ()
  (interactive)
  (test))

con este error

test-forward: Wrong number of arguments: (lambda (input) (interactive "MInput: ") (message "%s" input)), 0

Esto tiene sentido, ya que testtoma una entrada. Hacer test's input &optionalsimplemente hace test-forwardvolver nilsin hacer nada. ¿Cuál es la forma correcta de hacer esto?

Pradhan
fuente

Respuestas:

13

Simplemente:

(call-interactively 'test)
abo-abo
fuente