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


当前回答

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


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

大写字母也是一样:


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

我更喜欢这种方式,因为我一直在使用这种结构(:%s/[pattern]/replace/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.

If you really mean small caps, then no, that is not possible – just as it isn’t possible to convert text to bold or italic in any text editor (as opposed to word processor). If you want to convert text to lowercase, create a visual block and press u (or U to convert to uppercase). Tilde (~) in command mode reverses case of the character under the cursor. If you want to see all text in Vim in small caps, you might want to look at the guifont option, or type :set guifont=* if your Vim flavour supports GUI font chooser.

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

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

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

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

使用ggguG

Gg:到第一行。

Gu:小写。

G:排到最后一行。

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

ggVGu

解释:

Gg -指向文本的第一行 V -打开视觉选择,在直线模式下 G -转到文件的结尾(此时你已经选择了整个文本) 小写的选定区域