2013-05-13 26 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