el-init
el-init copied to clipboard
Just another Emacs '(lisp-machine) configuration written in literate programming format
#+AUTHOR: lambdart #+EMAIL: [email protected] #+KEYWORDS: virtual lisp machine, vlm, readme #+LANGUAGE: en #+STARTUP: overview #+PROPERTY: header-args :comments yes :results silent
-
VLM
Just another =Emacs= configuration written in =org= that has a simple goal: be just a configuration file, i.e, set custom values and hooks for the libraries/modes of interest.
Some people have started to refer to =Emacs= as a =LISP MACHINE=. It is not strictly a lisp machine because, clearly, it is a software program and not a physical computer, but as that line starts to blur it seems like a useful epithet for =Emacs=, because these days it looks more and more like a =VIRTUAL LISP MACHINE=.
A little tip for newcomers, Lisp Machines users are Lisp Developers, a hard truth that can be overwhelming for some and formidable by others.
| Present Day, heh... Present Time |
-
Goal
Use =EMACS= as a =LISP MACHINE=: a unify interface to perform DATA transformations, a bridge between the human mind and logical electric gates.
-
Mantras
- Data driven/oriented design: is all about the data and how its organized to do less transformations as possible when solving a given problem, resulting in a great degree of optimization, clearness and simplicity.
- Avoid late time decisions.
- Always go in the opposite direction: =SCALE DOWN=, i.e, use less resource as possible (reduce, reuse, recycle)!
- Simple is better.
- Less is more.
- For the =LISP MACHINE= everything is a just =data= to be s-expressed and/or evaluated.
- Lazy load (=autoloads=) everywhere.
- Byte-compile warnings not allowed!
- Use as few =libraries= as possible and always try to use =libraries= already installed on Emacs to meet our needs. If you can withdraw a =library=, do so! Most of the time it takes little or no effort, and the gain is considerable. So, be alert to identify these situations!
- Prioritize Emacs's native =libraries= (builtin) over third-party ones. If any demand comes to light, try to solve it with these =libraries= first, then third-party ones already installed and finally (A HUGE MAYBE) the internet! Sometimes a little extension on these blotted-code-base is everything that's needed to bring a new feature to life or solve an issue.
- If something is bothering you, fix it, right now!
- Few mapped keybinds as possible! Implies the constant usage of the =minibuffer= (or any other dynamic front-end menu) to =eval= less often used commands, but a huge pain relief, =dwim= style!
- Use the same action flow logic, for the same class of commands.
- Global behavior always available, do not change states (erase this silly idea), we have just one state and its VERY DYNAMIC!
- Successive refinements: in constant refactoring! Always improve, never fear the winds of change!
- I must not fear. Fear is the mind killer...
-
References
- https://www.gnu.org/software/emacs/manual
- https://www.gnu.org/software/emacs/manual/html_node/elisp/index.html
- https://www.gnu.org/software/emacs/manual/html_node/emacs/Keymaps.html
- https://en.wikipedia.org/wiki/Lisp_machine
- https://www.emacswiki.org/emacs/LispMachine
-
LICENSE
MIT
-
EOF
#+BEGIN_SRC And you don't seem to understand A shame you seemed an honest man And all the fears you hold so dear Will turn to whisper in your ear #+END_SRC | Duvet, Boa |