Eu escrevo (e reescrevo) muitas fórmulas matemáticas no LaTeX com o Emacs. Frequentemente encontro situações em que quero alterar um par de parênteses para melhorar a legibilidade. Meu Emacs tem a gentileza de me mostrar o delimitador correspondente, mas como faço para alterá-lo programaticamente?
Por exemplo, altere os delimitadores externos de uma só vez:
( (\sqrt{a} + b)^{-1} + c^{-1} )
para
[ (\sqrt{a} + b)^{-1} + c^{-1} ]
latex
replace
balanced-parentheses
Mankka
fonte
fonte
\bigl(...\bigr)
para\Bigl(...\Bigr)
etc.forward-sexp-function
(o que, suponho, o modo TeX), ou será usadoscan-sexps
para encontrar a possível correspondência. No caso posterior, a correspondência nem sempre estará correta. Portanto, se tudo o que você precisa é corresponder aos delimitadores correspondentes, é possível verificar a sintaxe do personagem sob o ponto. Se for$
, tem que ter uma correspondência, e você pode usarforwad-sexp
para chegar à sua correspondência.Respostas:
Eu uso o código abaixo e vinculo
yf/replace-or-delete-pair
aM-D
.Exemplo de uso: com o ponto ativado
(
, eu acertoM-D [
e o()
par se torna um[]
par. Se você acertarM-D RET
, o par será removido.Esse código usa a tabela de sintaxe, o que significa que, para alguns pares, você precisará especificar o parêntese de fechamento. por exemplo, no modo html,
()
pode ser substituído<>
por pressionandoM-D <
. No entanto, em muitos modos,<>
não é um par reconhecido eM-D <
diz "Não sei como fechar <". Você pode então apenas digitar>
.fonte
Para aqueles que usam o mal, você pode usar o surround do mal, que oferece o
c s
movimento (mudar, surround).Para o seu exemplo, basta fazer
c s ( [
(movimento, do tipo de paren para o tipo de paren)fonte
ar-parentized2bracketed-atpt
faria a tarefa.Ele vem junto
ar-braced2parentized-atpt
e basicamente todas as respectivas combinações.Obtenha-o em thingatpt-transform-delimited.el de
URL: https://github.com/andreas-roehler/thing-at-point-utils
Uma classe abstrata de comandos transforma todas as formas delimitadas, por exemplo:
Esses comandos são entregues no mesmo repositório por
thingatpt-transform-generic-delimited.el
fonte
Os parênteses correspondentes são visualizados com
show-paren-mode
. A abordagem lógica é basear a função para alterar parênteses para a mesma lógica e função subjacentes. Quando as parênteses correspondentes estão destacadas, você pode chamar a funçãotoggle-parens
definida abaixo:fonte