目前我的 VIM 配置文件中有这个:
set backupdir=$HOME/Documents/vim-backup/
Run Code Online (Sandbox Code Playgroud)
这大部分工作正常,但我对它如何将所有文件放入同一目录感到困扰。例如,如果一个人要同时编辑多个 README.txt 文件,那将特别烦人,因为它们的备份都会相互破坏。
是否可以在 backupdir 的子目录中进行 VIM 存储备份?例如,如果我正在编辑C:\Users\patrick\Desktop\project-1\foo.c,那么我希望备份文件进入类似C:\Users\patrick\Documents\vim-backup\Users\patrick\Desktop\project-1\foo.c
你可以做这样的事情。
set backupdir=$HOME/.vim/backup
let s:backupdir = &backupdir
function! SetBackupDir()
exec 'set backupdir=' . s:backupdir . expand('%:p:h')
if !isdirectory(&backupdir)
call mkdir(&backupdir, "p")
endif
endfunction
Run Code Online (Sandbox Code Playgroud)
这会在 vim 保存文件之前自动更改backupdir设置。$HOME/.vim/backup/path/to/filedirectory然后,Vim 会将备份文件写入此目录,并以~. 如果您想更改,~可以使用更改backupext设置。如果该目录不存在,则会创建该目录。