取消删除后如何突出显示所有先前删除的文本
||
我经常使用命令或脚本来删除文本,并且在执行取消删除(u)后,我想查看该命令/脚本先前删除的内容。
使用undelete命令时是否可以突出显示先前删除的文本?
(甚至更好地匹配find \“ / \”命令中先前删除的文本)
没有找到相关结果
已邀请:
3 个回复
捻盒愧杯
删除了某些文本,则可以使用
来匹配刚删除的文本(即使您只是用
取消了删除)。 如果删除的文本包含换行符或正则表达式元字符(例如
或
),则此方法将无效。如果可能,请尝试:
-非常不可思议-关闭大多数正则表达式元字符
-插入vim表达式的求值
-对给定字符串中的所有换行符进行转义
-在给定的字符串中转义所有斜杠和反斜杠
-获取
寄存器的内容,其中包含最近被拉出和/或删除的文本 这有点罗word,所以如果您发现自己需要经常这样做,可以将其绑定到
中的命令:
戊袱
现在您可以运行
来查看文件的最后更改的差异。 说明:
撤消当前缓冲区中的最后一个更改
垂直拆分新缓冲区
将缓冲区类型更改为暂存缓冲区
从备用文件中读取内容,即我们开始时使用的缓冲区
通过将顶部的空白行移入黑洞寄存器来清理新缓冲区
标记当前缓冲区为差异的一部分
切换到最后一个缓冲区(回到我们开始时使用的缓冲区)
执行重做以恢复原始缓冲区状态
将原始缓冲区标记为与差异区分开 完成后,我建议执行
关闭两个差异。 遗憾的是,此命令在当前状态下无法处理未保存的缓冲区,因为“ 26”将读取文件。解决方案是将缓冲区的内容复制到命名寄存器中,然后将其粘贴到暂存缓冲区中。不幸的是,这会破坏命名寄存器。将代码重构为函数将提供更大的灵活性,并允许使用变量来保存寄存器的内容(和寄存器类型)并在最后恢复寄存器。
除了解决未保存的缓冲区问题和破坏问题之外,我还添加了通过命令参数(例如
。该命令还将暂存缓冲区的文件类型设置为与原始缓冲区相同的文件,因此将为该缓冲区打开语法突出显示。 对于在缓冲区中查看历史各部分之间差异的更健壮的解决方案,我同意Christian Brabandt的建议,并建议使用Gundo或histwin。有关Gundo的更多信息,请参见此vimcast。 有关更多帮助,请参见:
冉案