2010-02-01

あえて自分に不快感を与えることで作業効率を上げるLifehack - zsh プロンプト編 -


作業をしているとついつい時間を忘れてしまいがちです。
特に深夜に作業をしている時は、気づいたら明け方だったなんてことはよくあります。

体力的にも精神的にも深夜の作業はよくありません。
そんな深夜の作業を避けるためにはどうしたらよいでしょうか?

答えは簡単です。
深夜になると作業が不快になる仕組みをつくればばよいのです。
そうすれば必然的にモチベーションが下がってあきらめムードになります。
朝起きてやろうという意志がでてくるはずです。

どういうときに作業が不快になるかというと、シェルやエディタが思い通りにうごかなかったり、文字化けしたり見づらい文字が表示されるときなど、色々あります。

今回はとりあえず手始めとして、深夜になるとプロンプトが見づらくなってくる設定を書きました。
プロンプトが見づらいのは不快です。
設定の中身はこんな感じです。

COLOR_LIST=(60 55 57 63 109 111 117 116 115 114 113 112 184 178 172 166 160 124 125 126 127 128 129 93)
preexec () {
    PROMPT="%B%(?..[%?] )%b%{^[[38;5;"$COLOR_LIST[`date | awk -F"[ :]" '{print $7}'`]"m%}%n@%U%m%%%u%{^[[m%} "
}

※注
dateコマンドの出力結果に依存します。環境に合わせて適当に変更してください。
コマンドを打つたびにスクリプトが走ることになるので環境によってはもっさりするかもしれません。

設定の中身は単にpreexecを使ってコマンドを実行するたびに時間に対応する色を再設定しているだけです。
COLOR_LISTの色をうまく調整すれば不快度は自由に設定できます。
深夜の色を背景色と近い色にしておけば自然と不快感が得られます。
ここの例で使っている色はとりあえず適当に選んだだけなので深夜でもそこそこ見やすい色ですが、モニタにあわせて絶妙にやる気がなくなる色を探す必要があります。

もっとアグレッシブに標準出力の文字すべてを見えなくすることもできなくはないですが、さすがにそれはやり過ぎです。あまりやり過ぎると設定ファイルをもとに戻すという無意味な結果になってしまう恐れがあります。

まあそもそもエディタで作業をしてる間はプロンプトの色には気づかないので無意味と言えば無意味ですが、要は気持ちの問題です。

0 件のコメント:

コメントを投稿

ZenBackWidget