I hope my question makes sense.

I am using Doom Emacs for a while now and have become fairly proficient. But I feel like whenever I am browsing emacs content online there are still many topics for me to discover. So I was wondering if there is anything that I might be “missing” yet which might help with my productivity or improve my development skills.

Sofar I what have learned, on top from my head:

  • Org/Org Agenda (refile etc.)
  • Magit
  • Vterm
  • LSP Commands
  • Multiple Cursors
  • Literal Config
  • Navigating Emacs itself (which key, debugging, reading Emacs-Lisp (abit))
  • Using Language specific commands, i.e. send buffer to repl
  • Using Undo with Vundo

Only thing I know that I still need to learn is beeing more proficient with vim keybindings, but with that I know where to start.

I know the question is quite broad, but maybe there some “killer features” worth to explore which I am not aware of yet.

I’d appreciate any input.

  • cljnewbie2019@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    I recently made the switch from Doom Emacs to Vanilla Emacs because I wanted to get a better understanding of the nuts and bolts of emacs-configuration which meant getting more into elisp and becoming more familiar with how to customize things from scratch in that language.

    Doom was great but I also found it abstracted away some of the help I found online which was directed mostly at vanilla emacs users with use-package and such. I was in no way qualified, to try to understand how doom built up from vanilla emacs to provide, for example, its package management abstractions.

    I chose Doom initially as I was a long time vim user who know h, j, k, l and other movement commands on muscle memory. If you aren’t already familiar with vim keybindings you can try a game like this https://vim-adventures.com/. I do prefer vim keys to emac defaults since holding down modifier keys to do commands have caused issues with my hands. I also use an emacs package called god-mode and evil-god-state (evil = vim capability in emacs) to reduce having to hold down modifier keys for commands.

    The took the move from Doom to Vanilla emacs slowly and I set things up so I could run both my Doom and Vanilla at the same time. I didn’t want to lose productivity until I could get my Vanilla emacs config up to speed. I don’t know what OS you use but I simply asked ChatGPT about running two different configs at the same time for my OS and it walked me through. You will maintain your ~/.doom.d directory for that config and then you can start another directory like ~/.config/emacs with an init.el file for that. I’ve found ChatGPT very helpful for emacs in general though it does get a lot wrong too but not enough not to use it.

    I’m going through the System Crafters “Emacs from Scratch” playlist slowly. You can find that playlist here https://www.youtube.com/@SystemCrafters/playlists . There is a playlist on “Learning Emacs Lisp” too but I haven’t made it to that one yet.

    Finally I recommend literate programming setup for your config. The “Emacs from Scratch” playlist from video 7 shows that. Thus my init.el is generated from an init.org via org-babel-tangle. The advantage of putting your config in org source blocks like this is you can create a hierarchy within org and put in all the extra notes and links you want to explain the why and how of your configuration without cluttering up the actual init.el with a bunch of comments. It’s easier to read and navigate, at least for someone with little elisp experience like myself. This is a fairly popular example of emacs configuration via literate programming https://pages.sachachua.com/.emacs.d/Sacha.html.

    I also recommend putting your config files under git version control so you can easily get back to configs that “worked” as it can be easy to make breaking changes and you will want to revert to an older copy.

    Use “C-h k” and then press keys to find out what Doom emacs is using. You will begin to see packages like consult, counsel as part of things you will want to install in a Vanilla package as the worst thing about Vanilla that Doom will spoil you on is autocompletion lists.