A tecla numpad não envia os mesmos símbolos da tecla numérica 'normal' na linha superior. Por exemplo: A tecla numpad-1 envia KP_1enquanto a tecla 1 envia 1.
Alguns terminais remapeiam automaticamente a tecla numpad para enviar os mesmos códigos ao shell. Além disso, algumas conchas (por exemplo bash) apenas interpretam as teclas do teclado numérico como seus equivalentes no bloco principal.
zshnão faz o mapeamento automaticamente, mas você pode usá bindkey-lo por conta própria. Tenho o seguinte no meu ~/.zshrcpara fazer o teclado funcionar:
# Keypad
# 0 . Enter
bindkey -s "^[Op" "0"
bindkey -s "^[Ol" "."
bindkey -s "^[OM" "^M"
# 1 2 3
bindkey -s "^[Oq" "1"
bindkey -s "^[Or" "2"
bindkey -s "^[Os" "3"
# 4 5 6
bindkey -s "^[Ot" "4"
bindkey -s "^[Ou" "5"
bindkey -s "^[Ov" "6"
# 7 8 9
bindkey -s "^[Ow" "7"
bindkey -s "^[Ox" "8"
bindkey -s "^[Oy" "9"
# + - * /
bindkey -s "^[Ok" "+"
bindkey -s "^[Om" "-"
bindkey -s "^[Oj" "*"
bindkey -s "^[Oo" "/"
bindkey -s in-string out-stringliga in-string- se a out-string. Se in-stringdigitado, out-stringé retornado e tratado como entrada.
Os códigos reais (por exemplo ^[Oq) podem ser diferentes no seu sistema. Você pode pressionar Ctrl+ vseguido da tecla em questão para obter o código para o seu terminal.
Ctrl+vé ótima!