個人的にクライアントのシェルはzshを使ってて、右側のプロンプト(RPROMPT)に時刻表示をさせるようにしている。 で、この時刻をプロンプトが表示された時刻ではなく、常にシステム時刻が表示されるようにしたいなと思い調べてみたところ、以下のような内容を.zshrcに記述することで実現出来た。
setopt prompt_subst
TMOUT=1
TRAPALRM() {zle reset-prompt}
RPROMPT="%F{white} %D{%Y-%m-%d %H:%M:%S} %f"
ちなみに、実際の画面は以下のようになる。 何も操作しなくても、右側のプロンプトの時刻が1秒ごとに更新されている。
ちなみに、タブ補完で選択する際にプロンプトを再描画されてしまうと候補が見えなくなってしまうので、もし組み合わせて使う場合は以下のようにTRAPALRMを定義する。
TRAPALRM() {
if [ "$WIDGET" != "expand-or-complete" ]; then
zle reset-prompt
fi
}