在Zsh上为每一行添加时间戳

And*_*ryn 11 macos terminal zsh oh-my-zsh

我刚刚安装了Sierra,并希望将zsh与oh-my-zsh和power shell一起使用......

我最终得到了这样一个终端:

在此输入图像描述

但我想为每个输出添加一个时间戳.Semething linke:

[14:23] acytryn ~ Projects %

有没有办法用zsh做到这一点?

小智 19

是的。只需打开~/.zshrc并在其末尾添加此行(nano ~/.zshrc例如,在终端中使用命令):

PROMPT='%{$fg[yellow]%}[%*] '$PROMPT
Run Code Online (Sandbox Code Playgroud)

你会得到这样的结果:

在此输入图像描述

您可以更改[%*]部分以获得其他格式:

 %D     The date in yy-mm-dd format.
 %T     Current time of day, in 24-hour format.
 %t %@  Current time of day, in 12-hour, am/pm format.
 %*     Current time of day in 24-hour format, with seconds.
 %w     The date in day-dd format.
 %W     The date in mm/dd/yy format.
Run Code Online (Sandbox Code Playgroud)


wcy*_*cyn 17

我发现实际上将时间预先添加到现有提示中而不完全覆盖它是非破坏性的.这使得它可以与任何现有主题一起使用,而不会干扰其样式.

.zshrc文件末尾添加此项.您可以使用以下命令键入命令nano ~/.zshrc进行编辑nano:

PROMPT='%{$fg[yellow]%}[%D{%f/%m/%y} %D{%L:%M:%S}] '$PROMPT
Run Code Online (Sandbox Code Playgroud)

我使用云主题,所以这给了我:

在此输入图像描述

它保留了当前的主题.您还可以通过更改颜色甚至格式为时间戳添加一些样式.

确保.zshrc通过键入以下内容重新加载文件:

. ~/.zshrc
Run Code Online (Sandbox Code Playgroud)

要么

source ~/.zshrc
Run Code Online (Sandbox Code Playgroud)

  • 如果你只想要 24 小时时间戳,你可以使用这个 `PROMPT='%{$fg[yellow]%}[%D{%T}] '$PROMPT` (3认同)
  • 稍微简化一下:您可以删除中间的 `} %D{` 部分。所以你会有 `PROMPT='%{$fg[yellow]%}[%D{%f/%m/%y %L:%M:%S}] '$PROMPT`。这样对我有用。 (3认同)