vim編輯器替換以及全域性替換

2021-10-23 12:14:48 字數 1298 閱讀 3976

語法: [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 表示進行確...