Vim se queja de un archivo temporal al abrir archivos resaltados de sintaxis en Mac OS X


8

Cuando intento abrir un archivo (por ejemplo, test / test_sequence.rb) usando Vim o MacVim, aparece el siguiente error:

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

Esto parece solo restringido a archivos que tienen algún tipo de resaltado de sintaxis. Todavía puedo editar el archivo pero tengo que usar: w! para escribir los cambios la primera vez. Estoy usando vim en Mac OS X. Intenté buscar en Google este error sin suerte y esto se ha vuelto realmente frustrante. ¿Alguien podría ofrecer una solución para esto?

EDITAR: No obtengo este error al editar archivos LaTeX resaltados de sintaxis, pero sí con archivos Ruby resaltados de sintaxis.

Respuestas:


6

Resulta que el problema estaba con el shell. Vim estaba tratando de usar / bin / screen como shell

set shell /bin/sh

En mi vimrc solucioné el problema.


3
Solo presioné esto cuando cambié mi shell de inicio de sesión a fishshell. Gracias por el consejo :)
Yeraze

Lo mismo aquí, después de configurar el shell predeterminado para pescar, me pasó :)
imslavko

3
Bueno, tuvo que añadir: set shell=/bin/bash.
paldepind

para mí la sintaxis tenía que serset shell=/bin/sh
Ganesh Hegde

Pero todo esto me parece filetype = ruby-específico.
ThomasH

1

He descubierto que si usted suusa un usuario diferente, los procesos que intentan usar archivos temporales pueden producir un error como /var/folders/zO/zOCN9kiiGD4keWX3TWYEh++++TI/-Tmp-/vzTkbXD/0: permission denied; la solución para esto es unset TMPDIR(que, creo, hace /tmpque se use en su lugar), porque el TMPDIR especificado es específico para el usuario anterior y no puede ser escrito por el usuario actual.

No ha dicho si está utilizando suo cualquier otro cambio de usuario, y el mensaje de error no menciona el permiso denegado, pero ...


Gracias por la sugerencia. Intenté cambiar la ubicación de $ TMPDIR a / tmp. Sin embargo, ahora recibo un error que apunta a / tmp / vzTkbXD / 0.
Michael Barton

1
Intenta en su unset TMPDIRlugar. ¿Y cuál es el error? Si el mensaje realmente no lo muestra, ejecute sudo fs_usage MacVim(tenga en cuenta que el proceso con nombre ya debe estar ejecutándose ) y observe cuál es el error en su llamada open ().
Kevin Reid

Gracias por sus continuas sugerencias para tratar de resolver esto por mí, es realmente apreciado. Intenté desactivar $ TMPDIR pero esto tampoco resuelve el error. Desafortunadamente no estoy familiarizado con el comando fs_usage y no pude generar un número de error para el proceso abierto en la salida de fs_usage. He pegado la salida completa de fs_usage aquí si esto es de alguna utilidad - cl.ly/5c01de97b2276a73b569
Michael Barton

0

Vim está intentando abrir un archivo de intercambio, ¿ha intentado reparar los permisos?


1
Gracias por la sugerencia. Acabo de ejecutar los permisos de reparación de la utilidad de disco dos veces, pero sigo viendo el mismo problema.
Michael Barton el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.