如何在 ZSH 的提示符中添加哔声?

如何在 ZSH 的提示符中添加哔声?

我希望在终端中某项工作完成或某项操作完成时收到通知,并且我读到过有关在命令提示符中添加铃声,然后打开 urgentOnBell 的内容。但我不知道如何正确地将铃声添加到我的 ZSH 提示符中。一切都只是打印 \a。[\a] 不起作用,%{\a%} 不起作用,\a 不起作用。正确的做法是什么?

答案1

不久前我遇到过这个问题,虽然它没有发出哔哔声,但我找到了一个可行的解决方案。

sudo apt-get install espeak
espeak "job complete"

答案2

如果使用OSX,则可以使用内置Say命令:

Say  "job complete"

答案3

好的,明白了。我补充道:

%{$(echo "\a")%} 

也许不是最漂亮的(一定有一种方法可以简单地正确输出转义代码)但它可以工作。

答案4

您可以将文字控制字符添加到提示行。在 中vim,在插入模式下,Ctrl+V后跟Ctrl+G将输出铃声字符。然后它将显示为,例如,^G$_USERNAME $_PATH

但是,我发现将它添加到提示符中会导致终端在调整大小时再次响铃。将它添加到 precmd-hook 似乎是更好的解决方案,例如

precmd_bell () {
    print "^G"
}

add-zsh-hook precmd precmd_bell

相关内容