Fast, dependency-free modal terminal text editor written in modern C++17.
Vano is built for speed, simplicity, and a clean terminal editing workflow. It combines the minimal feel of classic terminal editors with practical features like visual selection, regex search and replace, crash recovery, mouse support, smart indentation, and smooth horizontal scrolling.
- Modal editing workflow
- Visual mode with copy, cut, and paste
- Regular expression search and replace
- Smart bracket, brace, and parenthesis matching
- Crash recovery with automatic backup snapshots
- Command bar for quick editor actions
- Horizontal scrolling for long lines
- Smart backspace handling for tab indentation
- Flicker-free double buffered rendering
- Live cursor position tracking
- Configuration support through
~/.vanorc - Mouse support for cursor positioning and selection
chmod +x install.sh
./install.shThe installer will:
- detect a supported compiler
- install required dependencies
- build the project
- place the binary in your
PATH
mkdir build
cd build
cmake ..
cmake --build .Open a file:
vano file.txtStart with a new buffer:
vanoVano reads configuration from:
~/.vanorc
Example:
tab_size 4
auto_indent 1
show_gutter 1
tab_size— tab width in spacesauto_indent— enable automatic indentationshow_gutter— show line numbers in the gutter
Open the command bar with:
Ctrl + T
Available commands:
w
q
wq
open <file>
goto <line>
set tab <size>
Example:
open src/main.cpp
goto 120
set tab 4
wq
Vano automatically writes recovery snapshots to:
.vano_bak
If the editor exits unexpectedly, Vano will prompt you to restore the previous session on the next startup.
| Shortcut | Mode | Description |
|---|---|---|
Ctrl + Q |
Global | Quit editor |
Ctrl + S |
Global | Save file |
Ctrl + T |
Normal | Open command bar |
Ctrl + F |
Global | Regex search |
Ctrl + \ |
Global | Regex replace |
Ctrl + / |
Global | Toggle comment |
Ctrl + Z |
Global | Undo |
Ctrl + R |
Global | Redo |
Ctrl + V |
Normal | Toggle visual mode |
Ctrl + C |
Visual | Copy selection |
Ctrl + X |
Visual | Cut selection |
Ctrl + P |
Normal | Paste clipboard |
Home |
Global | Move to start of line |
End |
Global | Move to end of line |
Vano is split into focused components:
| Component | Description |
|---|---|
Buffer |
Text storage, editing operations, undo/redo management |
Screen |
Rendering, scrolling, gutters, and status UI |
Editor |
Event loop, input processing, modes, and commands |
FileManager |
File I/O, configuration loading, and recovery handling |
- C++17 compatible compiler
- POSIX-compatible terminal
- CMake 3.10+ (optional)
Pull requests and issues are welcome.
For significant changes, please open an issue first to discuss the proposed implementation.
If something is not working as expected, verify:
- your terminal supports ANSI escape sequences
- your compiler supports C++17
- your
.vanorcconfiguration is valid - the recovery file
.vano_bakis not corrupted
Released under the MIT License.
Made with ❤️ by the Vano team.