O que fazemos quando erramos, desfazemos o erro. Para isso serve a ferramenta undo, tão popular nos mais diversos tipos de editores. Hoje veremos o que o Vim nos oferece para desfazer e refazer a edições.
Desfazendo e refazendo
Desfazer uma ação é extremamente simples, mas pode haver algumas particularidades.
O comando u desfaz a última edição, enquanto o comando CTRL-R refaz a última edição desfeita.
iFooiBar iFooBar u <- Desfazendo iFooBar CTRL-R <- Refazendo iFooBar
Os comandos u e CTRL-R aceitam um count como argumento, portanto, podemos fazer 2u ou 4CTRL-R para desfazer 2 edições ou refazer a últimas 4 edições desfeitas.
Nota: CTRL-R difere de . pois o primeiro refaz a última edição desfeita, enquanto o segundo reexecuta o último comando de edição.
Listas
Listas são estruturas recorrentes em programação. Uma lista é um conjunto de elementos dispostos em um seqüência, aonde um elemento tem um elemento anterior e posterior associado a ele, exceto o primeiro elemento, que não possui o anterior e o último elemento, que não possui um posterior.
Um apontador nada mais faz do que apontar para um determinado elemento de uma lista.
Lista de edição
Uma lista de edição, é uma estrutura que contém as edições realizadas em ordem seqüencial. Os comandos u e CTRL-R simplesmente manipulam está lista para desfazer ou refazer as edições.
Conteúdo - Lista de edição | - Alteração feita: iFooFoo | - Alteração feita: iBar Foo Bar | - Alteração feita: iFooBar <-- Apontador Foo Bar FooBar
Utilizando o comando u:
Vazio | Alteração feita: iFooFoo | Alteração feita: iBar <-- Apontador Foo Bar Alteração desfeita: iFooBar
Utilizando o comando u novamente:
Vazio | Alteração feita: iFoo<-- Apontador Foo Alteração feita: iBar Alteração desfeita: iFooBar
Utilizando o comando CTRL-R:
Vazio | Alteração feita: iFooFoo | Alteração feita: iBar <-- Apontador Foo Bar Alteração desfeita: iFooBar
Quero mais!
Depois que você pega o jeito, editar no VIm é uma delícia. Desfazer uma ação é extremamente freqüente e a tecla u em teclados QWERTY é facilmente acessada.
Undo é um assunto extenso dentro do VIm pois ele envolve a função básica de editação. Outros tópicos interessantes são: bloco de edição, arvore de edição e timeline de edição. Estes dois últimos serão abordados futuramente, pois são de ampla utilidade.
Para os mais impacientes ou curiosos, vocês podem obter TUDO sobre undo no help, pesquisando sobre undo ou no capítulo 32.
:help undo :help 32
Æ!!
ResponderExcluirLembrando que no vim você nunca perde suas alterações mesmo que você sobrescreva após dar um undo e escrever outra coisa pois o vim guarda a arvore de alterações, portanto você pode utilizar:
g+ para avançar na arvore de alterações
g- para retornar na árvore de alterações
Para saber mais sobre as alterações:
:undolist
E sem contar que o vim tambem possui a maquina do tempo, onde você pode voltar por tempo utilizando:
:earlier 5m
que volta 5 minutos no tempo com sua edição
:later 6m
Avança 6 minutos no tempo
;)
Há braços