如何在vim的每一行上将前两个大写字符更改为小写字符

3 vim text full-text-search text-editor

我有以下文字

HELLO TO STACKOVERFLOW
WELCOME TO STACKOVERFLOW
Run Code Online (Sandbox Code Playgroud)

我希望文本是这样的

heLLO TO STACKOVERFLOW
weLCOME TO STACKOVERFLOW
Run Code Online (Sandbox Code Playgroud)

Jin*_*Jin 15

突出显示前两个列的视觉块CTRL-V

在此输入图像描述

输入guu缩小所选文本gUU大写.

在此输入图像描述

  • 或```来反转案例.发送屏幕截图时要小心,你的窗口是半透明的,如果你有明智的数据需要特别小心(这里不用担心) (7认同)

unp*_*680 9

虽然@Jin为交互式使用提供了一个很好的答案,但是这是一种在脚本编写中的方法:

运行到缓冲区的每一行:

:%normal 0gu2l
Run Code Online (Sandbox Code Playgroud)

或者您可以指定应用命令的行范围.这适用于第4和第5行:

:4,5normal 0gu2l
Run Code Online (Sandbox Code Playgroud)

  • +1,您还可以指定要使用的列.`:%normal 15 | gu3l`将使所有行的列15到17缩减. (6认同)

Ben*_*oit 5

在正常模式下:

  • 如果startofline设置(:verb set sol?将告诉你)你可以使用:lguCTRL-VG.
    细节:
    • l 转到下一个角色
    • gumake lowercase运营商,期待一个动议
    • CTRL-V 指定运动是块状的
    • G 转到最后一行的第一列.
  • 如果startofline未设置,则guCTRL-VGl.(l转到下一个字符,并.重复相同的命令).

为了改变为大写变化gugU,用于切换情况下,确保tildeop设置和使用~来代替.