El comportamiento de deshacer predeterminado en Evil es demasiado complejo porque considera que ocurre algo entre ingresar al modo de inserción y dejarlo como una operación de edición. Cuando ingresa un párrafo completo de texto durante una inserción y luego ejecuta deshacer, se elimina todo el párrafo. En contraste con eso, Vim inicia una nueva unidad de deshacer cada vez que mueve el cursor en modo de inserción por otro medio que no sea ingresar texto.
Evil tiene una variable de personalización que se puede usar para obtener un historial de deshacer más detallado:
(setq evil-want-fine-undo t)
Con esta configuración, Evil inicia una nueva unidad de deshacer cuando el cursor se mueve en modo de inserción, al igual que Vim. Sin embargo, esta configuración también interfiere con la forma en que se maneja la operación de reemplazo: si reemplaza una palabra usando cw
, debe deshacer dos veces para restaurar la palabra original: una para eliminar la nueva palabra y otra para volver a insertar la palabra original. Esto es inconsistente con Vim y no tiene mucho sentido porque el reemplazo debe ser atómico.
La pregunta: ¿Cómo puedo configurar Evil y undo-tree para obtener el comportamiento de deshacer de Vim?
fuente
Respuestas:
Como @shosti señaló que Evil considera la desviación del comportamiento de Vim como errores, presenté un error y uno de los autores de Evil agregó un nuevo valor posible para
evil-want-fine-undo
:Con esta configuración, obtienes nuevas unidades de deshacer cuando mueves el cursor en modo de inserción, pero las operaciones de reemplazo se deshacen en un solo paso. Por lo que puedo decir, esto es consistente con Vim. Ver aquí para más detalles.
fuente
'fine
configuración ha quedado en desuso.Según la descripción de la variable (ver
C-h v evil-want-fine-undo
), el valorfine
ya no es compatible debido a un comportamiento inconsistente.Como uso deshacer para deshacer errores tipográficos o la configuración mencionada ayudó a mi asignación.
Tuve errores deshacer de conflicto en la edición de fórmula org-mesa, ya que no tiene que salir del modo de inserción, si desea cambiar a
*Edit Forumlas*
conC-'
.fuente