Beim Schreiben von Lisp-Codes stecke ich manchmal tief in einem verschachtelten Ausdruck und möchte nur die fehlenden schließenden Klammern einfügen. Im Moment füge ich sie nur ein, bis ich ein nicht übereinstimmendes Paren erhalte, aber es ist nicht sehr effizient.
Gibt es einen Befehl zum Einfügen aller fehlenden Klammern?
Zu Ihrer Information, ich verwende Smartparens, um automatisch passende Parens einzufügen. Trotzdem muss ich das manchmal einfach tun.
development
Rlazo
quelle
quelle
]
Super-Right-Paren fungierte und alle offenen Parens schloss, wie Sie es wünschen.Antworten:
Hier ist eine Funktion, die alle nicht geschlossenen Klammern und anderen übereinstimmenden Paare schließt. Es basiert auf Emacs 'Sexp-Analyse. Es unterstützt nur einzelne Zeichen matched pairs, so etwas wie
{-
mit geschlossen wird}
, nicht-}
. Für Lisp spielt das keine Rolle.quelle
([-!-foo]
, fügst du])
an Punkt ein, oder)
nachfoo]
?([-!-foo]
, würde ich einfügen)
nachfoo]
. Aber ich könnte mich natürlich irren. Vielleicht kann @rlazo näher darauf eingehen.Ich habe herausgefunden, dass, wenn Sie Schleim installiert haben, es einen Befehl gibt, der aufgerufen wird
slime-close-all-parens-in-sexp
quelle
Ein sehr primitiver (und mit ziemlicher Sicherheit falscher) Weg, dies zu tun, wäre
Unter anderem wird davon ausgegangen, dass folgende Klammern eingefügt werden müssen:
Ich denke, es könnte gerade genug sein, um für Ihren speziellen Anwendungsfall nützlich zu sein
quelle