Yet another terminal text editor. Taking inspiration from vim and friends as well as other popular text editors (nano, emacs, VScode) to a lesser extent. This only currently is designed to work in macOS and Linux.
All PRs are welcome
- it's an easy combination of letters to type on an ascii keyboard without being uncomfortable on the fingers
- The Iris is part of the eye, the "window to the soul" -- your text editor is usually the window into your code
- Iris is the greek goddess of the rainbow, represents a bridge between different aspects, much like your editor bridges text and code. (Thanks ChatGPT)
Prerequisites: cmake
, ninja
, Python
I provide a wrapper python script to run all the required commands.
- To build just the binary, run
./run.py
- To also run the unit tests:
./run.py test
- For integration tests using hecate and tmux, run
./run.py test -I
To make a release binary, run the following commands on a Fedora-based system. (Adjust as needed for your local system)
$ sudo dnf install glibc-static libstdc++-static
$ ./run.py --release
iris
is a vim-inspired modal text editor. As with vim, any you'll need to
switch to write
mode to insert any characters. In read
mode, you can
perform the following actions (alphabetically ordered):
Key | Description |
---|---|
a | Go to write mode right of the current character |
A | Go to write mode at the end of the current line |
b | Move cursor back one word |
f | Find next entered char ahead in file |
F | Find next entered char back in file |
g | Go to top of file |
G | Go to bottom of file |
h | Move cursor left |
i | Go to write mode left of the current character |
j | Move cursor down |
k | Move cursor up |
l | Move cursor right |
o | Enter newline below and go to write mode |
O | Move cursor right |
r | Replace char under cursor with next entered character |
w | Move cursor forward one word |
x | Delete character under the cursor |
z | Center the current line in the screen |
; | Go to command mode |
~ | Switch case of char under cursor |
[ | Go to beginning of paragraph (previous empty line) |
] | Go to end of paragraph (next empty line) |
_ | Go to beginning of line |
$ | Go to end of line |
Likewise, you can switch to command
mode with the semicolon ;
key. The
following commands in alphabetical order are available:
Command | Description |
---|---|
;ping |
pong (for testing purposes) |
;q |
Quit without saving |
;wq |
Save and quit |
;w |
Save file |