function precmd {
hoge
}
と、書くとシンプルでいいんですが、複数設置はできないので全く別目的のコードであっても、一緒くたにして書く羽目になります。
どのイベントか一つだけならともかく、precmd と preexec 両方にコード入れたいときなどは、分かりづらくなります。
そこで、オレオレ関数を適当に作って、(precmd|preexec|chpwd|periodic|zshaddhistory|zshexit|...)_functions 配列変数にその関数名を突っ込んでやるといいです。
function _OREORE_preexec_1 { echo oreore 1 } function _OREORE_preexec_2 { echo oreore 2 } preexec_functions=($preexec_functions _OREORE_preexec_1) preexec_functions=($preexec_functions _OREORE_preexec_2)
こうすると、コードをきれいに分割可能で、ちゃんと二つとも表示されます