A tecla numpad não envia os mesmos símbolos de tecla que a tecla numérica 'normal' na linha superior. Por exemplo: A tecla numpad-1 envia KP_1
enquanto a tecla 1 apenas envia 1
.
Alguns terminais automaticamente remapear a tecla numpad para enviar os mesmos códigos para o shell. Além disso, alguns shells (por exemplo, bash
) apenas interpretam as teclas numéricas como seus equivalentes no bloco principal.
zsh
não faz o mapeamento automaticamente, mas você pode usar bindkey
para fazer o mapeamento sozinho. Eu tenho o seguinte no meu ~/.zshrc
para obter o funcionamento do teclado:
# 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-string
liga in-string
a out-string
. Se in-string
for digitado, out-string
será retrocedido e tratado como entrada.
Os códigos reais (por exemplo, ^[Oq
) podem ser diferentes no seu sistema. Você pode pressionar Ctrl + v seguido pela chave em questão para obter o código para o seu terminal.