【问题标题】:How to highlight newly replaced text in vim如何在vim中突出显示新替换的文本
【发布时间】:2017-07-10 16:24:56
【问题描述】:

完成替换后,我希望 vim 突出显示刚刚更改的文本(而不是与我的搜索匹配的单词)。比如说,如果我输入s/old/new/,我希望突出显示new(而不是old)。有什么办法吗?

我曾考虑在替换步骤之后触发对 new 的搜索,但这也会突出显示之前文本中已经存在的单词。

【问题讨论】:

  • 我认为这并不容易。可以为此编写一个插件,但除非我错过了什么,否则需要(相当多)时间来编写

标签: vim replace highlight


【解决方案1】:

如果您只想突出显示那些被替换的实例(不是所有 new 实例),您必须编写自己的 :Substitute 命令来记录每个更改位置(通过 :help sub-replace-expr),然后构建一个常规仅在这些位置匹配的表达式(使用\%l\%c)。可行,但相当复杂。

您可能从其他编辑器那里知道此功能;试着没有它生活,它不是必需的。

【讨论】:

    【解决方案2】:

    vim中的命令分隔符是|

    您可以在同一行中替换后运行搜索

    :s/old/new/ | /new

    【讨论】:

    • 谢谢,这是一个不错的开始,但正如我所说,这也会突出显示之前文本中的所有 new 单词。假设我在old new 行上运行此命令,每个单词都会突出显示,而我只想突出显示第一个。
    猜你喜欢
    • 2018-01-27
    • 1970-01-01
    • 2013-01-29
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 2014-12-24
    • 1970-01-01
    • 2011-01-06
    相关资源
    最近更新 更多