De vez em quando eu me deparo com bugs na desfazer árvore, onde não consigo refazer, com o seguinte bug conhecido , outro relatório e thread do reddit .
primitive-undo: Unrecognized entry in undo list undo-tree-canary
Isso é muito ruim e pode causar perda de trabalho se você não salvar a versão mais recente do arquivo.
Como nunca uso a funcionalidade de desfazer árvore ramificada, é possível usar o desfazer linear do emacs com o modo maligno?
Nota: Tentei definir (global-undo-tree-mode -1)
diretamente após o (evil-mode 1)
que desabilita a desfazer a árvore, mas refazer (Ctrl-R) não funciona depois de fazer isso.
evil
undo
undo-tree-mode
ideasman42
fonte
fonte
Respostas:
O autor de
undo-tree.el
Toby Cubitt está atualmente muito ocupado para corrigir esse bug em particular. Se ele tiver tempo no futuro, poderá investigar mais a questão. O autor indicou que ele tem dificuldade em reproduzir o erro de forma confiável e recentemente não conseguiu reproduzi-lo usando a ramificação principal. Isso ocorre apenas ao usar desfazer / refazer na região. O autor sugere apenas desativar o recurso desfazer / refazer na região enquanto isso.Eu encorajaria fortemente qualquer pessoa motivada a criar uma maneira confiável de reproduzir o problema, começando com o
emacs -q
uso da versão estável atual do Emacs (por exemplo, 25.2.1) e também com a versão mais recente do ramo principal e, em seguida, envie essas receitas para o número de rastreamento de erros 16377 com cópias em carbono para os participantes (Stefan, Toby, Barry e Keith).O número de rastreamento principal é 16377 e existe um número de rastreamento relacionado 16523:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=16377
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=16523
Aqui está a solução alternativa que desativa o
undo/redo-in-region
recurso:fonte
undo-tree-enable-undo-in-region
énil
; e também nunca vi isso acontecer fora do uso de desfazer na região. Se você conseguir criar uma receita para reproduzir o erro, informe-a à equipe do Emacs - uma cópia em carbono para o Dr. Cubitt também seria útil, e se não houver muitos problemas, eu certamente apreciaria o receita se você conseguir criar uma que seja confiável. Lamento que você esteja tendo problemas ...undo-tree
oficialmente fazem parte doselpa
repositórios. Você pode usar o relatório padrão Emacs bug; no entanto, o resultado final pode ser o mesmo - isto é, aguardar o Dr. Cubitt encontrar algum tempo livre em sua agenda lotada ... Em algum momento, outro desfazer guru pode aparecer e ajudar na manutenção do pacote. Passei muito tempo criando um fork personalizado de desfazer árvore que pode desfazer / refazer de maneira semi-linear, e ainda tenho apenas um entendimento básico de como tudo funciona ...Aparentemente, você pode editar evil-pkg.el em ~ / .emacs.d / elpa / evil-xxxxxxx / dir e excluir undo-tree como requisito:
fonte
fonte
undo-tree
tirei o pacote do caminho para que ele não fosse carregado. Agora, o uso de "refazer" falha comWrong type argument: commandp, redo
.Edit, este é agora um pacote que pode ser usado para desfazer / refazer com o modo maligno - desfazer-fu .
Adicionando resposta à própria pergunta desde que eu estou usando o mal sem desfazer a árvore há algum tempo.
Isso funciona surpreendentemente bem para desfazer / refazer, que envolve o emacs desfazer sem nada pesado como
undo-tree
ouredo+
.fonte