Problem with num keypad in vi(m) ?

You connect to your Linux box thru PuTTY or Mac's Terminal application and numeric keypad doesn't work as you expected, entering meta key instead of the expected values (0,1,… ,+,-, …) ? Here is the solution…

create or edit if it already exists a .vimrc file in the user account and insert the following lines:

imap Oq 1
imap Or 2
imap Os 3
imap Ot 4
imap Ou 5
imap Ov 6
imap Ow 7
imap Ox 8
imap Oy 9
imap Op 0
imap On .
imap OR *
imap OQ /
imap Ol +
imap OS -
nmap Oq 1
nmap Or 2
nmap Os 3
nmap Ot 4
nmap Ou 5
nmap Ov 6
nmap Ow 7
nmap Ox 8
nmap Oy 9
nmap Op 0
nmap On .
nmap OR *
nmap OQ /
nmap Ol +
nmap OS -
smap Oq 1
smap Or 2
smap Os 3
smap Ot 4
smap Ou 5
smap Ov 6
smap Ow 7
smap Ox 8
smap Oy 9
smap Op 0
smap On .
smap OR *
smap OQ /
smap Ol +
smap OS -
cmap Oq 1
cmap Or 2
cmap Os 3
cmap Ot 4
cmap Ou 5
cmap Ov 6
cmap Ow 7
cmap Ox 8
cmap Oy 9
cmap Op 0
cmap On .
cmap OR *
cmap OQ /
cmap Ol +
cmap OS -