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.