2010-10-18 48 views
32

因此,我已經讓ZSH做了所有這些很酷的東西,但是如果我可以在每次調用'ls -a'後隱式運行'ls -a'光盤'。我認爲這必須放在.zlogin文件或.aliases文件中,我不確定最佳解決方案是什麼。思考?參考資料?ZSH:在每張CD後自動運行ls

回答

50

把下列句子變成.zshrc:

function cd() { 
    emulate -LR zsh 
    builtin cd [email protected] && 
    ls -a 
} 

編輯:它使用: 看文檔(zshbuiltinscd內置或hook functions說明)我發現了一個更好的辦法後, chpwd功能:

function chpwd() { 
    emulate -L zsh 
    ls -a 
} 

或使用chpwd_functions陣列:

function list_all() { 
    emulate -L zsh 
    ls -a 
} 
chpwd_functions=(${chpwd_functions[@]} "list_all") 
+0

這工作得很好,我忘了提及我有auto_cd打開,所以這隻有當我明確地調用'cd'時纔有效。有沒有辦法讓我在改變目錄的時候以這種方式行事? – drmanitoba 2010-10-19 14:56:13

+0

@drmanitoba查看更新的答案。 – ZyX 2010-10-19 16:27:43

+6

什麼是「模擬-LR zsh」? – moo 2012-01-18 01:11:23

2

簡短版本。

autoload -U add-zsh-hook 
add-zsh-hook -Uz chpwd(){ ls -a; }