ReVi is a cross-platform terminal based Vim inspired text editor.

Overview

ReVi

MAINTAINED Downloads crates.io License

Stars Forks watchers contributors

issues last commit repo size Discord Chat lines

RUST LUA

Table Of Contents:

About

ReVi is a cross-platform terminal based Vim inspired text editor. Currently ReVi is in heavy development and it's probably not good idea to use for every day use but I have been using ReVi to work on ReVi to help find bugs. Editor inception 😲 ! If you like what you see help the project out with a github star. If you find a bug please feel free to open a issues for it.

Image

Usage

Crates.io

">
cargo install revi --version="0.0.0-beta-0.5"
revi <filename>

GitHub

git clone https://github.com/revi-editor/revi
cd revi
cargo install --path .
revi <filename>

Development Use

git clone https://github.com/revi-editor/revi
cd revi
cargo run --release -- <filename>

Questions and Answers

  • ReVi is locked up => Press Esc and then do command to clear command chase. WIP.
  • ReVi doesn't even open => for version's 0.0.0-beta-0.5 and below need to have a init.lua file in the directory. FIXED on version 0.0.0-beta-0.6

KeyBindings

Normal Mode

'Key' Command Note
Esc NormalMode
ZZ Save Quit
ZQ Quit
ScrollUp Cursor Keeps Line Number Not working 100% correct
ScrollDown Cursor Keeps Line Number Not working 100% correct
ScrollUp Not working 100% correct
ScrollDown Not working 100% correct
j CursorDown
Down CursorDown
k CursorUp
Up CursorUp
h CursorLeft
Left CursorLeft
l CursorRight
Right CursorRight
w Move Forwards by a Word
b Move Backwards by a Word
: CommandMode
i InsertMode
x DeleteChar
Delete DeleteChar
d DeleteLine
Home Home
End End
0 Home
$ End
A End InsertMode CursorLeft
'gg' JumpToFirstLine
'G' JumpToLastLine

Insert Mode

'Key' Command Note
Esc Normal
Backspace Backspace
Enter NewLine
Home Home
End End
Down CursorDown
Up CursorUp
Left CursorLeft
Right CursorRight

Command Mode

'Key' Command Note
Esc Normal
Enter Normal

Road Map

  • Added Modes:
    • Normal
    • Insert
    • Command
    • Visual
    • Visual Line
    • Visual Block
  • Basic KeyBindings
  • Basic Unicode Support
  • Plugin API:
    • Custom KeyBindings
  • Help Docs
  • WebSite
  • Package Manager
  • LSP
