在多行上查找和replacevim中的string

我可以这样做:%s/<search_string>/<replace_string>/greplace文件中的string,或者:s/<search_string>/<replace_string>/replace当前行。

如何从Vim中的select行中select和replace单词?

例如:replace第6-10行的文本,而不是11-13

:&&命令用相同的标志重复最后的replace。 你可以提供额外的范围(并连接尽可能多的,你喜欢):

 :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 

全部replace:

 :%s/foo/bar/g 

find每个“foo”(在所有行中),并用“bar”代替。

对于特定的行:

 :6,10s/foo/bar/g 

将第6行到第10行的所有行的每个“foo”更改为“bar”。

请注意,不必input行号,只需突出显示要在其中一种可视模式下查找/replace的行:

  • VISUAL模式( V
  • VISUAL BLOCK模式( Ctrl + V
  • VISUAL LINE模式( Shift + V ,最适合您的情况)

一旦您select了要replace的行,请键入您的命令:

 :s/<search_string>/<replace_string>/g 

你会注意到,范围'<,'>会自动为你插入:

 :'<,'>s/<search_string>/<replace_string>/g 

这里'<只是表示第一个突出显示的行'>表示最后一个突出显示的行

请注意,在NORMAL模式下,行为可能是意外的: '<'>指向在其中一个VISUAL模式下完成的最后一个高光的开始和结束。 相反,在正常模式下,特殊行号. 可以使用,它只是指当前行 。 因此,只能在当前行中find/replace,如下所示:

 :.s/<search_string>/<replace_string>/g 

另外要注意的是插入第二个:在范围和find / replace命令之间没有任何损害,换句话说,这些命令仍然可以工作:

 :'<,'>:s/<search_string>/<replace_string>/g :.:s/<search_string>/<replace_string>/g 

你可以用两个查找/replace序列来完成

  :6,10s/<search_string>/<replace_string>/g :14,18s/<search_string>/<replace_string>/g 

第二次,所有你需要调整的范围,所以而不是全部input,我会记得最后一个命令,编辑范围

VIsearch并replace命令示例

让我们说你想find一个名为“foo”的词,并用“bar”replace。

先按[Esc]键

键入:(冒号)后跟%s / foo / bar /,然后按[Enter]键。 :%S /富/酒吧/

 /sys/sim/source/gm/kg/jl/ls/owow/lsal /sys/sim/source/gm/kg/jl/ls/owow/lsal /sys/sim/source/gm/kg/jl/ls/owow/lsal /sys/sim/source/gm/kg/jl/ls/owow/lsal /sys/sim/source/gm/kg/jl/ls/owow/lsal /sys/sim/source/gm/kg/jl/ls/owow/lsal /sys/sim/source/gm/kg/jl/ls/owow/lsal /sys/sim/source/gm/kg/jl/ls/owow/lsal 

假设你想用其他一些信息replace上面的内容。

COMMAND(:%s/\/sys\/sim\/source\/gm\/kg\/jl\/ls\/owow\/lsal/sys.pkg.mpu.umc.kdk./g)

在这上面将被replace( sys.pkg.mpu.umc.kdk. )。