ZDOTDIRとemulate

なんとなくFedora9にあげてみました。なんかフォントとかすごくきれいなきがします。が、zshのPS1の設定が有効になっていません。のでしらべました。

自分は.zshenvとか.zshrcとか.emacssubversionで管理しています。あるディレクトリにPS1を設定してある.zshrcをおいて、.zshenvの中でZDOTDIRを指定して読まれるようにしてあります。ところが、どうもこの.zshrcが読まれていません。strace -o zsh.log zshすると、/home/ore/.zshrcを読んでいます。

順においかけようと思って/etc/zshrcまでいくと、みなれない emulate -L ksh なる一文がありました。ソースをみるとこのあたりでしょうか。。。

void
sourcehome(char *s)
{
    char *h;

    queue_signals();
    if (emulation == EMULATE_SH || emulation == EMULATE_KSH ||
        !(h = getsparam("ZDOTDIR"))) {
        h = home;
        if (!h)
            return;
    }

システムのファイルをいじりたくないのですが、途中でこのemulateをオフったりする方法がわかりません。

.zshenvにsetopt NO_GLOBAL_RCSというのをいれてしのぎました。ここまでかいて多分FAQな気でいっぱいです。

[追記] langの設定とかあるので、/etc/zshrcをみて/etc/profile.d/*.shを呼ぶようにした。