Verwendung von 'interaktiven' Argumenten beim Aufrufen des Befehls aus dem Code


12

Ich habe einen Befehl aufgerufen, testder einfach eine Eingabe vom Benutzer entgegennimmt und sie zurücksendet:

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

Ich möchte eine andere Funktion schreiben, die es aufrufen würde. Folgendes schlägt fehl:

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

mit diesem Fehler

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

Dies ist sinnvoll, da testeine Eingabe erfolgt. Making test's input &optionalbringt einfach etwas test-forwardzurück, nilohne etwas zu tun. Wie geht das richtig?

Antworten:


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.