Vim mengeluh tentang file sementara saat membuka sintaks file yang disorot di Mac OS X

8

Ketika saya mencoba membuka file (mis. Test / test_afterence.rb) menggunakan Vim atau MacVim saya mendapatkan kesalahan berikut:

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

Ini tampaknya hanya terbatas pada file yang memiliki semacam penyorotan sintaksis. Saya masih dapat mengedit file tetapi saya harus menggunakan: w! untuk menulis perubahan pertama kali. Saya menggunakan vim di Mac OS X. Saya mencoba banyak googling untuk kesalahan ini tanpa hasil dan ini menjadi sangat frustasi. Adakah yang bisa menawarkan perbaikan untuk ini?

EDIT: Saya tidak mendapatkan kesalahan ini ketika mengedit sintaks yang disorot file LaTeX tetapi lakukan dengan sintaks yang disorot file Ruby.

Michael Barton
sumber

Jawaban:

6

Ternyata masalahnya adalah dengan shell. Vim sedang mencoba menggunakan / bin / layar sebagai shell

set shell /bin/sh

Di vimrc saya memperbaiki masalah.

Michael Barton
sumber
3
Cukup tekan ini sendiri ketika saya mengubah shell login saya menjadi fishshell. Terima kasih atas tipnya :)
Yeraze
Sama di sini, setelah menetapkan shell default untuk ikan itu terjadi pada saya :)
imslavko
3
Nah, itu harus menambahkan: set shell=/bin/bash.
paldepind
bagi saya sintaksnya adalahset shell=/bin/sh
Ganesh Hegde
Tapi semuanya sepertinya filetype = ruby-spesifik untuk saya.
ThomasH
1

Saya telah menemukan bahwa jika Anda suke pengguna yang berbeda, proses mencoba menggunakan file sementara dapat menghasilkan kesalahan seperti /var/folders/zO/zOCN9kiiGD4keWX3TWYEh++++TI/-Tmp-/vzTkbXD/0: permission denied; perbaikan untuk ini adalah untuk unset TMPDIR(yang, saya pikir, menyebabkan /tmpdigunakan sebagai gantinya), karena TMPDIR yang ditentukan khusus untuk pengguna lama dan tidak dapat ditulis oleh pengguna saat ini.

Anda belum mengatakan apakah Anda menggunakan suatau pengguna-beralih lainnya, dan pesan kesalahan tidak menyebutkan izin ditolak, tetapi ...

Kevin Reid
sumber
Terima kasih untuk sarannya. Saya sudah mencoba mengubah lokasi $ TMPDIR ke / tmp. Saya malah mendapatkan kesalahan menunjuk ke / tmp / vzTkbXD / 0 sekarang.
Michael Barton
1
Coba unset TMPDIRsaja. Dan apa kesalahannya? Jika pesan benar-benar tidak menunjukkannya, jalankan sudo fs_usage MacVim(perhatikan bahwa proses yang dinamai harus sudah berjalan ) dan catat apa errno pada panggilan open () -nya.
Kevin Reid
Terima kasih atas saran Anda yang berkelanjutan untuk mencoba menyelesaikan ini untuk saya, ini sangat dihargai. Saya sudah mencoba membatalkan pengaturan $ TMPDIR tetapi ini tidak menyelesaikan kesalahan juga. Sayangnya saya tidak terbiasa dengan perintah fs_usage dan saya tidak dapat menghasilkan nomor kesalahan untuk proses terbuka di output fs_usage. Saya telah menempelkan hasil lengkap fs_usage di sini jika ini ada gunanya - cl.ly/5c01de97b2276a73b569
Michael Barton
0

Vim sedang mencoba membuka file swap, sudahkah Anda mencoba memperbaiki izin?

Josh K.
sumber
1
Terima kasih untuk sarannya. Saya baru saja menjalankan izin perbaikan utilitas disk dua kali tapi saya masih melihat masalah yang sama.
Michael Barton