文本替換
底行模式下,指令格式 :
:[range] s/search/replace/[flags] [count]
參數表
參數 | 說明 |
---|---|
range | 是指定範圍,也就是在哪些行裡做替換。 |
flags | g 将所有出現的字元都替換成給定字元 p (print),要求列印所做的改動 c(confirm),要求在做出改動以前先詢問 i(ignorecase),不區分大小寫 可以将多個标記組合使用 |
示例
如果沒有在指令中指定範圍,那麼将隻會在目前行進行替換操作。以下指令将把目前行中的 I 替換為 We。指令中的 i 标記,用于指定區分大小寫。
:s/I/We/gi
以下指令将文中所有的字元串 idiots 替換成 managers:
:1,$s/idiots/manages/g
通常我會使用 % 将整個檔案做為替換範圍:
:%s/search/replace/g
以下指令指定隻在第5至第15行間進行替換:
:5,15s/dog/cat/g
以下指令在目前行在内的以下4行内進行替換:
:s/helo/hello/g4
以下指令在目前行至檔案結尾間進行替換:
:.,$s/dog/cat/g
以下指令指定隻在後續9行内進行替換:
:.,.+8s/dog/cat/g
如果希望精确替換某個單詞,可以使用“<”來比對單詞的開頭,并用“>”來比對單詞的結尾:
:s/\<term\>/replace/gc
如果想要将單詞 Kang 和 Kodos 都替換為alien,那麼可以使用 | 進行多項替換。
:%s/Kang\|Kodos/alien/gc
引用
http://yyq123.blogspot.com/2011/10/vim-substitute.html