Soru ZSH: her cd'den sonra otomatik olarak ls


ZSH'nin şu anda tüm bu harika şeyleri yaptım, ama GERÇEKTEN müthiş olurdu, eğer 'cd' dediğim her seferinde 'ls -a' kelimesini dolaylı olarak çalıştırabilirsem. Bunun .zlogin dosyasında veya .aliases dosyasında olması gerektiğini düşünüyorum, en iyi çözümün ne olduğundan emin değilim. Düşünceler? Referans malzemesi?


32
2017-10-18 22:50


Menşei




Cevaplar:


Aşağıdakileri .zshrc'ye yerleştirin:

function cd() {
    emulate -LR zsh
    builtin cd $@ &&
    ls -a
}


51
2017-10-18 23:13



Bu gerçekten iyi çalışıyor, auto_cd açık olduğundan bahsetmeyi unuttum, bu sadece açıkça 'cd' dediğimde işe yarıyor. Dizinleri değiştirdiğimde bu şekilde davranmamın bir yolu var mı? - drmanitoba
@drmanitoba güncellenmiş cevaba bakınız. - ZyX
nedir emulate -LR zsh için? - moo
@moo man zshbuiltins. Bazı seçenekleri sıfırlar (burada: geçerli fonksiyonun süresi için), burada gerçekten gerekli değil, ama koymak güzel emulate zsh/emulate -L zsh Her işlevin başlangıcında, bu işlevin, kullanıcı tarafından ayarlanmış olandan bağımsız olarak kopmayacağını bileceksiniz. -R bir overkill, tüm seçenekleri sıfırlar. - ZyX
Bu benim için çalışıyor ve kullanmaya devam etmek istiyorum, ancak bilgisayarlarımdan biri gerçekten çok yavaş, istemiyorum. Ben bunu nasıl geçersiz kılarsam sourceBaşka bir dotfile dan? Sanırım işlevi yalnızca ana bilgisayara özgüyorum .zshrc ve kaldır ls -a. - Sridhar-Sarnobat


Kısa versiyon.

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

2
2017-08-01 17:59