Number pad does not work in vim and less

hardwarekeyboardvi

I am working from an iMac running Yosemite and using this keyboard. The number pad works in the terminal, but when I open vim or less it does not.

For example using less, if I type for the number 8, I get ESCOx, not an 8. In vim 7.2 (in command mode), it inserts an x. How do I fix this behavior? I got this keyboard specifically for the number pad.

Best Answer

If you are using Terminal (not iTerm or others), there is a setting that might help. Turn off this setting (sorry, it's in german. But the location should be the same):

Sorry for the german screenshot

If you are using iTerm, there is at least a fix for vim: You can remap the keys to get this to work. Just add the following lines to your ~/.vimrc (Create it, if it doesn't exist.)

inoremap <Esc>Oq 1
inoremap <Esc>Or 2
inoremap <Esc>Os 3
inoremap <Esc>Ot 4
inoremap <Esc>Ou 5
inoremap <Esc>Ov 6
inoremap <Esc>Ow 7
inoremap <Esc>Ox 8
inoremap <Esc>Oy 9
inoremap <Esc>Op 0
inoremap <Esc>On .
inoremap <Esc>OQ /
inoremap <Esc>OR *
inoremap <Esc>Ol +
inoremap <Esc>OS -
inoremap <Esc>OM <Enter>

Source: a comment in the vim wiki.