1 語法
:[range]s/source/target/[option]
2 range
range表示要替換的範圍,想要全局替換的話,可以使用一個百分號.
:%s/xxx/xxxx
另外,小數點表示當前行,美元符號表示最後一行,數字表示範圍.
:1,.s 替換第一行到當前行
:.,$s 替換當前行到最後一行
:1,$s 替換第一行到最後一行,相當於 :%s
3 source與target
表示源字符串與目標字符串,如
:1,.s/123/456
表示把第一行到當前行的首次出現的123替換成456,注意是首次出現,如果要替換某一行全部源字符串需要在後面加上
/g
另外,對於一些特殊字符比如小數點,斜槓,雙引號等需要轉義,方式是使用反斜槓,在需要轉義的字符面前加一個反斜槓
如把
"123//"
替換爲
'123\\'
命令如下:
:s/\"123\/\/\"/\'123\\\\\'/g
因爲
"123//" 中
" 轉義爲 \"
/ 轉義爲 \/
'123\\' 中
' 轉義爲 \'
\ 轉義爲 \\
4 option
選項如下:
/g 全局替換
/c 確認
/p 替換結果逐行顯示
注意選項的組合結果是
/cg
/pc
這樣的形式,而不是
/c/g
/g/p
這樣的形式.
5 總結
全局替換的話,使用
:%s/source/target/g
局部替換的話,使用
:n,ms/source/target
n,m爲行數,表示要替換的範圍.
注意如果字符串需要轉義要加上反斜槓.