Emacs is unique
· back ·
Take: Emacs is not a text editor, it's an extensible interface to work with computer. That old joke about Emacs being an operating system is about that. Well, and it comes with great text editor.
Example. Why using terminal when you can run a shell command from Emacs? async-shell-command, start-process, make-process and likes (e.g. ghostel-shell-command was trivial to implement).
In the core of that is several orthogonal concepts that blend together: buffer, point, region, keymap, completion. Plus Elisp programming language, being simple but stood the test of time, being Lisp 2 (separate namespaces for variables and functions), and having flat namespace make it easy to learn and adopt to your needs. Elisp-oriented Emacs concepts: packages, hooks, advices.
╭─ buffer ── point ── region
│ ╭─ C-c ── context
├─ keymap ── prefixes ┼─ C-x ── always
╭─ concepts ┤ ├─ C-h ── help
│ │ ╰─ M-g ── "go"
│ ╰─ completion ┬─ minibuffer ── completing-read
│ ╰─ completion-at-point ── capf
│ ╭─ Lisp-2 ┬─ variables namespace
│ │ ╰─ functions namespace
│ ├─ flat namespace
│ ├─ macro
│ ├─ function
├─ Elisp ┤ ╭─ list
│ │ ├─ alist
│ │ ╭─ collections ┼─ plist
│ ╰─ variable ┤ ├─ hash-map
│ │ ╰─ cons cell
« Emacs » ┤ ├─ defconst
│ ╰─ defvar
│ ╭─ :init
│ ╭─ use-package ┼─ :config
│ ╭─ packages ┤ ├─ :custom
├─ Emacs-Elisp ┤ │ ╰─ :bind
│ │ ├─ package.el
│ │ ╰─ autoload ── user-lisp-directory ── Emacs 31
│ ├─ hooks
│ ╰─ advices
│ ╭─ mailing list
│ ╭─ emacs-devel ┴─ maintainers communicate there ┬─ Sean Whitton
│ │ ╰─ Eli Zaretski
│ ├─ reddit ── users ┬─ r/emacs
╰─ people ┤ ╰─ r/orgmode
│ ╭─ Prot
╰─ personalies ┼─ Sasha Chua
├─ Mike Zamansky
╰─ u/minad ── u/oanolin ── abo-abo ── alphapapa