39 releases
| 0.11.1 | Jan 18, 2026 |
|---|---|
| 0.10.7 | Jan 14, 2026 |
| 0.10.1 | Dec 30, 2025 |
| 0.9.9 | Nov 9, 2025 |
| 0.1.0 |
|
#18 in Text editors
3,155 downloads per month
Used in 6 crates
6MB
5.5K
SLoC
Overview
EdTUI is a text editor widget for the Ratatui ecosystem.
It is designed to provide a user experience inspired by Vim. Edtui is developed to be used as an
editor in ratatui apps. It is not supposed to be a stand-alone code editor.
Create a new EditorState and render it using EditorView.
You can customize the theme, enable line wrapping, syntax highlight the text or set the tab
width:
use edtui::{EditorState, EditorTheme, EditorView};
use ratatui::widgets::Widget;
let mut state = EditorState::default();
EditorView::new(&mut state)
.theme(EditorTheme::default())
.wrap(true)
.syntax_highlighter(None)
.tab_width(2)
.render(area, buf);
Handle events (Vim mode by default):
use edtui::EditorEventHandler;
let mut event_handler = EditorEventHandler::default();
event_handler.on_key_event(key_event, &mut state);
Or use Emacs mode (modeless editing):
use edtui::{EditorState, EditorEventHandler, Lines};
let mut state = EditorState::new(Lines::from("Hello World"));
let mut event_handler = EditorEventHandler::emacs_mode();
event_handler.on_key_event(key_event, &mut state);
Or customize keybindings:
let mut key_handler = KeyEventHandler::vim_mode();
key_handler.insert(
KeyEventRegister::n(vec![KeyInput::ctrl('x')]),
SwitchMode(EditorMode::Insert),
);
let event_handler = EditorEventHandler::new(key_handler);