vim 中如何替换选中行或指定几行内的文本

如题所述

命令格式:

:首行数,末行数s/要替换的字符串/替换的字符串/g   

注意: 

不加g只替换每行的一个要替换的字符串,后面的不会替换。

如果指定行数,在s前面加上'%'可以实现全文范围内替换。

具体的步骤:

1、打开文件:vim five.sh,用vim打开five.sh文件。

2、按ESC键,进入命令模式。

3、在底部输入: “:1,$s/if/wj/g”,把文件中的所有if都替换成wj。

 

扩展资料:

1、将文中所有的字符串idiots替换成managers:

:1,$s/idiots/manages/g

也可以这么写:

:%s/idiots/manages/g

2、指定只在第5至第15行间进行替换,把dog替换成cat:

:5,15s/dog/cat/g

3、指定只在当前行至文件结尾间进行替换,把dog替换成cat:

:.,$s/dog/cat/g

4、指定只在后续9行内进行替换,把dog替换成cat:

:.,.+8s/dog/cat/g

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-23
以下命令将文中所有的字符串idiots替换成managers:
:1,$s/idiots/manages/g
通常我们会在命令中使用%指代整个文件做为替换范围:
:%s/search/replace/g
以下命令指定只在第5至第15行间进行替换:
:5,15s/dog/cat/g
以下命令指定只在当前行至文件结尾间进行替换:
:.,$s/dog/cat/g
以下命令指定只在后续9行内进行替换:
:.,.+8s/dog/cat/g
你还可以将特定字符做为替换范围。比如,将SQL语句从FROM至分号部分中的所有等号(=)替换为不等号(<>):
:/FROM/,/;/s/=/<>/g
在可视化模式下,首先选择替换范围, 然后输入:进入命令模式,就可以利用s命令在选中的范围内进行文本替换。
- VIM学习笔记 替换(Substitute)(可能要Anti-GFW)本回答被网友采纳