如何在vim中查找和替换

时间:2014-08-28 07:36:49

标签: regex vim

我有这样的记录集

Affiliate.create(email: 'example@example.com', name: 'xxx', mobile: '99999999 ', company_name: 'Exxample', approved:true, city_currently_residing_in: 'Indore', affiliate_occupation_id: AffiliateOccupation.find_by(name: 'Chartered Accountant (CA)').id, user_id: User.find_by(email: 'example@example.com').id

如何替换

Affiliate.create(email: 'whateverstring',

有空格。

我试过

%s/Affiliate.create(email: '[a-z]',/

4 个答案:

答案 0 :(得分:2)

您可以使用:

:%s/Affiliate\.create(email: *'[^']*',/ /

答案 1 :(得分:1)

:%s/Affiliate\.create(email: '[^']\+', /\=substitute(submatch(0), '.', ' ', 'g')/

将替换为等量的空格。如果您需要固定数量的空白,Avinash Raj或anubhava的答案是正确的。

答案 2 :(得分:1)

如果你在vim,你不需要做替换,这样做:

g/^Affiliate\.create(email:/norm! 0df,

注释

上述行删除 Affili....部分,而不是用相同数量的空格替换它们。如果要将它们替换为空格。 (将该部分留空,但不要删除):

 g/^Affiliate\.create(email:/norm! 0vf,r (space at the end)

答案 3 :(得分:0)

您可以尝试以下代码,

:%s/Affiliate\.create(email: '[^']*',/ /