vim替換格式:
:[range]s/from/to/[flags]
-
range:搜索范圍宪巨,如果沒有指定范圍值戳,則作用于但前行吏饿。
- :1,10s/from/to/ 表示在第1到第10行(包含第1锣光,第10行)之間搜索替換笆怠;
- :10s/from/to/ 表示只在第10行搜索替換;
- :%s/from/to/ 表示在所有行中搜索替換誊爹;
- 1,$s/from/to/ 同上蹬刷。
-
flags 有如下四個(gè)選項(xiàng):
- c confirm,每次替換前詢問频丘;
- e error办成, 不顯示錯(cuò)誤;
- g globle搂漠,不詢問迂卢,整行替換。如果不加g選項(xiàng)桐汤,則只替換每行的第一個(gè)匹配到的字符串而克;
- i ignore,忽略大小寫惊科。
-
替換變量
- 在正則式中以(和)括起來的正則表達(dá)式拍摇,在后面使用的時(shí)候可以用\1、\2等變量來訪問(和)中的內(nèi)容馆截。
-
例子
- 刪除行尾空格::%s/\s+$//g
- 刪除行首多余空格:%s/^\s*// 或者 %s/^ *//
- 刪除沒有內(nèi)容的空行:%s/^$// 或者 g/^$/d
- 刪除包含有空格組成的空行:%s/^\s$// 或者 g/^\s$/d
- 刪除以空格或TAB開頭到結(jié)尾的空行:%s/^[ |\t]$// 或者 g/^[ |\t]$/d
- 把文中的所有字符串“abc……xyz”替換為“xyz……abc”可以有下列寫法
:%s/abc\(.*\)xyz/xyz\1abc/g :%s/\(abc\)\(.*\)\(xyz\)/\3\2\1/g