如何在Vim中将所有文本转换为小写

ksu*_*lta 199 vim text-processing

如何将Vim中的所有文本转换为小写?它甚至可能吗?

小智 390

我假设你想要小写文本.解决方案非常简单:

ggVGu
Run Code Online (Sandbox Code Playgroud)

说明:

  1. gg - 转到第一行文字
  2. V - 在线模式下打开视觉选择
  3. G - 转到文件末尾(此时您已选择整个文本)
  4. u - 小写选择区域

  • 或ggguG如果你想在没有视觉选择的情况下做到这一点.:帮助顾 (84认同)
  • 使用大写`U`表示大写(例如`ggVGU`) (18认同)

zou*_*oul 119

  1. 如果你真的是指小型大写,那么不,那是不可能的 - 就像在任何文本编辑器中都不可能将文本转换为粗体或斜体(而不是文字处理器).如果要将文本转换为小写,请创建一个可视块并按u(或U转换为大写).~命令模式下的Tilde()会反转光标下的字符大小写.

  2. 如果您希望以小写的形式查看Vim中的所有文本,您可能需要查看该guifont选项,或者:set guifont=*如果您的Vim flavor支持GUI字体选择器,则键入.

  • 我认为值得一提的是,您不一定要创建一个可视化块来小写一个文本块.`guu`将小写一行,而`gu [motion]`将小写该动作的文本值.同样,`gUU`和`gU [motion]`的工作方式相同,仅适用于大写. (32认同)
  • 这个答案是不正确的。user80168 有正确答案。 (2认同)

tar*_*war 39

类似于mangledorf的解决方案,但更短,外行友好

:%s/.*/\L&/g

  • `:%s /.*/\L&`就够了(不需要`g`标志,因为`.*`选择整行) (3认同)
  • 这里的“&”代表“模式匹配的内容”,因此可以理解为:将“.*”替换为“\Lowercase(模式匹配的内容)”。请注意,全局匹配“.”比匹配“.*”慢 (3认同)

Kal*_*dhi 37

使用此命令模式选项

ggguG


gg - Goto the first line 
g  - start to converting from current line    
u  - Convert into lower case for all characters
G  - To end of the file.
Run Code Online (Sandbox Code Playgroud)


Ale*_*son 26

许多方法给猫皮肤......这就是我发布的方式:


:%s/[A-Z]/\L&/g
Run Code Online (Sandbox Code Playgroud)

同样适用于大写:


:%s/[a-z]/\U&/g
Run Code Online (Sandbox Code Playgroud)

我更喜欢这种方式,因为我一直在使用这个construct(:%s/[pattern]/replace/g),所以它更自然.

  • `:%s/./\U&/g` 也可以工作。结果它忽略了数字和非字母字符。让我着迷的是`&`。为什么 \U(或 \L)本身不够?我们能得到一个解释吗? (2认同)
  • `&`是匹配字符串的替身.所以`\ U&`将匹配的字符串大写,以便它可以用于替换. (2认同)

Ado*_*egg 21

  • 用g~然后一个动作将案例"HellO"切换为"hELLo".
  • 大写"HellO"到"HELLO"与gU然后运动.
  • 小写"HellO"与gu"hello"然后是一个运动.

有关示例和更多信息,请阅读:http: //vim.wikia.com/wiki/Switching_case_of_characters


小智 8

使用 ggguG

gg:转到第一行。 顾:改为小写。 G:到最后一行。

  • 这与 Kalanidhi 的答案有何不同? (2认同)

ojb*_*ass 6

如果你在Unix的风格下运行

:0,$!tr "[A-Z]" "[a-z]"
Run Code Online (Sandbox Code Playgroud)

  • 方括号是多余的,一旦删除它们,引号也不是必需的.`:%!tr AZ az` (4认同)

小智 6

通常Vu(或VU大写)足以将整行变为小写,因为V已经选择整行来应用动作.

Tilda(~)改变了单个字母的大小写,导致了驼峰或类似的情况.

Vim有很多不同的模式来处理各种场合以及这些模式如何整齐地组织起来真的很棒.

例如,v- 真实的视觉模式,相关的V视觉线和Ctrl+ Q- 视觉块模式(允许您选择块的功能,一些其他高级编辑器通常通过按住Alt键并选择文本来提供的一个很棒的功能).