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.

Non-Modal Terminal Editors#

Nano

The friendliest terminal editor. No modes, on-screen keybinding hints. Default EDITOR on most distros.

Topics keybindings, syntax highlighting, multiple buffers, search, replace.

Nano

Emacs#

Emacs

The extensible, self-documenting, real-time display editor and Lisp runtime.

Topics elisp, major modes, minor modes, hooks, keybindings.

Emacs

GUI / Hybrid#

VS Code

Microsoft’s free, open-source, cross-platform editor. The most-used editor in 2026.

Topics extensions, settings.json, command palette, multi-cursor, integrated terminal.

VS Code

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#

Customization

Language servers, syntax engines, plugins, themes, AI assistants, and managing the resulting config.

Topics language servers, treesitter, plugins, themes, keybindings.

Customization
Hardening

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.

Hardening