Vim: как сделать текст, который я только что напечатал в верхнем регистре?
Случай использования: я только что ввел режим вставки и набрал текст. Теперь я хочу сделать это заглавными.
Это можно сделать с помощью g U motion
. Однако я не могу найти движение над текстом, введенным в недавнем сеансе ввода. Это несколько странно, и понятие такого движения затруднено (куда двигаться, если вы удалили текст, например?), Но это может решить мою проблему.
Или есть ли другие способы сделать в верхнем регистре текст, который вы недавно ввели?
Ответы
Ответ 1
Движение, которое вы ищете, это:
`[
(backtick, open-square-bracket). Чтобы сделать простое движение, вы должны использовать:
gU`[
Однако вы обнаружите, что последний символ, вероятно, не будет включен из-за того, как работает движение (я мог ошибаться). Тогда простое решение:
v`[U
То есть "перейдите в визуальный режим, выберите из текущей позиции в начало последнего измененного текста, сделайте его верхним регистром". Для получения дополнительной информации см.:
:help '[
:help mark-motions
Обратите внимание на разницу в :help mark-motions
между обратным ходом и одной кавычкой.
Ответ 2
Введите слово в нижнем регистре в ВИМ.
Затем нажмите клавишу Esc.
Затем переместите курсор в начало характер введенных слов.
Затем нажмите клавишу ~.
Он заменит нижний регистр на верхний регистр.
Если ввод является верхним регистром, он будет замените нижний регистр.
Ответ 3
Вы также можете использовать движение "внутреннего слова" вместе с gU
Итак, после ввода слова нажмите <Esc>
, а ввод gUiw
должен работать, не переключаясь в визуальный режим.
Ответ 4
Я просто выбираю текст в визуальном режиме и использую ~, чтобы изменить регистр, U в верхний регистр или u, чтобы сделать строчный текст выбранного текста.
Изменить: см. комментарии ниже.
Ответ 5
Ускоренный режим Vintage
Для тех, кто использует Vintage Mode в Sublime Text.
Верхний: g U
Нижний регистр: g U
Случай смены: g ~
Дополнительная информация здесь