Цифровые клавиши не отправляют те же символы клавиш, что и «обычные» цифровые клавиши в верхнем ряду. Например: ключ numpad-1 отправляет, KP_1
а ключ 1 просто отправляет 1
.
Некоторые терминалы автоматически переназначают ключ numpad для отправки тех же кодов в оболочку. Кроме того, некоторые оболочки (например bash
) просто интерпретируют цифровые клавиши, как их эквиваленты в основном блоке.
zsh
не выполняет сопоставление автоматически, но вы можете использовать bindkey
сопоставление самостоятельно. У меня есть следующее, ~/.zshrc
чтобы заставить клавиатуру работать:
# 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
привязывается in-string
к out-string
. Если in-string
набрано out-string
, отодвигается и рассматривается как ввод.
Фактические коды (например ^[Oq
) могут отличаться в вашей системе. Вы можете нажать Ctrl+, vа затем соответствующую клавишу, чтобы получить код для вашего терминала.
Ctrl
+v
совет отличный!Чтобы завершить ответ, который дал @adaephon, ниже приведены правильные привязки для клавиатуры Apple USB (A1243). Они должны быть добавлены к
~/.zshrc
.источник
+
(пришлось использоватьbindkey -s "^[Ok" "+"
) и=
(отсутствуетbindkey -s "^[OX" "="
)Также дополняю ответ от @adaephon. Вот то, что я должен был использовать для своего рабочего стола Dell, может помочь. Просто добавьте его в свой файл .zshrc.
(Кстати, не добавляйте привязки из всех ответов, у вас должна быть только одна привязка на ключ)
источник
Terminal > Keyboard > Initial state of numeric pad > Normal
)На моем Mac OSX El Capitan
^[0n
вместо ключа используется точка^[01
. Также у меня есть беспроводная клавиатура Logitech для Mac, и на ней тоже есть=
значок на цифровой клавиатуре. Мое окончательное отображение выглядит следующим образом:Однако решение, предложенное другими, работает правильно.
источник
Если вы используете Kitty для доступа к Linux-серверу по SSH и клавиатура работает нормально с Bash, но не с ZSH, вы можете попробовать добавить следующее в ваш
~/.zshrc
конфигурационный файл:Сохранить. Выйдите из системы и снова войдите в систему, чтобы перезагрузить конфигурацию ZSH, или вы можете ввести следующее в своем терминале:
Теперь клавиатура должна работать как положено!
источник