Klawisz numeryczny nie wysyła tych samych symboli klawiszy, co „normalny” klawisz numeryczny w górnym rzędzie. Na przykład: Numpad-1-klawisz wysyła, KP_1
podczas gdy 1-klawisz po prostu wysyła 1
.
Niektóre terminale automatycznie mapują klawisz Numpad, aby wysłać te same kody do powłoki. Ponadto niektóre powłoki (na przykład bash
) po prostu interpretują klawisze numeryczne podobnie jak ich odpowiedniki w bloku głównym.
zsh
nie wykonuje mapowania automatycznie, ale możesz użyć bindkey
go do samodzielnego mapowania. Mam następujące funkcje, ~/.zshrc
aby klawiatura działała:
# 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
wiąże się in-string
z out-string
. Jeśli in-string
jest wpisane, out-string
jest wypychane i traktowane jako dane wejściowe.
Rzeczywiste kody (na przykład ^[Oq
) mogą się różnić w systemie. Możesz nacisnąć Ctrl+, va następnie odpowiedni klawisz, aby uzyskać kod swojego terminala.
Ctrl
+v
jest świetna!Aby uzupełnić odpowiedź udzieloną przez @adaephon, poniżej podano prawidłowe powiązania z klawiaturą Apple USB (A1243). Należy je dodać do
~/.zshrc
.źródło
+
(musiałem użyćbindkey -s "^[Ok" "+"
) i=
(brakowałobindkey -s "^[OX" "="
)Uzupełnia również odpowiedź od @adaephon. Oto, co musiałem wykorzystać na swoim komputerze Dell, może być pomocne. Po prostu dodaj go do pliku .zshrc.
(BTW nie dodaje powiązań ze wszystkich odpowiedzi, powinieneś mieć tylko jedno powiązanie na klucz)
źródło
Terminal > Keyboard > Initial state of numeric pad > Normal
)W moim Mac OSX El Capitan
^[0n
zamiast tego jest kropka^[01
. Mam także bezprzewodową klawiaturę Logitech dla komputerów Mac i ma ona również=
znak na klawiaturze numerycznej. Moje ostateczne mapowanie wygląda jak poniżej:Rozwiązanie zaproponowane przez innych działa jednak poprawnie.
źródło
Jeśli używasz Kitty, aby uzyskać dostęp do serwera Linux na SSH i że klawiatura działa poprawnie z Bash, ale nie z ZSH, możesz spróbować dodać następujące elementy w
~/.zshrc
pliku konfiguracyjnym:Zapisać. Wyloguj się i zaloguj ponownie, aby ponownie załadować konfigurację ZSH, lub alternatywnie możesz wpisać w terminalu:
Klawiatura powinna teraz działać zgodnie z oczekiwaniami!
źródło