替換命令的基本語法
語法為 :[addr]s/源字串/目的字串/[option]
全域性替換命令為::%s/源字串/目的字串/g
[addr] 表示檢索範圍,省略時表示當前行。
如:"1,20" :表示從第1行到20行;
:50, 100 s / old / new / g
"%" :表示整個檔案,同"1,$";
".,$" :從當前行到檔案尾;
s : 表示替換操作
[option] : 表示操作型別
如:g 表示全域性替換;
c 表示進行確認
p 表示替代結果逐行顯示(ctrl + l恢復螢幕);
省略option時僅對每行第乙個匹配串進行替換;
如果在源字串和目的字串中出現特殊字元,需要用」\」轉義
確認替換
使用搜尋替換命令有時候會出錯,而得到不想要的結果。所以小心並確認檔案中需要修改的內容是乙個明智的做法
在替換命令尾部加上c (confirm用於確認),在替換每個old前都會提示並確認:
:1, 30 s /old/new/ gc
將會出現提示replace with hehe (y/n/a/q/l/^e/^y)?
y替換,n不替換,a替換所有,q放棄,l替換第乙個並進入插入模式,^e和^y是提示你用ctrl+e或ctrl+y來滾動螢幕的。
上下文相關替換
除了直接使用乙個單詞(或短語)替換另乙個,還有稍微複雜的全域性替換語法。這些語法可以對乙個模式進行搜尋,一旦找到含有模式的行,就可以使用不同與模式的串進行替換,我們把這種替換叫做上下文相關替換。
語法格式如下:
:g /pattern/s/old/new/g 將會把包含pattern的行中,把所有old替換為new
第乙個g表示是在檔案的所有行上執行的命令,模式pattern識別要發生替換的行。在那些包含模式pattern的行上,ex將把old替換(s)為new。最後的g表示在該行上進行全部替換。
如果用來進行搜尋的模式與想要修改的模式相同,那麼就不必重複它:
:g/string/s//new/g 等價於 :g/string/s/string/new/g
下面是一些例子:
將that or this 換成 this or that
:%s/(that) or (this)/\u\2 or \l\1/
—- 將句尾的child換成children
:%s/child([ ,.;!:?])/children\1/g
—- 將mgi/r/abox換成mgi/r/asquare
:g/mg([ira])box/s//mg//my\1square/g <=> :g/mg[ira]box/s/box/square/g
—- 將多個空格換成乙個空格
:%s/ */ /g
—- 使用空格替換句號或者冒號後面的乙個或者多個空格
:%s/([:.]) */\1 /g
—- 刪除所有空行
:g/^/d
—−刪除
所有的空
白行和空
行:g/
∗ /d
—- 在每行的開始插入兩個空白
:%s/^/> /
—- 在接下來的6行末尾加入.
:.,5//.
/—−顛
倒檔案的
行序:g
/.∗/
m0o<=
>:g
//m0
o—−尋
找不是數
字的開始
行,並將
其移到文
件尾部:
g!/[
0−9]
/m<=> g/^[^0-9]/m—−
將檔案的
第12到17
行內容復
制10詞放
到當前文
件的尾部
:1,10
g//12
,17t
~~~~重複次數的作用
—- 將chapter開始行下面的第二行的內容寫道begin檔案中
:g/^chapter/.+2w>>begin
—- :/^part2/,/^part3/g/^chapter/.+2w>>begin
—- :/^part2/,/^part3/g/^chapter/.+2w>>begin|+t$
vim全域性替換命令
語法為 addr s 源字串 目的字串 option 全域性替換命令為 s 源字串 目的字串 g addr 表示檢索範圍,省略時表示當前行。如 1,20 表示從第1行到20行 表示整個檔案,同 1,從當前行到檔案尾 s 表示替換操作 option 表示操作型別 如 g 表示全域性替換 c 表示進行確...
vim全域性替換命令
語法為 addr s 源字串 目的字串 option 全域性替換命令為 s 源字串 目的字串 g addr 表示檢索範圍,省略時表示當前行。如 1,20 表示從第1行到20行 表示整個檔案,同 1,從當前行到檔案尾 s 表示替換操作 option 表示操作型別 如 g 表示全域性替換 c 表示進行確...
vim全域性替換命令
vim全域性替換命令 語法為 addr s 源字串 目的字串 option 全域性替換命令為 s 源字串 目的字串 g addr 表示檢索範圍,省略時表示當前行。如 1,20 表示從第1行到20行 表示整個檔案,同 1,從當前行到檔案尾 s 表示替換操作 option 表示操作型別 如 g 表示全域...