Escribo (y reescribo) muchas fórmulas matemáticas en LaTeX con Emacs. Con frecuencia me encuentro con situaciones en las que quiero cambiar un par de paréntesis coincidentes, para mejorar la legibilidad. Mi Emacs tiene la amabilidad de mostrarme el delimitador coincidente, pero ¿cómo lo cambio programáticamente?
Por ejemplo, cambie los delimitadores externos de una vez:
( (\sqrt{a} + b)^{-1} + c^{-1} )
a
[ (\sqrt{a} + b)^{-1} + c^{-1} ]
latex
replace
balanced-parentheses
Mankka
fuente
fuente
\bigl(...\bigr)
a\Bigl(...\Bigr)
etc.forward-sexp-function
(lo cual, supongo que lo hace el modo TeX), o lo usaráscan-sexps
para encontrar la posible coincidencia. En el último caso, la coincidencia no siempre será correcta. Entonces, si todo lo que necesita es hacer coincidir los delimitadores coincidentes, puede verificar la sintaxis del carácter debajo del punto. Si es así$
, tiene que tener una coincidencia, y podría usarforwad-sexp
para llegar a su coincidencia.Respuestas:
Yo uso el siguiente código y me uno
yf/replace-or-delete-pair
aM-D
.Ejemplo de uso: con el punto activado
(
, golpeoM-D [
y el()
par se convierte en un[]
par. Si golpeasM-D RET
, el par será eliminado.Este código usa la tabla de sintaxis, lo que significa que para algunos pares tendrá que especificar el par de cierre usted mismo. por ejemplo, en modo html,
()
se puede reemplazar<>
presionandoM-D <
. Sin embargo, en muchos modos<>
no es un par reconocido, yM-D <
dirá "No sé cómo cerrar <". Entonces puedes simplemente escribir>
.fuente
Para aquellos que usan el mal, puedes usar el mal envolvente que te da el
c s
movimiento (cambio, sonido envolvente).Para su ejemplo, simplemente haga
c s ( [
(movimiento, desde el tipo de paren, hasta el tipo de paren)fuente
ar-parentized2bracketed-atpt
haría la tareaViene junto con
ar-braced2parentized-atpt
y básicamente todas las combinaciones respectivas.Consíguelo en thingatpt-transform-delimited.el de
URL: https://github.com/andreas-roehler/thing-at-point-utils
Una clase de comandos abstraída transforma todas las formas delimitadas, por ejemplo:
Estos comandos se entregan en el mismo repositorio por
thingatpt-transform-generic-delimited.el
fuente
Los paréntesis coincidentes se visualizan con
show-paren-mode
. El enfoque lógico es basar la función para cambiar parens a la misma lógica y función subyacentes. Cuando se resaltan parens coincidentes, puede llamar a la funcióntoggle-parens
definida a continuación:fuente