天天看點

Vim - 文本替換

文本替換

底行模式下,指令格式 :

:[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
vim