*usr_11.txt* Per Vim version 6.2. Ultima modifica: 2003 Lug 01 VIM USER MANUAL - di Bram Moolenaar Traduzione di questo capitolo: Roberto Franceschini Recupero dopo un blocco Il vostro computer si è bloccato? E voi avevate trascorso delle ore a scrivere? Niente paura! Vim salva sufficienti informazioni sul disco fisso da poter recuperare la maggior parte del vostro lavoro. Questo capitolo mostra come recuperare il vostro lavoro e spiega come viene usato il file di swap. |11.1| Fondamenti del recupero |11.2| Dove si trova il file di swap? |11.3| Bloccato o no? |11.4| Altre letture Capitolo seguente: |usr_12| Trucchi ingegnosi Capitolo precedente: |usr_10| Fare grandi modifiche Indice: |usr_toc|
*11.1* Fondamenti del recupero Nella maggior parte dei casi recuperare un file è semplice, se conoscete quale file stavate scrivendo (e se il disco fisso funziona ancora). Aprite quel file con Vim aggiungendo l'argomento "-r":
vim -r help.txt
Vim leggerà il file di swap (usato per memorizzare il testo che stavate scrivendo) e potrà leggere i pezzi del file originale. Se tutto va bene vedrete questi messaggi (con nomi di file differenti, naturalmente):
Uso swap file ".help.txt.swp"
File originale "~/vim/runtime/doc/help.txt"
Recupero completato. Dovresti controllare se va tutto bene.
(Potresti salvare questo file con un altro nome ed eseguire
'diff' rispetto al file originale per vedere le differenze)
Cancella il file .swp in seguito.
Per sicurezza, salvate questo file con un nome diverso:
:write help.txt.recovered
Confrontate il file con l'originale per verificare avete ottenuto quello che vi aspettavate. Vimdiff è molto utile per ciò |08.7|. Verificate che l'originale non contenga una versione più recente di quella recuperata (se avete salvato poco prima che il computer si bloccasse). E controllate che non manchino righe (qualcosa andato male che Vim non può riparare). Se Vim produce dei messaggi di avviso durante il recupero, leggeteli attentamente. Comunque ciò è raro. E' normale che gli ultimi pochi cambiamenti non possano essere recuperati. Vim invia i cambi al disco quando non scrivete per circa quattro secondi, o dopo che avete battuto circa duecento caratteri. Questo è impostato con le opzioni 'updatetime' e 'updatecount'. Così quando Vim non ha avuto la possibilità di salvare quando il sistema si è bloccato, i cambi successivi all'ultimo invio saranno persi. Se stavate scrivendo senza un nome di file, date una stringa vuota come argomento:
vim -r ""
Dovete essere nella directory giusta, altrimenti Vim non può trovare il file di swap.
*11.2* Dove si trova il file di swap? Vim può memorizzare il file di swap in molti posti. Normalmente è nella stessa directory del file originale. Per trovarlo posizionatevi nella directory del file e usate:
vim -r
Vim elencherà i file di swap che può trovare. Guarderà anche in altre directory dove potrebbero trovarsi i file di swap per i file della directory corrente. Comunque non troverà file di swap presenti in altre directory, e non controllerà l'albero delle directory. Il risultato potrebbe apparire come questo:
Swap files found:
In current directory:
1. .main.c.swp
proprietario: mool datato: Tue May 29 21:00:25 2001
nome file: ~mool/vim/vim6/src/main.c
modificato: YES
nome utente: mool nome computer: masaka.moolenaar.net
ID del processo: 12525
Nella directory ~/tmp:
-- nessuno --
Nella directory /var/tmp:
-- nessuno --
Nella directory /tmp:
-- nessuno --
Se ci sono più file che possono sembrare quello che cercate, vi verrà presentato un elenco e vi verrà richiesto di digitare il numero di quello che volete usare. Guardate con attenzione la data per decidere quale utilizzare. Se non sapete quale usare, provateli uno alla volta e verificate se sono quello cercato. UTILIZZARE UN FILE DI SWAP SPECIFICO Se sapete quale file di swap utilizzare, lo potete recuperare dando il nome del filo di swap. Vim troverà il nome del file originale leggendo il file di swap. Esempio:
vim -r .help.txt.swo
Questo è utile anche quando il file di swap è in una directory diversa da quella che ci si aspetta. Se anche questo non funziona, guardare quali nomi di file Vim restituisce e rinominarli di conseguenza. Controllate l'opzione 'directory' per sapere dove Vim può aver messo il file di swap.
Note:
Vim prova a trovare il file di swap cercando nelle directory contenute nell'opzione 'dir' i file che verificano la stringa "filename.sw?". Se l'espansione dei caratteri jolly non funziona (ad esempio quando l'opzione 'shell' non è valida), Vim fa un tentativo disperato per trovare il file "filename.swp". Se anche questo fallisce, dovrete dare il nome completo del file di swap per poter recuperare il file.
*11.3* Bloccato o no? *ATTENTION* *E325* Vim prova ad impedirvi di fare stupidaggini. Supponiamo che abbiate innocentemente iniziato a modificare un file e vi aspettiate di visualizzarne il contenuto. Invece Vim produce un lungo messaggio di questo tipo:E325: ATTENZIONE
Trovato uno swap file di nome ".main.c.swp"
proprietario: mool datato: Tue May 29 21:09:28 2001
nome file: ~mool/vim/vim6/src/main.c
modificato: no
nome utente: mool nome computer: masaka.moolenaar.net
ID del processo: 12559 (ancora attivo)
Mentre aprivo file "main.c"
datato: Tue May 29 19:46:12 2001
(1) Un altro programma può essere in edit sullo stesso file.
Se è così, attenzione a non trovarti con due versioni
differenti dello stesso file a cui vengono apportate modifiche.
Esci, o continua con prudenza.
(2) Una sessione di edit per questo file è finita male.
Se è così, usa ":recover" oppure "vim -r main.c"
per recuperare modifiche fatte (vedi ":help recovery").
Se hai già fatto ciò, cancella il file di swap ".help.txt.swp"
per non ricevere ancora questo messaggio.
Ricevete questo messaggio perchè, quando iniziate a modificare un file, Vim controlla se un file di swap per esso esista già. Se ne trovasse uno deve esserci qualcosa di sbagliato. Si può verificare una di queste due situazioni: 1. Un'altra sessione di modifica è attiva per questo file. Cercate nel messaggio la linea con "process ID". Può apparire così:ID del processo: 12559 (ancora attivo)
Il testo "(ancora attivo)" indica che il processo che sta utilizzando questo file gira sullo stesso computer. Se state lavorando su un sistema non-Unix non avrete questa informazione. Se state utilizzando questo file in rete non potete vedere questa informazione, in quanto il processo potrebbe girare su un altro computer. In questi due casi dovrete capire da soli in che situazione vi trovate. Se un'altra sessione di Vim stesse editando lo stesso file, continuare nella modifica porterà ad averne due versioni. Quella che verrà salvata per ultima sovrascriverà la prima, e le modifiche di questa andranno perse. In questo caso sarebbe opportuno chiudere subito Vim. 2. Il file di swap potrebbe essere il risultato di un blocco precedente di Vim o del computer. Verificate i dati contenuti nel messaggio. Se la data del file di swap è successiva a quella del file che state modificando, ed è presente questa linea:modificato: YES
Allora molto probabilmente esisterà una sessione di modifica crashata che varrebbe la pena di salvare. Se la data del file è successiva a quella del file di swap, esso può essere stato modificato dopo il blocco (forse l'avete già recuperato, senza poi cancellare il file di swap?), oppure il file è stato salvato prima del blocco, ma dopo l'ultima scrittura sul file di swap (in questo caso siete fortunati, il vecchio file di swap non vi serve neppure). Vim vi avviserà con questa linea aggiuntiva:più RECENTE dello swap file!
COSA FARE? SE sono supportate le finestre di dialogo vi verrà chiesto di selezionare una delle cinque scelte:Swap file ".main.c.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (D)elete it:
O Aprire il file in sola lettura. Usate questo se volete soltanto vedere il file e non vi serve recuperarlo. Dovreste usare questo quando sapete che qualcun altro sta lavorando sul file, ma voi volete solo consultarlo, senza fare cambi. E Modificare comunque il file. Impiegatela con prudenza! Se il file fosse aperto da un altro Vim, potreste trovarvi con due versioni del file. Vim proverà ad avvertirvi quando ciò accade, ma è meglio essere sicuri che spiacenti. R Recuperare il file dal file di swap. Usatelo se sapete che il file di swap contiene delle modifiche che vi interessa recuperare. Q Quit. Ciò evita di iniziare la modifica del file. Usatelo se c'è un altro Vim che ha aperto lo stesso file. Quando avete appena aperto Vim, ciò farà chiudere Vim . Avviando Vim con dei file in molte finestre, Vim esce solo se c'è un file di swap per il primo. Usando un comando di modifica, il file non verrà caricato e voi verrete riportati indietro al file aperto in precedenza. D Cancellare il file di swap. Usatelo se siete certi che non vi servirà più. Ad esempio, se non avesse subito modifiche, o se il file stesso fosse più nuovo che il file di swap. Su Unix questa possibilità viene offerta soltanto se il processo che aveva creato il file di swap non risulta ancora attivo. Se non avete la finestra di dialogo (avete una versione di Vim che non la supporta), dovrete farlo manualmente. Per recuperare il file, usate questo comando:
:recover
Vim non può sempre scoprire che esista già un file di swap per un dato file. Questo è il caso in cui l'altra sessione mette i file di swap in un'altra directory o dove il percorso per il file sia diverso quando venga lavorato su macchine diverse. Perciò, non fate conto su Vim che vi da avvisi continuamente. SWAP FILE NON LEGGIBILE Talora la linea
[non leggibile]
può apparire sotto il nome dello swap file. Questo può essere positivo o negativo, a seconda del contesto. E' positivo se una precedente sessione di modifica si è bloccata senza aver fatto alcuna modifica al file. In questo caso una lista directory dello swap file mostrerà che è lungo zero bytes. Potete cancellarlo e andare avanti. Va un po' male se non siete autorizzati a leggere lo swap file. Potete provare a visualizzare il file in sola-lettura, o abbandonare le mpodifiche. Su sistemi multiutente, se avete fatto voi le ultime modifiche usando un differente nome utente, una chiusura di sessione, seguita da una nuova sessione con l'altro nome utente potrebbe rimediare l'"errore di lettura". Oppure potreste individuare l'utente che ha fatto l'ultima modifica al file (o lo sta modificando adesso) e parlargli... Va molto male se invece c'è un errore fisico di lettura sul disco che contiene lo swap file. Fortunatamente, questo non capita quasi mai. Potete visualizzare il file in sola-lettura (se ci riuscite), per vedere l'entità delle modifiche che erano state "dimenticate". Se siete responsabili della modifica di quel file, siate pronti a ridigitare le vostre ultime modifiche. COSA FARE? Se sono supportate le scelte di dialogo, vi verrà chiesto di scegliere una di queste cinque opzioni:Swap file ".main.c.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (D)elete it:
Swap file ".main.c.swp" già esistente!
[O] Apri sola-lettura, (E) Apri comunque, (R)ecupera, (Q) Esci, (D) Cancellalo:
O Aprire il file in sola lettura. Usate questa opzione se volete solo esaminare il file ma non recuperarlo. Potete utilizzare questa scelta quando sapete che qualcun altro sta modificando il file, e volete solo leggerlo senza fare modifiche. E Modifica ugualmente il file. Usare con cautela! Se un'altra sessione di Vim sta modificando il file, questo può causare la creazione di due versioni. Vim cercherà di avvisarvi quando questo succede, ma è meglio mettersi al sicuro che doversi pentire. R Recupera il file dal file di swap. Usate questa opzione se sapete che il file di swap contiene modifiche che volete recuperare. Q Esci. Questo evita di modificare il file. Usate questa opzione se c'è un'altra sessione che sta modificando lo stesso file. Se avete appena avviato Vim, questa chiuderà la sessione. Se avete avviato Vim con più file in diverse finestre, chiude la sessione solo se esiste un file di swap per il primo. Se usate un comando di modifica, il file non verrà caricato e verrete riportati al file che stavate modificando. D Cancella il file di swap. Usate questa opzione se siete sicuri di non averne più bisogno. Ad esempio se non contiene modifiche, o quando il file è più nuovo del file di swap. In Unix questa scelta è mostrata solo se il processo che ha creato il file di swap non risulta più attivo. Se non appaiono le scelte di dialogo (state usando una versione di Vim che non le supporta) dovrete fare tutto manualmente. Per recuperare il file, usate questo comando:
:recover
Non sempre Vim riesce a trovare un file di swap esistente. Questo avviene quando l'altra sessione di modifica mette il file di swap in una directory diversa, o quando il percorso per il file è differente durante la modifica da un'altro computer. Quindi non fidatevi sempre degli avvisi di Vim. Se veramente non voleste vedere questo messaggio, potreste aggiungere il flag "A" all'opzione 'shortness'. Ma sarebbe veramente strano se ne aveste bisogno.
*11.4* Altre letture |swap-file| Spiega dove viene creato il file di swap e qual'è il suo nome. |:preserve| Salvare manualmente il file di swap sul disco. |:swapname| Vedi il nome del file di swap per il file corrente. 'updatecount' Numero di battute dopo le quali il file di swap viene salvato sul disco. 'updatetime' Tempo dopo il quale il file di swap viene salvato sul disco. 'swapsync' Se il disco è synced (sincronizzato?) quando il file di swap viene salvato. 'directory' Elenco delle directory dove viene memorizzato il file di swap. 'maxmem' Limite di utilizzo della memoria prima che il file di swap venga salvato. 'maxmemtot' Come sopra ma per tutti i file aperti.
Capitolo seguente: |usr_12| Trucchi ingegnosi Copyright: vedere |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Segnalare refusi a Bartolomeo Ravera - E-mail: barrav at libero.it
Generated by vim2html on Thu Jun 17 12:17:02 CEST 2004