Как выскочить из круглых скобок?

12

Я использую spacemacsдля редактирования кода Python.

Когда я печатаю открывающие скобки, закрывающие скобки автоматически вставляются для меня, а курсор помещается в середину для дальнейшей печати. Но: как только я закончу печатать в скобках, мне нужен быстрый способ выпрыгнуть из них и приземлиться после закрывающей скобки.

Прямо сейчас я переключаюсь в нормальное состояние, перемещаю курсор на одну единицу (когда я нахожусь на символе непосредственно перед закрывающей скобкой), а затем снова вхожу в состояние вставки с помощью a. Как я могу сделать это более эффективно?

Aviral Goel
источник
(Во-первых, не используйте smartparens и т. Д. IOW, если это больно, не делайте этого. Зачем ограничиваться « вводом текста в скобках »? Emacs уже позволяет вам знать, какой правый член соответствует какому левому. . Нет необходимости в том, чтобы ограничивать себя, создавая маленькие клетки для работы.)
Дрю
3
Не могли бы вы просто набрать закрывающую парен? Если нет, попробуйте C-M-n.
няня
@nanny Спасибо. Я не знал об этом.
Aviral Goel
@ Дрю Ты прав. Но smartparens также предоставляет несколько приятных функций, особенно полезных для программирования схем / ракеток.
Aviral Goel

Ответы:

10

В smartparens-mode, функция sp-up-sexpвыведет вас из круглых скобок (привязать к вашему выбору ключа):

Выйти из одного уровня скобок.

...

Примеры:

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

Повторить простую версию примеров документации со следующим текстом и |курсором:

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

M-x sp-up-sexp (или с чем бы вы ни связали эту функцию для удобства), вы перейдете к:

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

Также обратите внимание, что, если курсор находится на закрывающей скобке, вы можете просто напечатать эту скобку и smartparensинтерпретировать ее как «пропустить эту скобку» вместо «вставить другую скобку».

Дэн
источник
3

Try up-list(встроенная функция Emacs)

Это позволяет мне выпрыгивать из строк, скобок, скобок с любым вложением.

PlagueHammer
источник