如何将字符添加到Vim备份文件名?

时间:2012-08-21 20:02:02

标签: vim backup

默认情况下,Vim会向代码文件添加代字号~。我知道有一个配置选项可以自定义备份文件扩展名:如果在.vimrc文件中设置backupext=.bak,则备份文件会附加.bak而不是波形符。

我想知道让Vim自动将字符添加到备份文件名的最佳方法是什么。具体来说,我希望Vim在继续添加波浪号.的同时添加句点~

(如果你想知道为什么,我使用KDE并且不喜欢Dolphin来显示备份文件 - 请参阅http://forum.kde.org/viewtopic.php?f=17&t=82350)。

我也查看了this thread,但我不想创建自定义备份目录,我只想在备份文件名前添加一个字符。

2 个答案:

答案 0 :(得分:3)

一个可能的解决方案是

mkdir ~/.vim/backup

然后添加

set backupdir=~/.vim/backup
在你的〜/ .vimrc中

,这样你就不必看它们了。

但是,如果你想将它们保存在同一个目录中,你可以在编写它们时重命名它们:

au BufWritePost * exe "silent !mv ".expand("%:p").&bex." ".expand("%:p:h")."/.".expand("%:t").&bex

答案 1 :(得分:0)

您可以使用vim的backupdir选项将备份写入特定目录(甚至是工作目录中的特定目录,请参阅http://vim.wikia.com/wiki/Remove_swap_and_backup_files_from_your_working_directory) 另一种选择是删除vim自己的备份文件功能并自行更换。我对Vimscript的熟悉程度比我想要的要低,但这是我所得到的:

:au BufWritePre * exe 'write! ' expand("%:h") . "." . expand("%:t")

如果您想使用backupdir但是要避免覆盖文件,请使用类似

的内容
:au BufWritePre * let &backupext ='@'.substitute(substitute(substitute(expand('%:p:h'), '/', '%', 'g'), '\', '%', 'g'),  ':', '', 'g').'~'

(从https://stackoverflow.com/a/9528517/49047被盗)