Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Peltoche/vixi
A vim like client for the xi backend
https://github.com/Peltoche/vixi
frontend vim xi-editor
Last synced: 3 months ago
JSON representation
A vim like client for the xi backend
- Host: GitHub
- URL: https://github.com/Peltoche/vixi
- Owner: Peltoche
- License: apache-2.0
- Archived: true
- Created: 2019-03-23T12:13:18.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-06-15T08:27:08.000Z (over 3 years ago)
- Last Synced: 2024-06-10T00:37:14.943Z (5 months ago)
- Topics: frontend, vim, xi-editor
- Language: Rust
- Size: 1.3 MB
- Stars: 344
- Watchers: 12
- Forks: 20
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Vixi
A "Vim like" frontend for [xi-editor](https://github.com/xi-editor/xi-editor).
## Warning
This toy project is not more maintained. It was under heavy development at the time so a lot of stuff
can be broken and will not be fixed.## Installation
Make sure you have `rustc` version > 1.40 and cargo installed.
```
git clone https://github.com/Peltoche/vixi.git && cd vixi
cargo install --path .
```## The "Vim like" approach
The idea behind Vixi is to use the powerful keybinding of Vim without keeping
all the complexities and inconsistencies. In other words, keeping the 20% of
Vim used by 80% of users.## Configuration
All the keybinding presented below can be overriden via the `keyboard.toml`
configuration file. You can find an [example of keyboard.toml config](./resources/keyboard.toml)
which will override all the default values with the exact same values.Those configuration files should live inside a `vixi` folder placed into the
OS specific config directory.| **OS** | **Vixi configuration folder** |
|:-------:|:-------------------------------------:|
| Linux | /home/alice/.config/vixi |
| MacOS | /Users/Alice/Library/Preferences/vixi |## How to use it
### Modes
Vixi behavior is split in "modes" (like Vim). Those are:
- **Normal** (the default one) used to move and manipulate stuff
- **Insert** used to insert stuff
- **Visual** used to select stuff and manipulate it
- **Action** used to make generic action (save/quit/etc)At any time you can return to the **Normal** mode by pressing the `Esc` key.
You can note that the **Action** mode doesn't exists on Vim. This somewhat
corresponds to the Vim `mapLeader` key.#### Normal mode
The Normal mode is the default one. It is mainly used to move the cursor around
and switch into the other modes.| **Key** | **Description** |
|:--------:|:-------------------------------------------:|
| ←↑→↓ | Move the cursor |
| hjkl | Move the cursor |
| w | Move the cursor to the next word |
| W | Move the cursor to the previous word |
| \ | Move the cursor one page above |
| \ | Move the cursor one page below |
| v | Switch to Visual Mode |
| i | Switch to Insert Mode |
| \ | Switch to Action Mode |
| o | Insert line below and switch to Insert Mode |
| O | Insert line above and switch to Insert Mode |
| p | Paste the previously cut content |
| x | Delete text forward |
| X | Delete text backwards |
| q | Quit |
| > | Indent |
| < | Outdent |#### Insert mode
The Insert mode is used to insert some content.
| **Key** | **Description** |
|:------------:|:------------------------------:|
| ←↑→↓ | Move the cursor |
| \ | Move the cursor one page above |
| \ | Move the cursor one page below |
| \ | Switch to the normal mode |
| \ | Remove a character backward |
| \| Remove a character forward |#### Visual mode
The Visual mode is used to select some text and manipulate it.
| **Key** | **Description** |
|:--------:|:---------------------------------------------------:|
| ←↑→↓ | Move the cursor |
| hjkl | Move the cursor |
| w | Move the cursor to the next word |
| W | Move the cursor to the previous word |
| \ | Switch to Normal Mode |
| q | Switch to Normal Mode |
| \ | Switch to Action Mode |
| y | Yank the selection |
| d | Delete the selection |
| p | Delete the selection and past the previous deletion |#### Action mode
The Action mode is used to make some generic action like saving or exiting.
| **Key** | **Description** |
|:-------:|:-------------------:|
| q | Quit |
| w | Write into the file |