Comments
  • Horizontal Scrolling

    Horizontal Scrolling

    Formatting the screens display will need to be reworked but this will help add flexibility to enable word warping as well. The text format function will just need and x offset.

    enhancement 
    opened by cowboy8625 1
  • Command Mode History

    Command Mode History

    I dont think this would be to hard to add command history. The fact that our command mode is really a window we could scroll the commands. The only thing we would need to do is add the keep the buffer of old commands instead of clearing it and placing the cursor at the end of the file when done.

    enhancement 
    opened by cowboy8625 0
  • Execute Shell command with in ReVi

    Execute Shell command with in ReVi

    Running Shell commands from within ReVi is extremely important and as I use ReVi I find my self needing this more and more. I want to add this but I am not sure its worth it before we add a better interface and a real parser.

    enhancement 
    opened by cowboy8625 0
  • Mulit Window/Pane.

    Mulit Window/Pane.

    For More then one Window to be on the screen Window will need to to be moved into a new struct Called Pane or Frame? We could make this so that Line Numbers are a Pane without a buffer and this would mean added Tab support would be that much closer.
    What is windows job now? Window will hold a Vec of Pane's/Frame's they in turn will hold almost everything that a Window now holds.

    Also see #43

    enhancement 
    opened by cowboy8625 1
  • Multi Buffers/File support

    Multi Buffers/File support

    Opening more then one file is a major feature/requirement for making any text editor usable. Currently in ReVi Window Hold a buffer and that ties it down to that window. I think a window should have a current_buffer variable that looks into a buffer list and move the Buffer's to a Vec in ReVi struct . Although this may be hard to use without the support of Command mode.

    enhancement 
    opened by cowboy8625 0
  • `/` Command for searching for text

    `/` Command for searching for text

    I have thought about this command a bit and all has came to mind so far is pretty straight forward. Grab from current cursor position to end of line and look for text then jump to next line and keep going. I wanted to use the as_str (aka it returns a Option<&str> to get the &str version of the line but I have had that fail before when a line should have returned a Some. It says in the docs that ropey can fail on this when the string is over lapping memory chunks. Just using the normal string.find really seems like a bad idea cause then you would need to turn the RopeSlice into a String. Although that seems undesirable, is it any worse then just iterating over each char on the line? Do we find all locations of this word and store them? Why would we store them? What if we want to highlight all the text on screen above the cursor or below? Seems better to just store the location but then that fails (or needs to be updated) when the user adds or removes text. I could most defiantly make a typical school boy algorithm that does the job but I am no master at any coding for sure.

    enhancement 
    opened by cowboy8625 1
Releases(v0.0.0-beta-1)
Owner
null
Aspiring vim-like text editor

Rim Rim is an aspiring Vim-like text editor written in Rust. Current state Rim is in an early prototype stage. This means that you can load, edit and

Mathias Hällman 557 Jan 2, 2023
A terminal-based text editor written in Rust

Iota Iota is a terminal-based text-editor written in Rust. Here's what it looks like right now, editing itself. Motivation Iota was born out of my fru

Greg Chapple 1.6k Jan 8, 2023
An independent Rust text editor that runs in your terminal!

Ox editor Ox is a code editor that runs in your terminal. About The Project Ox is a code editor. It was written in Rust using ANSI escape sequences. I

null 2.9k Jan 2, 2023
An experimental next-generation Electron-based text editor

Attention: GitHub has decided not to move forward with any aspect of this project. We'll archive the repository in case anybody finds value here, but

Atom Archive 8.5k Dec 26, 2022
TIF is a terminal_image_format. (theres no TIF editor, so i made TIF images through a hex editor lol)

Colors these are the colors you can use when displaying images on the terminal BYTES: 5A = BLUE 5B = BLACK 5C = RED 5D = GREEN 5E = PURPLE 5F = WHITE

buzz 5 Dec 23, 2022
A simple terminal-based editor made in rust!

ELuna Editor The terminal-based editor for europa lang. Goals Be as minimal as possible, but retain conveniences found in other editors. Do not add fe

Junhao 3 May 25, 2022
Helix - A kakoune / neovim inspired editor, written in Rust

A kakoune / neovim inspired editor, written in Rust. The editing model is very heavily based on kakoune; during development I found myself agree

null 17.9k Jan 10, 2023
A text editor in ≤1024 lines of code, written in Rust

Kibi: A text editor in ≤1024 lines of code, written in Rust A configurable text editor with UTF-8 support, incremental search, syntax highlighting, li

Ilaï Deutel 881 Dec 29, 2022
Web base text editor written in rust

Ultron Ultron is a web based monospace text-editor with syntax highlighting, completely written in rust. I wrote this code editor for my very specific

Jovansonlee Cesar 59 Aug 8, 2022
Ginkgo is a text editor built entirely in Rust

Ginkgo is a text editor built entirely in Rust. It supports cursor movements, CTRL commands, select vim commands, insert vs. normal modes, and more. Ginkgo is based on my text editor JED, which itself was based on the popular online editor Kilo.

James Asbury 12 Oct 15, 2022
Archeum - a minimalist text editor

Archeum About The Project Archeum is a minimalist text editor that is really usefull if you've been in the vim psychosis for to long. Reject plugins,

null 4 Jul 1, 2022
(An attempt to write) a modal text editor

kaka (An attempt to write) a modal text editor. NOTE: The project is very young and certainly not ready for use. Current project goals keymap and mode

Marcin Pajkowski 4 Aug 15, 2022
An opinionated modal editor to simplify code editing from the terminal

(I'm currently refactoring the platform layer. So we have to first finish this cleanup before we're able to continue adding features) An opinionated m

Matheus Lessa Rodrigues 284 Jan 5, 2023
eBPF terminal editor

TBM - Terminal Blueprint Meddler A TUI application for fooling around inside eBPF files. Installation cargo install tbm Usage Currently, only prints

Rafael Ortiz 1 Jan 18, 2022
Rust-based traffic editor for RMF

Traffic Editor III Welcome to Traffic Editor III. install stuff Unfortunately we need a newer Rust than what comes with Ubuntu 20.04. First make sure

null 2 Oct 20, 2022
Wealthy Rich ported to Rust! This aims to be a crate for rich text and beautiful formatting in the terminal

Wealthy Rich ported to Rust! This aims to be a crate for rich text and beautiful formatting in the terminal

Sourajyoti Basak 20 Dec 29, 2022
Subtext is a text-based, block-oriented hypertext format.

Subtext: markup for note-taking Subtext is a text-based, block-oriented hypertext format. It is designed with note-taking in mind. It has a simple, pe

Gordon Brander 223 Dec 15, 2022
A modern editor with a backend written in Rust.

Xi Editor (pronounced "Zigh") A modern editor with a backend written in Rust. Maintenance status: The xi-editor project is not currently under active

null 19.7k Jan 5, 2023
A save editor for Mass Effect Trilogy

Trilogy Save Editor A save editor for Mass Effect Trilogy A bit late but just in time ! This software is similar to Gibbed's save editors (and forks)

Karlitos 118 Dec 25, 2022