Я не вижу твоего поведения. Если я дважды нажму <S-j>
(что, кстати, просто запутанно сказать J
), я получу предыдущую командную строку плюс буквальную букву J
. Ваша команда определена для нормальный режим ;из-за :
в правой части он закончится в режиме командной строки . J
= <S-j>
- это , а не , отображенное там (по крайней мере, не :nnoremap
).
Чтобы иметь возможность повторить J
, вам необходимо определитьдополнительное сопоставление для режима командной строки:
:cnoremap <S-j> <Up>
Это исключает :
, поскольку вы уже находитесь в командной строке.
Однако я бы не рекомендовал это, так как это не позволит вам вводить заглавную букву J напрямую (вы все равно можете набрать ее с помощью <C-v>J
или, как вы хотите сказать, <C-v><S-j>
). Вам лучше переключиться на отображение, которое использует непечатный символ (например, <C-j>
).