【发布时间】:2017-07-10 16:24:56
【问题描述】:
完成替换后,我希望 vim 突出显示刚刚更改的文本(而不是与我的搜索匹配的单词)。比如说,如果我输入s/old/new/,我希望突出显示new(而不是old)。有什么办法吗?
我曾考虑在替换步骤之后触发对 new 的搜索,但这也会突出显示之前文本中已经存在的单词。
【问题讨论】:
-
我认为这并不容易。可以为此编写一个插件,但除非我错过了什么,否则需要(相当多)时间来编写
完成替换后,我希望 vim 突出显示刚刚更改的文本(而不是与我的搜索匹配的单词)。比如说,如果我输入s/old/new/,我希望突出显示new(而不是old)。有什么办法吗?
我曾考虑在替换步骤之后触发对 new 的搜索,但这也会突出显示之前文本中已经存在的单词。
【问题讨论】:
如果您只想突出显示那些被替换的实例(不是所有 new 实例),您必须编写自己的 :Substitute 命令来记录每个更改位置(通过 :help sub-replace-expr),然后构建一个常规仅在这些位置匹配的表达式(使用\%l 和\%c)。可行,但相当复杂。
您可能从其他编辑器那里知道此功能;试着没有它生活,它不是必需的。
【讨论】:
vim中的命令分隔符是|
您可以在同一行中替换后运行搜索
:s/old/new/ | /new
【讨论】:
new 单词。假设我在old new 行上运行此命令,每个单词都会突出显示,而我只想突出显示第一个。