【问题标题】:Undofile independent of the Vim version独立于 Vim 版本的撤销文件
【发布时间】:2013-04-19 21:46:11
【问题描述】:

我正在通过以下方式使用 Vim 7.3 功能 undofile

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

我在不支持 Vim 7.3 但使用不支持开箱即用撤消文件的旧 7.2 版本的不同机器上使用相同的 .vimrc 和相同的文件(在云存储中)。 7.2版本兼容7.3 undofile有解决办法吗?

【问题讨论】:

  • 您的 sn-p 将仅在 7.3+ 中设置所有这些选项,而不是在旧版本中。它对我来说看起来很完美。你到底在问什么? 7.2如何实现undofile?
  • 是的,如果实现兼容就完美了。
  • 好吧,如果你想要一个插件,vim.org 是你应该去的地方。在这里提问之前你试过了吗?

标签: vim undo


【解决方案1】:

版本检查

由于 Vim 7.3 引入了持久撤消,因此您的版本检查很好,并且可以防止旧 Vim 中的错误。通常,您会检查功能本身; :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 到您的主目录。

【讨论】:

  • 感谢您的回答。我尝试使用本地安装的 vim。但它不稳定,时不时崩溃。看来我必须进一步调查。
猜你喜欢
  • 2011-08-07
  • 2011-10-23
  • 2022-11-16
  • 2012-09-26
  • 2010-11-08
  • 2019-07-10
  • 1970-01-01
  • 1970-01-01
  • 2019-12-07
相关资源
最近更新 更多