2013-05-13 74 views
1

我不知道是否有改变这种快速方法:VIM编辑 - 编辑中的每一行的不同位置,同时

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

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

很明显,我想贴这个词排成括号。 任何想法?

回答

5

这条线适用于你的例子:

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

,或者你喜欢和宏观玩它:

qq0ywf'pjq 

然后[email protected](99是你想多少次玩宏)

+0

美好的一天。你能解释一下这条线吗? – 2013-05-13 09:23:49

+0

@ZagorulkinDmitry哪部分你有问题?我认为这个正则表达式非常简单。 – Kent 2013-05-13 09:27:04

+0

是的。正则表达式很简单。 '。*/\ 1 \ 2'\ 1'/' - 这个很有趣。 – 2013-05-13 09:30:03

4

肯特的正则表达式的答案是好的,但我经常用g Ex命令做这些事情,只是因为我认为在正常模式运行方面如此坚定它们通常会很短:

:g/^/norm yw$P 
+0

+1这可能是更“常人”的答案。 – 2013-05-13 10:49:22

+0

也很酷:) – 2013-05-14 03:34:43