diff --git a/docs/faq.org b/docs/faq.org index 66a1d6f20..e630913a5 100644 --- a/docs/faq.org +++ b/docs/faq.org @@ -17,7 +17,7 @@ - [[#what-is-the-meaning-behind-dooms-naming-convention-in-its-source-code][What is the meaning behind Doom's naming convention in its source code?]] - [[#what-version-of-doom-am-i-running][What version of Doom am I running?]] - [[#is-discord-the-only-option-for-interacting-with-your-community][Is Discord the only option for interacting with your community?]] - - [[#why-is-scrolling-slow-in-emacsdoom][Why is scrolling slow in Emacs/Doom?]] + - [[#why-is-emacsdoom-slow][Why is Emacs/Doom slow?]] - [[#configuration][Configuration]] - [[#does-doom-respect-xdg-conventions][Does Doom respect XDG conventions]] - [[#how-do-i-configure-doom-emacs][How do I configure Doom Emacs?]] @@ -450,7 +450,7 @@ better suited to the task. I already have my hands full managing the one. Email is a possible alternative, but is constantly swamped; expect a long turn-around time. -** Why is scrolling slow in Emacs/Doom? +** Why is Emacs/Doom slow? This comes up often. The first thing folks fresh off the boat from other editors will notice is that Emacs has a low threshold for performance issues. It doesn't take much to get it to scroll like molasses. @@ -462,16 +462,23 @@ that's before we factor in plugins and poorly optimized major modes. There is an unfortunate but necessary adjustment of expectations new users must undergo, when they adopt Emacs. Doom has inherited this curse. It's raison -d'etre is to improve the situation, but I can only go so far. You /will/ find -cases where Emacs just scrolls slowly. +d'etre is to improve the situation, but I can only go so far, especially if you +choose to enable all the most expensive features. You will unavoidable find +cases where Emacs *is just slow*. What can you do about it? -1. Disable some of Doom's slowest modules. The biggest offenders tend to be: - =:ui tabs=, =:ui indent-guides=, =:ui pretty-code=, and =:ui word-wrap=. -2. Turn off line numbers ~(setq display-line-numbers-type nil)~. It's known to +1. Upgrade to Emacs 27. This should yield a noteworthy gain in general + performance, particularly for LSP users. +2. Try out [[http://akrl.sdf.org/gccemacs.html][gccemacs]], which promises significant strides in Emacs performance, + but can be a bit of a hassle to set up. There are packages available for + [[https://aur.archlinux.org/packages/emacs-native-comp-git/][Arch Linux]], [[https://github.com/flatwhatson/guix-channel][Guix]] and [[https://github.com/nix-community/emacs-overlay][Nix users]]. [[https://www.emacswiki.org/emacs/GccEmacs][More information available on EmacsWiki]]. +3. Disable some of Doom's slowest modules. The biggest offenders tend to be: + =:ui tabs=, =:ui indent-guides=, =:ui pretty-code=, =:ui word-wrap= and =:ui + vc-gutter=. +4. Turn off line numbers ~(setq display-line-numbers-type nil)~. It's known to slow down scrolling, in particular. -3. Org users can turn off ~org-superstar-mode~: ~(remove-hook 'org-mode-hook +5. Org users can turn off ~org-superstar-mode~: ~(remove-hook 'org-mode-hook #'org-superstar-mode)~. It's an aesthetic plugin that offers fancier bullets. Emacs seems to struggle to display those characters with some fonts. @@ -484,15 +491,16 @@ What can you do about it? org-hide-leading-stars nil org-startup-indented nil)) #+END_SRC -4. Turn on =M-x so-long-minor-mode=. This is a minor mode that disables +6. Turn on =M-x so-long-minor-mode=. This is a minor mode that disables non-essential functionality and can be used to temporarily view files that would be too slow otherwise. =M-x so-long-mode= is its extreme version; it turns off /everything/, including syntax highlighting. -5. Try replacing the =:ui modeline= module with =:ui (modeline +light)=. There +7. Try replacing the =:ui modeline= module with =:ui (modeline +light)=. There are aspects of the default modeline that can be unpredictably slow. -6. Don't mash =j= (or =C-n=) to scroll. Evil users can scroll long distances - with =C-d= and =C-u=, for instance, to avoid that slowness. Otherwise, use - search mechanisms to move around, like isearch (=C-s=) or evil-search (=/=). +8. Don't mash =j= (or =C-n=) to scroll. Evil users can scroll long distances + with =C-d= and =C-u=, for instance, or evil-easymotion under =gs=, to avoid + that slowness. Otherwise, use search mechanisms to move around, like isearch + (=C-s=) or evil-search (=/=). * Configuration ** Does Doom respect XDG conventions