Gelegentlich rufe ich Code in einen paredit-mode
-Puffer, in dem eine schließende Klammer oder Klammer fehlt. paredit-mode
erkennt dann den nicht geschlossenen Ausdruck und versucht, den fehlenden Parameter an der falschen Stelle hinzuzufügen. Das ist frustrierend, wenn ich den Cursor an den Punkt bewege, an dem ich den close paren möchte, aber ich kann ihn nicht dort ablegen. Ich muss am Ende paredit-mode
ausschalten.
Hier ist ein Beispiel:
Ich habe gerade gerissen
%Vor% aber paredit-mode
sieht ein fehlendes )
ganz am Ende (in rot). Ich bin mir nicht einmal sicher, warum es eine enge Parens verwenden möchte, wenn die Öffnung eine Klammer ist. Wenn Sie ]
am Punkt eingeben, springt der Cursor zum Ende und versucht, den roten Buchstaben einzufügen. Slurping oder Barfing haben nicht die beabsichtigten Effekte und bewegen einfach die )
herum.
Gibt es eine Möglichkeit, dies zu beheben, ohne paredit-mode
vorübergehend zu deaktivieren?
kill-region
(standardmäßig an C-w
gebunden) und quoted-insert
(standardmäßig an C-q
gebunden) sind vom payment-Modus nicht betroffen. Sie können Regionen löschen oder mithilfe dieser Tastenkombinationen übereinstimmende Trennzeichen einfügen, indem Sie die Regeln umgehen. Denken Sie daran, dass Sie Parität ausschalten, etwas aufräumen und dann wieder einschalten können.
Andere haben bereits C-q
für quote-insert erwähnt. Sie können auch C-u DEL
oder C-u C-d
verwenden, um das normale ausgeglichene Verhalten von DEL
und C-d
für eine einzelne Löschung zu überschreiben:
(foo)|)
C-u DEL
(foo|)
Wenn Sie unausgeglichene Klammern haben, navigieren Sie zu der Zeichenposition, an der Sie die ausgleichende Klammer platzieren möchten, geben Sie M-x quoted-insert
(standardmäßig an C-q
gebunden) aus und geben Sie dann die ausgleichende Klammer ein. quoted-insert
verhindert nicht, dass Klammern ausgegeben werden.
Die gleiche Idee wie der Klangerzeuger anders sagte. Das Ein- und Ausschalten von Parität ist keine Option:)