VI Fehler E303: Auslagerungsdatei für Datei konnte nicht geöffnet werden.

vim

Der vi ist für viele Menschen ein Buch mit sieben Siegeln. Für mich ist er aber der beste Text Editor den es gibt. Seit es den vi(gvim) auch für Windows gibt, ist der gvim immer eines der ersten Programme, das nach einem Windows Setup installiert wird. Allerdings bekomme ich seit der letzten Installation beim Start des vi immer folgenden Fehler angezeigt.

E303: Auslagerungsdatei für [Datei] konnte nicht geöffnet werden, Wiederherstellung unmöglich

gvim-e303-300x218

Der Fehler st erst mal nicht so schlimm und trotz des Fehlers kann man den vi ganz normal benutzen, ohne dass der Fehler fatale Auswirkungen hätte. Aber wenn man den vi regelmäßig nutzt, ist die Meldung auf Dauer schon störend und daher habe ich mal geprüft, warum der Fehler auftritt und was man dagegen machen kann.

Mit “:help E303″ habe ich dann erst mal nachgelesen, was das eigentlich genau bedeutet und bin dann schnell darauf gekommen, dass es Probleme mit den swap-files gibt. In der Hilfe kann man im Abschnitt swap-file (:help swap-file) nachlesen, dass swap-files in dem Verzeichnis angelegt werden, in dem sich die geöffnete Datei befindet. Allerdings habe ich beim Öffnen eines leeren Editors noch keine Datei und dementsprechend noch kein Verzeichnis in dem die Swap Datei geöffnet werden kann.
In diesem Fall versucht der vi die Swap Datei erst mal in dem Verzeichnis zu öffnen, das unter “:set directory” eingetragen ist. In meinem Fall ist das “directory=.,c:\tmp,c:\temp”. Mit dem Befehl “:pwd” sehe ich sofort, dass Arbeitsverzeichnis “C:\Windows\system32″. Im Verzeichnis “C:\Windows\system32″ habe ich keine Schreibrechte und es ist auch keine gute Idee, hier eine swap Datei abzulegen. Die anderen beiden Verzeichnisse “C:\tmp” und “C:\temp” existieren auf meiner Festplatte nicht. Damit ist das eigentliche Problem schon mal erkannt und nun ist die Frage, welche Möglichkeiten gibt es, das Problem zu beseitigen. Auf die Schnelle sehe ich erst mal 3 Möglichkeiten.

1. Anlegen des Verzeichnisses
Eine einfache und schnelle Lösung ist es, einfach das Verzeichnis “C:\tmp” oder “C:\temp” anzulegen. Das hat den Vorteil, dass man den Fehler “E303: Auslagerungsdatei für [Datei] konnte nicht geöffnet werden, Wiederherstellung unmöglich” nicht nur für sich selbst behebt, sondern auch für alle anderen Nutzer des Systems. Man muss nur darauf achten, dass alle Windows Benutzer ein Schreib- und Leserecht in dem Verzeichnis haben.

2. Ein anderes Verzeichnis unter “directory” eintragen
Ein anderer Weg ist, das Verzeichnis zu ändern. Dazu legt man einfach im Home-Verzeichnis eine Datei mit dem Namen “.vimrc” an, die den folgenden Eintrag enthält.

set directory=.,e:\temp

Um herauszufinden, in welchem Verzeichnis die “.vimrc” Datei liegen muss, kann man in einer Dos Box einfach “echo %USERPROFILE%” eingeben. Die Umgebungsvariable USERPROFILE enthält unter Windows den persönlichen Profilordner in dem der vi beim Start nach dieser Datei sucht und wenn vorhanden ausführt.
Der Vorteil dieser Lösung ist, dass man ein beliebiges Verzeichnis angeben kann. So kann man z.B. auch den Punkt am Anfang weg lassen und dafür sorgen, dass alle Swap Dateien des vi in einem bestimmten Verzeichnis abgelegt werden.

3. “Ausführen in” festlegen
Ich starte den vi über eine Verknüpfung, die auf dem Desktop liegt, was zur Folge hat, dass mein Arbeitsverzeichnis “C:\Windows\system32″ ist. Wenn ich dem vi z.B. direkt aus dem Verzeichnis “C:\Program Files (x86)\Vim\vim73″ starte, gibt mir der vi beim Aufruf von “:pwd” das Verzeichnis “C:\Program Files (x86)\Vim\vim73″ aus, in dem ich als “Nutzer” auch keine Schreibrechte haben sollte.

gvim-ausfuehren-in-212x300

Glücklicherweise gibt es im Windows Betriebssystem die Möglichkeit, in einer Verknüpfung ein Arbeitsverzeichnis zu hinterlegen. Dazu ist es nur nötig, mit der rechten Maustaste auf die Verknüpfung zu klicken und den Menüpunkt “Eigenschaften” auszuwählen. Unter “Verknüpfung” -> “Ausführen in:” kann man nun ein Verzeichnis eintragen. Das hier eingetragene Verzeichnis ist dann das Arbeitsverzeichnis des vi, dass als Speicherort für die Swap Dateien verwendet werden kann.

Fazit
Viele Wege führen nach Rom und welcher Weg der Richtige ist, muss jeder selbst entscheiden. Jedenfalls gibt es einige Möglichkeiten, den Fehler “E303″ zu beheben, auch wenn es ein unkritischer Fehler, mit dem man auch einfach Leben kann :-).