如何在Vim中将所有文本转换为小写
你如何将Vim中的所有文本转换为小写? 这甚至有可能吗?
-
如果你确实是指小型大写 ,那么不,这是不可能的,就像在任何文本编辑器 (而不是文字处理器 )中将文本转换成粗体或斜体一样。 如果要将文本转换为小写,请创build一个可视块,然后按
u
(或U
转换为大写)。 指令模式中的Tilde(~
)反转光标下方字符的大小写。 -
如果你想在Vim中看到所有的文本,你可能想看一下
guifont
选项,或者input:set guifont=*
如果你的Vim风格支持GUI字体select器。
我假设你想小写的文字。 解决scheme非常简单:
ggVGu
说明:
- gg – 去文本的第一行
- V – 在线模式下打开视觉select
- G – 到文件结尾(此刻你select了全文)
- 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:走到最后一行。