Undofile独立于Vim版本

时间:2013-04-25 20:34:20

标签: vim undo

我正在使用Vim 7.3功能undofile,方法如下:

if version >= 703
 set undofile
 set undodir=$HOME/.vim/undo
 set undolevels=1000
 set undoreload=10000
endif

我在不支持Vim 7.3的不同机器上使用相同的.vimrc和相同的文件(在云存储中),但使用不支持undofile开箱即用的旧7.2版本。是否有与7.3 undofile兼容的7.2版本的解决方案?

1 个答案:

答案 0 :(得分:4)

版本检查

由于Vim 7.3引入了持久性撤消,因此您的版本检查很好,并且可以防止旧版Vims中的错误。通常,您会检查功能本身; :help 'undofile'有这样的说明:

{only when compiled with the |+persistent_undo| feature}

因此,正确的检查(也处理在没有该功能的情况下显式编译的Vim 7.3版本)将是:

:if has('persistent_undo')

Vim 7.2的持久撤消

在核心Vim中实现持久性撤销的原因是,在插件中这将非常困难甚至无法实现。因此,我知道没有将此功能反向移植到Vim 7.2的插件;我也没有看到任何这种努力的动机,因为该功能是非必要的,解决方案非常简单:只需升级到最新的Vim。如果您必须具有在系统上安装Vim的管理权限,则可以将Vim的用户本地安装编译或复制到您的主目录中。