2014-10-16 45 views
1

我有一些手动编码/解码的代码,我需要扩展。编码是这样的:用vim交换多行中的各种大小字

map["some_key"] = some_struct.member; 
map["some_other_key"] = some_other_struct.member; 

解码我需要周围交换文本的部分“=”(前有some_struct.member =图[“some_key”])。不用说,我需要编辑很多行,所以我想以某种方式自动化。我使用的是vim,但我能想到的最好的方法是将“]部分填充到”_____“,使'='对齐,然后按Ctrl + V,然后d,然后......你知道的。有没有更好的方法来做到这一点?

回答

1

使用宏:

" start macro, saving in q register 
qq 
" (edit one line to do what you want) 
" end recording 
q 
" visually select other lines, hit :, vim starts command line with '<,'> 
:'<,'>norm @q 

我的q中的记录来编辑您的线路:

^"xd/ = 
xxx$i = jk"xp 

我已经JK映射到ESC,你可能需要别的东西存在。

+2

Vimgolf:':%标准2Wdt;^VEP; p'。根据需要用视觉替换'%'范围 – 2014-10-17 02:02:37

+2

Vimgolf:':%norm $ dB^vEp $ P';) – Caek 2014-10-17 05:03:09

0

我将与宏做到这一点,也记录或不:

:%norm! di"t;vBpF"P 
:%norm! $dBF"vi"p$P