Подтвердить что ты не робот

Почему некоторые сопоставления Vim включают <C-U> после двоеточия?

Я пытаюсь выяснить синтаксис команд отображения, например onoremap, в vim.

В частности, я смущен этой линией в руководстве, касающейся использования <C-U>:

CTRL-U (<C-U>) используется для удаления диапазона, который может вставить Vim.

Может кто-нибудь объяснить это?

4b9b3361

Ответ 1

Это не является частью синтаксиса для команды onoremap, которая объясняет, что делает конкретное сопоставление. Это сопоставление:

onoremap <silent> F :<C-U>normal! 0f(hviw<CR>

Итак, когда клавиша F используется во время ожидания оператора, vim заменит это битами следующего аргумента на команду onoremap. Это начинается с :, чтобы начать команду режима ex. Если при сопоставлении есть визуальный выбор, vim автоматически добавит диапазон '<,'>, чтобы следующая команда ex применилась к визуальному выбору, оставив в командной строке:

:'<,'>

<C-U> в отображении указывает vim, что после ввода : комбинация Control + U должна использоваться для очистки командной строки, исключая автоматически вставленный диапазон, выходящий из командной строки, как:

:

Затем используется остальная часть отображения.

Вы можете это увидеть сами, используя V, чтобы начать визуальный выбор по линии, а затем :, чтобы начать ввод команды. Диапазон отобразится, вы можете использовать Control + U, чтобы очистить его, как это делает пример.

Часть справки vim, которая содержит это сопоставление, объясняет остальную часть.