【问题标题】:Vim bypass re-do stepVim 绕过重做步骤
【发布时间】:2017-10-10 09:23:06
【问题描述】:

我想知道是否可以在通过 uCtrl+r.

我知道很棒的 vim 撤消树,但有时只是想避免单个错误/意外更改。

也就是说,例如,在进行一些复杂的更改并四处寻找上下文信息时,意外按下某个键的情况并不少见,例如~ 或(在可视模式下)不经意间的U

在这种情况下,在注意到我破坏了某些东西后,我通常会使用撤消来快速查看我最近所做的更改,因此我发现了那个错误,但我无法修复它,因为这样做,我会在其中创建新的撤消分支我无法在我之前 取消 的更改下面重现,所以我必须反复点击 Ctrl+r 直到最后一次更改得到答复,然后手动找到错误(现在我知道它是什么)来修复它。

如果有一种简单的方法可以“跳转”单个 Ctrl+r 以避免重播错误的更改,那么整个过程会变得更快。

【问题讨论】:

    标签: vim


    【解决方案1】:

    不,这是不可能的。该“功能”将要求 Vim 在内部将撤消/重做存储为要应用于文本的命令列表(您将如何处理外部更改的文件重新加载,或使用非幂等的(自定义)命令?) .

    但是,有一个允许编辑和重放命令链的工作流程:。如果您在宏中记录您的操作(例如qq),您可以停止记录并编辑寄存器(在命令行上::let @q = '<C-r>q',或粘贴到暂存缓冲区,编辑,然后再次拉动) .然后,根据需要重播多次。

    【讨论】:

    • 谢谢。我明白了。关于你的解决方法,如果我理解得很好,它需要在知道我会犯错误之前开始录制,这对我来说似乎有点尴尬。但是我想到了另一种(也许是可能的)方法:如果我们可以在两个重做步骤之间进行拍摄,那么应该可以在它们之间生成差异并将其作为补丁应用。顺便说一句,我原来的问题的答案是“不”(谢谢)。但我会记住这些想法。也许我可以稍后再试一下……
    猜你喜欢
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多