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