特に、cd や bindkey など、今動いているシェル上で副作用のある処理を行いたいときは source を使わないとうまくいかないだろう。 一方、source にはこんなデメリットがある。 .zshrc でいっぱい source するとzsh の起動が遅くなる 現在動いているシェルの alias 設定の影響を受ける 特に2つめが厄介だ。例えば grep とかしたときに、alias grep='grep -E' なんか設定してあったら正規表現の意味が変わってしまう。一応 command grep とすれば alias を設定していない元の grep を実行できるけど、いちいちそう書くのも手間だ。 そんなときは autoload を使う形に書き換えるとうまくいく。 autoload というのは「関数本体の読み込みを実行する時まで遅らせる」という zsh の機能のこと。これで ~/.zshr
![zsh で source して使うプラグインを作るのは止めにしよう - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/971feedec39eddd63d58aca12c60839b61ece286/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-f625e957b80c4bd8dd47b724be996090.jpg%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9enNoJTIwJUUzJTgxJUE3JTIwc291cmNlJTIwJUUzJTgxJTk3JUUzJTgxJUE2JUU0JUJEJUJGJUUzJTgxJTg2JUUzJTgzJTk3JUUzJTgzJUE5JUUzJTgyJUIwJUUzJTgyJUE0JUUzJTgzJUIzJUUzJTgyJTkyJUU0JUJEJTlDJUUzJTgyJThCJUUzJTgxJUFFJUUzJTgxJUFGJUU2JUFEJUEyJUUzJTgyJTgxJUUzJTgxJUFCJUUzJTgxJTk3JUUzJTgyJTg4JUUzJTgxJTg2JnR4dC1jb2xvcj0lMjMzQTNDM0MmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkNtaWRkbGUmcz1jMjFlMTRjZTI0MjA0MDQxN2NmYWQ3NmI0NWI5NzZjNg%26mark-x%3D142%26mark-y%3D151%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwbW9sbGlmaWVyJnR4dC1jb2xvcj0lMjMzQTNDM0MmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz00M2E3MWJiMmYxNGJkMzFiZTIzY2M4YjFkM2YyMjcwOA%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D48565b9a0ecc1bb9ffa7505d8eb225d9)