2013-06-11 27 views

回答

13

恕我直言,你不應該使用一個別名這一點,但鉤增加任何目錄更改:

autoload -U add-zsh-hook 
load-local-conf() { 
    # check file exists, is regular file and is readable: 
    if [[ -f .source_me && -r .source_me ]]; then 
     source .source_me 
    fi 
} 
add-zsh-hook chpwd load-local-conf 

此掛鉤函數將在任何目錄更改上運行。

FWIW,你應該想改變迪爾斯沒有 trigering掛鉤,使用cd -q dirname

+0

這就是我一直在尋找。我知道喬的回答會奏效,但我知道有更好的辦法。謝謝,'add-zsh-hook'正是我一直在尋找的東西。 –

+0

這很甜。我想是時候重新閱讀手冊了。 – Joe

+0

您也可以簡單地嘗試源文件並忽略任何錯誤:'源.source_me || TRUE'。 – chepner

1

你可以定義一個函數來執行cd然後源文件。該功能將嘗試源.source_me在新目錄中,如果存在的話:

mycd() { 
builtin cd [email protected] 
[ $? -eq 0 -a -f .source_me ] && source .source_me 
} 

啓用使用功能與

alias cd=mycd