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

help-circle
  • General is a package that really illuminates the tension that occurs when the user wants to integrate two packages. :after is okay for a quick solution, but for packages like general, you would end up with one ensured package implicitly depending on everything.

    It’s much less bad that you end up loading everything and much worse that the use-package declaration feels anything but modular or independent, instead incorporating symbols from all over Emacs and implicitly depending on other use-package hunks.

    What is still a much deeper problem in my opinion is the lack of being able to superimpose and compose configuration. This is the reason why adopting random hunks of use-package declarations is not safe and why almost no two users can easily re-use large units of configuration.


  • Psionikus@alien.topBtoEmacs@communick.newsi wanna try emacs
    link
    fedilink
    English
    arrow-up
    1
    ·
    11 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)