語法: [addr]s/源字串/目的字串/[option]
[addr]表示檢索範圍
「1,n」: 表示從第1行到n行
「%」: 表示整個檔案,同"1,"".
," ".,
"".,
" :表示從當前行到檔案尾
[addr]省略時表示當前行
s: 表示替換操作,為substitute的縮寫
[option]: 表示操作型別,如:
g: global,表示全域性替換
c: confirm,表示進行確認
p: 表示替代結果逐行顯示(ctrl + l恢復螢幕)
i: ignore,不區分大小寫
[option]省略時僅對每行第乙個匹配串進行替換
如果在源字串和目的字串**現特殊字元,如』/』,』<』,』>』,』,'等需要前面加反斜槓\進行轉義
常用命令示例:
#將當前行第乙個a替換為b
:s/a/b/
#將當前行的所有a替換為b
:s/a/b/g
#將每行第乙個a替換為b
:
%s/a/b
#將整個檔案的所有a替換為b
:
%s/a/b/g
#將1至3行的第乙個a替換為b
:1,
3s/a/b/
#將1至3行的所有a替換為b
:1,
3s/a/b/g
上面是一些常用的替換,但是我們日常碰到的問題不止這麼簡單,這就要涉及到一些較為高階的替換操作,會涉及到相關的知識,下面是一些例子:
#使用#作為分隔符,此時中間出現的/不會作為分隔符,如:將當前行的字串"a/「替換為"b/」
:s#a/#b/#
#找到包含字母a的行並刪除
:g/a/d
#刪除所有空行
:g/
^$/d
#多個空格替換為乙個空格
:s/\+
//g
#在正規表示式中使用和和符號括起正規表示式,即可在後面使用\1,\2等變數來訪問和和中的內容,如下
將data1 data2修改為data2 data1
:s/\w\+\w\+\s\+\w\+\w\+
/\2\t\1
Vim編輯器查詢替換
r 待替換字母 將游標所在字母替換為指定字母 r 連續替換,直到按下esc cc 替換整行,即刪除游標所在行,並進入插入模式 cw 替換乙個單詞,即刪除乙個單詞,並進入插入模式 c 大寫 替換游標以後至行末 反轉游標所在字母大小寫 u 撤銷一次或n次操作 u 大寫 撤銷當前行的所有修改 ctrl r...
學習vi和vim編輯器(9) 全域性替換(2)
模式匹配的範例 1 匹配乙個完整的單詞 如下圖所示,如果需要將文字裡所有的child單詞替換成為children,可能最先想到的就是下圖所示的替換命令 但是這個命令會把childrendish,fabrichild這兩個單詞中的child都做替換,這不是我們想要的。替換的關鍵就是child要是乙個單...
vim全域性替換命令
語法為 addr s 源字串 目的字串 option 全域性替換命令為 s 源字串 目的字串 g addr 表示檢索範圍,省略時表示當前行。如 1,20 表示從第1行到20行 表示整個檔案,同 1,從當前行到檔案尾 s 表示替換操作 option 表示操作型別 如 g 表示全域性替換 c 表示進行確...