![Zsh - 如何启用退格终端蜂鸣声](https://linux22.com/image/227947/Zsh%20-%20%E5%A6%82%E4%BD%95%E5%90%AF%E7%94%A8%E9%80%80%E6%A0%BC%E7%BB%88%E7%AB%AF%E8%9C%82%E9%B8%A3%E5%A3%B0.png)
当我退格或点击选项卡寻求建议时,如何在我的 kali linux 终端(zsh)中启用铃声,请注意,当我在子 shell 中时,蜂鸣声起作用(例如,我访问了 mysql CLI,退格工作正常)
答案1
在 zsh 和 emacs 模式下,是默认backward-delete-char
绑定的小部件。Backspace
您可以使用小部件了解某个键绑定的内容describe-key-briefly
。默认情况下,该小部件未绑定到任何键,但您可以使用Alt+在 emacs 模式下运行任意 zle 小部件x(如在 emacs 中)并在其中输入小部件(可用制表符补全)。
所以Alt+ xdescTabEnterBackspace将显示:
"^?" is backward-delete-char
^?
是大多数终端仿真器发送的 DEL 字符的表示Backspace。
或者你可以运行:
$ bindkey '^?'
"^?" backward-delete-char
该backward-delete-char
小部件仅在给出负数参数时发出蜂鸣声,例如输入Alt+ -Alt+时5Backspace,在这种情况下它会删除 5 个字符向前而不是向后(如 emacs 中),如果没有那么多字符要删除,它会发出蜂鸣声并删除任何字符(并将光标移动到末尾,这与 emacs 的行为有偏差)
如果您希望它在行首调用时发出蜂鸣声,或者使用大于要删除的字符数的数字参数,您可以将其重新定义为:
backward-delete-char() {
local enough_chars=$(( CURSOR >= ${NUMERIC:-1} ))
zle .$WIDGET && (( enough_chars ))
}
zle -N backward-delete-char
默认情况下,完成失败时应该发出蜂鸣声。如果没有,则可能在您或他们来源的任何文件中存在setopt nobeep
/ unsetopt beep
/ ...。您可以使用 检查该选项的状态,如果您找不到该选项的位置,您可以随时在 的末尾添加来恢复它。set +o beep
~/.zshrc
/etc/zsh/zshrc
echo $options[beep]
set +o beep
set -o beep
~/.zshrc