【问题标题】:How to save write history in vim如何在vim中保存写入历史
【发布时间】:2017-11-28 05:40:24
【问题描述】:

任何人都知道是否有一种方法可以在您添加一些文本时保存在 vim 中的写入,例如撤消/重做,但之后可以像 codility 编辑器一样播放。谢谢

【问题讨论】:

  • 你的意思是像持久撤消?这已经在 Vim 中了。见:help 'undofile'How can I use the undofile?
  • hemmm .. 这比什么都没有,但现在,我应该撤消所有文件,直到它变空,然后执行 :redo 直到它再次被填满,但这样我想我会错过之间的一些撤消..例如,如果我写: 123\n 456\n :wg 那么我将回滚并且重做将正常工作,但是如果我写 123\n 678\n :u 456\n :wq redo 方法将错过 678\n。我想让这些看看我的 owm 写作是如何随着时间的推移而演变的。
  • 撤消文件只保存过去的撤消步骤,而不是您之前撤消的任何步骤。

标签: vim history playback undo redo


【解决方案1】:

首先,Vim 的 undo 不像大多数其他应用程序那样只是一个简单的线性序列,它实际上存储了一个完整的 tree,其中包括后来被撤消的编辑。可以使用内置命令导航此树,例如 g-:earlier;使用 Gundoundotree.vim 之类的插件更舒适。这是召回以前丢弃的替代解决方案的好方法。 (使用版本控制和频繁的原子提交会更好。)


如果您想记录整个编辑会话,这个内置的命令行选项适合您:

-w {scriptout}  All the characters that you type are recorded in the file
                "scriptout", until you exit Vim.  This is useful if you want
                to create a script file to be used with "vim -s" or
                ":source!".  When the "scriptout" file already exists, new
                characters are appended.

我不确定这在实践中的效果如何(您也必须在某处保存和恢复原始文件内容)。绝对没有“速度控制”或步进。


如果你想自己回放整个编辑过程,我会推荐一些录屏软件(取决于你的操作系统,以及你使用的是 GVIM 还是终端)。那些通常会从中生成一些视频(例如 MP4),便于在任何电影播放器​​中观看(包括跳过和快进)。但是作为长期存储格式有点大。

【讨论】:

  • 谢谢 Ingo,我会试一试,我会告诉你的。屏幕录制不是一个选项,'因为你自己回答,我会检查 -w 选项..也许这些解决方案的组合加上一些脚本可以实现我的目标。谢了!
猜你喜欢
  • 2013-07-05
  • 2010-11-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-21
  • 1970-01-01
  • 2018-01-06
  • 1970-01-01
  • 2017-04-24
相关资源
最近更新 更多