Also lerne ich ein bisschen Lisp/Elisp um meine Emacs-Umgebung zu optimieren, und ich habe begonnen eine einfache Emacs-Bibliothek zu erstellen, die der große Roadblock in der Lage ist Sagen Sie, ob eine eingegebene Klammer eine Übereinstimmung aufweist oder nicht. Ich habe die Emacs-Quelle (paren.el.gz) durchgesehen und festgestellt, dass ich die Funktion show-paren-function
verwenden kann, um festzustellen, ob es eine Übereinstimmung ist oder nicht.Reagieren auf ein "falsches Argument"
Hier ist, was ich bisher habe:
(defun it-is-a-paren()
(interactive)
(insert ")")
(if (show-paren-function)
(message "%s" "it is a match")
(message "%s" "it is not")))
Also das ist ziemlich einfach, und „es ist ein Spiel“ funktioniert wie es sollte, aber wenn es angeblich „es ist nicht“ zu werfen es tut es nicht, stattdessen gibt es mir "Wrong type argument: integer-oder-marker-p, t".
Ist jemand vertraut genug, um die Verwendung einer anderen Funktion zu empfehlen, oder vielleicht sollte ich meine eigene schreiben anstatt show-paren-function
zu verwenden. Oder gibt es einen Weg um diesen Fehler (so etwas wie Ausnahmebehandlung)?
Sie können auch versuchen, die Standardfunktion [rückwärts sexp] versuchen empfehlen (http://www.gnu.org/software/emacs/manual/html_node/emacs/Expressions .html), die auch eine Ausnahme auslöst, wenn die Parens unbalanciert sind. – Tom