USR_11

*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