Время от времени я сталкиваюсь с ошибками в дереве отмены, где я не могу повторить, со следующей известной ошибкой , другим потоком отчетов и reddit .
primitive-undo: Unrecognized entry in undo list undo-tree-canary
Это действительно плохо и может привести к потере работы, если вам не удалось сохранить самую новую версию файла.
Так как я никогда не использую функциональность дерева ветвящихся отмен, возможно ли использовать emacs linear undo со злым режимом?
Примечание: я попытался установить (global-undo-tree-mode -1)
сразу после (evil-mode 1)
чего отключает дерево отмены, но повтор (Ctrl-R) не работает после этого.
evil
undo
undo-tree-mode
ideasman42
источник
источник
Ответы:
Автор
undo-tree.el
Toby Cubitt в настоящее время слишком занят, чтобы исправить эту конкретную ошибку. Если у него будет время в будущем, он может изучить этот вопрос дальше. Автор указал, что он испытывает трудности с надежным воспроизведением ошибки и недавно не смог воспроизвести ее, используя главную ветвь. Это происходит только при использовании undo / redo-in-region. Автор предлагает просто отключить функцию отмены / повтора в регионе.Я настоятельно рекомендую всем, кто заинтересован найти надежный способ воспроизвести проблему, начиная с
emacs -q
использования как текущей стабильной версии Emacs (например, 25.2.1), так и с самой последней версии основной ветки, а затем отправьте эти сообщения на номер для отслеживания ошибок 16377 с копиями для участников (Стефан, Тоби, Барри и Кит).Основной номер отслеживания - 16377, и существует связанный номер отслеживания 16523:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=16377
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=16523
Вот обходной путь, который отключает эту
undo/redo-in-region
функцию:источник
undo-tree-enable-undo-in-region
естьnil
; и я также никогда не видел, чтобы это происходило за пределами использования отмены в регионе. Если вам удастся придумать рецепт для воспроизведения ошибки, пожалуйста, сообщите об этом команде Emacs - точная копия Dr. Cubitt также будет полезна, и если это не так уж и сложно, я уверен, что буду признателен за рецепт, если вы в состоянии придумать тот, который надежен. Извините, что у вас возникли проблемы ...undo-tree
официально являются частьюelpa
репозиториев. Вы можете использовать стандартный отчет Emacs об ошибке; однако конечный результат может быть таким же - то есть ожидание того, что доктор Кубитт найдет немного свободного времени в своем напряженном графике ... В какой-то момент может прийти другой гуру отмены и помочь в обслуживании пакета. Я потратил много времени на создание пользовательского форка дерева отмены, который может отменить / повторить полулинейным образом, и у меня все еще есть только базовое понимание того, как все это работает ...Видимо, вы можете отредактировать evil-pkg.el в ~ / .emacs.d / elpa / evil-xxxxxxx / dir и удалить дерево отмены в качестве требования:
источник
источник
undo-tree
пакет, чтобы он не загружался. Теперь с помощью «повторить» не удается сWrong type argument: commandp, redo
.Отредактируйте, теперь это пакет, который можно использовать для отмены / повтора с помощью evil-mode - undo-fu .
Добавление ответа на собственный вопрос, так как я уже некоторое время использую зло без отмены.
Это работает на удивление хорошо, чтобы отменить / повторить, что оборачивает отмену Emacs без каких-либо тяжелых, как
undo-tree
илиredo+
.источник