*usr_32.txt* Per Vim version 7.2. Ultima modifica: 2006 Apr 30 VIM USER MANUAL - di Bram Moolenaar L'albero degli undo Traduzione di questo capitolo: Antonio Colombo Vim gestisce un undo multiplo. Se tornate indietro con alcune modifiche e poi fate delle nuove modifiche, create un ramo nell'albero [nella storia] degli undo. Questo capitolo riguarda i movimenti fra i rami di quest'albero. |32.1| Numerazione modifiche |32.2| Percorrere la storia delle modifiche |32.3| Viaggiare nel tempo Capitolo seguente: |usr_40| Definire nuovi comandi Capitolo precedente: |usr_31| Sfruttare la GUI Indice: |usr_toc|
*32.1* Numerazione modifiche Nella sezione |02.5| abbiamo trattato solo una linea di undo/redo. Ma è anche possibile percorrere altre linee. Questo capita quando si annullano alcune modifiche (undo) e poi si fanno modifiche differenti (dal redo). Queste nuove modifiche generano dei rami nell'albero degli undo. Cominciamo col testo "uno". La prima modifica fatta è aggiungere " sue". Poi torniamo alla prima 's' e la cambiamo in 'd'. Abbiamo finora due modifiche, numerate 1 e 2, e tre versioni del testo:uno
| modifica 1 |uno sue
| modifica 2 |uno due
facendo undo una volta si torna a "uno sue", e cambiando "uno" con "cose" si crea un ramo nell'albero degli undo:uno
| modifica 1 |uno sue
/ \ modifica 2 modifica 3 ||
uno due cose sue
Si può ora usare il comando |u| per fare undo. Usandolo due volte, si torna a "uno". Se si usa |CTRL-R| per rifare, si va a "uno sue". Un ulteriore |CTRL-R|vi porta a "cose sue". Quindi undo e redo vanno su e giù nell'albero, passando dal percorso utilizzato più recentemente. Quel che importa qui è l'ordine in cui le modifiche sono fatte. Undo e redo non sono considerate modifiche, in questo contesto. Dopo ogni modifica si forma una nuova versione del testo.Note
Si noti che sono le modifiche sono numerate, il testo che si vede nell'albero qui sopra non ha alcun identificativo. I testi sono identificati molto spesso dal numero della modifica sopra di essi. Talora invece sono identificati dal numero di una delle modifiche che stanno sotto di loro, specie quando ci si muove verso l'alto dell'albero, in modo da sapere quale modifica è stata appena annullata.
*32.2* Percorrere la storia delle modifiche Come si fa ad arrivare a "uno due" adesso? Potete usare questo comando:
:undo 2
Il testo è ora "uno due", siete sotto la modifica 2. Si può usare il comando |:undo| per saltare sotto ogni modifica nell'albero. Ora fate un'altra modifica: cambiate "uno" in "noi":
uno
| modifica 1 |uno sue
/ \ modifica 2 modifica 3 ||
uno due cose sue
| modifica 4 |noi due
A questo punto cambiate idea e volete tornare a "uno sue". Usate il comando |g-|. Questo comando torna indietro nel tempo. Ovvero non percorre l'albero verso l'alto o verso il basso, ma percorre le modifiche andando indietro in ordine di tempo. Se date più volte il comando |g-| vedrete il testo cambiare così:cose sue
uno due
uno sue
uno
Usando |g+| vi muovete invece in avanti nel tempo:uno
uno sue
uno due
cose sue
noi due
Usare |:undo| è utile se sapete a quale modifica volete saltare. |g-| e |g+| sono utili se non sapete esattamente quale è il numero di una modifica. Potete inserire un contatore prima di |g-| e |g+| per eseguirli più volte.
*32.3* Viaggiare nel tempo Dopo che avete lavorato ad un testo per un po' di tempo, l'albero comincia a diventare grande. A quel punto potreste voler tornare al testo di alcuni minuti prima. Per vedere che rami ci sono nell'albero degli undo, usate questo comando:
:undolist
numero modif. ora
3 2 16 secondi fa 4 3 5 secondi fa Qui potete vedere il numero di foglie in ogni ramo, e quando è stata fatta la modifica. Assumendo che siamo sotto la modifica 4, a "noi due", si può tornare indietro di dieci secondi con questo comando: :earlier 10s A seconda del tempo che avete impiegato a fare le modifiche, vi ritroverete in una certa posizione nell'albero. L'argomento per il comando |:earlier| può essere espresso com "m" per indicare i minuti, ed "h" per le ore. Per tornare indietro il più possibile usate un numero grande:
:earlier 10h
Per viaggiare ancora in avanti nel tempo usate il comando |:later|:
:later 1m
Gli argomenti sono "s", "m" e "h", ovvero gli stessi di |:earlier|.
Capitolo seguente: |usr_40| Definire nuovi comandi Copyright: vedere |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Per segnalazioni scrivere a vimdoc.it at gmail dot com oppure ad Antonio Colombo azc100 at gmail dot com
Generated by vim2html on Wed Mar 4 19:49:22 2009