zshではchpwd関数を定義することで、ディレクトリ移動後に任意のコマンドを実行することができます。 zshユーザの多くは、chpwd内でlsを実行するよう設定しているのではないでしょうか。 しかし、移動先のディレクトリに大量のファイルやディレクトリが存在していると、lsの結果で画面が一杯になってしまいます。 移動するたびにこれでは正直困ります。 そこでファイル数が多い場合には省略表示するchpwdの設定を紹介します。 どんな感じになるかというと… いかがでしょう、これでうっかりファイル数の多いディレクトリに移動してしまっても大丈夫です。 コードは以下 chpwd() { ls_abbrev } ls_abbrev() { if [[ ! -r $PWD ]]; then return fi # -a : Do not ignore entries starting with .. #
![chpwd内のlsでファイル数が多い場合に省略表示する - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/43be0281636ba87520a66155e896dfdd782b6d32/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fadvent-calendar-ogp-background-7940cd1c8db80a7ec40711d90f43539e.jpg%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9Y2hwd2QlRTUlODYlODUlRTMlODElQUVscyVFMyU4MSVBNyVFMyU4MyU5NSVFMyU4MiVBMSVFMyU4MiVBNCVFMyU4MyVBQiVFNiU5NSVCMCVFMyU4MSU4QyVFNSVBNCU5QSVFMyU4MSU4NCVFNSVBMCVCNCVFNSU5MCU4OCVFMyU4MSVBQiVFNyU5QyU4MSVFNyU5NSVBNSVFOCVBMSVBOCVFNyVBNCVCQSVFMyU4MSU5OSVFMyU4MiU4QiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzM0EzQzNDJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9OWZlOWIyNDg1ZDZiYjBjMjYwZTY2OWFmNjQzYjhmYWI%26mark-x%3D120%26mark-y%3D96%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9OTcyJnR4dD0lNDB5dXl1Y2h1MzMzMyZ0eHQtY29sb3I9JTIzM0EzQzNDJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ODdmYjJmOGJjNDkzNWMwYzQ4NjlhMzcxNzYxY2RkMGI%26blend-x%3D120%26blend-y%3D500%26blend-mode%3Dnormal%26s%3Dec685de9a1b68f457d83f9e79c59641f)