vim - VIM 中的 "backupdir"子文件夹

标签 vim

目前我的 VIM 配置文件中有这个:

set backupdir=$HOME/Documents/vim-backup/

这大部分工作正常,但我对它如何将所有文件放入同一目录感到困扰。例如,如果一个人要同时编辑多个 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 

这将自动更改 backupdir设置为 $HOME/.vim/backup/path/to/filedirectory在 vim 保存文件之前。然后 Vim 会将备份文件写入此目录,并带有 ~ 结尾。 .如果要更改~您可以使用更改 backupext环境。如果目录不存在,它将被创建。

关于vim - VIM 中的 "backupdir"子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25276740/

相关文章:

vim - 在 Vim 中,如何在搜索后获得匹配总数?

vim - 如何在 Vim 中复制缓冲区?

Vim:解决特定缓冲区中键映射的歧义以避免超时

vim - TextMate 在 VIM 中跳转到函数?

vim - NERDTree命令自动改变目录和根目录

使用 vimdiff 在文件中解决 Git 部分 merge 冲突

语法检查 VimL 脚本

vim - Syntastic 不适用于 C++

vim - 如何在 Vim 中编辑文件,所有行都以 ^M 结尾,但最后一行以 ^M^J 结尾

linux - 如何在 Vim 中使用不同的寄存器从操作系统剪贴板复制/粘贴到操作系统剪贴板——具体怎么做?