VI 的搜尋取代語法格式大致如下
:[範圍]s/[比對字串]/[取代字串]/[g,c,i]
範圍部分:
範圍表示法為開頭,
結束假如我要從第 1 行到第 150 行, 可以這樣下: 1,
150 假如我要從第 1 行到最後一行, 可以這樣下: 1,
$ 假如我要設定全部範圍, 可以這樣下: % (其實跟 1, $ 意義是一樣的) 假如我要從游標所在行之後到最後一行, 可以這樣下:.,
$
小寫 s 代表意義:
告訴 VI 我要做 substitute(置換) 動作
比對 / 取代字串部分:
大小寫有分, 如果內容為特殊字元, 需加上 \ (脫曳字元)
EX: 換行符號 \n
假如我要設定的是一個 "單元", 前後需用 \( 和 \) 包起來, 後面會說明詳細用法
g c i 參數分別代表的意義:
這個部分是選擇性的, 也就是額外控制項
由於 VI 對大小寫是有區別的, 如果要忽略大寫小可以用 i(忽略) 這個參數來控制
如果不加上 g 這個控制項, VI 只會把每行比對到的第一個做取代動作, 加上 g 能確保每行的每個字都能被比對到
有時候, 有些特殊的地方是你不想取代的, 可以用 c(確認) 這個參數來控制
如此一來, 每次比對到的時候, 會詢問 (y/n/a/q/l/^E/^Y)? 這些參數
y 是代表執行目前的取代
n 是跳過
a 代表 always , 就是從目前以後的取代都會執行
q 則是不要作取代, 並且離開詢問要不要取代的狀態, 並回到指令模式或原來的模式下
l 則是 last 的意思, 就是目前這個取代執行後就離開詢問的取代模式, 回到指令模式或原來的模式下
^E 表示往前一頁
^Y 表示往後一頁
範例語法:
我要把文件中的所有 awei 置換成 AwEi
:%s/awei/AwEi/g
来源: http://www.bubuko.com/infodetail-2498849.html