235

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

4

10 回答 10

443

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

ggVGu

解释:

  1. gg- 转到文本的第一行
  2. V- 在行模式下打开视觉选择
  3. G- 转到文件末尾(此时您已选择整个文本)
  4. u- 小写选定区域
于 2009-07-09T10:10:51.593 回答
129
  1. 如果您真的是指small caps,那么不,这是不可能的——就像在任何文本编辑器(与文字处理器相反)中无法将文本转换为粗体或斜体一样。如果要将文本转换为小写,请创建一个可视块并按u(或U转换为大写)。命令模式下的波浪号 ( ~) 反转光标下字符的大小写。

  2. 如果您想在 Vim 中以小写字母查看所有文本,您可能需要查看该guifont选项,或者输入:set guifont=*您的 Vim 风格是否支持 GUI 字体选择器。

于 2009-07-09T09:51:49.730 回答
47

使用此命令模式选项

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.
于 2013-12-02T12:06:34.407 回答
43

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

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

于 2011-01-02T06:26:00.237 回答
30

给猫剥皮的很多方法……这是我刚刚发布的方法:


:%s/[A-Z]/\L&/g

同样对于大写:


:%s/[a-z]/\U&/g

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

于 2009-10-18T15:31:26.740 回答
26
  • 将案例“HellO”切换到“hELLo”,g~然后移动。
  • 大写“HellO”到“HELLO”,gU然后是一个动作。
  • 小写“HellO”到“hello”,gu然后是一个动作。

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

于 2011-09-08T11:47:15.893 回答
10

利用 ggguG

gg: 转到第一行。

gu: 改为小写。

G: 转到最后一行。

于 2017-01-14T20:56:36.757 回答
9

通常Vu(或VU大写)足以将整行转换为小写,因为V已经选择整行来应用操作。

Tilda ( ~) 更改单个字母的大小写,导致驼峰式或类似的大小写。

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

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

于 2017-01-14T06:15:46.913 回答
6

如果您在 Unix 风格下运行

:0,$!tr "[A-Z]" "[a-z]"
于 2009-07-13T01:48:00.003 回答
2

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

:0
gu:$
于 2013-10-08T02:20:34.217 回答