reddit / emacs

How to progress from beginner level

dsbahr · 2022-11-11 07:52
Hi, So I’ve been using Doom now for 1.5 year. I use emacs daily for notes in org-mode, magit, dired and occasional Python programming, but without lsp support as I can’t get it working inside a dev container. All of my “customizations” are just modules I enabled with corresponding flags in doom. I really like the doom experience but I can’t help to feel somewhat stuck as whenever I get some lisp error or want to change something I’m just lost and have no clue what to do. In all other areas of programming I would never accept this, but I just find it so difficult to reach the “next” level and don’t exactly know how. I’ve considered trying a Vanilla eMacs experience for the sake of learning, but then all my productivity would be lost. What was the best thing you did in order to advance to an intermediate level as a beginner?
xenodium · 2022-11-11 07:56
From 2014 but still as relevant today https://endlessparentheses.com/debugging-emacs-lisp-part-1-earn-your-independence.html
CorysInTheHouse69 · 2022-11-11 08:08
I used spacemacs for about 6 months when I first started using emacs and was scared shitless of making my own config. All the emacs stuff and writing elisp scared me because it looked like it was so complicated. Over those 6 months of using spacemacs to have a “usable emacs” I learned almost nothing about emacs. One day I just bit the bullet and decided to make my own config following System Crafter’s tutorials. It’s amazing how much simpler emacs actually is. I was back up to where I was with spacemacs in no time. And because this config was fine tuned for me I was even more productive, not to mention having a far greater understanding of the editor itself. The best thing I can recommend is just to take a week to make your own config, and learn emacs from scratch. You’ll drastically improve your emacs skills. Even if you go back to doom, you’ll have a far greater understanding of everything.
drstevoooo · 2022-11-11 08:46
I think the simplest answer to this is just to buy a copy of the excellent Mastering Emacs book, read it, and then read it again. Have been using Emacs for years and I still learn something new every time I read it... The author also has a number of excellent articles up on the website - check it out at [Mastering Emacs](https://www.masteringemacs.org/book)
tapesales · 2022-11-11 09:27
Start reading other's configs, packages etc. When you come across a function you don't know about, hit `SPC h f` (or `v` for variable). I also learnt a lot by watching Prot's backlog of videos (on YouTube). Don't stress - it comes to you over years of learning little bits at a time. I've been at it for 3 years now and still feel like an absolute beginner. It's normal.
AndreaSomePostfix · 2022-11-11 11:33
just a plug: if anybody needs ideas/support you may look for an Emacs buddy :) https://github.com/ag91/emacs-buddy
dirtycimments · 2022-11-11 12:13
This is a really encouraging post!
eeee386 · 2022-11-11 12:49
Disclaimer I use Vanilla Emacs.For me it was going through "System Crafters" youtube videos, and learning the interesting bits, and then hack it so that it matches my workflow better. And after I realized how easy it is mold emacs into what I want, I never used Doom, and Spacemacs again. [https://www.youtube.com/watch?v=74zOY-vgkyw&list=PLEoMzSkcN8oPH1au7H6B7bBJ4ZO7BXjSZ](https://www.youtube.com/watch?v=74zOY-vgkyw&list=PLEoMzSkcN8oPH1au7H6B7bBJ4ZO7BXjSZ)
dsbahr · 2022-11-11 14:23
It sounds like I have to give Vanilla and Building my own emacs a real try. I will check those tutorials out. Thanks!
dsbahr · 2022-11-11 14:47
Thanks I will check it out!
[deleted] · 2022-11-11 17:34
[deleted]
Salieri_ · 2022-11-11 18:01
Don't listen to the people who tell you to go vanilla, imo. Or at least don't do it as a goal or as something to aim for. It's good to start from scratch to know what doom makes easier, but it's making your ilfe harder for no reason to strive to get rid of doom completely (tons of very emacs-competent people use doom, it's not because they don't know emacs that they do it, otherwise they wouldn't have been able to write thousands of lines of elisp to make it better -tecosaur is the obvious example-). Really, the way to get better is to tweak things so emacs behave the way you want it to, and you'll learn from experience. Reading solutions to the problems you have and trying to figure out why it happens and why the fix works. Studying other peoples' configs too. And yep, you'll have to learn some common lisp. Land of Lisp is a great book, and then the exercism course to practice. I second the system crafters channel, completely useable even on doom, and you learn by trying to adapt things to your setup, too (since things will be slightly different sometimes). Also, it's perfectly fine to be an "emacs noob". It's a tool, in the end, as long as it works good enough for your standards, it's a good tool.
00-11 · 2022-11-11 18:10
Learn some Elisp: 1. `C-h i` 2. Choose manual `Emacs Lisp Intro`. 3. Read. Do what it says.
schmooser · 2022-11-11 20:10
Same for me, I would not recommended Spacemacs or Doom exactly for this reason - they hide Emacs from you by some obscure facade you don’t have time understand and which is not documented well enough how to go beyond trivial changes.
andyjda · 2022-11-11 21:14
this looks cool! I'd be interested in signing up as a buddy/mentor, how do I do that?
mmaug · 2022-11-11 21:50
Those of us who predate YouTube, computer books about anything other than C and Windows 3.1, and graphical fonts, know that one of the greatest learning tools about Emacs is at your fingertips—Emacs itself: The help system, info manual, and source code. I was lucky enough to have Lisp, Fortran, and assembler as my first formal forays into computers. Assembler taught me how things were done on the wires, this dispelled any magic that might appear. Fortran taught me structured programming (we were taught code structure using Fortran IV ('66) which only had GO TOs. Lisp taught me that code and data could be indistinguishable, everything has a value, and syntax doesn't have to dependent on column position on a 80-character punch card. Learn Emacs and elisp as you would any other programming environment—ask questions and investigate. Don't get distracted by key handling and theme colors. Before you type some key that you use everyday, precede it with `C-h k` (not sure what Doom maps that to) to see a description of what that keystroke you follow it with, does. (That is, discover how a keystroke does its thing, rather than how does Emacs map a key press to an elisp function.) From there you can find a link to it's source code, and you can begin your next journey. While my references and training may expose my old age, I am still just a mediocre programmer at best despite 40 years as a technical lead for internal applications in a dozen industries. Write elisp code for only you, however your skills will let you. It'll get better over time and no one ever has to see any of your early abominations unless you ask for feedback 😏 Good luck and Happy Hackin'!
osugisakae · 2022-11-12 00:35
> endless parentheses Name certainly checks out.
shryzr · 2022-11-12 02:01
Thanks for sharing. This guide is exactly what I was looking for.
dsbahr · 2022-11-12 08:32
Thanks for your reply. Do you know if I can solve the excercises in Land of Lisp using emacs? It seems it’s not elisp?
Salieri_ · 2022-11-12 13:16
elisp is essentially a superset of lisp (think c/cpp but less extreme) with features to make lisp work interract with emacs. So it's a good thing to start with common lisp because it'll bring you most of the way to emacs lisp. doom has a lisp module, it should be good enough to skim through the book
ovopax · 2022-11-12 15:41
I disagree with you here. This is an old RTFM attitude and I buy that I will be downvoted to oblivion. But. Big but, if we (emacs users) are going to attract new users and not have a small elitist club which pats ourselves on the back 24-7, then we have to find new ways to help people. Most new and old users know about the built-in manuals and they are GREAT. Sometimes we need to learn how to be friendly and inviting instead of: can't you read doofus? If we're not around to help people here on reddit then we might as well not visit reddit at all. I know I'm too scared mostly to ask questions here, scared of being ridiculed, instead of getting help from the community on HOW to find the answers and learn. RTFM/C-h i/just google it/ is not very constructive or particularly helpful. Just saying, bring the downvotes.
00-11 · 2022-11-12 16:06
The point was really to suggest that a good way to **"progress from beginner level"** with Emacs is to **"learn some Elisp"**. I believe that strongly. You may disagree. There are many ways to do that. I suggested *one* way. I could have suggested 10 ways. To start with, I offer that way. It's not the only way. *And* that "manual" doesn't just present a book-reading chore - it's in some ways a tutorial, to help you *learn by doing*. It's the closest thing we have to something like the Emacs tutorial (`C-h t`) for learning *Elisp*, I think. This is not at all about an "old RTFM attitude". It's about suggesting that a good way to progress with *Emacs* (and with learning to use Emacs), is to learn some *Elisp*. At least until I posted this answer, no one had mentioned that learning some Elisp can help you progress with using Emacs. I think that merits being suggested. (I even think that learning some Elisp is a **key** to grokking and unlocking Emacs.)
AndreaSomePostfix · 2022-11-14 09:46
just ping me, you can find my email there (or on my blog - andrea-dev at hotmail com). Or open an issue on the repo: I will get in touch with you that way.
andyjda · 2022-11-16 03:42
just added an issue on the repo, thanks :)