在多行上查找和replacevim中的string
我可以这样做:%s/<search_string>/<replace_string>/g
replace文件中的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.
)。