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

 我来答
百度网友79faf363
2019-11-22 · TA获得超过1.1万个赞
知道小有建树答主
回答量:1212
采纳率:75%
帮助的人:54.7万
展开全部

命令格式:

:首行数,末行数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

爱染年
推荐于2017-11-23 · 知道合伙人互联网行家
爱染年
知道合伙人互联网行家
采纳数:4751 获赞数:7830
国家励志奖学金获得者

向TA提问 私信TA
展开全部
以下命令将文中所有的字符串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)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式