Favicon of helix

helix

Terminal-based Rust text editor with Kakoune-style modal editing, multiple selections, built-in LSP support, and tree-sitter syntax highlighting.

Helix is a terminal-based text editor written in Rust, with an editing model based heavily on Kakoune and influenced by Neovim. It's aimed at developers who want modal editing with built-in language server and tree-sitter support out of the box, without assembling a plugin ecosystem to get there. The project describes its own design philosophy plainly: during development, the maintainers found themselves agreeing with most of Kakoune's design decisions, which is why Helix's editing model follows Kakoune more closely than Vim.

Key features

  • Modal editing: a Vim-like modal editing model, built around the selection-first design borrowed from Kakoune.
  • Multiple selections: editing several points in a file at once is a core part of the model, not an add-on.
  • Built-in language server support: LSP integration ships with the editor itself, with no separate plugin needed.
  • Tree-sitter integration: smart, incremental syntax highlighting and code editing driven by tree-sitter grammars.
  • Per-language indentation: indentation rules are defined per language in runtime/queries/<lang>/indents.scm, though not every language has one yet.
  • Documented keymap: the full set of shortcuts and keymaps is published in the editor's documentation.
  • Active development: the repository publishes badges for build status, latest release, documentation, contributor count, and the size of the Matrix community, pointing to an actively maintained project with ongoing CI.
  • Two-track docs: a marketing-style website at helix-editor.com for an overview, and a separate documentation site with the full keymap and configuration reference.

Ideal use cases

Good fit: developers who live in the terminal and want an editor with LSP and tree-sitter working immediately after install, without configuring plugins; people who already like Kakoune's selection-based editing model, or want to try it; users who want fast, incremental syntax highlighting on large files without adding a separate plugin per language; anyone who wants a single Rust binary rather than an editor built around a large plugin marketplace.

Less of a fit: developers who want a fully mouse-driven, GUI-first editing experience, since Helix is primarily terminal-based (a custom renderer using wgpu is something the maintainers say they're interested in exploring, not a current feature); people who need indentation support for a language that doesn't yet have an indents.scm file, since indentation definitions are incomplete for some languages; teams standardized on Vim or Neovim muscle memory who don't want to learn Kakoune-style selection-then-action editing, since Helix's default keymap is not a Vim clone.

Installation

The README links to the project's installation documentation rather than listing package manager commands directly, and includes a Repology packaging badge showing Helix is distributed through a wide range of package repositories. Since the README doesn't give a single copy-paste install command, the standard approach for a Rust project also applies: build it from source with Cargo, or install it through your OS package manager, which is what the Repology badge points to.

After installing, run hx in a terminal to open the editor. The full keymap is documented on the project's documentation site, and a Troubleshooting page and FAQ are maintained on the GitHub wiki for common setup issues, including problems people hit right after a fresh install. If you want to contribute, the contributing guidelines are in the repository's docs/CONTRIBUTING.md file, and per-language indentation support is one area where contributions are welcome, since coverage in runtime/queries/<lang>/ is incomplete. For questions the FAQ doesn't answer, the community Matrix Space is the place to ask (join #helix-editor:matrix.org if your client doesn't support Matrix Spaces yet). The editor is under active development, and its maintainers have said they're interested in exploring a custom renderer built on wgpu at some point, as an alternative to the current terminal-only rendering approach.

Categories:

Frequently asked questions

Share:

Stars
45.3K
Forks
3.6K
Last commit
2 days ago
Repository age
6 years
License
MPL-2.0
Self-hosted
No
Activity score
85/100
View Repository
Built with:

Similar to helix

Favicon

 

  
  
Favicon

 

  
  
Favicon