Vim可以在尾行模式下使用:substitute命令將指定的字符串替換成其他目標(biāo)字符串。
通常我們可以使用該命令的縮寫格式:s進(jìn)行來(lái)進(jìn)行vim字符串替換操作
一民轴、Vim替換字符串命令的語(yǔ)法
Vim替換字符串命令的基本語(yǔ)法是 :[range]s/目標(biāo)字符串/替換字符串/[option]铛铁,其中range和option字段都可以缺省不填剪个。
下面介紹VIM替換字符串各個(gè)變量的含義:
range:表示搜索范圍信认,默認(rèn)表示當(dāng)前行;
? range字段值1,10表示從第1到第10行;
? %表示整個(gè)文件(相當(dāng)于1,$);
? 而.,$代表從當(dāng)前行到本文件的末尾
s:substitute的簡(jiǎn)寫渣淤,表示執(zhí)行替換字符串操作;
option:表示操作類型,默認(rèn)只對(duì)第一個(gè)匹配的字符進(jìn)行替換捻撑;
option字段值g(global)表示全局替換;
c(comfirm)表示操作時(shí)需要確認(rèn);
i(ignorecase)表示不區(qū)分大小寫;
vim替換字符串的這些選項(xiàng)可以組合使用
二磨隘、Vim替換命令舉例
vim全局替換命令并要求對(duì)替換字符串命令進(jìn)行確認(rèn)操作
將所有的Vim字符串替換為vim字符串
1,$s/Vim/vim/gc 會(huì)出現(xiàn)提示”replace with foo(y/n/a/q/l/^E/^Y)?”,詢問(wèn)是否確認(rèn)執(zhí)行
待選擇操作的含義包括:
y:確認(rèn)執(zhí)行這個(gè)替換將將所有Vim替換成vim;
n:取消這個(gè)本交Vim替換命令的操作;
a:執(zhí)行本次所有替換字符串操作且不再詢問(wèn);
q:退出當(dāng)前vim字符串替換操作而不做任何改動(dòng);
l:替換完當(dāng)前匹配點(diǎn)后退出(last)
Ctrl + E:向上翻滾一行
Ctrl + Y:向下翻滾一行
2 將光標(biāo)所在行出現(xiàn)的所有包含line的字符串中l(wèi)ine替換為lines
:s/line/lines/g表示將光標(biāo)所在當(dāng)前行的line全局替換為lines
3將從2行到10行中出現(xiàn)的所有包含line的字符串中的line替換為lines
:2,10s/line/lines/g表示將2~3行的line全局替換為lines
4顾患。全文的行首加入//字符番捂,批量注釋時(shí)非常有用
:%s/^/\/\//表示在全文范圍行首替換插入//,注意在Vim中需要將/進(jìn)行轉(zhuǎn)義后才可以替換
5.將所有行尾多余的空格刪除
:%s= *$==表示全局替換行尾的一個(gè)或多個(gè)空格江解,更多正則表達(dá)式的說(shuō)明可以參考Vim正則表達(dá)式