Vim beschwert sich über eine temporäre Datei beim Öffnen von syntaktisch hervorgehobenen Dateien unter Mac OS X.

8

Wenn ich versuche, eine Datei (z. B. test / test_sequence.rb) mit Vim oder MacVim zu öffnen, wird folgende Fehlermeldung angezeigt:

"test/test_sequence.rb" 109L, 3697C
Vim(let):E484: Can't open file /var/folders/zO/zOCN9kiiGD4keWX3TWYEh++++TI/-Tmp-/vzTkbXD/0

Dies scheint nur auf Dateien beschränkt zu sein, die eine Art Syntaxhervorhebung aufweisen. Ich kann die Datei noch bearbeiten, muss aber Folgendes verwenden: w! um die Änderungen beim ersten Mal zu schreiben. Ich verwende vim unter Mac OS X. Ich habe viel versucht, diesen Fehler ohne Glück zu googeln, und das ist wirklich frustrierend geworden. Könnte jemand eine Lösung dafür anbieten?

BEARBEITEN: Ich erhalte diesen Fehler nicht, wenn ich mit Syntax hervorgehobene LaTeX-Dateien bearbeite, sondern mit mit Syntax hervorgehobenen Ruby-Dateien.

Michael Barton
quelle

Antworten:

6

Es stellte sich heraus, dass das Problem mit der Shell war. Vim versuchte / bin / screen als Shell zu verwenden

set shell /bin/sh

In meinem vimrc wurde das Problem behoben.

Michael Barton
quelle
3
Schlagen Sie dies einfach selbst an, als ich meine Login-Shell in Fishshell geändert habe. Danke für den Tipp :)
Yeraze
Gleiches hier, nachdem ich die Standardschale auf Fisch gesetzt hatte, passierte es mir :)
imslavko
3
Nun, es musste hinzufügen : set shell=/bin/bash.
Paldepind
für mich musste die Syntax seinset shell=/bin/sh
Ganesh Hegde
Aber das Ganze scheint mir Dateityp = rubinspezifisch zu sein.
ThomasH
1

Ich habe festgestellt, dass suProzesse, die versuchen, temporäre Dateien zu verwenden, einen Fehler wie z /var/folders/zO/zOCN9kiiGD4keWX3TWYEh++++TI/-Tmp-/vzTkbXD/0: permission denied. Die Lösung hierfür ist to unset TMPDIR(was meiner Meinung /tmpnach dazu führt , dass stattdessen verwendet wird), da das angegebene TMPDIR spezifisch für den alten Benutzer ist und vom aktuellen Benutzer nicht beschreibbar ist.

Sie haben nicht gesagt, ob Sie sueinen anderen Benutzer verwenden oder wechseln, und in der Fehlermeldung wird nicht erwähnt, dass die Berechtigung verweigert wurde, aber ...

Kevin Reid
quelle
Danke für den Vorschlag. Ich habe versucht, den Speicherort von $ TMPDIR in / tmp zu ändern. Stattdessen wird jetzt eine Fehlermeldung angezeigt, die auf / tmp / vzTkbXD / 0 verweist.
Michael Barton
1
Versuchen Sie es unset TMPDIRstattdessen. Und was ist der Fehler? Wenn die Nachricht sie wirklich nicht anzeigt , führen Sie sie aus sudo fs_usage MacVim(beachten Sie, dass der benannte Prozess bereits ausgeführt werden muss ) und notieren Sie, wie der Fehler bei seinem Aufruf von open () lautet.
Kevin Reid
Vielen Dank für Ihre fortgesetzten Vorschläge, um zu versuchen, dieses Problem für mich zu lösen. Es wird sehr geschätzt. Ich habe versucht, $ TMPDIR zu deaktivieren, aber dies behebt den Fehler auch nicht. Leider bin ich mit dem Befehl fs_usage nicht vertraut und konnte keine Fehlernummer für den geöffneten Prozess in der Ausgabe fs_usage erstellen. Ich habe die vollständige Ausgabe von fs_usage hier eingefügt, wenn dies von Nutzen ist - cl.ly/5c01de97b2276a73b569
Michael Barton
0

Vim versucht, eine Auslagerungsdatei zu öffnen. Haben Sie versucht, Berechtigungen zu reparieren?

Josh K.
quelle
1
Danke für den Vorschlag. Ich habe gerade die Reparaturberechtigungen des Festplatten-Dienstprogramms zweimal ausgeführt, sehe aber immer noch das gleiche Problem.
Michael Barton