Como você usa a árvore de alterações no vim

14

É possível recuperar o ramo de alterações que eu "abandonei"? Por exemplo, estou desfazendo várias operações usando u, depois estou fazendo uma alteração no modo de inserção. Mas então percebo que não quero fazer essa alteração, prefiro voltar para onde estava no começo (antes de desfazer).

Essas mudanças são perdidas para sempre?

Nebril
fonte

Respostas:

12

Para navegar na árvore de desfazer, sua melhor aposta é usar o plug- in Gundo . Isso cria uma nova janela dividida com ligações especiais para ir para diferentes ramificações na árvore de desfazer, bem como um painel de visualização que mostra exatamente o que mudou entre cada nó da árvore.

Steve Vermeulen
fonte
Outra opção seria UndoTree.
Musicmatze
12

Para casos simples como esse, você pode simplesmente pressionar g-.

Essencialmente, o que isso faz é percorrer a lista de alterações cronologicamente (tratando a ucomo uma mudança real), e não linearmente (como com u/ <C-r>).

Por exemplo, se você inseriu algumas linhas e pressionou g-, isso acontece:

demonstração

Maçaneta
fonte
como você criou o gif animado?
guido 03/02
4
@ guido Eu usei uma ferramenta personalizada chamada mkcast .
Doorknob
2

Não, você não pode voltar e avançar na árvore. A melhor maneira é usar um plugin para este trabalho.

Outro plugin é o Undotree . É como o Gundo , mas com algumas diferenças:

  1. É necessária a implementação pura do vimscript e nenhuma biblioteca de terceiros (como python), não se preocupe com o desempenho, não é um grande problema para o vim lidar com isso. A única dependência é a ferramenta 'diff' que sempre é fornecida com o vim e mesmo sem o 'diff', você ainda pode usar a maioria dos recursos desse script.
  2. Atualizada em tempo real, desfazer a árvore. Depois de fazer as alterações, a árvore de desfazer será atualizada simultaneamente.
  3. Várias marcas úteis, como o conjunto de alterações atual, o próximo refazer o conjunto de alterações, o conjunto de alterações salvo etc.
  4. Alterne entre o registro de data e hora relativo e o registro de data e hora absoluto.
  5. Janela de desfazer atualizada em tempo real.
  6. Capacidade de limpar desfazer histórico.
  7. Mais personalizável.
adelarsq
fonte
4
Esta resposta não é diretamente contestada pela postagem de maçaneta da porta ?
Caleb