В настоящее время, когда я нажимаю курсор-левый в командной строке в neovim (: any foo bar), курсор перемещается по целому слову. Большую часть времени я просто хочу, чтобы он переместил одного персонажа.Как изменить поведение клавиши курсора в командной строке в neovim?
ответ
Это не должно быть поведение по умолчанию. Вероятно, это плагин или что-то, что вы когда-то добавляли в ваш vimrc в какой-то момент. Попробуйте использовать :verbose cmap
, чтобы узнать, на что он установлен (см. Также How do I debug my vimrc file?).
Вы также можете использовать :cnoremap <Left> <Left>
для восстановления поведения по умолчанию.
Это связано с putty
и тем, как он отправляет ключи курсора. Хитрость заключается в том, чтобы узнать, что на самом деле видит nvim, а затем :cnoremap...
соответственно.
Путь, чтобы выяснить, что ваш nvim получает, это:
- Режим ввода
- хит Ctrl-v
- нажмите клавишу вы хотите увидеть
Be что nvim ведет себя несколько иначе, чем vim здесь: vim показывает вам фактическую escape-последовательность, в то время как nvim показывает вам переведенные ключи. Последнее немного неудачно.
В моем случае по причинам, которые я не выяснил, nvim увидел Ctrl-Left как, но Left as. Поскольку мне никогда не нужно S-Left в командной строке, :cnoremap <S-Left> <Left>
сделал трюк.
Привет, спасибо, что нашли время ответить. –
(Редактировать, делает сообщение здесь ...) Это явно странно. Это происходит за пределами tmux, даже если я использую bash вместо zsh, даже с nvim -u NORC, даже после перемещения .vim/plugins. Не существует сопоставления, и ваша cnoremap ничего не изменит. У меня нет абсолютно никакой подсказки. Это немного грустно, потому что это единственное, что удерживает меня от 'alias vi = nvim' –
Я нашел решение. Поставит его здесь как ответ, чтобы другие могли его найти. Так или иначе. ваш комментарий заставил меня переоценить вещь, поэтому спасибо. –