Vixi
A vim like client for the xi backend
Install / Use
/learn @Peltoche/VixiREADME
Vixi
A "Vim like" frontend for 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
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 | | <PgUp> | Move the cursor one page above | | <PgDn> | Move the cursor one page below | | v | Switch to Visual Mode | | i | Switch to Insert Mode | | <Space> | 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 | | <PgUp> | Move the cursor one page above | | <PgDn> | Move the cursor one page below | | <Esc> | Switch to the normal mode | | <Backspace> | Remove a character backward | | <Del> | 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 | | <Esc> | Switch to Normal Mode | | q | Switch to Normal Mode | | <Space> | 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 |
Related Skills
node-connect
347.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.6kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.6kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
