Ich habe eine benutzerdefinierte Funktion , die vereint zwei Funktionen von Zwitschern-Modus , twittering-favorite
und twittering-native-retweet
, aber diese beiden Bedürfnisse Eingabe von mir durch ein Ja oder Nein Frage beantworten.
Ich möchte wissen, ob es eine Möglichkeit gibt, diese beiden Funktionen mit etwas zu versehen, mit dem sie ohne mein direktes Eingreifen eine Antwort erhalten.
twittering-mode
(und ich werde mich nicht darum kümmern, auf den Code zuzugreifen), aber als allgemeinen Ratschlag: Normalerweiseyes
ist es besser, Code zu erstellen , anstatt das zu tun, was Sie vorschlagen (Code erstellen, der die Beantwortung eines Benutzers simuliert ) Verwendet direkt den Code, der die Antwort erwartet. IOW, versuchen Sie, den Quellcodepfad zu nutzen, den eineyes
Antwort aufrufen würde. (Nur ein Vorschlag.)Antworten:
EDIT: Wie @hatschipuh in den Kommentaren betonte, ist eine
flet
Konstruktion vom Typ einfacher und beruht nicht auf meinem eigenwilligen Ratgeber-Makro. Zumindest auf meinem Emacs (24.5.1)cl-flet
wird lexikalisches Scoping verwendet, sodass Sie dasnoflet
Paket benötigen , damit das folgende Snippet funktioniert. Scrollen Sie nach unten, um die ursprüngliche, eigenwillige Antwort zu erhalten.BEARBEITEN: Dies ist die ursprüngliche Antwort, außer dass ich mich darauf festgelegt habe
my/bypass-confirmation-all
, wie angekündigt zu arbeiten, und die Aufrufkonventionen ein wenig geändert habe.Hier ist ein allgemeiner Wrapper, der für jede Funktion funktionieren sollte.
Dieser Code hängt von diesem Makro ab, das meine Lösung für alles in Stackexchange zu sein scheint.
Ob dieser Code der klügste Weg ist, mit dieser Situation umzugehen, weiß ich nicht. Im Allgemeinen verwende ich diese Art von temporären Ratschlägen gerne, um Änderungen an vorhandenen Funktionen vorzunehmen, anstatt den Code der ursprünglichen Funktionen zu duplizieren, auch weil dies dazu beiträgt, Ihre geänderte Funktion gegen nicht verwandte Änderungen im Original zukunftssicher zu machen. In diesem Fall müssen Sie jedoch möglicherweise zusätzliche Sorgfalt walten lassen, da
twittering-mode
die Änderungen nicht angezeigt werden, wenn die Eingabeaufforderungen aktualisiert und geändert oder eine zusätzliche hinzugefügt wird. Da eine y-or-n-Eingabeaufforderung auf eine kontroverse Auswahl hinweist, kann dies unglückliche Folgen haben.EDIT: Mir ist aufgefallen, dass ein Anwendungsbeispiel hilfreich sein könnte. Dieses Beispiel funktioniert mit beiden Implementierungen.
quelle
(flet ((yes-or-no-p (prompt) t) (y-or-n-p (prompt) t)) body...)