当我键入 ^C 中止命令时显示“^C”

当我键入 ^C 中止命令时显示“^C”

我注意到,在 Bash 4.4(但不是 Bash 3.2)下,如果我输入命令然后输入Ctrl-C来中止,shell 会^C在显示新提示行之前在光标处插入文本。有没有办法配置 zsh 以使其执行相同的操作?

(这有点与这个问题,这是询问如何转动离开这种行为,尽管这个问题是关于 Bash 的。这个答案另一个问题显示了如何让 zle 在特殊字符出现在命令行中时突出显示特殊字符,但我没有在命令行中插入文字 0x03 字节;我试图在输入控制字符时显示一些文本。)

答案1

这至少在简单的情况下有效:

precmd () {
  trap 'print -P "%B%F{red}^C%f%b"; zle send-break' INT
}
preexec () {
  trap - INT
}

我还没有探讨过它在“困难”情况下是如何工作的,例如需要很长时间的完成功能。

相关内容