У меня есть следующий текст
HELLO TO STACKOVERFLOW WELCOME TO STACKOVERFLOW
Я хочу, чтобы текст был таким
heLLO TO STACKOVERFLOW weLCOME TO STACKOVERFLOW
Выделите визуальный блок для первых двух столбцов с помощью CTRL - V
Введите gu или u, чтобы выделить выбранный текст, gU или U, чтобы выделить.
gu
u
gU
U
Хотя @Jin предоставил хороший ответ для интерактивного использования, вот способ сделать это в сценариях:
для запуска каждой строки буфера:
:%normal 0gu2l
или вы можете указать диапазон строк, где применить команду. Это будет применяться для строк 4 и 5:
:4,5normal 0gu2l
В обычном режиме:
startofline
:verb set sol?
lgu
G
l
make lowercase
CTRL-V
Gl.
.
Для перехода в верхний регистр изменения gu с помощью gU, для переключения регистраустановите tildeop и используйте вместо него ~.
tildeop
~
В дополнение к ответам @Benoit, @Jin и @progo:
:%s/^../\L&\E/
см. :help sub-replace-special
:help sub-replace-special
Вы можете использовать подстановку
:%s/.*\%3c/\L&
, которая использует \%c атом шаблона поиска, соответствующий определенному столбцу.Используя этот атом, вы можете легко настроить шаблон так, чтобы он соответствовал любому количеству первых символов в строке.
\%c