Este artigo diz que "o Emacs refez porque você pode reverter a direção ao desfazer, desfazendo o desfazer".
O que isto significa? Como um usuário pode "refazer" o Emacs?
Este artigo diz que "o Emacs refez porque você pode reverter a direção ao desfazer, desfazendo o desfazer".
O que isto significa? Como um usuário pode "refazer" o Emacs?
Respostas:
Versão curta: desfazendo o desfazer. Se você desfazer e executar um comando de não edição, como C-f, o próximo desfazer desfará o desfazer, resultando em um refazer.
Versão mais longa:
Você pode desfazer como operar em uma pilha de operações. Se você executar algum comando (mesmo um comando de navegação como C-f) após uma sequência de operações de desfazer, todas as ações serão enviadas para a pilha de operações. Portanto, o próximo desfazer desfaz o último comando. Suponha que você tenha uma sequência de operações assim:
Agora, você desfaz. Desfaz a última ação, resultando na seguinte lista:
Se você fizer algo diferente de desfazer neste momento - por exemplo C-f, a pilha de operações será assim:
Agora, quando você desfaz, a primeira coisa que é desfeita é a desfazer. Resultando em sua pilha original (e estado do documento):
Se você executar um comando de modificação para interromper a sequência de desfazer, esse comando será adicionado após a desfazer e, portanto, será a primeira coisa a ser desfeita posteriormente. Suponha que você salte sobre a "barra" em vez de bater C-f. Então você teria
Essa adição / re-adição acontece ad infinitum. Demora um pouco para se acostumar, mas realmente dá ao Emacs um mecanismo de desfazer / refazer altamente flexível e poderoso.
fonte
Desfazer: C-_
Para refazer depois de desfazer: C-g C-_
Digite várias vezes C-_ para refazer o que foi desfeito C-_ Para refazer um comando do emacs várias vezes, execute seu comando, digite C-xze digite várias vezes na ztecla para repetir o comando (interessante quando você deseja executar várias vezes uma macro)
fonte
C-u
, por exemploC-u 8 *
(insere oito * onde está o cursor). Então você pode usarC-u x C-_
para desfazer x etapas.C-x e
), basta pressionare
quantas vezes for necessário para executá-la novamente.C-/
eC-x u
são alternativas para desfazer ligações de teclas, equivalentes aC-_
. Eu prefiro,C-/
pois é mais fácil de acertar.C-g C-_
"refazerá depois de desfazer", isso se aplica somente na primeira vez que você clicar na combinação. Depois disso, repita a tecla Desfazer semC-g
. Então, para refazer três vezes logo após desfazer, digiteC-g C-_ C-_ C-_
. Se você digitarC-g C-_ C-g C-_ C-g C-_
, você só vai andar em círculos, desfazendo seu redo do seu desfazer ...C-/
C-/
C-/
C-g
C-/
C-g
C-/
C-/
. Observe queC-g
não é repetido.C-g
C-/
C-g
C-/
C-/
Se você pressionou alguma tecla (digitando caracteres ou apenas movendo o cursor) desde o último comando de desfazer, não é necessário digitar
C-g
antes do próximo desfazer / refazer.C-g
é apenas uma chave segura a ser atingida que não faz nada por si só, mas conta como uma chave que não desfaz para sinalizar o fim de sua sequência de desfazer. Pressionar outro comando comoC-f
também funcionaria; é só que ele moveria o cursor de onde você o tinha.Se você pressionar
C-g
ou outro comando quando não pretendia, e agora estiver desfazendo na direção errada, basta pressionarC-g
para inverter sua direção novamente. Você terá que desfazer todo o caminho através de refazer e desfazer acidentalmente antes de conseguir desfazer o que deseja, mas, se continuar batendoC-/
, acabará atingindo o estado desejado. De fato, todos os estados em que o buffer já esteve estão acessíveis, se você pressionarC-g
uma vez e pressionar oC-/
suficiente.Atalhos alternativos para
undo
, diferentesC-/
, sãoC-_
,C-x u
, eM-x
undo
.Consulte Desfazer no manual do Emacs para obter mais detalhes sobre o sistema de desfazer do Emacs.
fonte
Para aqueles que desejam ter a funcionalidade mais comum de desfazer / refazer, alguém escreveu
undo-tree.el
. Ele fornece a aparência de desfazer não-Emacs, mas fornece acesso a toda a "árvore" do histórico de desfazer.Gosto do sistema de desfazer interno do Emacs, mas acho este pacote muito intuitivo.
Aqui está o comentário do próprio arquivo:
fonte
Cuidado com uma manobra de desfazer árvore para refazer !
Muitos "kits iniciais" populares (prelude, purcell, spacemacs) vêm com desfazer a árvore. A maioria (todos?) Até a habilita automaticamente. Como mencionado, desfazer a árvore é uma maneira útil de visualizar e percorrer a árvore de desfazer / refazer. O prelúdio até fornece um acorde-chave (
uu
) e tambémC-x u
.O problema é: desfazer-árvore parece destruir padrão Emacs' e bem conhecido vinculativo para refazer :
C-g C-/
.Em vez disso, você pode usar estas chaves simétricas para desfazer / refazer :
Isso é útil, pois às vezes você deseja refazer rapidamente sem abrir o visualizador.
fonte
Acho
redo.el
extremamente útil para desfazer / refazer "normal" e costumo associá-lo ao CSz e desfazer ao Cz, assim:Basta baixar o arquivo, colocá-lo no seu caminho lisp e colar o acima no seu
.emacs
.fonte
O Emacs 28 adiciona um comando refazer (chamado
undo-redo
).Se você deseja desfazer / refazer mais típico, os seguintes comandos podem ser usados.
fonte
Se você deseja refazer a última operação, faça o seguinte.
ESC
C + /
)fonte
Por padrão, refazer no Emacs requer pressionar Cg e desfazer.
No entanto, é possível usar o desfazer interno do Emacs para implementar também um comando refazer.
O pacote desfazer-fu , usa a funcionalidade de desfazer interna do Emacs para expor desfazer e refazer.
fonte