从不包含大写字母的文本中删除所有单词
Remove all words from text not containing a capital letter
我在 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
您可以使用:
%s/\v(<\U*>|\W)//
其中:
\v
: 使用 vim 的 magic-mode
(参见 :h magic
)
(<\U*>|\W)
:匹配:
<\U*>
:一个单词(由 <
和 >
分隔)仅包含非大写字母 (\U
)
\W
: 任何非单词字符
我在 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
您可以使用:
%s/\v(<\U*>|\W)//
其中:
\v
: 使用 vim 的magic-mode
(参见:h magic
)(<\U*>|\W)
:匹配:<\U*>
:一个单词(由<
和>
分隔)仅包含非大写字母 (\U
)\W
: 任何非单词字符