Хотел бы картупрокрутить предыдущие команды двоеточия - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь отобразить <S-j> для прокрутки предыдущих команд двоеточия. Таким образом, <S-j> вместо : и <Up>.

nnoremap <S-j> :<Up>

Проблема с этой привязкой заключается в том, что прокрутка 2-й последней команды двоеточия на самом деле :<Up><Up>, но если вы нажмете <S-j> дважды, вывместо этого получите :<Up>:<Up>.

Как правильно отобразить его так, чтобы он выводил :<Up>, если не в командной строке, и просто <Up>, если в командной строке уже есть текст

1 Ответ

2 голосов
/ 22 октября 2019

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

Чтобы иметь возможность повторить J, вам необходимо определитьдополнительное сопоставление для режима командной строки:

:cnoremap <S-j> <Up>

Это исключает :, поскольку вы уже находитесь в командной строке.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...