我想在vim中:w
之后的几个目录中创建备份文件,if语句为true。 Vim :help
说,你需要在目录之间加上逗号而不是别的。但这对我不起作用。它只读取第一个目录。我尝试了不同的方法,例如使用set backupdir+=
或~/.
代替.
。
set backup
set nowritebackup
set backupdir=~/Dropbox
if expand("%")==".vimrc"
set backupdir=.,~/.vim/backUpDir/,~/Dropbox
endif
在.vimrc中展开返回
:echo expand("%")==".vimrc"
1
vim --version
VIM - Vi IMproved 7.4
MacOS X (unix) version
答案 0 :(得分:0)
如果没有自定义插件,我不相信这是可能的。如果您仔细阅读vim帮助,则表示将在列表中的 first 目录中创建备份文件。因此,您所看到的行为按设计。
*'backupdir'* *'bdir'*
'backupdir' 'bdir' string (default for Amiga: ".,t:",
for MS-DOS and Win32: ".,c:/tmp,c:/temp"
for Unix: ".,~/tmp,~/")
global
{not in Vi}
List of directories for the backup file, separated with commas.
- The backup file will be created in the first directory in the list
where this is possible. The directory must exist, Vim will not
create it for you.
如果您真的希望能够备份到多个目录,我建议您编写一个函数来执行此操作,并将其附加到BufWritePre。