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

AwEi 發表在 痞客邦 PIXNET 留言(0) 人氣()