2010-10-18 11 views
32

Also ich habe ZSH macht all diese coolen Sachen jetzt, aber was wirklich toll wäre, wenn ich es 'ls-a' implizit ausführen könnte nach jedem Anruf ' CD'. Ich denke, das muss in der. Zlogin-Datei oder der .aliases-Datei gehen, ich bin nur nicht sicher, was die beste Lösung ist. Gedanken? Referenzmaterial?ZSH: automatisch ls nach jeder CD laufen

Antwort

50

folgend in .zshrc Put:

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

EDIT: Nachdem bei der Dokumentation suchen (zshbuiltins, Beschreibung der cd builtin oder hook functions) ich einen besseren Weg gefunden: es wird mit entweder chpwd Funktion:

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

oder mit chpwd_functions Array:

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

Das funktioniert wirklich gut, ich vergaß ich so funktioniert dies nur eingeschaltet haben auto_cd zu erwähnen, wenn ich ‚cd‘ explizit aufrufen. Gibt es eine Möglichkeit, dies so zu machen, wenn ich Verzeichnisse ändere? – drmanitoba

+0

@drmanitoba siehe aktualisierte Antwort. – ZyX

+6

Was ist "emulieren -LR zsh" für? – moo

2

Kurzfassung.

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