O comportamento padrão de desfazer no Evil é muito granular, porque considera qualquer coisa entre o modo de inserção e o de saída como uma operação de edição. Quando você insere um parágrafo inteiro do texto durante uma inserção e executa desfazer, o parágrafo inteiro é removido. Por outro lado, o Vim inicia uma nova unidade de desfazer sempre que você move o cursor no modo de inserção por outros meios que não sejam a inserção de texto.
O Evil possui uma variável de personalização que pode ser usada para obter um histórico de desfazer mais refinado:
(setq evil-want-fine-undo t)
Com essa configuração, o Evil inicia uma nova unidade de desfazer quando o cursor é movido no modo de inserção, assim como o Vim. No entanto, essa configuração também interfere na maneira como a operação de substituição é manipulada: se você substituir uma palavra usando cw
, precisará desfazer duas vezes para restaurar a palavra original: uma para remover a nova palavra e outra para reinserir a palavra original. Isso é inconsistente com o Vim e não faz muito sentido, pois a substituição deve ser atômica.
A pergunta: como posso configurar o mal e desfazer a árvore para obter o comportamento de desfazer do Vim?
fonte
Respostas:
Como @shosti apontou que o Evil considera o desvio do comportamento do Vim um bug, arquivei um bug e um dos autores do Evil acrescentou um novo valor possível para
evil-want-fine-undo
:Com essa configuração, você obtém novas unidades de desfazer ao mover o cursor no modo de inserção, mas as operações de substituição são desfeitas em uma única etapa. Até onde eu sei, isso é consistente com o Vim. Veja aqui para detalhes.
fonte
'fine
configuração foi descontinuada.De acordo com a descrição da variável (consulte
C-h v evil-want-fine-undo
), o valorfine
não é mais suportado devido a um comportamento inconsistente.Como uso desfazer para desfazer erros de digitação ou a configuração mencionada ajudou a distribuir.
Ocorreu um problema ao desfazer erros na edição da fórmula da tabela organizacional, pois você não precisa sair do modo de inserção se quiser mudar para
*Edit Forumlas*
withC-'
.fonte