从不包含大写字母的文本中删除所有单词

时间:2015-03-10 17:03:40

标签: regex vim

我在vim中有一个看起来像这样的文件:

class ProviderWorker
  def perform opts
    provider  = Provider.find
    MyFitness.perform
    HG.perform
    IWorker.perform
  end
end

我希望摆脱所有不包含大写字母的文字。

我试过了:

:g/[A-Z]\w+/d

但是,这似乎没有达到我的预期(没有删除)。

预期产出:

ProviderWorker
Provider
MyFitness
HG
IWorker

1 个答案:

答案 0 :(得分:2)

您可以使用:

%s/\v(<\U*>|\W)//

其中:

  • \v:使用vim的magic-mode(参见:h magic
  • (<\U*>|\W):匹配:
    • <\U*>:一个单词(由<>分隔),仅包含非大写字母(\U
    • \W:任何非单词字符