Fork me on GitHub
#practicalli
<
2023-03-03
>
practicalli-johnny13:03:31

After using Doom Emacs for the last 3 months, I've decided to go back to Spacemacs. Doom Emacs has a very quick startup speed, but can pause on commands when first used due to lazy loading, e.g. when listing workspaces. I use 10-20 workspaces regularly (books, projects) and loading them as a sessions after startup was a little tedious. Now I automatically load the last session and startup time is the same as Spacemacs (not surprisingly as I use them in the same way). Alhtough Doom Emacs is a little frustrating to have to have a pause when I first list workspaces for the first time (and a few other commands) My workflow would rather have things loaded up front as I rarely stop/start Emacs, so I find Spacemacs less of an impediment to start. A quick startup is simply not relevant to my workflow. The way the Author uses Doom Emacs is very fast, but its not a workflow that I would like to change to. Using Doom Emacs I've had to learn more vim-style commands to make up for the conveniences that Spacemacs provides, although learning core vim-style commands is very useful in itself. However, there are still things I usually do that are missing and rather than spend time working how to set these up in Doom Emacs I have lots of other TODOs that are currently more valuable. Doom Emacs does feel slightly easier to configure and I am quite happy with the Practicalli Doom Emacs configuration for now. I don't have any plans to extend that configuration or the book at the moment, but will circle back later in the year and see what useful things I can add. The main reason I move back to Spacemacs is all the conveniences that save me a huge amoutn of time and are not there in Doom Emacs (although with time I am sure I could add them). I don't notice any difference in speed during daily use (even when coding on my tablet), so I havent really found an advantage for myself when it comes to Doom Emacs. I think Doom Emacs with my config makes a viable fallback from Spacemacs. If Spacemacs does have major issues at any point, its useful to know I can fall back on Doom Emacs fairly easily. I currently switch between Doom Emacs and Spacemacs using a simple operating system symbolic link (obviously I have to stop Emacs first) I have enjoyed my experience with Doom Emacs and the community has been fairly helpful (once you know where to get help most effectively). I'd encourage people to consider which of the many Emacs setups are the most relevant for their workflow (its all Emacs underneath) Thank you.

emacs-spin 2
lread14:03:38

Thanks for exploring and sharing your experience @U05254DQM! Doom emacs is working out for my workflow these days, so I'll stick with it.

Drew Verlee21:03:27

@U05254DQM I feel i have to use doom because for reasons I can't figure out, on any major clojure project, my spacemacs setup will hang constantly. By "hang" I mean on a brand new computer, new install of emacs, I stripped by init file to nearly nothing and still when i just moved through some text in a .clj file it shot up to 100% CPU. I looked at the profile information and it told me nothing.

Drew Verlee22:03:52

i'm going to do another fresh install using your instructions because ideally I wouldn't have to switch away 🙂.

practicalli-johnny23:03:25

Consider using an Emacs without native compilation. Also LSP servers can potentially cause issues, especially older versions

Drew Verlee02:03:05

I tried both native compilation and without, my lsp server is up to date. Emacs hangs across two computers, across two setup (emacs and spacemacs), what boggles my mind is that this isn't happening to anyone else.

Drew Verlee02:03:39

Ill just be editing a comment in .clj file and all of a sudden its at 100% CPU.

practicalli-johnny15:03:57

I have a feeling that auto-complete and LSP may have some interaction that causes a pause or Emacs to hang. Reading the Spacemacs auto-complete layer docs I notice the following suggestions 5. auto-completion-idle-delay is the number of seconds to wait before suggesting completions. The default value is 0.2 seconds. Set to nil to disable automatic suggestions (the TAB key will still perform completion). Set to 0.0 for optimal results with lsp mode. 6. auto-completion-minimum-prefix-length is the minimum number of characters which must be entered before completions will be suggested automatically. Set to 1 for optimal results with lsp mode.

Drew Verlee15:03:46

thanks john, ill check both of those and adjust if I'm not at the ideal settings.

practicalli-johnny19:03:34

I've found that Clojure (comment ) form is consistently hanging Emacs when Clojure layer and LSP layer is enabled. Specifically it happens when moving the cursor onto the opening paren of the comment form, or intermittently when editing code within the comment form. My current assertion is that its a clash of features enabled by variables on the layers, so I am experimenting to see what combinations are causing the issue.

👍 2
Drew Verlee20:03:58

@U05254DQM i think I'm seeing the same undesirable behavior. I seem to see a lot more spikes in cpu when I'm moving around a comment form.

practicalli-johnny20:03:01

I've commented out the following clojure layer variable and it seems to improve the situation

;; clojure-toplevel-inside-comment-form t 
This does mean I have to use , e e to evaluate forms in the comment form, but I can live with that. I usually go to the start of the next line after the form and press , e e I dont know why this is clashing as yet, but it may be something in clojure-mode that is clashing with lsp when this variable is enabled.

👍 2
👀 2