Editors#
The editor is the operator’s primary weapon. Code, configs, playbooks, exploit drafts, after-action notes; all of it passes through the editor before it hits production, target, or repository. Speed and muscle memory in this one tool compounds across every other discipline in the handbook.
The editor ecosystem is unusually long-lived: line-editors that predate full-screen terminals share roots with the AI-assisted IDEs of this year. The operator who understands the lineage picks deliberately and keeps the choice for decades.
Modern editors descend from one of three branches. The operator inherits interaction patterns from whichever lineage they pick: modal verbs from Vi, an extensible Lisp environment from Emacs, or direct WYSIWYG from the GUI tradition.
Vi family (1976): modal editing; vi → vim → neovim → helix.
Emacs family (1976): extensible Lisp environment; still going.
Visual / WYSIWYG: microEMACS, Notepad, BBEdit, eventually TextMate, Sublime Text, VS Code.
flowchart TD
ED["ed (1969)<br/>→ ex"]
ED --> VI["Vi<br/>1976"]
ED --> EMACS["Emacs<br/>1976"]
ED --> GUI["Visual / GUI"]
VI --> VIM["vim"]
VIM --> NVIM["neovim"]
NVIM --> HELIX["helix<br/>(modal +<br/>selection-first)"]
EMACS --> EVIL["evil-mode<br/>(modal in Emacs)"]
EMACS --> DOOM["Doom / Spacemacs"]
GUI --> TM["TextMate"]
TM --> SUB["Sublime Text"]
SUB --> VSC["VS Code"]
VSC --> CUR["Cursor"]
VSC --> ZED["Zed"]
VSC -.-> JB["JetBrains<br/>(own lineage)"]
Modern editors converge on the same feature set (LSP, treesitter, fuzzy find, multi-cursor) but disagree on how the operator drives them. Pick the lineage; the rest is configuration.
Tip
Editor flame wars are real but mostly cosmetic. The operator picks the editor they’ll actually be productive in; the language servers, formatters, and linters are the same underneath.
Modal Terminal Editors#
The modal editor that ships with every Unix system.
Standard descendant of Bill Joy’s 1976 vi.
Topics normal mode, insert mode, visual mode, command-line mode, motions.
The Vim-fork rewrite. Cleaner code, async I/O, Lua configuration. Where most modern Vim-style work happens.
Topics Lua config, LSP, treesitter, async I/O, init.lua.
Non-Modal Terminal Editors#
The friendliest terminal editor. No modes, on-screen
keybinding hints. Default EDITOR on most distros.
Topics keybindings, syntax highlighting, multiple buffers, search, replace.
Emacs#
The extensible, self-documenting, real-time display editor and Lisp runtime.
Topics elisp, major modes, minor modes, hooks, keybindings.
GUI / Hybrid#
Microsoft’s free, open-source, cross-platform editor. The most-used editor in 2026.
Topics extensions, settings.json, command palette, multi-cursor, integrated terminal.
Lesser Editors#
The rest of the editor catalog (helix, kakoune, micro,
sublime, jetbrains, cursor, zed, visualstudio,
xcode) lives in References. The operator opens
those pages when they need a fast lookup for an editor outside the
five daily drivers above.
Beyond the Editor#
Language servers, syntax engines, plugins, themes, AI assistants, and managing the resulting config.
Topics language servers, treesitter, plugins, themes, keybindings.
The editor reads source, holds tokens, runs servers, and ships plugin code into the operator’s process. Lock it down.
Topics plugin auditing, telemetry disabling, sandboxing, network egress, marketplace controls.