[問題] vim編輯器中block mode下的取代功能

看板Editor作者 (提安霍爾斯)時間13年前 (2011/03/18 16:49), 編輯推噓5(509)
留言14則, 5人參與, 最新討論串1/1
在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

03/20 19:00, , 1F
在選取的模式下,按冒號:
03/20 19:00, 1F

03/20 19:00, , 2F
會出現:'<,'>並且在後面輸入你要取代的方式
03/20 19:00, 2F

03/20 19:03, , 3F
例:'<,'>s/yyy/xxx/g
03/20 19:03, 3F

03/23 19:21, , 4F
雖然謝謝樓上的說明,不過之前自己也有嘗試過這種方式,但發
03/23 19:21, 4F

03/23 19:24, , 5F
現若在按照java大所敘在區塊模式下執行的話,連「是區塊模式
03/23 19:24, 5F

03/23 19:24, , 6F
所選取的行,但不在區塊模式選取的範圍中」的符合字串同樣會
03/23 19:24, 6F

03/23 19:26, , 7F
被取代掉,不確定是否是原PO想問的,但個人也有興趣了解
03/23 19:26, 7F

03/23 19:27, , 8F
舉例: xxx
03/23 19:27, 8F

03/23 19:28, , 9F
<用<c-v>選取這部份後> 輸入:s/xx/yy/
03/23 19:28, 9F

03/23 19:29, , 10F
那沒被選取的xx也會被取代掉,版本vim7.2
03/23 19:29, 10F

03/23 23:08, , 11F
一樓的做法好像同行的都會被換掉 原PO只要塊塊裡的>//<
03/23 23:08, 11F

03/24 22:01, , 12F
:'<,'>s/\%VXXX/YYY/gc
03/24 22:01, 12F

03/25 12:44, , 13F
感謝,這是我想問題答案…
03/25 12:44, 13F

04/06 22:49, , 14F
對不起,許久才回~~ 我的問題和mjsg大一樣~~
04/06 22:49, 14F
文章代碼(AID): #1DWno2ZS (Editor)