1)如何在vim中全局替换字符?

查找替换:%s/old/new/g 全文替换指定字符串

old代表要被替换的字符串 new代表要替换成的字符串

最后的g代表不用提示确认,如果需要提示确认操作的话,把g改为c。

2)一些特殊的字符如何替换?

vim中允许替换反斜杠,目前想要把'\'换成'\\'

于是可以用以下的方法替换:

在vim中输入:

:%s/\\/\\\\/g

3)比较复杂的替换
aaa,bbb,ccc,ddd
eee,fff,ggg,hhh
iii,jjj,kkk,lll
怎样把b, f, j后面的逗号改成引号?

:%s/^\([^,]*,[^,]*\),/\1"/g

还有一种录制宏方法

命令模式下按qa进入录制状态,按照以下顺序操作就可以了,“#”字符之后为注释,宏将保存在寄存器a中

0 #定位到行首

2f, #定位到第二个,字符

r' #将光标下的字符替换为'

j #进入下一行

q #退出宏录制状态

针对剩余的行调用宏就可以了,比如在命令行模式下键入“100@a”,就是重复执行100次

更加具体的细节,在命令模式下键入:help q及:help @

[root@client-4 ~]# mtr objectstorage.ap-singapore-1.oraclecloud.com
[root@client-4 ~]# mtr objectstorage.ap-mumbai-1.oraclecloud.com
[root@client-4 ~]# mtr objectstorage.ap-hyderabad-1.oraclecloud.com
[root@client-4 ~]# mtr objectstorage.us-ashburn-1.oraclecloud.com
[root@client-4 ~]# mtr objectstorage.us-phoenix-1.oraclecloud.com
[root@client-4 ~]# mtr objectstorage.us-sanjose-1.oraclecloud.com
如何删除每行开头的“[root@client-4 ~]# ”?

%s/\[root@client\-4 \~\]\#//g

@不用转义

4)同时修改多行注释

把1-10行注释掉: 1,10s/^/#/g

取消注释: 1,10s/^#//g

取消注释首字母有空格的行:1,10s/^.*#//g

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