我正在构建一个自定义的vimrc来改善我的工作流程,我真的很喜欢设置集中目录以将所有备份,交换和撤消文件保持在一起的想法,如下所示:
" === BACKUP SETTINGS ===
" turn backup ON
set backup
set backupdir=~/.vim/backup//
" === SWAP FILES ===
" turn swap files ON
set swapfile
set directory=~/.vim/swap//
" === UNDO FILES ===
" turn undofiles ON
set undofile
set undodir=~/.vim/undo//
斜杠双斜线应该导致文件名扩展,其中,最终的备份/交换/撤消文件名将是完整路径,并%
替换成每一个/
,例如%home%username%path%to%your%file.ext
。
一切都适用于交换和撤消文件,但是备份拒绝工作,以file.ext~
不带完整路径扩展名的格式生成文件名,这意味着当我编辑两个具有相同名称的文件时,第一个文件的备份会丢失(被第二)。
有没有人知道这个问题的线索?
更新:自Vim 8.1.0251起,此错误已修复。
这似乎是一个'backupdir'
选项不支持完整的绝对路径翻译成一个文件名(使用%
的路径分隔符)喜欢'directory'
和'undodir'
这样做。至少没有提及:help 'backupdir'
。
由于这不一致,并且我看到了您的用例,因此您应该在vim_dev邮件列表中提交请求。实际上,(长时间)补丁队列(:help todo.txt
)中已经存在这样的补丁:
7 The 'directory' option supports changing path separators to "%" to make
file names unique, also support this for 'backupdir'. (Mikolaj Machowski)
Patch by Christian Brabandt, 2010 Oct 21.
请在vim_dev邮件列表上进行游说,以提高优先级!