Vim si lamenta di un file temporaneo quando si aprono i file evidenziati dalla sintassi su Mac OS X.


8

Quando provo ad aprire un file (ad esempio test / test_sequence.rb) usando Vim o MacVim ottengo il seguente errore:

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

Questo sembra limitato solo ai file che hanno una sorta di evidenziazione della sintassi. Posso ancora modificare il file ma devo usare: w! per scrivere le modifiche la prima volta. Sto usando VIM su Mac OS X. Ho provato molto a cercare su Google questo errore senza fortuna e questo è diventato davvero frustrante. Qualcuno potrebbe offrire una soluzione per questo?

EDIT: questo errore non viene visualizzato quando si modificano i file LaTeX evidenziati dalla sintassi ma lo faccio con i file Ruby evidenziati dalla sintassi.

Risposte:


6

Si scopre che il problema era con la shell. Vim stava provando a usare / bin / screen come shell

set shell /bin/sh

Nel mio vimrc risolto il problema.


3
Basta colpire questo da solo quando ho cambiato la shell di login in fishshell. Grazie per la punta :)
Yeraze,

Lo stesso qui, dopo aver impostato la shell predefinita per pescare mi è successo :)
imslavko

3
Beh, si è dovuto aggiungere: set shell=/bin/bash.
paldepind,

per me la sintassi doveva essereset shell=/bin/sh
Ganesh Hegde,

Ma il tutto sembra filetype = ruby-specifico per me.
ThomasH,

1

Ho scoperto che se super un utente diverso, i processi che tentano di utilizzare file temporanei possono produrre un errore simile /var/folders/zO/zOCN9kiiGD4keWX3TWYEh++++TI/-Tmp-/vzTkbXD/0: permission denied; la soluzione per questo è unset TMPDIR(che, credo, causa invece /tmpdi essere utilizzata), perché il TMPDIR specificato è specifico per il vecchio utente e non scrivibile dall'utente corrente.

Non hai detto se stai utilizzando suo qualsiasi altro cambio utente e il messaggio di errore non menziona l'autorizzazione negata, ma ...


Grazie per il suggerimento Ho provato a cambiare la posizione di $ TMPDIR in / tmp. Ottengo invece un errore che punta a / tmp / vzTkbXD / 0 ora però.
Michael Barton,

1
Prova unset TMPDIRinvece. E qual è l'errore? Se il messaggio in realtà non lo mostra, esegui sudo fs_usage MacVim(nota che il processo indicato deve essere già in esecuzione ) e nota qual è l'errno sulla sua chiamata open ().
Kevin Reid,

Grazie per i tuoi continui suggerimenti per provare a risolverlo per me, è davvero apprezzato. Ho provato a annullare $ TMPDIR ma questo non risolve neanche l'errore. Sfortunatamente non ho familiarità con il comando fs_usage e non sono riuscito a produrre un numero di errore per il processo aperto nell'output di fs_usage. Ho incollato l'output completo di fs_usage qui se questo è di qualche utilità - cl.ly/5c01de97b2276a73b569
Michael Barton

0

Vim sta provando ad aprire un file di scambio, hai provato a riparare i permessi?


1
Grazie per il suggerimento Ho appena eseguito due volte le autorizzazioni di riparazione dell'utilità del disco ma sto ancora riscontrando lo stesso problema.
Michael Barton,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.