【问题标题】:How to capitalize specific uppercase words in vim如何在vim中大写特定的大写单词
【发布时间】:2021-11-30 23:58:50
【问题描述】:

我们有一个 5000 行的文本文件,其中包含如下文字:

BANKS
BEING AFRAID OF DOGS
This is a SENTENCE.
Just another sentence.
COUNTRY

使用vim,我只想将所有单词都大写的行中的单词大写(这意味着第3行和第4行应该保持不变)。换句话说,我期望得到的是:

Banks
Being Afraid Of Dogs
This is a SENTENCE.
Just another sentence.
Country

【问题讨论】:

  • 你尝试了什么?
  • 还没有。到目前为止,我发现的大多数解决方案都解释了如何将每个单词大写,这需要我很长时间才能一一完成。
  • 您的问题有两部分:1.“在每个大写行上做一些事情”,2.“将一行上的单词大写”,您应该单独解决。
  • @romainl 我可以说:1. 找到所有单词都是大写的行,然后 2. 将该行上的每个单词大写

标签: vim uppercase capitalize


【解决方案1】:

通过引用Power of gSwitching_case_of_characters

  1. 将该命令应用于仅包含大写字符和空格的行,即g/^[A-Z ]*$/
  2. 然后做Title case转换s/\<\(\w\)\(\w*\)\>/\u\1\L\2/g

整个命令将是 :g/^[A-Z ]*$/s/\<\(\w\)\(\w*\)\>/\u\1\L\2/g

【讨论】:

  • 不幸的是,我使用g的唯一情况是:g/PATTERN/d!谢谢。这有帮助。
猜你喜欢
  • 1970-01-01
  • 2013-08-14
  • 2016-04-04
  • 2011-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-11
相关资源
最近更新 更多