Zsh - 如何启用退格终端蜂鸣声

Zsh - 如何启用退格终端蜂鸣声

当我退格或点击选项卡寻求建议时,如何在我的 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/zshrcecho $options[beep]set +o beepset -o beep~/.zshrc

相关内容