[もともとこの問題についてvi / vim stackexchangeに投稿しましたが、重要な問題は、エディタが文句を言うよりもファイルシステムにあることがますます明らかになりました。]
概要 - CIFSのファイルはバックグラウンドで「変更」をマウントし、ファイルに書き込もうとするとVimによって警告されます。 Vimで潜在的な「修正」ノイズを落ち着かせるか、または取り除くのに役立ちます。
背景:
- Windows 10ホストのVirtualBoxで実行されているLinuxゲスト仮想マシン(Arch / Manjaro-i3 64ビット)があります。
- ホストには、2つの間で共有するNTFS形式のパーティションがあります。
- 共有パーティションは標準のWindows 10共有を介して共有され、Linuxクライアントの/ etc / fstabにcifsドライブとしてマウントされます。
- 私はゲストシステムでファイルを編集するためにvim 8.1を使用しています。
質問:
- ほとんど(明らかにランダムに)私はvimで編集するファイルに書き込もうとします。
警告:このファイルは読んだ後に変更されました!
- 私は2つの書き込みの間にディスクの内容が変わっていないことを知っています。
間違った警告を避け、その警告のソースを確認する方法をよりよく理解したいと思います。
デフォルトでは、ファイルの変更はディスクに書き込まれるとすぐに実行されます。 Sambaインフラストラクチャが疑われますが、それをどのように判断するのかわかりません。 straceログを見ましたが、データをよく理解していません。
私疑う問題は、vimがファイルにタイムスタンプを表示すると思う時点と、Sambaが最終的に書き込みによって記録されたタイムスタンプを確認する時点の間に若干の遅延があるため、vimはファイルが期限切れになった可能性があると思うということです。
しかし、よくわかりません...それが本当なら、私はまだそれを理解するのに十分なほど熟練していません。
提案?
答え1
このディスクの場合は、Windowsの自動ディスクオプティマイザをオフにすることをお勧めします。 Linuxはログ記録時にディスクの場所を確認しますが、Windowsはそうではありません。そのため、場所は少し変更されましたが、Linuxではすでに異なります。
これで問題は解決します!
https://www.top-password.com/blog/disable-automatic-drive-optimization-defrag-in-windows-10/