# VIM %s 與 \g ? 最近在學vim遇到一個問題 ``` %s/a/b/g ``` 這行指令會去將整個文檔搜索找到a就替換成b 其中 %s代表全域搜索並取代 , /g表示全域執行 當時我就好奇既然%s有全域的意思那又幹嘛要/g? # 開始實驗 原始文件 ![](https://i.imgur.com/iQbyKDO.png) ## **正常執行** ``` %s /input/in11/g ``` ![](https://i.imgur.com/8z1U7KI.png) ## **不加/g執行** ``` %s /input/in11 ``` ![](https://i.imgur.com/cnUQpyQ.png) ## **不執行%s執行/g** ![](https://i.imgur.com/rUEDD4C.png) OK破案了 %s影響的是搜尋的範圍全域與否 /g影響的是該行取代的行為全域與否 # 結論 ==%s不加% , 只會搜尋當前滑鼠該行== ==/g 不加 , 只會取代掉第一個找到的== ###### tags: `vim`