Jak używać argumentów „interaktywnych” podczas wywoływania polecenia z kodu

12

Mam wywołane polecenie, testktóre po prostu pobiera dane wejściowe od użytkownika i powtarza je z powrotem:

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

Chcę napisać inną funkcję, która by to wywołała. Następujące niepowodzenie:

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

z tym błędem

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

Ma to sens, ponieważ testwymaga jednego wejścia. Making test's input &optionalpo prostu test-forwardwraca nilbez robienia czegokolwiek. Jak to zrobić w odpowiedni sposób?

Pradhan
źródło

Odpowiedzi:

13

Po prostu:

(call-interactively 'test)
abo-abo
źródło