• 0 Posts
  • 4 Comments
Joined 11 months ago
cake
Cake day: October 26th, 2023

help-circle
  • Psionikus@alien.topBtoEmacs@communick.newsi wanna try emacs
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    The point is I like philosophy of Unix using like tmux + nvim + mutt .

    Emacs is at least on the surface orthogonal to the Unix philosophy. It’s a programmable interface to a computer. Instead of remixing a bunch of fixed tools using bash pipes and arguments, you do most of your lightweight automation and integrations in Emacs Lisp.



  • Psionikus@alien.topBtoEmacs@communick.newsWhy emacs
    link
    fedilink
    English
    arrow-up
    1
    ·
    11 months ago

    You want your primary interface to a computer to be a programmable programming environment, which provides extremely proficient interfaces for programming itself, as a force multiplier for automating things that require a varied composition of off-the-shelf and bootstrap-level integrations.


  • 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)