■目的
私のCLI仕事術
上記urlの記事下部にある、zshで定義したtoggl_current()というtogglからタイムトラッキング情報を取得する関数が、シェルからコマンドを実施するたびに実行されて内容が更新されるようにしたい。
■現在の設定(.zshrc)
toggl_current() {
local tgc="$(toggl --cache --csv current)"
local tgc_time=$(echo $tgc | grep Duration | cut -d ',' -f 2)
local tgc_dsc=$(echo $tgc | grep Description | cut -d ',' -f 2 | cut -c 1-20)
local short_tgc_dsc=$(if [ $(echo $tgc_dsc | wc -m) -lt 20 ]; then echo $tgc_dsc; else echo "${tgc_dsc}.."; fi)
if [ ! -n "$tgc_time" ]; then
echo "NoTimeEntry"
else
echo "[$tgc_time $short_tgc_dsc]"
fi
}
プロンプトを2行で表示、時刻を表示
PROMPT="%(?.%{${fg[green]}%}.%{${fg[red]}%})%n${reset_color}@${fg[blue]}%m${reset_color}(%*%) %~ $(toggl_current)
%# "
■問題
シェルをzshに切り替えた直後はプロンプトの表示が意図通りになるが、cdやcpなどのコマンドを実施しても、toggl_current()が実行されず、プロンプトの内容が古いままとなる。
表示を更新するには、zshを抜けてから再度zshにシェルを切り替える必要がある。
■質問
上記のような場合、どのような設定をすればプロンプトの内容が更新されるようになるかをお教えいただければと思います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/17 23:53