Upgrading neovim from 0.7 to 0.9.5 broke some hotkeys

Hi, I’m one of those persons who prefers ijkl instead of the default

Had ijkl working fine in 0.7 however after upgrading to 0.9.5 there are some hotkeys no longer working.

ijkl still works to navigate in visual, selection, or input mode (holding ALT when in input mode) but not in the command bar (after typing “:” ie- up/down to scroll up command history) or for navigating things like fzf popup menu

here is the section of my init.vim where I was remapping:

noremap i k
noremap k <Down>
noremap j h
noremap <Space> i  

any suggestions on how to fix/ workaround latest 0.9.5 ? I’m not sure what has changed that caused this config to break.

Still not sure what changed in 0.9.5, but I was able to find a workaround with kitty.conf (use Kitty terminal emulator).

Basically kitty mappings can superceed neovim so you can remap custom arrow keys there:

# press left arrow
map alt+j send_text all \x1b\x5b\x44
# press down arrow
map alt+k send_text all \x1b\x5b\x42
# press right arrow
map alt+l send_text all \x1b\x5b\x43
# press up arrow
map alt+i send_text all \x1b\x5b\x41   

According to help :map-modes, noremap maps the key(s) to Normal, Visual, Select, or Operator-pending mode (Use cnoremap or noremap! to map to the Command mode).

In addition, to fire the mapping only when holding the Alt key, we usually have to write noremap <M-i> k etc. So I doubt noremap i k works on Neovim 0.7. Is the section you showed really correct?

hi, nice catch thank-you, it does seem that I had already kitty mappings that were helping to pass through emulated arrow keys. It was actually kitty mappings that I had to update, not nvim for ALT ijkl to work.

so i think the actual issue with my config is that neovim from 0.7 to 0.9.5 changed something where the keys I was sending from Kitty got misinterpreted differently. I overwrote my old kitty conf already but its possible i might have been sending the normal hjkl keystrokes to neovim - the above conf in kitty are set to arrow keys so now it works.