¿Cómo salto de paréntesis?

12

Estoy usando spacemacspara editar el código de Python.

Cuando escribo un paréntesis de apertura, el paréntesis de cierre se inserta automáticamente y el cursor se coloca en el medio para escribir más. Pero: una vez que termine de escribir dentro de los paréntesis, necesito una forma rápida de saltar de ellos y aterrizar después del paréntesis de cierre.

En este momento, cambio al estado normal, muevo el cursor una unidad (cuando estoy en el carácter justo antes del paréntesis de cierre) y luego vuelvo a ingresar el estado de inserción con a. ¿Cómo puedo hacer esto de manera más eficiente?

Aviral Goel
fuente
(¿No utiliza smartparens, etc. en primer lugar? IOW, si le duele, no lo haga. ¿Por qué limitarse a " escribir cosas dentro de los paréntesis "? Emacs ya le permite saber qué par derecho corresponde a qué par izquierdo No hay necesidad de tener isquiotibiales creando pequeñas células para trabajar.)
Drew
3
¿No puedes escribir un par de cierre? Si no, inténtalo C-M-n.
niñera
@nanny Gracias. Yo no era consciente de ello.
Aviral Goel
@Drew Tienes razón. Pero los smartparens también ofrecen algunas características interesantes, especialmente útiles para la programación de esquemas / raquetas.
Aviral Goel

Respuestas:

10

En smartparens-mode, la función lo sp-up-sexpsacará de un conjunto de paréntesis (enlace a su clave de elección):

Avanzar fuera de un nivel de paréntesis.

...

Ejemplos:

(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 una versión simple de los ejemplos de docstring, con el siguiente texto y |como cursor:

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

M-x sp-up-sexp (o lo que sea que enlace a esa función por conveniencia) lo llevará a:

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

También tenga en cuenta que, si el cursor está en el paréntesis de cierre, puede escribir ese paréntesis e smartparensinterpretarlo como "pasar más allá de este paréntesis" en lugar de "insertar otro paréntesis".

Dan
fuente
3

Probar up-list(que es una función incorporada de Emacs)

Me permite saltar de cadenas, parens, corchetes con cualquier anidamiento.

Martillo de peste
fuente