The Modern Emacs

Introduction

  • How to handle it?
  • What's it?
  • The reasons to use and avoid.
  • How to approach Emacs, how to start and proceed?

Talking about the needs of power users and porfessionals, who spent a lot of time editing text.

Ideas

There is no easy way, we have to learn and practice things to become efficient and productive with it. It's especially true for any non-trivial tools.

Important properties:

  • Explorability
  • Extensibility
  • Consistency
  • Reliability
  • Perfomance

Text-Oriented Interfaces

Maybe make something better?)

What is Emacs?

  • Dynamic Interpretation Environment.
  • Graphical Toolkit.
  • Ecosystem (Tools, Packages, Snippets and Distributed Expertice).

Reasons to Use Emacs

  • Free and Open Source Software.
  • It doesn't get in your way, has a good-enough extension language.
  • Mature software with a lot of legacy.
  • Unified consistent interface for all the tools.

My Way

Most important check points.

Vim
~10y, modal editing, partially extensible and explorable.
Spacemacs
~3y, works out of the box, but with performance, conistency and explorability penalty.
Custom Config
~1y, good learning experience, reasonable perf.
Doom Emacs
<1y, good OOTB and performance, small inconsistencies and conflicts with built-in functionality, lack of integration with OS/PM.
Vanilla Emacs
<1y, poor OOTB, great learning experience, extensible, explorable, performant.
rde Emacs
sane OOTB, reliable, performant, well-os-integrated, extensible and almost explorable, plays nicely with built-ins.

The approach shift.

Yes, I need it, give me more -> Meet a few times, research, solve, practice, persist if necessary.

Building Working Environment Principles

  • Reproducible -> Reliable
  • Offline-friendly/Local-first
  • Consistent
  • Minimalistic and Attention-friendly
  • Extensible and Explorable

Appearance

On the design of text editors

Light hight-contrast colorscheme
good for eyes, good for work.
Minimalistic UI
better for attention.
Margins, Fonts, Colorization, Typesettings
gives better readability.

Hotkeys and Modal Editing

  • Vanilla
  • Evil

Explorability

  • C-h k
  • C-h f
  • C-h v
  • C-h S
  • C-h r i
  • M-x find-library RET
  • M-x which-key RET

Completion and Search

When you work with huge amounts of text, lists and other data, completion is really helpful.

  • isearch/occur/grep
  • vertico
  • marginalia
  • mini-frame
  • embark

Further Possible Improvements

Native Compilation
for better performance.
Mode-line Improvements
for less distraction.
Different Fonts
for reading-oriented buffers.
Welcome Screen
for better explorability and novice friendliness.

Materials