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_1
enquanto 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.
zsh
não faz o mapeamento automaticamente, mas você pode usá bindkey
-lo por conta própria. Tenho o seguinte no meu ~/.zshrc
para 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-string
liga in-string
- se a out-string
. Se in-string
digitado, 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!Para concluir a resposta que @adaephon deu, a seguir estão as ligações corretas para o teclado USB da Apple (A1243). Estes precisam ser adicionados a
~/.zshrc
.fonte
+
(teve de usobindkey -s "^[Ok" "+"
) e=
(faltandobindkey -s "^[OX" "="
)Também complementa a resposta de @adaephon. Aqui está o que eu tive que usar para o meu Dell Desktop, pode ser útil. Basta adicioná-lo ao seu arquivo .zshrc.
(BTW não adiciona ligações de todas as respostas, você deve ter apenas uma ligação por chave)
fonte
Terminal > Keyboard > Initial state of numeric pad > Normal
)No meu Mac OSX El Capitan, a chave do período é em
^[0n
vez de^[01
. Também tenho um teclado sem fio da Logitech para o Mac e também tem um=
sinal no teclado numérico. Meu mapeamento final é exibido abaixo:A solução proposta por outros funciona corretamente, no entanto.
fonte
Se você usa o Kitty para acessar um servidor Linux no SSH e se o teclado está funcionando bem com o Bash, mas não com o ZSH, tente adicionar o seguinte no seu
~/.zshrc
arquivo de configuração:Salve . Efetue logout e efetue login novamente para recarregar a configuração do ZSH ou, como alternativa, você pode digitar o seguinte no seu terminal:
O teclado agora deve funcionar como esperado!
fonte