1

У меня есть сопоставления для копирования / вырезания / вставки в / из реестра:

nnoremap <c-r><c-c>a "ayy   -- copy current line into register a
nnoremap <c-r><c-x>a "add   -- cut current line into register a
nnoremap <c-r><c-v>a "ap    -- paste from register a

и то же самое для всех других регистров и режимов. У меня также есть обычные отображения для cc /x /v, чтобы действовать как копирование, вырезание и вставка в / из неназванного регистра. Теперь, если я быстро нажимаю cr cv , то все работает, но если я нажимаю cr cv и пауза, чтобы подумать, какой регистр использовать, vim решает вместо этого действовать на cv (выполняет вставку из неназванного регистра).

Есть ли способ заставить такие отображения работать без конфликтов в vim? Так что, когда я нажимаю cr cv, он не останавливается и не становится cv.

В стандартной раскладке я думаю, что это работает через некоторый «режим ожидания регистрационного письма». Например, если я использую cr в режиме командной строки, vim отображает «и ждет буквы регистра бесконечно, то же самое в обычном режиме при нажатии».

EDIT: vim help упоминает, что переназначение cc в обычном режиме нарушает способность прерывать сценарии. Правда, но вопрос все еще применяется при использовании чего-то еще, например, cy.

1 ответ1

1

Вам либо нужно :set notimeout чтобы полностью отключить поведение, либо :set timeoutlen=5000 чтобы увеличить время ожидания по умолчанию, например, до 5 секунд. Смотрите :help map-typing для деталей

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .