Mac OS Xで構文強調表示されたファイルを開くと、Vimは一時ファイルについて不平を言う


8

VimまたはMacVimを使用してファイル(test / test_sequence.rbなど)を開こうとすると、次のエラーが発生します。

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

これは、何らかの構文の強調表示があるファイルにのみ制限されているようです。ファイルを編集することはできますが、:wを使用する必要があります。最初に変更を書き込むため。私はMac OS Xでvimを使用しています。運が悪かったので、このエラーを何度も試してみましたが、これは本当にイライラしています。誰かがこれに対する修正を提供できますか?

編集:構文が強調表示されたLaTeXファイルを編集するときにこのエラーは発生しませんが、構文が強調表示されているRubyファイルで行います。

回答:


6

問題はシェルにあることが判明しました。Vimは/ bin / screenをシェルとして使用しようとしていました

set shell /bin/sh

私のvimrcで問題が修正されました。


3
ログインシェルをフィッシュシェルに変更したときに、自分でこれを実行してください。ヒントをありがとう:)
Yeraze 2013年

ここでも同じです。デフォルトのシェルを魚に設定した後、それは私に起こりました:)
imslavko 2013年

3
まあ、それは追加しなければなりませんでした:set shell=/bin/bash
paldepind 2014

私にとって構文はset shell=/bin/sh
Ganesh Hegde

しかし、全体としてはfiletype = ruby​​固有のようです。
ThomasH 2015年

1

あなたの場合は、そのIを発見したsu別のユーザーに、一時ファイルを使用しようとしているプロセスは以下のようにエラーが発生することがあり/var/folders/zO/zOCN9kiiGD4keWX3TWYEh++++TI/-Tmp-/vzTkbXD/0: permission denied、指定されたTMPDIRは古いユーザーに固有であり、現在のユーザーは書き込みできないため、これに対する修正はunset TMPDIR/tmp代わりに使用されると思います)です。

使用しているのsuか、それとも他のユーザー切り替えなのかは明言しておらず、エラーメッセージには許可が拒否されたことが記載されていませんが...


提案をありがとう。$ TMPDIRの場所を/ tmpに変更してみました。代わりに、/ tmp / vzTkbXD / 0を指すエラーが発生します。
マイケルバートン

1
unset TMPDIR代わりに試してください。そして、エラーは何ですか?メッセージに実際に表示されない場合は、実行してsudo fs_usage MacVim(名前付きプロセスがすでに実行されている必要があることに注意してください)、open()呼び出しのerrnoを確認します。
ケビンリード

これを解決するための提案を継続していただき、ありがとうございます。$ TMPDIRの設定を解除しようとしましたが、これでもエラーは解決しません。残念ながら、fs_usageコマンドに慣れていないため、fs_usageの出力でオープンプロセスのエラー番号を生成できませんでした。これが役に立たなければ、ここにfs_usageの完全な出力を貼り付けました-cl.ly/5c01de97b2276a73b569
Michael Barton

0

Vimがスワップファイルを開こうとしていますが、権限を修復しようとしましたか?


1
提案をありがとう。ディスクユーティリティの修復権限を2回実行しただけですが、同じ問題が引き続き発生します。
マイケルバートン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.