vim编辑 - 同时在每行的不同位置编辑

时间:2013-05-13 09:19:16

标签: vim

我想知道是否有一种快速方法可以改变这种情况:

foo: ''
foobarfoo: ''
foof: ''
fooba: ''
foobarbar: ''
foooobar: ''

foo: 'foo'
foobarfoo: 'foobarfoo'
foof: 'foof'
fooba: 'fooba'
foobarbar: 'foobarbar'
foooobar: 'foooobar'

显然,我想将这个单词粘贴到括号中。 有什么想法吗?

2 个答案:

答案 0 :(得分:5)

此行适用于您的示例:

%s/\v([^:]*)(:\s*).*/\1\2'\1'/

或者你喜欢用宏来玩它:

qq0ywf'pjq

然后99@q(99是你想播放宏的次数)

答案 1 :(得分:4)

肯特的正则表达式答案很好,但我经常使用g Ex命令执行这些操作,仅仅因为我在正常模式操作方面如此坚定,而且它们通常很短:

:g/^/norm yw$P