VIM を使用して保存されたファイルは短時間で失われます。

VIM を使用して保存されたファイルは短時間で失われます。

VIM、Linux VFSキャッシュ、ecryptfs、および/またはファイルシステムに関連しているために発生すると思われる奇妙な問題が発生しました。

  1. VIMでファイルを開き、変更して保存します。
  2. ファイルにアクセスしようとしています。

予想される動作

:wレポートファイルが作成されたら、ファイルにアクセスできる必要があります。

実際の行動

ファイルが存在しません。

しばらく(通常1秒未満)待つと、ファイルが表示されます。

これは、Pythonコードとレガシーpycファイルを扱うときに特に問題になります。新しいpyファイルがまだ準備されていないため、古いコードを実行することがよくあります。最近export PYTHONDONTWRITEBYTECODE=1コードを追加した.bashrcため、古いコードを実行するのではなく意味のあるエラーメッセージが表示されます。私が変更したファイルは短時間で失われるため、自動リロードコード(Djangoのコードなど)が5〜10回ごとに再ロードされないため、まだ厄介です。ファイルがpyc適切な場所にあると、自動リローダーは時々古いファイルをロードしますが、ファイルが変更されたことを確認pycできず、別の再ロードをトリガーします。py

システムの詳細と構成

私のコンピュータには十分なRAM(32GiB)とSSDがあり、ほとんどアイドル状態です。したがって、遅いI / Oがこの問題の原因であるとは思わない。ファイルは非常に小さく(1KiB未満)、空のファイルでもこの​​現象が発生します。暗号化にecryptfsを使用しているので、$HOMEこれが問題の一部である可能性があります。ファイルシステムを/tmp使用してインストールすると、この問題は再現できません。tmpfs

VIM設定

ファイルが移動され、新しいファイルに置き換えられたのは、VIM設定によるものです。

set backup
set backupskip=
set backupdir=$HOME/.vimbackup
set writebackup

newVIMは、ファイルが作成されたことを報告したらすぐにファイルにアクセスできるようにしたいです。私は遅延書き込みのヒントがあるかどうかVIM文書を確認しましたが、何も見つかりませんでした。シェルコマンドを使用してそれを再現することはできないため、VIMmvは他の操作を実行しているようcpですrm


また何がこの問題を引き起こす可能性がありますか?この問題をどのように解決できますか?

ベストアンサー1

これはバグですが、Aaronがリンクしたバグとは何の関係もありません。現時点では再現できないので、ここに新しいバグを提出することができます。https://bugs.launchpad.net/ecryptfs/+filebug

上記の説明をコピーして貼り付けることができますが、使用しているLinuxディストリビューションとカーネルバージョンについても詳しく知っておく必要があります。ありがとうございます!

おすすめ記事