vorfee's Tech Blog

Just another tech blog

zshのコマンド実行時にプロンプトの時刻を更新する

zshのプロンプトに時刻を表示するのはいいんだけど、コマンドを実行した時間とずれているのが気になる。だからコマンド実行時にプロンプトを再描画するようにした。

普通の状態

コマンドを実行しても、時刻は変わらない。

f:id:vorfee:20150328174222g:plain

変更後

コマンドを実行するとその時刻に書き換わる。

f:id:vorfee:20150329153036g:plain

方法

zleのaccept-lineを再定義する。

re-prompt() {
    zle .reset-prompt
    zle .accept-line
}

zle -N accept-line re-prompt

めでたし。

訂正

2015/03/28 コマンドの間違いを訂正

参照

zsh preexec command modification - Stack Overflow