Wie springe ich aus Klammern heraus?


12

Ich benutze spacemacs, um Python-Code zu bearbeiten.

Wenn ich öffnende Klammern eingebe, werden die schließenden Klammern automatisch eingefügt, und der Cursor wird zur weiteren Eingabe in die Mitte gesetzt. Aber: Wenn ich mit dem Eingeben der Klammern fertig bin, muss ich schnell herausspringen und nach der schließenden Klammer landen.

Im Moment wechsle ich in den Normalzustand, bewege den Cursor um eine Einheit (wenn ich mich auf dem Charakter unmittelbar vor der schließenden Klammer befinde) und gebe dann den Einfügestatus erneut mit ein a. Wie kann ich das effizienter machen?


(Verwenden Sie in erster Linie keine Smartparens usw.? IOW, wenn es weh tut, tun Sie es nicht. Warum beschränken Sie sich darauf, Dinge in Klammern zu schreiben ? Emacs gibt Ihnen bereits Auskunft, welche rechte Paren zu welcher linken Paren gehören Es ist nicht nötig, sich durch die Schaffung kleiner Zellen, in denen gearbeitet werden kann,
Drew

3
Können Sie nicht einfach eine abschließende Parene eingeben? Wenn nicht, versuche es C-M-n.
Kindermädchen

@ Kindermädchen Danke. Mir war das nicht bewusst.
Aviral Goel

@Drew Du hast recht. Aber smartparens bietet auch ein paar nette Funktionen, die besonders für die Schema- / Schlägerprogrammierung nützlich sind.
Aviral Goel

Antworten:


10

In smartparens-modewird die Funktion sp-up-sexpSie aus einer Reihe von Klammern entfernen (an den Schlüssel Ihrer Wahl binden):

Gehe vorwärts aus einer Klammer heraus.

...

Beispiele:

(foo |(bar baz) quux blab) -> (foo (bar baz) quux blab)|

(foo (bar |baz) quux blab) -> (foo (bar baz) quux blab)| ;; 2

(foo bar |baz -> (foo bar baz)| ;; re-indent the expression ​ )

(foo |(bar baz) -> (foo)| (bar baz) ;; close unbalanced expr.

So wiederholen Sie eine einfache Version der docstring-Beispiele mit dem folgenden Text und |als Cursor:

(hey, I'm| in the parentheses) and I'm outside them

M-x sp-up-sexp (oder was auch immer Sie diese Funktion für die Bequemlichkeit binden) führt Sie zu:

(hey, I'm in the parentheses)| and I'm outside them

Beachten Sie auch, dass Sie, wenn sich der Cursor in der schließenden Klammer befindet, diese Klammer einfach eingeben können und sie smartparensso interpretieren, dass sie "über diese Klammer hinaus" bedeutet, anstatt "eine andere Klammer einzufügen".


3

Try up-list(das ist eine eingebaute Emacs-Funktion)

Es lässt mich aus Strings, Parens und Klammern springen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.