2011-06-30 36 views
3

我想用正則表達式替換我的文件中的一些字符串。我搜索: %s/^ [a-z]*/ / 我想要做的是將每個[2]空白[a-z] *替換爲以4個空格前綴的理智[a-z]。是否有任何「inplace」替代品,或者如何使用vim達到這個目標?vim正則表達式查找和替換

與問候

+0

你的意思是用'[] [] [] [] abcd'替換'[] [] abcd',其中[]代表空格嗎? – amazingjxq

回答

3

我覺得它更直接地使用\ze對象定義比賽結束:

:%s/ \ze[a-z]*/ /g 

所以[a-z]*不包含在替換中,但僅用於匹配相關空格。

+0

這也將影響線,前面有4個空格。 –

+0

我喜歡這種方法。它也會更有效率(如果這會導致明顯的速度差異,我會感到驚訝,但是,嘿,我是程序員)。 – sehe

3
:%s/ \([a-z]*\)/ \1/g 

應該做的工作;小心運行此多次,但由於替代的結果將匹配輸入模式:)

+0

等等,那是不對的。這是downvoted。我錯過了什麼? – sehe

+0

我很傷心,這下投了,那\ 1是無價的!感謝真棒的提示:) – Hassek