我看到how to search and replace in specific lines,按行号指定,how to search and replace using the current line as reference to a number of lines down。
如何仅在当前行中搜索和替换?我正在寻找一种简单的解决方案,不需要像链接解决方案那样指定行号。
答案 0 :(得分:18)
在特定行中将所有str1
替换为str2
:
:s/str1/str2/g
如果您只想替换第一个匹配项,请删除g
选项。
答案 1 :(得分:9)
您可以将.
用于当前行,例如:
:.s/old/new/
这将仅在当前行中将old
更改为new
。
答案 2 :(得分:4)
如果要搜索并替换当前行中所有匹配的单词,可以在命令模式下轻松使用简单的substitute (s)
和g
修饰符。
:s/search/replace/g
如果您只想搜索并替换当前行中的第一个匹配单词,只需从命令中移开g
修饰符即可。
:s/search/replace/
参考::help substitute
答案 3 :(得分:1)
确认('c')并替换:
:s/foo/bar/gc
找到'foo'的出现,然后将其替换为'bar'进行确认。
Vim提供了以下选项:
replace with bar (y/n/a/q/l/^E/^Y)?
y / n-自我解释
a-替换所有出现的内容
q-退出
l-更换电流并停止(最后一个)
^ E / ^ Y-ctrl + e和ctrl + y-分别向下和向上滚动。
现在,您可以使用y,n和l的组合来达到目的。