Como pulo para fora dos parênteses?

12

Estou usando spacemacspara editar o código Python.

Quando digito parênteses de abertura, os parênteses de fechamento são inseridos automaticamente para mim e o cursor é colocado no meio para digitação adicional. Mas: assim que terminar de digitar entre parênteses, preciso de uma maneira rápida de pular e aterrissar após o fechamento dos parênteses.

No momento, mudo para o estado normal, movo o cursor uma unidade (quando estou no caractere pouco antes do parêntese de fechamento) e depois reinsiro o estado de inserção com a. Como posso fazer isso de forma mais eficiente?

Aviral Goel
fonte
(Não use smartparens etc., em primeiro lugar? IOW, se dói, não faça. Por que se limitar a " digitar coisas dentro dos parênteses "? O Emacs já permite saber qual parênteses à direita corresponde à parênteses à esquerda. Não há necessidade de limitar a si mesmo, criando pequenas células para trabalhar.)
Drew
3
Você não pode simplesmente digitar um ponto final? Caso contrário, tente C-M-n.
Babá
@nanny Obrigado. Eu não estava ciente disso.
Aviral Goel
@ Drew Você está certo. Mas o smartparens também oferece alguns recursos interessantes, especialmente úteis para a programação de esquemas / raquetes.
Aviral Goel

Respostas:

10

Em smartparens-mode, a função sp-up-sexpo moverá para fora de um conjunto de parênteses (vincule à sua chave de escolha):

Avance para fora de um nível de parênteses.

...

Exemplos:

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

Para reiterar uma versão simples dos exemplos de documentação, com o seguinte texto e |como o cursor:

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

M-x sp-up-sexp (ou o que você vincular a essa função por conveniência) levará você a:

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

Observe também que, se o cursor estiver sobre o parêntese de fechamento, você pode simplesmente digitar que parênteses e smartparensvai interpretá-lo no sentido de "movimento passado este parêntese" em vez de "inserir outro parêntese."

Dan
fonte
3

Try up-list(que é uma função interna do Emacs)

Isso me permite pular de cordas, parênteses, colchetes com qualquer aninhamento.

PlagueHammer
fonte