Jak wyskoczyć z nawiasów?

12

Używam spacemacsdo edycji kodu Python.

Kiedy piszę nawiasy otwierające, nawiasy zamykające są dla mnie automatycznie wstawiane, a kursor jest umieszczany pośrodku w celu dalszego pisania. Ale: kiedy już skończę pisać w nawiasach, potrzebuję szybkiego sposobu wyskakiwania z nich i lądowania po nawiasie zamykającym.

Teraz przełączam się do normalnego stanu, przesuwam kursor o jedną jednostkę (gdy jestem na znaku tuż przed nawiasem zamykającym), a następnie ponownie wchodzę w stan wstawiania za pomocą a. Jak mogę to zrobić bardziej efektywnie?

Aviral Goel
źródło
(Nie używaj smartparens itp. W pierwszej kolejności? IOW, jeśli boli, nie rób tego. Po co ograniczać się do „ wpisywania rzeczy w nawiasach ”? Emacs już informuje, który prawy paren odpowiada lewemu parenowi Nie trzeba się ściskać, tworząc małe komórki do pracy.)
Drew,
3
Nie możesz po prostu wpisać zamykającego parena? Jeśli nie, spróbuj C-M-n.
niania
@nanny Thanks. Nie byłam tego świadoma.
Aviral Goel
@Drew Masz rację. Ale smartparens zapewnia również kilka fajnych funkcji, szczególnie przydatnych w programowaniu schematów / rakiet.
Aviral Goel,

Odpowiedzi:

10

W smartparens-mode, funkcja sp-up-sexpprzeniesie cię z zestawu nawiasów (powiązaj z wybranym kluczem):

Przejdź do przodu o jeden poziom w nawiasach.

...

Przykłady:

(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.

Aby powtórzyć prostą wersję przykładów dokumentów z następującym tekstem i |kursorem:

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

M-x sp-up-sexp (lub cokolwiek, z czym wiążesz tę funkcję dla wygody) zabierze Cię do:

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

Zauważ też, że jeśli kursor znajduje się w zamykającym nawiasie, możesz po prostu wpisać ten nawias i smartparenszinterpretować go jako „przejść obok tego nawiasu” zamiast „wstawić inny nawias”.

Dan
źródło
3

Wypróbuj up-list(która jest wbudowaną funkcją Emacsa)

Pozwala mi wyskakiwać z ciągów, parenów, nawiasów z dowolnym zagnieżdżeniem.

PlagueHammer
źródło