宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

今天就跟大家聊聊有关Vim中的替换命令是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

语法

Vim可以利用:substitute命令将指定的字符替换成其他字符,通常使用命令的缩写格式:s。借用正则表达式则可以实现更为丰富的替换功能,基本语法是:

:[range]s/源字符串/目标字符串/[option]

range和option是可以缺省不填的,各个字段的意思是:

range:代表检索范围,默认缺省表示当前行检索,1,10表示从第1到第10行,%代表整个文件,等价于1,$,而.,$代表从当前行到文件末尾

s:substitute的简写,代表替换

option:代表操作类型,默认缺省只对第一个匹配的字符进行替换,g(global)全局替换,c(comfirm)操作时确认,i(ignorecase)不区分大小写,这些选项可以组合使用

比如以下命令,将会显示将要做改动的文本并要求确认:

:1,$s/foo/bar/gc
replace with foo(y/n/a/q/l/^E/^Y)?

这时你可以选择如下操作:

y Yes:执行这个替换
n No:取消这个替换
a All:执行所有替换而不要再询问
q Quit:退出而不做任何改动
l Last:替换完当前匹配点后退出
CTRL-E 向上翻滚一行
CTRL-Y 向下翻滚一行
实用案例

1. 将光标所在行出现的所有包含aa的字符串中aa替换为bb

:s/aa/bb/g

2. 将文档中出现的所有包含aa的字符串中的aa 替换为bb

:%s/aa/bb/g

3. 将从12行到23行中出现的所有包含aa的字符串中的aa替换为bb

:12,23s/aa/bb/g

4. 全文的行首加入 # 字符,在Python中批量注释的时候非常有用

:%s/^/#/

5. 将所有行尾多余的空格删除

:%s= *$==

6. 删除所有的空行, 这里的g表示对文章中所有符合要求字符串执行替换操作,^表示行首,$表示行尾

:g/^$/d