La tecla del teclado numérico no envía los mismos símbolos de tecla que la tecla numérica 'normal' en la fila superior. Por ejemplo: el teclado numérico-1-tecla envía KP_1
mientras que la tecla-1 solo envía 1
.
Algunos terminales reasignan automáticamente la tecla del teclado numérico para enviar los mismos códigos al shell. Además, algunos shells (por ejemplo bash
) simplemente interpretan las teclas del teclado numérico como sus equivalentes en el bloque principal.
zsh
no hace el mapeo automáticamente, pero puede usarlo bindkey
para hacer el mapeo por su cuenta. Tengo lo siguiente en mi ~/.zshrc
para que el teclado funcione:
# 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
se une in-string
a out-string
. Si in-string
se escribe, out-string
se empuja hacia atrás y se trata como entrada.
Los códigos reales (por ejemplo ^[Oq
) pueden ser diferentes en su sistema. Puede presionar Ctrl+ vseguido de la tecla en cuestión para obtener el código de su terminal.
Ctrl
+v
es genial.