gpt4 book ai didi

zsh:启动命令时使用当前时间更新提示

转载 作者:行者123 更新时间:2023-12-02 00:04:31 30 4
gpt4 key购买 nike

我有一个我很喜欢的 zsh 提示符:它会计算 precmd 中的当前时间,并将其显示在提示符的右侧:

[Floatie:~] ^_^ 
cbowns% [9:28:31 on 2012-10-29]

但是,这并不是我想要的:正如您在下面看到的,这个时间实际上是上一个命令退出的时间,而不是命令启动的时间:

[Floatie:~] ^_^ 
cbowns% date [9:28:26 on 2012-10-29]
Mon Oct 29 09:28:31 PDT 2012
[Floatie:~] ^_^
cbowns% date [9:28:31 on 2012-10-29]
Mon Oct 29 09:28:37 PDT 2012
[Floatie:~] ^_^
cbowns% [9:28:37 on 2012-10-29]

zsh 中是否有一个钩子(Hook)可以在 shell 启动新命令之前运行命令,以便我可以更新提示时间戳? (我看到 Constantly updated clock in zsh prompt? ,但我不需要它不断更新,只是在我按回车键时更新。)

(^_^ 基于上一个命令的返回代码。当存在非零退出状态时,它会以红色显示 ;_;。)

最佳答案

这实际上是可能的,无需诉诸奇怪的黑客手段。我的 .zshrc 中有这个

RPROMPT='[%D{%L:%M:%S %p}]'

TMOUT=1

TRAPALRM() {
zle reset-prompt
}

TRAPALRM 函数每隔 TMOUT 秒(在本例中为 1)被调用一次,这里它执行提示符刷新,并一直这样做直到命令开始执行(并且它不会干扰您在点击之前在提示符上键入的任何内容)进入)。我知道您不需要不断刷新它,但它仍然可以完成工作,而无需自己排队!

来源:http://www.zsh.org/mla/users/2007/msg00944.html (这是 2007 年的作品!)

关于zsh:启动命令时使用当前时间更新提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13125825/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com