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

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

158694 次浏览
  1. 如果你真正的意思是小大写字母,那么不,这是不可能的-就像它不可能在任何文本编辑器(而不是字处理器)中将文本转换为粗体或斜体一样。如果你想将文本转换为小写,创建一个可视块并按u(或U转换为大写)。命令模式下的波浪号(~)颠倒光标下字符的大小写。

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

我假设你想要小写的文本。解决方法很简单:

ggVGu

解释:

  1. gg -指向文本的第一行
  2. V -打开可视选择,在联机模式
  3. G -进入文件的结尾(在你选择了整个文本的时候)
  4. u -小写的选定区域

如果您在某种Unix系统下运行

:0,$!tr "[A-Z]" "[a-z]"

剥猫皮的方法有很多……下面是我发布的方法:


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

大写字母也是一样:


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

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

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

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

  • 切换case "HellO"“;hELLo"g~,然后移动。
  • 大写的“HellO"“;HELLO"gU,然后移动。
  • 小写的“HellO"“;hello"gu,然后移动。
关于例子和更多信息,请阅读以下内容: http://vim.wikia.com/wiki/Switching_case_of_characters < / p >

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

:0
gu:$

使用此命令模式选项

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.

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

Tilda ()改变个人信的大小写,导致驼峰大小写或类似情况。

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

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

使用ggguG

gg:到第一行。

gu:改为小写。

G:到最后一行。