SEVI is a vim/neovim clone built in Rust using the ratatui library for terminal rendering and crossterm for backend events. It retains the powerful modal concepts of Vim but makes them Super Easy and accessible for beginners by showing an interactive cheatsheet, clear visual feedback, and offering standard text-editor safety features and keyboard shortcuts.
-
Modal Editing
- Normal Mode (
Esc): Traditional vim navigation (h,j,k,l,0,$,g,G) and commands. - Insert Mode (
i/a/o/O): Standard character input with standard typing controls (arrows, backspace, delete, enter). - Visual Mode (
v): Highlight block selections of text. - Command Mode (
:): Run editor actions (:w,:q,:wq,:q!,:help, etc.). - Search Mode (
/): Dynamic text search.
- Normal Mode (
-
Interactive Cheat Sheet Sidebar
- Visible by default on the right-hand side.
- Summarizes commands for every mode so you never get stuck.
- Toggle it on or off at any time by pressing
F1or typing:h(or:help).
-
Status Bar & Premium Aesthetics
- Color theme dynamically updates to match the current mode (e.g. Green for INSERT, Blue for NORMAL, Yellow for VISUAL, Magenta for COMMAND, Teal for SEARCH).
- Shows active line numbers with highlighting on the current cursor line.
- Displays file info, change status, and key hints suited to your active mode.
-
Friendly Exit Safeguards
- Prevents accidental loss of unsaved changes. Hitting
:qorCtrl-Qwith unsaved modifications triggers an interactive double-check popup prompt:y: Save and exit.n: Exit discarding changes.Esc: Cancel and return to editing.
- Prevents accidental loss of unsaved changes. Hitting
-
Search & Replace
- Enter
/to type a search query. It highlights all matches in the file. - Jump through matches using
n(next match) andN(previous match). - Use command-line search & replace:
:s/find/replace/gto replace on the current line.:%s/find/replace/gto replace globally across the entire file (supports escaped characters).
- Enter
-
Standard Keyboard Shortcuts
Ctrl - S: Quick Save (prompts for a filename if it's a new unnamed file).Ctrl - Q: Quick Quit.Ctrl - R: Redo (complementsufor undo).Tab: Automatically inserts 4 spaces.
-
Undo & Redo
- Full history snapshots (up to 100 deep) let you reverse edits with
u(undo) and re-apply them withCtrl-R(redo).
- Full history snapshots (up to 100 deep) let you reverse edits with
Make sure you have Rust and Cargo installed:
cargo --versionTo compile the editor:
cargo build --releaseThe binary will be compiled to target/release/SEVI.
To start the editor:
cargo run -- <filename>For example, to edit or create a file named hello.txt:
cargo run -- hello.txtTo run the release build directly:
./target/release/SEVI hello.txt| Action | Key (Normal Mode) | Key (Insert Mode) | Key (Visual Mode) | Key (Command Mode) |
|---|---|---|---|---|
| Return to Normal | - | Esc |
Esc |
Esc |
| Move Cursor | h/j/k/l or Arrows |
Arrows | h/j/k/l or Arrows |
- |
| Line Start / End | 0 / $ |
- | 0 / $ |
- |
| File Start / End | g (twice: gg) / G |
- | g (twice: gg) / G |
- |
| Edit Mode | i (insert) / a (append) |
- | - | - |
| Open New Line | o (below) / O (above) |
- | - | - |
| Cut / Delete | dd (line) / x (char) |
Backspace / Delete |
d / x |
Backspace |
| Copy (Yank) | yy (line) |
- | y |
- |
| Paste | p |
- | - | - |
| Undo / Redo | u / Ctrl - R |
- | - | - |
| Find Text | / |
- | - | - |
| Next / Prev Match | n / N |
- | - | - |
| Quick Save | Ctrl - S |
Ctrl - S |
- | - |
| Quick Quit | Ctrl - Q |
Ctrl - Q |
- | - |