Rim is an aspiring Vim-like text editor written in Rust.
Rim is in an early prototype stage. This means that you can load, edit and save files, and hopefully do so relatively comfortably if Vim is what you are used to. In particular some of the simpler commands for insertion and deletion as well as window and buffer navigation has been implemented and bound to the expected key strokes.
For now you will need a nightly build of the Rust compiler in order to build Rim. When that is set up, simply clone and cargo run
.
Note: Some key bindings are for testing purposes only, and some may not work exactly as you would expect them to.
Window navigation
<C-w>v/<C-w>s
- Split focused window<C-w>c
- Close focused window<C-w> h/j/k/l
- Move window focus left/down/up/rightn/N
- Move window focus forward/backward in window order (for testing)(<C->) y/u
- Resize focused window (for testing)<C-w>=
- Reset window sizes
Buffer navigation
h/j/k/l/Arrow keys
- Move caretHome/0
- Move caret to start of lineEnd/$
- Move caret to end of linePageUp/<C-b>
- Scroll view up by window's lengthPageDown/<C-f>
- Scroll view down by window's length<C-u>
- Scroll view up by half of window's length<C-d>
- Scroll view down by half of window's lengthgg
- Go to first lineG
- Go to last lineSpace
in normal mode - move caret forward across line boundariesBackspace
in normal mode - move caret backward across line boundaries
Insertion
i
- Enter insert modeI
- Enter insert mode at start of linea
- Enter insert mode after caretA
- Enter insert mode at end of lineo
- Enter insert mode at a new line under the current lineO
- Enter insert mode at a new line above the current lineEscape
- Exit insert mode
Deletion
dd
- Delete lineD
- Delete rest of lineC
- Delete rest of line and enter insert modex
- Delete character under the cursorX
- Delete character behind the cursorr
- Replace character under the cursorR
- Replace character on the line
Misc / For testing until a proper command line is implemented
F1-F4
- Load some buffers:qa<Enter>
- Quit:q<Enter>
- Close window and quit if it's the last one:w<Enter>
- Write buffer to file
Lots! But first maybe the ability to search in a buffer, which would open up for a range of other features.. or perhaps that big scary one; scripting
As stated above, Rim requires Rust nightly to build. This is because Rim is using unstable features of the Rust language and standard libraries. Although breaking changes seem far between these days, it may be that I haven't updated to the latest nightly if things are not compiling for you.