Hey there.

I’m a fan of Emacs, like you folks.

I use Emacs org every day, mainly for my teaching class. Furthermore, I learn Emacs for three years ago.

But I struggle to achieve my learning of Elisp. For example, taping lisp and elisp code with evil/lispy is a true nightmare (I use Prelude with few modes, btw), not to mention when I type code block within org.

I knew the learning curve is hard. But I didn’t expect that much frustration to learn it. The documentation is austere. So few examples are given. There is too little blogs or books about Emacs, specifically about org and babel.

To illustrate my point, let’s take the «*this*» kind-of macro in babel, that I found TODAY by CHANCE in this page : https://orgmode.org/manual/Results-of-Evaluation.html.

It’s a game changer for a lot of my code, and would deserve a whole page to illustrate it. But no, it’s given in a «niche» example.

Don’t be mistaken, I found Babel/Org/Emacs wonderful, but what a pain in the ass to learn it !

For such an old and wise piece of software, I can’t understand why we don’t have a smooth learning experience with Emacs. A lot of people could benefit Org/Emacs, without the big hinder of the «lack» of documentation (mostly examples).

Am I the only one to experience this ?

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

    These days, prompting chat GPT is the way to go for generating small examples and asking about things with little background.

    M-x elisp-index-search. The Elisp manual is not bad, almost pretty good. There’s some examples in shortdocs, but I think shortdocs use case is dead because of generative AI’s and will only get more dead.

    Sometimes we write Elisp examples: https://github.com/positron-solutions/transient-showcase I have to update that because transient got some upgrades.

    Use ielm and eval-last-sexp as well as eval-region.

    Install the helpful package for useful commands like helpful-symbol.

    I think once I got familiar with all of the various flavors of let binding and mapc and mapcar, even if what I was doing didn’t seem like mind-blowing code, it also is pretty straightforward to read and write.

    Now it should be pretty easy. You just need this configuration to avoid mispelling lambdas:

    (defun pmx-greek-lambda ()
      (font-lock-add-keywords
       nil
       `(("\\"
          (0 (progn (compose-region (match-beginning 0) (match-end 0)
                                    ,(make-char 'greek-iso8859-7 107))
                    nil))))))
    
    (add-hook 'emacs-lisp-mode-hook 'pmx-greek-lambda)
    (add-hook 'inferior-emacs-lisp-mode-hook 'pmx-greek-lambda)