用vim在多行中交换各种大小的单词

时间:2014-10-16 23:22:24

标签: vim vi

我有一些手动编码/解码的代码,我需要扩展。编码如下:

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

解码我需要在'='周围交换文本的部分(例如,有some_struct.member = map [“some_key”])。毋庸置疑,我需要编辑很多行,所以我想以某种方式自动化。我正在使用vim,但我能想出的最好的方法是将“]部分填充到”_____“以使'='对齐,然后执行Ctrl + V,然后执行d,然后......你知道。有没有更好的方法呢?

2 个答案:

答案 0 :(得分: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,你可能还需要别的东西。

答案 1 :(得分:0)

我也会用宏来录制,录制或不录制:

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