USR_11

Puntatori utili: Pagina iniziale · Riferimenti rapidi · Indice User Manual Vim · Indice generale · FAQ in inglese

*usr_11.txt* Per Vim version 8.2. Ultima modifica: 2020 Jan 17 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 immagazzina informazioni sufficienti a 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 vari pezzi del file originale.  Se Vim è in grado
di recuperare le vostre modifiche, vedrete questi messaggi (naturalmente
i nomi di file saranno diversi):

	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) 
	è consigliato cancellare il file .swp adesso. 

Per sicurezza, salvate questo file con un nome diverso:

	:write help.txt.recuperato

Confrontate il file con l'originale per verificare di aver ottenuto quello che
vi aspettavate.  Vimdiff è molto utile per ciò |08.7|.  Per esempio:

	:write help.txt.recuperato
	:diffsp help.txt

Verificate che l'originale non contenga una versione più recente di quella
recuperata (se avete salvato il file poco prima che il computer si bloccasse).
E controllate che non manchino righe (qualcosa è andato male e Vim non è
quindi riuscito a recuperare interamente).
   Se Vim produce dei messaggi di avviso durante il recupero, leggeteli
attentamente.  Comunque ciò capita raramente.

Se il ripristino ha prodotto un testo uguale al contenuto corrente del file
riceverete il seguente messaggio:

	Uso swap file ".help.txt.swp" 
	File originale "~/vim/runtime/doc/help.txt" 
	Ripristino terminato. Il contenuto del buffer coincide con quello 
								del file. 
	è consigliato cancellare il file .swp adesso. 

Ciò capita se avete già recuperato le vostre modifiche, o se avete riscritto
il file dopo averlo modificato.  è ora buona cosa cancellare il file di swap.

è 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 digitato 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 file trovati: 
	   Nella directory in uso: 
	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.  Vim riconosce come swap file tutti i file il cui
nome segua il modello *.s[uvw][a-z].

Se anche questo non funziona, guardate quali nomi di file Vim restituisce e
rinominateli di conseguenza.  Controllate l'opzione 'directory' per sapere dove
Vim può aver messo il file di swap.

	Nota:
	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 della 'wildcard' (metacarattere) 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
	riuscire a 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 risalente a
   poco prima del crash 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! 


NOTA Nella situazione seguente Vim può stabilire che il file di swap
non è utilizzabile, e lo cancella automaticamente:
- Il file è un file di swap valido (il numero Magico è corretto).
- Il flag indicante che il file è stato modificato è a off.
- Il processo non è correntemente in esecuzione.

Questa situazione può essere gestita da programma con l'autocomando
innescato dall'evento |FileChangedShell|.


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.

è 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 byte.  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 modifiche.
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.


CHE FARE?					*swap-exists-choices*

Se sono supportate le scelte di dialogo, vi verrà chiesto di selezionare una
di queste sei opzioni:

  Swap file ".main.c.swp" già esistente! 
  [O] Apri sola-lettura, (E) Apri comunque, (R)ecupera, (Q) Esci, (A)nnulla, (D) Cancellalo: 

O  Aprire il file in sola lettura.  Usate questa opzione se volete solo
   esaminare il file ma non recuperarlo.  Potete fare questa scelta quando
   sapete che qualcun altro sta modificando il file, e volete solo leggerlo
   senza fare modifiche.

E  Modificare comunque il file.  Usatela con prudenza! Se un'altra sessione di
   Vim stesse modificando il file, potreste trovarvi con due versioni
   differenti dello stesso file.  Vim cercherà di avvisarvi quando ciò accade,
   ma è meglio essere sicuri piuttosto che doversi pentire.

R  Recuperare 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, ciò chiuderà la sessione.  Se avete avviato
   Vim con più file in diverse finestre, chiuderà la sessione solo se esiste
   un file di swap per il primo.  Usando un comando di modifica, il file non
   verrà caricato e verrete riportati al file che stavate modificando.

A  Annulla.  Come Q [Esci], ma non esegue eventuali comandi ulteriori.
   Utile eseguendo uno script che modifica parecchi file, ad es. una sessione
   con molte finestre.

D  Cancellare 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 scoprire che esiste già un file di swap per un dato
file.  Questo avviene quando l'altra sessione di modifica mette il file di
swap in una directory diversa, o se il percorso del file è differente quando è
modificato su computer diversi.  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.

Per saperne di più riguardo alla cifratura e al file di swap, vedere
|:recover-crypt|.
Per accedere al file di swap da uno script Vim, vedere |swapinfo()|.


*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 caratteri immessi dopo i quali il file di swap viene
		salvato sul disco.
'updatetime'	Tempo dopo il quale il file di swap viene salvato sul disco.
'swapsync'	Se i buffer in memoria vengono scaricati su disco ("synced")
                ogni volta che 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:noet:ft=help:norl:

Per segnalazioni scrivere a vimdoc.it at gmail dot com
     oppure ad Antonio Colombo azc100 at gmail dot com

Generato da una versione modificata di vim2html in data gio 28 mag 2020, 21.55.08, CEST