it-swarm.com.de

Warum speichert Vim Dateien mit der Erweiterung ~?

Ich habe festgestellt, dass Vim unter Windows die Datei speichert, eine .ext.swp-Datei, die beim Schließen des Vim-Fensters gelöscht wird, und eine .ext~-Datei. 

Ich gehe davon aus, dass die .ext.swp-Datei eine Sitzungssicherung ist, falls Vim abstürzt. Was ist der Zweck der .ext~-Datei? Ist dies eine permanente Sicherungsdatei? Es ist ärgerlich, da ich alle Dateien, an denen ich arbeite, ohne diese Duplikate auf meinen Host kopieren möchte. Wie kann ich das ausschalten oder , wenn es aus gutem Grund da ist, die Dateien ausblenden ?

162
Ross

Die *.ext~-Datei ist eine Sicherungsdatei, die die Datei vor dem Bearbeiten enthält.

Die *.ext.swp-Datei ist die Auslagerungsdatei, die als Sperrdatei dient und den Undo/Redo-Verlauf sowie andere interne Informationen enthält, die Vim benötigt. Im Falle eines Absturzes können Sie Ihre Datei erneut öffnen und Vim stellt den vorherigen Zustand der Swap-Datei wieder her (was ich hilfreich finde, also schalte ich sie nicht aus).

Um die automatische Erstellung von Sicherungsdateien auszuschalten, verwenden Sie (in Ihrer vimrc):

set nobackup
set nowritebackup

Wobei nowritebackup das voreingestellte Verhalten zum Speichern von Vim ändert.

  1. puffer in neue Datei schreiben
  2. löschen Sie die Originaldatei
  3. benennen Sie die neue Datei um

und veranlasst Vim, den Puffer in die Originaldatei zu schreiben (was im Falle eines E/A-Fehlers die Gefahr der Zerstörung dieser Datei verursacht). Sie verhindern jedoch das "Springen von Dateien" auf dem Windows-Desktop. Dies ist der Hauptgrund für mich, nowritebackup zu verwenden.

210
Tomalak

Ich denke, die bessere Lösung ist, diese Zeilen in Ihrer Vimrc-Datei zu platzieren

set backupdir=~/vimtmp,.
set directory=~/vimtmp,.

Damit dies funktioniert, müssen Sie in Ihrem Home-Verzeichnis ein Verzeichnis mit dem Namen vimtmp erstellen.

Auf diese Weise profitieren Sie von beiden Welten, Sie müssen die Dateien nicht sehen, aber wenn etwas schief geht, können Sie Ihre Sicherungsdatei von vimtmp abrufen. Vergessen Sie nicht, das Verzeichnis ab und zu zu löschen.

205
user183135

Um diese Dateien zu deaktivieren, fügen Sie einfach diese Zeilen zu .vimrc hinzu (vim-Konfigurationsdatei unter Unix-basierten Betriebssystemen)

set nobackup       #no backup files
set nowritebackup  #only in case you don't want a backup file while editing
set noswapfile     #no swap files
23
rogeriopvl
:set nobackup 

backups werden deaktiviert. Sie können auch ein Sicherungsverzeichnis festlegen, wenn diese Sicherungsdateien immer noch in einem zentralen Ordner gespeichert werden sollen. Auf diese Weise wird Ihr Arbeitsverzeichnis nicht mit ~ Dateien übersät.

Weitere Informationen zu Backups finden Sie unter: the backup

12
f3lix

Sie können auch eine andere Sicherungserweiterung festlegen und festlegen, wo diese Sicherungskopien gespeichert werden sollen (ich bevorzuge ~/.vimbackups unter Linux). Ich habe früher "versionierte" Sicherungen verwendet, über:

au BufWritePre * let &bex = '-' . strftime("%Y%m%d-%H%M%S") . '.vimbackup'

Dadurch wird eine dynamische Sicherungserweiterung (ORIGINALFILENAME-YYYYMMDD-HHMMSS.vimbackup) festgelegt.

11
Zsolt Botykai

Fügen Sie diese Zeile in Ihre vimrc ein:

set nobk nowb noswf noudf " nobackup nowritebackup noswapfile noundofile

Unter Windows wäre dies die C:\Program Files (x86)\vim\_vimrc-Datei für die systemweite Vim-Konfiguration für alle Benutzer.

Das Festlegen der letzten noundofile ist in Windows wichtig, um die Erstellung von *~-Tilda-Dateien nach der Bearbeitung zu verhindern.


Ich wünschte, Vim hätte diese Zeile standardmäßig enthalten. Niemand mag hässliche Verzeichnisse.

Lassen Sie den Benutzer auswählen, ob und wie er erweiterte Funktionen zum Sichern/Rückgängigmachen von Dateien aktivieren möchte.

Dies ist der nervigste Teil von Vim.

Im nächsten Schritt richten Sie set noeb vb t_vb= ein, um den Piepton zu deaktivieren: P

6
w17t

Sie haben Recht, dass die .swp-Datei von vim zum Sperren und als Wiederherstellungsdatei verwendet wird.

Versuchen Sie, set nobackup in Ihre vimrc zu übernehmen, wenn Sie diese Dateien nicht möchten. Unter the Vim docs finden Sie verschiedene Optionen für das Backup, wenn Sie den gesamten Bereich oder BAK-Dateien haben möchten.

6
dwc

Die einzige Option, die für mich funktionierte, war, diese Zeile in meine ~/.vimrc-Datei einzufügen

noundofile einstellen

Die anderen Optionen, die sich auf Sicherungsdateien beziehen, hinderten die Erstellung von temporären Dateien nicht, die auf ~ (Tilde) enden.

4
Logan

Ich musste set noundofile zu ~ _gvimrc hinzufügen 

Das Verzeichnis "~" kann identifiziert werden, indem das Verzeichnis mit dem Befehl cd ~ geändert wird

0
Josh