天天看點

vi中的全局替換

一、基本文法

替換指令文法:

:[addr]s/源字元串/目标字元串/[option]
           

全局替換:

:%s/源字元串/目标字元串/g
           

參數說明:

  • [addr]——表示檢索範圍,省略時表示目前行。
    • "%":表示整個檔案,同"1,$";
    • ".,$":從目前行到檔案尾;
  • s:表示替換操作
  • [option]:表示操作類型
    • g:全局替換
    • c:表示進行确認
    • p:表示替換結果逐行顯示(Ctrl+L恢複螢幕)
    • 省略option:預設僅對每行第一個比對串進行替換
  • 如果在源字元串和目标字元串中有特殊字元,需要使用“\”轉義

二、使用示例

1.常用場景

  • 😒/str1/str2/ ——用str2替換目前行中首次出現的str1
  • 😒/str1/str2/g ——用str2替換目前行中所有出現的str1
  • :.,$s/str1/str2/g ——用str2替換正文目前行到末尾所有出現的str1
  • :1,$s/str1/str2/g ——用str2替換正文中所有出現的str1
  • :%s/str1/str2/ ——替換每一行中所有str1為str2
  • :%s/str1/str2/(等同于:g/str1/s//str2/) ——替換每一行的第一個str1為str2
  • :%s/str1/str2/g(等同于:g/str1/s//str2/g) ——替換每一行中所有str1為str2

2.g選項總結:

  • g放在指令末尾,表示對搜尋字元串的每次出現進行替換;不加g,表示隻對搜尋字元串的首次出現進行替換。
  • g放在指令開頭,表示對正文中所有包含搜尋字元串的行進行替換操作。

作者:AmyZYX

出處:http://www.cnblogs.com/amyzhu/

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。