Series: (prelude) → init begins → packages → midway refactor → getting about → IDE (ft. Clojure) → .emacs.d
My extant Emacs configuration is built with the handy and battle tested prelude starter kit, created by indomitable Emacs fanatic and gentleman hacker, bbatsov, a.k.a. "Bug", a.k.a. Bozhidar Batsov.
The smart move would be to stick with prelude and fix my gunk instead. However, for better or worse, it is that time in my developer life-cycle. The irrational gnawing urge to take it apart and rebuild it in my own image has overpowered my standard clawing reluctance to fix what ain't broke.
To be honest, it has been that time for a good while now. Like, years? As it happens, I had to face facts when I got serious about overhauling my Emacs config. My Emacs 26 was three major versions behind. But underneath lurked my OS, at the fag end of its LTS support window. So of course, the OS had to be upgraded first. Two major LTS version upgrades later I had to let it rest. Then I fell into writing my site-maker, because otherwise how would I blog about reduxing my dotemacs?
Meanwhile, desire to actually redux my config waned.
Now it waxes eloquent.
Plus, I am in-batch at the Recurse Center, as I type this. It is a place where Yak Shaving for Joy is revered as a noble pursuit. As is proper form.
Because it is our second coming, we already know we want a few things, listed below, in no particular order.
- Clutter-free GUI
- Easy, fast, RSI-free navigation and movement (chording, completions)
- Quick, easy GUI organisation (split/move/switch/resize windows)
- Awesome completions everywhere (helm and/or ivy)
- Good undo/redo support (undo-tree)
- Expansions and boilerplate templates (Yasnippet)
- Org mode stuff (org-babel, present, export backends etc.)
- Version Control (magit)
- Polyglot Programming Language Support
- LSP everywhere as far as possible
- Clojure, MIT Scheme, Common Lisp, Bash, SQL, OCaml, APL, Java, JS, HTML, CSS, XML, YAML at least
- Repo-wide refactorings
- Structural code editing
- Code folding
- Code navigation (jump-to-definition etc.)
- Auto linting
- Auto formatting
- Auto builds where applicable
- Top notch remote REPL support (Clojure, Scheme etc.)
- Multiple cursors
- Diagramming
- Various creature comforts
- Nice theme, icons, typography
- Font resizes for coding, demos, presentations
- Auto save / restore files
- Auto save / restore workspace
- Recent files memory
- …
- Maybe other use cases I don't currently employ too much
- PDF reading
- Web browsing
- etc…
A partial list of references being perused in this noblest of Yak Shaves.
- m'colleague suvrat's dotemacs and blog posts
- m'colleague vedang's dotemacs
- purcell's dotemacs
- System Crafters' Emacs from scratch series
- Mickey's mighty fine Mastering Emacs book
- The Emacs Manual
- The Emacs Wiki
Last but not least, a bankruptcy emergence requires a bankruptcy filing. The filing is hereby filed. The game is afoot. And prelude remains my spiritual guide.
Remember that the ultimate goal of every Emacs user is to create an Emacs setup that reflects their own experience, needs, goals and ideas. Just like Lisp, Emacs is nothing but a raw building material for the perfect editing experience.