在“ vi”中的选择范围内查找和替换

问题描述 投票:63回答:6

如何在vi中的选择范围内查找和替换?

vim editor vi replace
6个回答
71
投票

以可视模式选择文本(假设您正在执行此操作,然后按:开始输入命令,您将在命令行中看到类似以下内容:

:'<,'>

这意味着该命令将应用于选择。然后键入s/search/replace/并按Enter。 (如果要替换所有匹配项,请在第三个斜杠后添加g,如果要每次替换都确认,请添加c


86
投票

这里建议的大多数其他解决方案都可以在进行选择的整个线上工作,这可能不是您想要的。

要仅在选择中搜索和替换,请首先在视觉上选择文本,然后使用如下命令:

:%s/\%VSEARCH/REPLACE/g

这将进行搜索,并且仅在视觉选择的部分中进行替换,将SEARCH替换为REPLACE。如果您选择了多行,那么这也将适用于多行。


18
投票

如果使用可视模式进行选择,则:

:'<,'>s/regex/replacement/options

如果在可视模式下进入命令行模式(通过按'<,'>,则VIM将自动放置范围(':')。


7
投票

0
投票

我尝试过此操作,它也替换了其他2列中的数字。我做了Cntrl + V G并移动了光标,直到只有我想要的列变灰,因为它不再是唯一的变灰区域。然后我做了: s / 1/3 / g

为什么这会替换我的选择(灰色列)区域之外的值?


-3
投票

如果要对文件中的所有实例进行global搜索并替换(使用可选的正则表达式),我将执行以下操作:

:%s/foo/bar/g

忽略g进行本地替换。

© www.soinside.com 2019 - 2024. All rights reserved.