Comment sortir des parenthèses fermantes?

12

J'utilise spacemacspour modifier le code Python.

Lorsque je tape des parenthèses ouvrantes, les parenthèses fermantes sont automatiquement insérées pour moi et le curseur est placé au milieu pour une saisie ultérieure. Mais: une fois que j'ai fini de taper à l'intérieur des parenthèses, j'ai besoin d'un moyen rapide de sauter hors d'elles et d'atterrir après la parenthèse fermante.

En ce moment, je passe à l'état normal, déplace le curseur d'une unité (lorsque je suis sur le caractère juste avant la parenthèse fermante), puis rentre dans l'état d'insertion avec a. Comment puis-je le faire plus efficacement?

Aviral Goel
la source
(Ne pas utiliser smartparens etc. , en premier lieu? OIEau, si ça fait mal, ne le faites pas. Pourquoi limiter à vous « trucs de frappe à l' intérieur des parenthèses »? Emacs vous permet de savoir déjà ce qui correspond à droite PAREN qui a laissé paren . Il n'est pas nécessaire de se faire des ischio-jambiers en créant de petites cellules pour travailler.)
Drew
3
Vous ne pouvez pas simplement taper un paren de fermeture? Sinon, essayez C-M-n.
nounou
@nanny Merci. Je n'en étais pas au courant.
Aviral Goel
@Drew Vous avez raison. Mais smartparens fournit également quelques fonctionnalités intéressantes, particulièrement utiles pour la programmation de schémas / raquettes.
Aviral Goel

Réponses:

10

Dans smartparens-mode, la fonction sp-up-sexpvous sortira d'un ensemble de parenthèses (liez à la clé de votre choix):

Avancez hors d'un niveau de parenthèses.

...

Exemples:

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

Pour réitérer une version simple des exemples de docstring, avec le texte suivant et |comme curseur:

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

M-x sp-up-sexp (ou ce que vous liez à cette fonction pour plus de commodité) vous amènera à:

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

Notez également que, si le curseur se trouve sur la parenthèse fermante, vous pouvez simplement taper cette parenthèse et smartparensl'interpréter comme signifiant «dépasser cette parenthèse» plutôt que «insérer une autre parenthèse».

Dan
la source
3

Try up-list(qui est une fonction Emacs intégrée)

Cela me permet de sauter des chaînes, des parens, des supports avec n'importe quelle imbrication.

PlagueHammer
la source