如何在Zsh中获取并添加以秒/分钟/..为单位的执行时间?

问题描述 投票:0回答:1

我正在使用

zsh
Oh-my-zsh
和 cobolt2 主题。 并使用此 bash 代码查看日期和时间:

RPROMPT="%F{green}[%D{%a %f/%m/%y %b} | %D{%L:%M:%S}]" 

enter image description here

并找到这个脚本来计算每个命令的执行时间:

function preexec() {
 timer=$(date +%s%3N)
}

function precmd() {
if [ $timer ]; then
local now=$(date +%s%3N)
local d_ms=$(($now-$timer))
local d_s=$((d_ms / 1000))
local ms=$((d_ms % 1000))
local s=$((d_s % 60))
local m=$(((d_s / 60) % 60))
local h=$((d_s / 3600))
if ((h > 0)); then elapsed=${h}h${m}m
elif ((m > 0)); then elapsed=${m}m${s}s
elif ((s >= 10)); then elapsed=${s}.$((ms / 100))s
elif ((s > 0)); then elapsed=${s}.$((ms / 10))s
else elapsed=${ms}ms
fi

export RPROMPT="%F{cyan}${elapsed} %{$reset_color%}"
unset timer
fi
}

我怎样才能将其结合到代码中,并在左侧花时间使用另一种背景颜色以便于阅读?

linux bash zsh zshrc
1个回答
1
投票

它是一个内置功能,您可以配置 oh-my-zsh 来获得它

通过键入确保您正在运行 zsh shell

exec zsh

然后在同一会话中运行

p10k configure

您将在配置向导中获得设置时间粒度的选项

示例: enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.