我可以做:%s/<search_string>/<replace_string>/g替换跨文件的字符串,或:s/<search_string>/<replace_string>/替换当前行。
如何在vim中选择和替换选择行中的单词?
例如:替换第6- 10,14 -18行,而不是第11-13行。
我可以做:%s/<search_string>/<replace_string>/g替换跨文件的字符串,或:s/<search_string>/<replace_string>/替换当前行。
如何在vim中选择和替换选择行中的单词?
例如:替换第6- 10,14 -18行,而不是第11-13行。
当前回答
在vim中,如果你不清楚哪些行会受到影响,请使用下面的方法
:%s/foo/bar/gc
将每个'foo'改为'bar',但要先得到确认。 按“y”表示是,按“n”表示否。之后别忘了保存
:wq
其他回答
&&命令使用相同的标志重复最后一次替换。你可以提供额外的范围(s)到它(和连接尽可能多的你喜欢):
:6,10s/<search_string>/<replace_string>/g | 14,18&&
如果你有很多范围,我宁愿使用循环:
:for range in split('6,10 14,18')| exe range 's/<search_string>/<replace_string>/g' | endfor
替换所有:
:%s/foo/bar/g
找到'foo'(在所有行中)的每个出现,并将其替换为'bar'。
具体线路:
:6,10s/foo/bar/g
将从第6行到第10行的所有行中的每个'foo'更改为'bar'。
VI搜索和替换命令示例
假设你想找到一个叫“foo”的单词,并将其替换为“bar”。
第一次按[Esc]键
输入:(冒号)后跟%s/foo/bar/,然后按[Enter]键
: % s / foo -酒吧
在vim中,如果你不清楚哪些行会受到影响,请使用下面的方法
:%s/foo/bar/gc
将每个'foo'改为'bar',但要先得到确认。 按“y”表示是,按“n”表示否。之后别忘了保存
:wq
搜索和替换
:%s/search\|search2\|search3/replace/gci
G =>全局搜索
先请求确认
i =>不区分大小写
如果您想直接更换,无需确认,请使用以下命令
:%s/search/replace/g
如果你想确认每次替换,那么运行下面的命令
:%s/search/replace/gc
请先确认,这里的搜索不区分大小写。
:%s/search/replace/gci