使用Vim进行原子写入

Leo*_*eon 11 vim

我可以配置Vim,以便进行原子写入吗?

默认的Vim行为是:

  • 移动file.txtfile.txt~
  • 将缓冲区内容写入 file.txt

但这会导致一些问题,compass watch例如

我想要的行为如下:

  • 将缓冲区内容写入 file.txt~
  • 移动file.txt~file.txt

我已经看过了备份,backupcopywritebackup选择,但我不能让Vim的配置为我想.

Tom*_*ock 2

:set backupcopy=yes可能就是你想要的。

您还可以在您特别担心的路径上使用“backupskip”选项。

  • 我认为 `backupcopy=yes` 没有达到OP想要的效果。看起来是先将现有文件复制到备份文件,然后就地覆盖现有文件。这就像 OP 的第一个示例,只是使用初始副本而不是移动。也就是说,它仍然可以解决OP遇到的特定问题。 (2认同)