【发布时间】:2018-03-14 21:34:23
【问题描述】:
我一直在 Windows 7 下开发一个 perl 应用程序,它有一个列出给定目录中所有源文件的子例程。为了在下次运行时腾出时间,将找到的源文件写入缓存(纯 txt 文件)。然后,仅当源文件夹下发生更改时,才会更新此缓存。我假设我可以检查文件夹的修改时间以检查文件是否被删除或添加,并仅在需要时更新缓存文件。
在我用 vim 编辑了一些源文件之前它似乎工作得很好,它也更新了包含文件夹的修改日期。首先我认为这是因为 vim 在编辑源所在的目录中添加了一个交换文件。所以我在 _vimrc 文件中设置 directory 指向另一个位置。
set directory=~/.vim/swap " directory to place swap files in
设置后源文件夹中没有添加交换文件,但目录的修改时间改变了保存后文件。
我在 Windows 上使用 gVim 8.0.586,但 gVim nightly (8.0.1605)、neovim (v0.2.2-1173-gc46d6f8da)、cygwin vim (8.0 1-1376) 给了我相同的结果,即使使用 " clean" _vimrc 只设置目录。
用 Notepad++ 或 Atom 编辑同一个源文件只会改变文件的修改时间,而不是包含它的目录的修改时间。
有没有人知道什么会导致 vim 的这种行为?
编辑
5月我也有这两行_vimrc:
set backup " make backup files
set backupdir=~/.vim/backup " where to put backup files
正如 Wumpus 建议的那样,我尝试关闭 backup 和 writebackup,它确实有效,但我没有任何备份文件。 :(
:set nobackup nowritebackup
_vimrc中没有设置writebackup,所以默认开启。
【问题讨论】:
标签: vim