我有以下文字
HELLO TO STACKOVERFLOW
WELCOME TO STACKOVERFLOW
我希望文字像这样
heLLO TO STACKOVERFLOW
weLCOME TO STACKOVERFLOW
答案 0 :(得分:15)
使用 CTRL - V
突出显示前两个列的可视化块
输入gu
或u
将所选文字,gU
或U
缩小为大写。
答案 1 :(得分:9)
虽然@Jin为交互式使用提供了一个很好的答案,但这是在脚本编写中的一种方法:
运行到缓冲区的每一行:
:%normal 0gu2l
或者您可以指定应用命令的行范围。这适用于第4和第5行:
:4,5normal 0gu2l
答案 2 :(得分:5)
在正常模式下:
startofline
(:verb set sol?
会告诉您),您可以使用:lgu
CTRL-V G
。l
转到下一个字符gu
是make lowercase
运算符,期待动作CTRL-V
指定动议是块状G
转到最后一行的第一列。startofline
,则gu
CTRL-V Gl.
(l
转到下一个字符,{{1}重复相同的命令)。要使用.
更改为大写更改gu
,对于切换案例,请确保设置gU
并改为使用tildeop
。
答案 3 :(得分:2)
除@Benoit,@ Jin和@progo给出的答案外:
:%s/^../\L&\E/
请参阅:help sub-replace-special
答案 4 :(得分:1)
您可以使用替换
:%s/.*\%3c/\L&
利用与特定匹配的\%c
搜索模式原子
柱。使用该原子,您可以轻松调整模式以匹配任何内容
一行中的第一个字符数。