Ki Editor - an editor that operates on the AST

Positioning vs. other editors

  • Seen as a “modal, rethinking Vim” editor that operates directly on the AST, distinct from:
    • “Orthodox” GUI editors focused on looks/integrations.
    • Vim/Helix-style modal editors that mostly refine classic Vim.
  • Compared frequently to Vim, Neovim, Helix, Emacs, JetBrains IDEs, and tree-sitter plugins.
  • Some argue much of Ki’s AST-aware behavior can already be approximated via tree-sitter textobjects, incremental selection, LSP rename, or structural editing packages in other editors.

AST-first editing & syntactic selection

  • Strong interest in “first‑class syntactic selection” and modification:
    • Expand/shrink selection similar to JetBrains’ Ctrl+W, Neovim’s incremental selection, and Helix’s features.
    • Structural operations that automatically handle commas, argument boundaries, etc.
  • Multi-cursor + AST selection is pitched as a major advantage over pure text search/replace and macros, especially for consistent syntactic edits.
  • Others argue regex, search/replace, and LSP refactorings are usually enough; macros and multi‑cursor are seen as niche or overkill by some.

Keybindings, modes, and ergonomics

  • Ki’s keymap is described as coherent and keyboard-layout agnostic, with “selection mode” and momentary layers (hold-keys combos via kitty protocol).
  • Some Vim users dispute claims that Vim/Helix bindings are incoherent, saying Vim’s operator–motion model feels highly logical once learned.
  • Muscle memory friction is noted (e.g., Ki’s motion keys differing from Vim’s), and layout-agnostic design can misbehave with hardware-level layouts like Dvorak.

Integrations & ecosystem

  • There is a VS Code extension that bundles the Ki binary; a Neovim keybinding plugin is in progress, but some Ki behaviors are hard to reproduce due to Neovim’s architecture.
  • Emacs users point out existing structural-editing packages and consider possible Ki-style bindings.

History, theory, and limitations

  • Several commenters reference earlier and more “hard-core” tree editors where you can only construct valid ASTs, often finding them clumsy or impractical.
  • Concerns raised:
    • Discoverability of AST node types and actions.
    • Handling of incomplete or invalid code; some expect tolerant parsing, others mention “holes” in trees.
    • Ecosystem cost: needing special editors, tooling, and workflows versus the universality of plain text.
  • Enthusiasm centers on reduced syntactic errors and more powerful refactoring; skepticism centers on learning cost and whether benefits justify switching.