Emacs paredit-mode - Wie korrigiert man unausgeglichene Klammern in gecrawltem Code?

8

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?

    
Reed G. Law 08.10.2014, 02:19
quelle

4 Antworten

9

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.

    
noisesmith 08.10.2014, 02:29
quelle
2

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|)

    
Thomas Wright 19.07.2017 20:54
quelle
0

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:)

    
ctpenrose 17.02.2017 05:06
quelle
0

Vertrau mir. Am einfachsten ist es, eine Klammer oder Klammern einzufügen.

Sie können:

%Vor%

und dann kopieren es

    
mandy1339 20.07.2017 21:23
quelle

Tags und Links