No TeXStudio, pressionando ALT+ DELem uma macro LaTeX como esta, \macroname{content}
enquanto o cursor está logo antes do primeiro {
, resultará na exclusão de tudo isso, exceto o seu content
(como mostrado abaixo).
Coloque o cursor (ponto) antes do primeiro colchete:
Pressione ALT+ DELe você obtém:
Como conseguir isso no Emacs?
Atualização
De acordo com o esclarecimento de T.Verron, existe um problema, C-c C-f C-d
pois se queixa de erro de parêntese desequilibrado quando executado em algumas macros no LaTeX. Considere o exemplo abaixo:
lança este erro:
up-list: Scan error: "Unbalanced parentheses", 8074, 1
. \ textenglish {} pertence ao pacote de poliglossia.
Como se livrar dessa ressalva?
TeX-font-list
) ou não. Por exemplo, tente com\section
ou\footnote
, o AUCTeX conhece essas macros e as fontifica, masC-c C-f C-d
reclama com parênteses desequilibrados.TeX-font-list
para incluir minhas macros recém-introduzidas, isso continuará sendo uma solução subótima. Caso contrário, não sei o que impede ter uma função eLISP para lidar com isso!Respostas:
Tente esta função:
Limitação: não funciona com macros do tipo literal. Esta função gerará um erro (
Wrong type argument: integer-or-marker-p, nil
) se o argumento universal for maior que o número de macros do ponto de fechamento.Vincule a função ao seu atalho favorito. Por exemplo
para ligá-lo M-DEL.
Se o seu buffer tiver (
!
é ponto)então C-2 M-DELvai te dar
fonte
(gr1(gr2(gr3(gr4))))
você quer dizer com um prefixo,C-u
então 2 me dará(gr1(gr2))
:? se é assim, deve ser brilhante. Espero que você tenha tido tempo para fazê-lo.M-DEL
liguei para gostar no TexStudio. Obrigado.gr3
no seu caso. Veja a resposta atualizada. Você pode implementar o que você sugeriu envolvendo umadotimes
voltawhen
da versão original da resposta.No nó manual do AUCTeX em Alterar a fonte :
fonte
\emph{\randommacro{test}}
ela excluirá o\emph
).Aqui está uma função simples para remover a macro que contém no ponto:
Portanto, com
*
como ponto:Dada a função acima, é uma linha única remover todas as macros no ponto:
Portanto, novamente com
*
o ponto:fonte