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

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

  1. 如果你确实是指小型大写 ,那么不,这是不可能的,就像在任何文本编辑器 (而不是文字处理器 )中将文本转换成粗体或斜体一样。 如果要将文本转换为小写,请创build一个可视块,然后按u (或U转换为大写)。 指令模式中的Tilde( ~ )反转光标下方字符的大小写。

  2. 如果你想在Vim中看到所有的文本,你可能想看一下guifont选项,或者input:set guifont=*如果你的Vim风格支持GUI字体select器。

我假设你想小写的文字。 解决scheme非常简单:

 ggVGu 

说明:

  1. gg – 去文本的第一行
  2. V – 在线模式下打开视觉select
  3. G – 到文件结尾(此刻你select了全文)
  4. u – 小写的选定区域

类似mangledorf的解决scheme,但更短,对外行友好

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

使用这个命令模式选项

 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. 

许多方法去皮肤猫…这是我刚刚发布的方式:

 :%s/[AZ]/\L&/g 

同样对于大写字母:

 :%s/[az]/\U&/g 

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

  • 用g〜然后移动大小写“HellO”到“hELLo”。
  • 大写字母“HELLO”变成“HELLO”然后用gU进行一个动作。
  • 用小写的“HellO”与“gullo”用gu来表示一个动作。

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

如果你正在Unix下运行

 :0,$!tr "[AZ]" "[az]" 

我有一个类似的问题,我想用":%s/old/new/g" ,但最后使用了两个命令:

 :0 gu:$ 

通常V u (或V U大写)足以将整行变成小写,因为V已经select整行来应用该行动。

蒂尔达( )改变了个别字母的情况,导致骆驼或类似情况。

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

例如, v – 真正的视觉模式,相关的V -visual线, Ctrl + Q – 视觉模块模式(可以让你select模块,其他一些高级编辑器通常还提供了一个很棒的function,通过按住Alt键select文字)。

使用ggguG

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