{"id":21983918,"url":"https://github.com/usagi-flow/evil-helix","last_synced_at":"2025-07-15T04:04:07.445Z","repository":{"id":37808861,"uuid":"489449773","full_name":"usagi-flow/evil-helix","owner":"usagi-flow","description":"Bringing the Helix editor to the evil side","archived":false,"fork":false,"pushed_at":"2025-06-12T20:06:53.000Z","size":21623,"stargazers_count":899,"open_issues_count":64,"forks_count":25,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-07-05T20:10:13.575Z","etag":null,"topics":["cli","command-line","editor","helix","ide","neovim","vim"],"latest_commit_sha":null,"homepage":"https://evil-helix.github.io","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"helix-editor/helix","license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/usagi-flow.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"open_collective":"helix-editor"}},"created_at":"2022-05-06T18:04:09.000Z","updated_at":"2025-07-05T08:06:06.000Z","dependencies_parsed_at":"2024-11-29T22:32:44.608Z","dependency_job_id":null,"html_url":"https://github.com/usagi-flow/evil-helix","commit_stats":null,"previous_names":["usagi-flow/helix","usagi-flow/evil-helix"],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/usagi-flow/evil-helix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usagi-flow%2Fevil-helix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usagi-flow%2Fevil-helix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usagi-flow%2Fevil-helix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usagi-flow%2Fevil-helix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/usagi-flow","download_url":"https://codeload.github.com/usagi-flow/evil-helix/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usagi-flow%2Fevil-helix/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265401189,"owners_count":23758965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","command-line","editor","helix","ide","neovim","vim"],"created_at":"2024-11-29T18:02:08.032Z","updated_at":"2025-07-15T04:04:07.413Z","avatar_url":"https://github.com/usagi-flow.png","language":"Rust","funding_links":["https://opencollective.com/helix-editor"],"categories":["Rust","Tool"],"sub_categories":["Terminal Editor"],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003ch1\u003eevil-helix\u003c/h1\u003e\n\nA soft fork of [Helix](https://helix-editor.com) which introduces Vim keybindings and more.\n\n[![Build status](https://img.shields.io/github/actions/workflow/status/usagi-flow/evil-helix/evil-build-tag.yml?style=for-the-badge\u0026logo=github)](https://github.com/usagi-flow/evil-helix/actions/workflows/evil-build-tag.yml)\n\n![Screenshot](./screenshot.png)\n\n\u003chr /\u003e\n\n\u003c/div\u003e\n\n## Installation\n\n[Download a package](https://github.com/usagi-flow/evil-helix/releases) and extract it in `/opt`. Additionally, it's recommended to symlink it in `/usr/local/bin`:\n\n```sh\ncd /opt\nsudo curl -Lo helix.tar.gz https://github.com/usagi-flow/evil-helix/releases/download/release-\u003cVERSION\u003e/helix-\u003cARCH\u003e-\u003cOS\u003e.tar.gz\nsudo tar -xf helix.tar.gz\ncd /usr/local/bin\nsudo ln -sv /opt/helix/hx .\n```\n\n### Package manager\n\nIf a package is available for your system's package manager, it's the recommended way to install evil-helix.\n\n[![Packaging status](https://repology.org/badge/vertical-allrepos/evil-helix.svg)](https://repology.org/project/evil-helix/versions)\n\n## Current state\n\nThese are the current differences compared to the upstream project:\n\n-\tVim keybindings (_feel free to file an issue if you're missing certain bindings_):\n\t-\tCommands: `a`, `c`, `d`, `y`, `x`\n\t-\tModifiers: `i`\n\t-\tMotions: `w`, `W`, `e`, `E`, `b`, `B`, `0`, `$`\n\t-\tVisual line mode: `V`\n-\tAdjusted defaults ([511060a](https://github.com/usagi-flow/evil-helix/commit/511060abcfcbe9377ec50e8a0ecaf4c0660776bb)):\n\t-\tThe Helix \"SEL\" mode is called \"VIS\"\n\t-\tSmart tab is disabled by default\n-\tBasic Vim modeline support ([#3](https://github.com/usagi-flow/evil-helix/pull/3))\n-\tSupport for colored/rainbow indentation guides, _opt-in: see PR_ ([#76](https://github.com/usagi-flow/evil-helix/pull/76))\n-\tIf `color_modes` is enabled, color the file type in the statusline as well ([5503542](https://github.com/usagi-flow/evil-helix/commit/5503542c0314936ea91464f2944666ed42fea86c))\n-\tMinimalistic window separator ([dd990ca](https://github.com/usagi-flow/evil-helix/commit/dd990cad1cb92a024321aca19728c68cb066dd09))\n\nMoreover, evil-helix introduces the `editor.evil` option, which is `true` by default. It can be set to false to completely deactivate evil-helix behavior without having to use a different build:\n\n```toml\n[editor]\nevil = true # Default; set this to `false` to disable evil-helix behavior\n```\n\n## Project philosophy\n\n### Configurable features instead of plugins\n\nThis fork seeks to implement functionality as part of the editor, and make it configurable.\nThe added functionality includes a Vim look-and-feel, but also other features.\n\nIn contrast, the upstream project, Helix, mostly limits its scope to its current core functionality, and defers further functionality to the future Scheme-based plugin system.\n\nCompared to plugins, implementing features as part of the editor greatly improves performance, and avoids the risk of plugin compatibility issues.\n\n### Sensible defaults\n\nIn addition, sensible defaults are crucial:\nThe editor must offer a wide range of tools for your job, but it must do what you expect an editor to do.\n\n### Avoid Scheme/Lisp\n\nScheme/Lisp should not be forced onto the user.\nIt's error-prone and harder to read by humans, compared to Rust/TOML/Lua/...\n\nIf upstream Helix moves to a [Scheme-based configuration](https://github.com/helix-editor/helix/issues/10389),\nthis project will seek to keep a user-friendly alternative.\n\n### Soft fork\n\nThis project is a \"soft fork\", i.e. it remains compatible with the upstream and regularly rebases its changes on top of the upstream master branch. New features should be carefully isolated from the upstream codebase in order to avoid conflicts.\n\nWhether this project remains in this state will depend on how much this project's philosophy and the upstream project diverge, although a hard fork should be considered as a last resort.\n\n### Small and regular version releases\n\nConsidering the kind and frequency of changes to this repository, it makes sense to release small changes often, rather than holding features back in large releases. Releases are currently tagged on-demand.\n\n## Project goals\n\n-\tMove the project into an organization and prepare a website\n-\tIntroduce blackbox tests (cf. [#68](https://github.com/usagi-flow/evil-helix/issues/68))\n-\tIntroduce more Vim keybindings\n-\tImplement more common/crucial features as part of the editor:\n\t-\tFile tree (cf. [upstream PR](https://github.com/helix-editor/helix/pull/5768))\n\t-\tLight/dark mode support\n-\tMaintain compatibility with upstream\n\t-\tContribute features to upstream where possible\n\t-\tEnsure (through CI) that rebasing is always possible\n\n## Development\n\nKeep in mind the `main` branch may be rebased onto the upstream `master` branch.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusagi-flow%2Fevil-helix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fusagi-flow%2Fevil-helix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusagi-flow%2Fevil-helix/lists"}