Co jakiś czas napotykam błędy w cofnięciu drzewa, gdzie nie mogę ponownie wykonać, z następującym znanym błędem , innym raportem i wątkiem reddit .
primitive-undo: Unrecognized entry in undo list undo-tree-canary
Jest to naprawdę złe i może powodować utratę pracy, jeśli nie zapisałeś najnowszej wersji pliku.
Skoro nigdy nie używam funkcji rozgałęziającego drzewa cofania, czy można używać emacs liniowego cofania w trybie zła?
Uwaga: próbowałem ustawienia (global-undo-tree-mode -1)
bezpośrednio, po (evil-mode 1)
którym wyłącza cofanie drzewa, ale ponowne wykonanie (Ctrl-R) nie działa po wykonaniu tego.
evil
undo
undo-tree-mode
ideasman42
źródło
źródło
Odpowiedzi:
Autor
undo-tree.el
Toby Cubitt jest obecnie zbyt zajęty, aby naprawić ten konkretny błąd. Jeśli ma czas w przyszłości, może przyjrzeć się temu zagadnieniu. Autor wskazał, że ma trudności z niezawodnym odtworzeniem błędu, a ostatnio nie był w stanie go odtworzyć za pomocą gałęzi master. Występuje tylko w przypadku cofania / ponawiania w regionie. W międzyczasie autor sugeruje wyłączenie funkcji cofania / ponawiania w regionie.Gorąco zachęcam każdego, kto jest zmotywowany do wymyślenia niezawodnego sposobu na odtworzenie problemu, zaczynając od
emacs -q
użycia zarówno bieżącej stabilnej wersji Emacsa (np. 25.2.1), jak i najnowszej wersji gałęzi master, a następnie prześlij te przepisy na numer śledzenia błędów 16377 z kopiami do uczestników (Stefan, Toby, Barry i Keith).Główny numer śledzenia to 16377, a powiązany numer śledzenia to 16523:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=16377
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=16523
Oto obejście, które wyłącza tę
undo/redo-in-region
funkcję:źródło
undo-tree-enable-undo-in-region
jestnil
; i nigdy też nie widziałem, aby miało to miejsce poza użyciem cofania w regionie. Jeśli jesteś w stanie wymyślić przepis na odtworzenie błędu, zgłoś go zespołowi Emacsa - pomocna byłaby również kopia do dr Cubitt, a jeśli nie będzie to zbyt duży problem, z pewnością docenię przepis, jeśli jesteś w stanie wymyślić taki, który jest niezawodny. Przepraszam, że masz problemy ...undo-tree
są oficjalnie częściąelpa
repozytoriów. Możesz użyć standardowego zgłoszenia błędu Emacsa; jednak wynik końcowy może być taki sam - tj. czekanie, aż dr Cubitt znajdzie trochę wolnego czasu w swoim napiętym harmonogramie ... W pewnym momencie może przyjść inny cofający się guru i pomóc w utrzymaniu pakietu. Spędziłem dużo czasu, tworząc niestandardowy widelec cofania drzewa, który może cofać / powtarzać w sposób półliniowy, i nadal mam tylko podstawowe zrozumienie, jak to wszystko działa ...Najwyraźniej możesz edytować evil-pkg.el w ~ / .emacs.d / elpa / evil-xxxxxxx / dir i usunąć cofanie drzewa jako wymaganie:
źródło
źródło
undo-tree
paczkę na bok, aby się nie ładowała. Teraz użycie polecenia „Ponów” kończy się niepowodzeniemWrong type argument: commandp, redo
.Edytuj, jest to teraz pakiet, którego można używać do cofania / ponawiania w trybie zła - cofania-fu .
Dodanie odpowiedzi na własne pytanie, ponieważ od jakiegoś czasu używam zła bez cofania drzewa.
Działa to zaskakująco dobrze w przypadku cofania / ponawiania, które otacza cofanie emacsa bez niczego ciężkiego, takiego jak
undo-tree
lubredo+
.źródło