Vim のファイルの更新は、別のファイルを作って本物のファイルと入れ替える事で実現しています。
おそらく VSCode は直接 write(2) してると思いますが、もし nostream のファイル変更検知がそのファイルの inode で検知しているのであれば、Vim の方法(ファイルの rename) ではヒットしないのかもです。
Vim のファイルの更新は、別のファイルを作って本物のファイルと入れ替える事で実現しています。
おそらく VSCode は直接 write(2) してると思いますが、もし nostream のファイル変更検知がそのファイルの inode で検知しているのであれば、Vim の方法(ファイルの rename) ではヒットしないのかもです。
なるほど…! 言われてみれば確かにそんな挙動だと聞いたことあるかも…
検知方法を確認したところNode.jsのfs.watch()で、中身はinotify(7)らしいのでそれで合ってそうです。ありがとうございます!