Earlier quoted context omitted.
You should use `use-package` to manage your packages and defer their loading to when you use them. I have over 100 packages in my init.el and my Emacs loads in less than a second.
Thank you. I'm not using many packages, so I'm not sure what to change. Using csv for example: $ grep csv ~/.emacs '(package-selected-packages '(csv-mode org-evil dash))) If I want evil all the time but csv only when needed, I should change that to the following? '(package-selected-packages '(org-evil dash))) '(use-package '(csv-mode)))
You can set
(setq use-package-always-defer t)
so anything you load with use-package will only be loaded on-demand. Or you can do it per package with e.g. `(use-package csv-mode :defer t)`.Also make sure you don't set use-package-always-ensure and don't `:ensure t` or it'll try to install anything that's not installed on startup. If you want fast startup, it's better to explicitly install with M-x package-install