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.

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.


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 ...


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?


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.