我正在通过undofile
以下方式使用 Vim 7.3 功能:
if version >= 703
set undofile
set undodir=$HOME/.vim/undo
set undolevels=1000
set undoreload=10000
endif
我在.vimrc
不支持 Vim 7.3 但使用不支持开箱即用撤消文件的旧 7.2 版本的不同机器上使用相同且相同的文件(在云存储中)。7.2版本兼容7.3 undofile有解决办法吗?
因为 Vim 7.3 引入了持久撤消,所以您的版本检查很好,并且可以防止旧 Vim 中的错误。通常,您会检查功能本身;:help 'undofile'
有这个注释:
{only when compiled with the |+persistent_undo| feature}
所以正确的检查(也处理没有该功能的显式编译的 Vim 7.3 版本)将是:
:if has('persistent_undo')
在核心 Vim 中实现持久撤消的原因是在插件中这将非常困难甚至不可能做到。因此,我知道没有插件可以将此功能反向移植到 Vim 7.2;我也看不出这种努力的任何动机,因为该功能不是必需的,而且解决方案非常简单:只需升级到最新的 Vim。如果您必须拥有管理员权限才能在系统上安装 Vim,您可以编译或复制用户本地安装的 Vim 到您的主目录。