我刚刚升级到 zsh/oh-my-zsh。我几乎立即注意到我的机器上的 10 位数字小键盘不起作用。它在 bash 和 fish shell 中工作。
奇怪的是,如果我按住 fn/function 键,它就像 numlock 一样工作,但它不会“锁定”,我将不得不继续按住 fn 来输入数字。
有什么想法吗?
Ada*_*hon 104
小键盘键不会发送与顶行中的“普通”数字键相同的键符号。例如:numpad-1-key 发送,KP_1而 1-key 只是发送1.
一些终端会自动重新映射小键盘键以将相同的代码发送到 shell。此外,某些 shell(例如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" "/"
Run Code Online (Sandbox Code Playgroud)
bindkey -s in-string out-string绑定in-string到out-string. 如果in-string输入out-string则被推回并被视为输入。
^[Oq您系统上的实际代码(例如)可能会有所不同。您可以按Ctrl+v后跟有问题的键来获取终端的代码。
小智 18
为了完成@adaephon 给出的答案,以下是 Apple USB 键盘 (A1243) 的正确绑定。这些需要添加到~/.zshrc.
# Fix numeric keypad
# 0 . Enter
bindkey -s "^[Op" "0"
bindkey -s "^[On" "."
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 "^[Ol" "+"
bindkey -s "^[Om" "-"
bindkey -s "^[Oj" "*"
bindkey -s "^[Oo" "/"
bindkey -s "^[OX" "="
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12750 次 |
| 最近记录: |