-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
294f5f2
commit 3dd912c
Showing
1 changed file
with
40 additions
and
42 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,64 +1,62 @@ | ||
<div align="center"> | ||
|
||
<h1> | ||
<picture> | ||
<source media="(prefers-color-scheme: dark)" srcset="logo_dark.svg"> | ||
<source media="(prefers-color-scheme: light)" srcset="logo_light.svg"> | ||
<img alt="Helix" height="128" src="logo_light.svg"> | ||
</picture> | ||
</h1> | ||
|
||
[![Build status](https://github.com/helix-editor/helix/actions/workflows/build.yml/badge.svg)](https://github.com/helix-editor/helix/actions) | ||
[![GitHub Release](https://img.shields.io/github/v/release/helix-editor/helix)](https://github.com/helix-editor/helix/releases/latest) | ||
[![Documentation](https://shields.io/badge/-documentation-452859)](https://docs.helix-editor.com/) | ||
[![GitHub contributors](https://img.shields.io/github/contributors/helix-editor/helix)](https://github.com/helix-editor/helix/graphs/contributors) | ||
[![Matrix Space](https://img.shields.io/matrix/helix-community:matrix.org)](https://matrix.to/#/#helix-community:matrix.org) | ||
<h1>evil-helix</h1> | ||
|
||
</div> | ||
|
||
![Screenshot](./screenshot.png) | ||
A soft fork of [Helix](https://helix-editor.com) which introduces Vim keybindings and more. | ||
|
||
A [Kakoune](https://github.com/mawww/kakoune) / [Neovim](https://github.com/neovim/neovim) inspired editor, written in Rust. | ||
[![Build status](https://img.shields.io/github/actions/workflow/status/usagi-flow/helix/evil-build.yml?style=for-the-badge&logo=github)](https://github.com/usagi-flow/helix/actions/workflows/evil-build.yml) | ||
|
||
The editing model is very heavily based on Kakoune; during development I found | ||
myself agreeing with most of Kakoune's design decisions. | ||
</div> | ||
|
||
For more information, see the [website](https://helix-editor.com) or | ||
[documentation](https://docs.helix-editor.com/). | ||
> [!IMPORTANT] | ||
> This project is a work-in-progress, but should be stable enough for daily usage. | ||
All shortcuts/keymaps can be found [in the documentation on the website](https://docs.helix-editor.com/keymap.html). | ||
## Installation | ||
|
||
[Troubleshooting](https://github.com/helix-editor/helix/wiki/Troubleshooting) | ||
[Download a package](https://github.com/usagi-flow/helix/releases/tag/feat-evil-base) and extract it in `/opt`. Additionally, it's recommended to symlink it in `/usr/local/bin`: | ||
|
||
# Features | ||
```sh | ||
cd /opt | ||
sudo curl -Lo helix.tar.gz https://github.com/usagi-flow/helix/releases/download/feat-evil-base/helix-<ARCH>-<OS>.tar.gz | ||
sudo tar -xf helix.tar.gz | ||
cd /usr/local/bin | ||
sudo ln -sv /opt/helix/hx . | ||
``` | ||
|
||
- Vim-like modal editing | ||
- Multiple selections | ||
- Built-in language server support | ||
- Smart, incremental syntax highlighting and code editing via tree-sitter | ||
Builds are not in package repositories yet. | ||
|
||
It's a terminal-based editor first, but I'd like to explore a custom renderer | ||
(similar to Emacs) in wgpu or skulpin. | ||
## Project philosophy | ||
|
||
Note: Only certain languages have indentation definitions at the moment. Check | ||
`runtime/queries/<lang>/` for `indents.scm`. | ||
### Configurable features instead of plugins | ||
|
||
# Installation | ||
This fork seeks to implement functionality as part of the editor, and make it configurable. | ||
The added functionality includes a Vim look-and-feel, but also other features. | ||
|
||
[Installation documentation](https://docs.helix-editor.com/install.html). | ||
In 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. | ||
|
||
[![Packaging status](https://repology.org/badge/vertical-allrepos/helix.svg)](https://repology.org/project/helix/versions) | ||
Compared to plugins, implementing features as part of the editor greatly improves performance, and avoids the risk of plugin compatibility issues. | ||
|
||
# Contributing | ||
### Sensible defaults | ||
|
||
Contributing guidelines can be found [here](./docs/CONTRIBUTING.md). | ||
In addition, sensible defaults are crucial: | ||
The editor must offer a wide range of tools for your job, but it must do what you expect an editor to do. | ||
|
||
# Getting help | ||
### Avoid Scheme/Lisp | ||
|
||
Your question might already be answered on the [FAQ](https://github.com/helix-editor/helix/wiki/FAQ). | ||
Scheme/Lisp should not be forced onto the user. | ||
It's error-prone and harder to read by humans, compared to Rust/TOML/Lua/... | ||
|
||
Discuss the project on the community [Matrix Space](https://matrix.to/#/#helix-community:matrix.org) (make sure to join `#helix-editor:matrix.org` if you're on a client that doesn't support Matrix Spaces yet). | ||
If upstream Helix moves to a [Scheme-based configuration](https://github.com/helix-editor/helix/issues/8853), | ||
this project will seek to provide a user-friendly alternative. | ||
|
||
# Credits | ||
## Project goals | ||
|
||
Thanks to [@jakenvac](https://github.com/jakenvac) for designing the logo! | ||
- Introduce more Vim keybindings | ||
- Implement common/crucial features as part of the editor: | ||
- File tree (cf. [upstream PR](https://github.com/helix-editor/helix/pull/5768)) | ||
- Light/dark mode support (cf. [upstream PR](https://github.com/helix-editor/helix/pull/7788)) | ||
- Maintain compatibility with upstream | ||
- Isolate features to minimize conflicts with upstream changes | ||
- Contribute features to upstream where possible | ||
- Ensure (through CI) that rebasing is always possible | ||
- Find a name for this project |