zsh のシェルをリセットするには
reset
っていう,そのままのコマンドがあるが,例えば .zshrc に,
function _xxx_ls { ls }
chpwd_functions+=_xxx_ls
とかって書いてあると,source する度に,cd した後の ls の結果がダブる(もちろん,chpwd_function"+=" が原因).
けど,reset コマンドだと,これを解消してくれない(本当は,一度完全にシェルをリセットして,まっさらな状態に .zshrc を適用させて欲しい…☆)
…ってことを実現するには,
exec zsh -l
としてやればよい.これで☆と同様なことが実現できる.
そんなにしょっちゅう使うコマンドではないけど,これをタイプするのは面倒なので,例えば
alias reload='exec zsh -l'
とかってしておけばおk.