在 ViM 中,如何转换这些文本行:
stringa1 minuscolo
stringa2 minuscolo
stringa33 minuscolo
stringa44 minuscolo
进入这个:
Stringa1 minuscolo
Stringa2 minuscolo
Stringa33 minuscolo
答案1
以下命令将(它是字符串替换正则表达式)第一个字符转换为大写
:%s/^./\u&/g
将替换所有行中的第一个字符
:1,4s/^./\u&/g
此命令将替换从 1 到 4 开始的行 ( 1,4
) 更改命令中的行范围。
答案2
还值得注意的是该~
命令,它切换光标下字符的大小写,以及gU
在给定动作中转换为大写的运算符。例子:
gUl
将当前字符转换为大写(或者如果已经是大写,则将其保留为大写)
gUe
转换为大写直到单词结尾
g~e
切换每个字母到单词末尾的大小写。
尝试:help case
更多。
答案3
下面是一种替代方法(Linux 为您提供了许多不同的方法来完成同一件事;最终取决于个人选择/偏好。)
sed -rin 's/./\u&/1p' file.txt
另一种选择是下面将每个单词的第一个字母大写
sed -rin 's/([a-zA-Z])([a-zA-Z]*)/\u\1\2/g p' file.txt