Wenn ich Dateien bearbeite, tendiert Vim dazu, Dateien mit dem Namen zu erstellen , was ich ärgerlich finde. Von sehe ich, dass die Option die Erstellung von Auslagerungsdateien unterdrückt..filename.swp
vim -h
-n
Gibt es eine vimrc-Direktive, mit der ich Swap-Dateien standardmäßig deaktivieren kann?
Was ist der Zweck von Auslagerungsdateien und welche Funktionalität würde mir durch deren Unterdrückung entgehen?
vimrc
crash-recovery
swap-file
200_erfolg
quelle
quelle
noswapfile
wie unten vorgeschlagen. Schließlich gab ich nach und schaltete das aus, weil anscheinend die Vorteile die Ärger überwiegen - aber ich erinnere mich nicht wirklich, was mich davon überzeugt hat, die Auslagerungsdateinutzung wiederherzustellen. Wahrscheinlich ist mein Computer abgestürzt und ich konnte einige Dateien, die ich verloren hatte, nicht wiederherstellen, was bei aktivierten Auslagerungsdateien trivial gewesen wäre.Antworten:
Gründe für Auslagerungsdateien
Swap-Dateien speichern Änderungen, die Sie am Puffer vorgenommen haben. Wenn Vim oder Ihr Computer abstürzt, können Sie diese Änderungen wiederherstellen.
Swap-Dateien bieten auch eine Möglichkeit, zu verhindern, dass mehrere Instanzen von Vim dieselbe Datei bearbeiten. Dies kann auf Mehrbenutzersystemen hilfreich sein oder nur, um zu wissen, ob bereits ein anderes Vim eine Datei bearbeitet.
Auslagerungsdateien deaktivieren
Wenn Sie das Erstellen von Auslagerungsdateien vollständig deaktivieren möchten (was ich nicht empfehlen würde), können Sie dies
set noswapfile
zu Ihren hinzufügen.vimrc
. Hiermit wird der globale Wert der Option festgelegt. Sie können dies dann für bestimmte Puffer überschreiben, indem Sie:setlocal swapfile
Vim ausführen.Auslagerungsdateien organisieren
Wenn es bei Ihrem Problem mehr um die zusätzlichen Dateien geht, die auf Ihrem Dateisystem verteilt sind, können Sie alle Auslagerungsdateien an einem Ort zusammenfassen. Erstellen Sie beispielsweise ein
~/.vim/tmp
Verzeichnis und fügen Sie es hinzuzu deinem
.vimrc
. Die'directory'
Option enthält eine Liste von Verzeichnissen, in denen Vim versucht, die Auslagerungsdatei zu speichern.Die
^=
Syntax für das:set
Voranstellen des Verzeichnisnamens an den Anfang der Liste, sodass Vim dieses Verzeichnis zuerst überprüft.Am
//
Ende des Verzeichnisnamens wird Vim angewiesen, den absoluten Pfad zur Datei zu verwenden, um die Auslagerungsdatei zu erstellen, damit keine Kollisionen zwischen Dateien mit demselben Namen aus verschiedenen Verzeichnissen auftreten.Beachten Sie, dass dies verhindert, dass Vim es bemerkt, wenn mehrere Benutzer versuchen, dieselbe Datei zu bearbeiten. Da sich die Auslagerungsdatei nicht im selben Verzeichnis wie die Originaldatei befindet, weiß der Vim des anderen Benutzers nichts über die Auslagerungsdatei und warnt ihn nicht, dass sie bereits bearbeitet wird.
quelle
vim-auto-save
. Verringert dies nicht die Notwendigkeit von Auslagerungsdateien?vim temp.txt --some-command-that-disable-swap
? Mein Anwendungsfall ist, dass einige Beobachter weiterhin auf Änderungen im Verzeichnis achten. Daher möchte ich erst dann den Tausch deaktivieren, um eine Kollision zu verhindern.