O Vim reclama de um arquivo temporário ao abrir arquivos destacados de sintaxe no Mac OS X

8

Quando tento abrir um arquivo (por exemplo, test / test_sequence.rb) usando o Vim ou o MacVim, recebo o seguinte erro:

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

Isso parece restrito apenas aos arquivos que possuem algum tipo de destaque de sintaxe. Ainda posso editar o arquivo, mas tenho que usar: w! para escrever as alterações na primeira vez. Estou usando o vim no Mac OS X. Tentei bastante pesquisar esse erro sem sorte e isso se tornou realmente frustrante. Alguém poderia oferecer uma correção para isso?

EDIT: Eu não recebo esse erro ao editar arquivos LaTeX destacados na sintaxe, mas faço com arquivos Ruby destacados na sintaxe.

Michael Barton
fonte

Respostas:

6

Acontece que o problema estava com o shell. O Vim estava tentando usar / bin / screen como shell

set shell /bin/sh

No meu vimrc corrigiu o problema.

Michael Barton
fonte
3
Apenas apertei isso quando mudei meu shell de login para casca de peixe. Obrigado pela dica :)
Yeraze
Mesmo aqui, depois de shell configuração padrão para pescar aconteceu-me :)
imslavko
3
Bem, ele teve de acrescentar: set shell=/bin/bash.
paldepind
para mim a sintaxe tinha que serset shell=/bin/sh
Ganesh Hegde
Mas a coisa toda parece tipo de arquivo = específico do ruby ​​para mim.
ThomasH
1

Eu descobri que, se você suutiliza um usuário diferente, os processos que tentam usar arquivos temporários podem produzir um erro como /var/folders/zO/zOCN9kiiGD4keWX3TWYEh++++TI/-Tmp-/vzTkbXD/0: permission denied; a correção para isso é unset TMPDIR(que, creio, faz /tmpcom que seja usada), porque o TMPDIR especificado é específico para o usuário antigo e não pode ser gravado pelo usuário atual.

Você não disse se está usando suou se está trocando de usuário e a mensagem de erro não menciona permissão negada, mas ...

Kevin Reid
fonte
Obrigado pela sugestão. Tentei alterar o local de $ TMPDIR para / tmp. Em vez disso, recebo um erro apontando para / tmp / vzTkbXD / 0 agora.
Michael Barton
11
Tente em unset TMPDIRvez disso. E qual é o erro? Se a mensagem realmente não a mostrar, execute sudo fs_usage MacVim(observe que o processo nomeado já deve estar em execução ) e observe qual é o erro na sua chamada open ().
Kevin Reid
Obrigado por suas sugestões contínuas para tentar resolver isso para mim, é realmente apreciado. Tentei desmarcar $ TMPDIR, mas isso também não resolve o erro. Infelizmente, não estou familiarizado com o comando fs_usage e não pude produzir um número de erro para o processo aberto na saída fs_usage. Eu colei a saída completa de fs_usage aqui, se isso for de alguma utilidade - cl.ly/5c01de97b2276a73b569
Michael Barton
0

O Vim está tentando abrir um arquivo de permuta, você tentou reparar permissões?

Josh K
fonte
11
Obrigado pela sugestão. Acabei de executar as permissões de reparo do utilitário de disco duas vezes, mas ainda estou vendo o mesmo problema.
Michael Barton