2009-04-13 5 views
141

Perché vim crea file <filename>~? C'è un modo per disabilitarlo?Come impedire a vim di creare (e di lasciare) file temporanei?

Se è per backup (o qualcosa), io uso git per questo.

Inoltre, anche questi file .<filename.with.path.hints>.swp.

Come posso dire a Vim di non crearli, o almeno di ripulire se stesso?

EDIT

urla, duplicare:

Why does Vim save files with a ~ extension?

ho adottato rogeriopvl's answer da lì.

testualmente copia:

set nobackup  "no backup files 
set nowritebackup "only in case you don't want a backup file while editing 
set noswapfile  "no swap files 
+10

Git non ti aiuterà mai a ripristinare il lavoro dopo un arresto anomalo del sistema. Git può anche ignorare i tuoi file * .swp. = D – vmassuchetto

+2

Possibile duplicato di [Perché Vim salva i file con un'estensione ~?] (Http://stackoverflow.com/questions/607435/why-does-vim-save-files-with-a-extension) –

risposta

50

Mettere questo nel file di configurazione .vimrc.

set nobackup 
+5

We ' Ho fatto questo su Windows 8.1 con Vim. I file di scambio sono ancora presenti. –

+1

Shaun, potrebbe essere necessario aggiungere "set noswapfile" anche al file .vimrc per impedire la creazione di nuovi file di scambio, come indicato nella modifica alla domanda originale. –

+0

E riguardo ':' seduto come prefisso prima della parola chiave 'set'? È richiesto? Non sembra un commento .. – Stephane

63

Consiglio vivamente di continuare a lavorare con i file di scambio (nel caso in cui Vim si blocchi).

È possibile impostare la directory in cui sono memorizzati i file di swap, in modo da non ingombrare il vostro normale directory:

set swapfile 
set dir=~/tmp 

Vedi anche

:help swap-file 
+3

bene, non ho mai avuto bisogno di quelli con notepad ++, a meno che tu dì che vim andrà in crash troppo spesso! – hasen

+5

no, non stavo dicendo che vim si blocca troppo spesso (anche se l'ho visto crash). Ma per il mio ambiente di lavoro, la connessione di rete a qualche host su cui sto lavorando è abbastanza instabile, quindi si verifica una modifica interrotta. I file di scambio aiutano lì. – user55400

+6

@ user55400 sentito parlare di GNU/Screen? (o tmux, o questa alternativa giapponese) –

25

; Per gli utenti Windows ritorna alla directory temp

set backup 
set backupdir=C:\WINDOWS\Temp 
set backupskip=C:\WINDOWS\Temp\* 
set directory=C:\WINDOWS\Temp 
set writebackup 
+3

Ho dovuto aggiungere set undodir = C: \ WINDOWS \ Temp –

9

ho fatto un plugin chiamato "noswapsuck" che consente solo il file di swap quando il buffer contiene modifiche non salvate. Una volta salvate le modifiche, lo swapfile viene cancellato. Quindi, i file di scambio che contengono lo stesso contenuto del file su disco verranno rimossi.

https://github.com/joeytwiddle/rc_files/blob/master/.vim/plugin/noswapsuck.vim

E ha lavorato bene per me, ma non ho mai pubblicizzato prima, così mi avrebbe accolto feedback.

Vantaggi:

  • Le uniche swapfiles che rimangono sul disco sarà importante swapfiles che in realtà si differenziano dal file!

Svantaggi:

  • Se il tampone ha un file di swap, esso non verrà rilevato quando il file prima apertura. Viene rilevato solo quando è abilitato lo swapfile, ovvero quando si inizia a modificare il buffer. Ciò è fastidiosamente in ritardo e ti interromperà. Qualche magia aggiuntiva quando il file viene aperto per la prima volta (ad esempio abilita, spunta, quindi disabilita swapfile) potrebbe potenzialmente risolvere questo problema.
  • Se ci si trova in un ambiente in cui si desidera ridurre al minimo le scritture su disco (ad esempio bassa potenza o file montati su una rete), questa non è una buona soluzione, poiché continua a distruggere e ricreare il file di scambio su ogni salva/modifica. (*)
  • Per lo stesso motivo, questo non è un buon plugin da utilizzare quando si modificano file enormi.

(*) In realtà le impostazioni predefinite attuali del plugin evitare questo problema mantenendo swapfile attivato dopo una scrittura, e solo in un secondo momento la disattivazione quando si unfocus la finestra o buffer. Lo svantaggio di questo è che a volte i file di scambio non necessari sono presenti su disco dopo un crash. Quindi disabilitare questa opzione sarebbe consigliabile su macchine potenti. Potrei cambiare il valore predefinito di nuovo in futuro!

+0

Questo dovrebbe essere il comportamento predefinito di vim, grazie – codebeard

4

In Windows add seguenti righe _vimrc

" store backup, undo, and swap files in temp directory 
set directory=$HOME/temp// 
set backupdir=$HOME/temp// 
set undodir=$HOME/temp// 
3

Questa risposta si applica ad usare gVim su Windows 10. Non posso garantire gli stessi risultati per altri sistemi operativi.

Add:

set nobackup 
set noswapfile 
set noundofile 

al file _vimrc.

Nota: Questa è la risposta diretta alla domanda (per Windows 10) e probabilmente non è la cosa più sicura da fare (leggi le altre risposte), ma questa è la soluzione più veloce nel mio caso.