• This repository has been archived on 15/Jun/2021
  • Stars
    star
    343
  • Rank 123,371 (Top 3 %)
  • Language
    Rust
  • License
    Apache License 2.0
  • Created over 5 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A vim like client for the xi backend

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