看板 Editor 關於我們 聯絡資訊
在vim使用substitute的情況是打入 :40,700s/XXX/YYY/g 取代全部40到700行的XXX為YYY 然而因為之前的觀念錯誤 我以為在block mode下可以進行取代 並且只會取代選取的區塊內的XXX而已 結果還是取代全部的XXX為YYY了 並且在使用多次之後才發現錯誤 想請問一下 vim 可以在block mode下進行專對選取區塊內的取代嗎? 有的話,要如何操作呢? 感謝~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.126.35.240
javafang:在選取的模式下,按冒號: 03/20 19:00
javafang:會出現:'<,'>並且在後面輸入你要取代的方式 03/20 19:00
javafang:例:'<,'>s/yyy/xxx/g 03/20 19:03
mjsg:雖然謝謝樓上的說明,不過之前自己也有嘗試過這種方式,但發 03/23 19:21
mjsg:現若在按照java大所敘在區塊模式下執行的話,連「是區塊模式 03/23 19:24
mjsg:所選取的行,但不在區塊模式選取的範圍中」的符合字串同樣會 03/23 19:24
mjsg:被取代掉,不確定是否是原PO想問的,但個人也有興趣了解 03/23 19:26
mjsg:舉例: xxx 03/23 19:27
mjsg: <用<c-v>選取這部份後> 輸入:s/xx/yy/ 03/23 19:28
mjsg:那沒被選取的xx也會被取代掉,版本vim7.2 03/23 19:29
martinku:一樓的做法好像同行的都會被換掉 原PO只要塊塊裡的>//< 03/23 23:08
Holocaust123::'<,'>s/\%VXXX/YYY/gc 03/24 22:01
mjsg:感謝,這是我想問題答案… 03/25 12:44
horcetian:對不起,許久才回~~ 我的問題和mjsg大一樣~~ 04/06 22:49