12 个版本 (4 个破坏性更新)
0.7.2 | 2024 年 8 月 17 日 |
---|---|
0.6.0 |
|
0.5.0 | 2024 年 6 月 29 日 |
0.3.3 | 2024 年 3 月 1 日 |
0.1.0 |
|
#85 in 文本编辑器
508 每月下载量
用于 wireman
465KB
2.5K SLoC
edtui
EdTUI
概述
EdTUI
是 Ratatui 生态系统中的文本编辑器小部件。它旨在提供轻量级用户界面,灵感来自 Vim。
use edtui::{EditorState, EditorTheme, EditorView};
use ratatui::widgets::Widget;
let mut state = EditorState::default();
EditorView::new(&mut state)
.theme(EditorTheme::default())
.render(area, buf)
功能
- 类似 Vim 的按键绑定和编辑模式,用于高效的文本操作。
- 普通、插入和视觉模式。
- 剪贴板:默认使用
arboard
剪贴板,允许在系统剪贴板和编辑器之间复制粘贴。
按键绑定
EdTUI
提供一组与 Vim 类似的按键绑定。以下是一些最常用的按键绑定
普通/视觉模式
按键绑定 | 描述 |
---|---|
i |
进入插入模式 |
v |
进入视觉模式 |
h , j , k , l |
向左、下、上、右导航 |
w , b |
按单词前进或后退 |
x |
删除光标下的字符 |
Del |
删除光标左侧的字符 |
u , <ctrl>+r |
撤销/重做最后一个操作 |
Esc |
退出插入模式或视觉模式 |
0 |
将光标移到行首 |
^ |
将光标移到第一个非空白字符 |
$ |
将光标移到行尾 |
a |
在光标后追加 |
A |
在行尾追加 |
o |
在下方添加新行并进入插入模式 |
O |
在上方添加新行并进入插入模式 |
Backspace |
删除前一个字符 |
d |
删除所选内容 |
dd |
删除当前行 |
ciw |
选择分隔符之间的内容。支持:[" ] |
u |
撤销最后一个更改 |
r |
重做最后一个撤销的操作 |
y |
复制所选文本 |
p |
粘贴复制的文本 |
插入模式
按键绑定 | 描述 |
---|---|
Esc |
返回正常模式 |
有关更多键绑定和自定义选项,请参阅代码。
演示
实验性鼠标支持
Edtui
现在包含实验性鼠标支持。要启用它,请激活此功能
[dependencies.edtui]
version = "0.7"
features = ["mouse-support"]
并使用鼠标事件处理器
let event_handler = EditorEvent::default();
event_handler.on_mouse_event(mouse_event, &mut state);
注意:此功能为实验性,因此可能存在潜在的错误和破坏性更改。
路线图
-
剪贴板
-
搜索
-
Vims
f
/t
前往第一行 -
支持 termwiz 和 termion
-
显示行号
-
重新映射键绑定
-
软换行
许可证:MIT
依赖项
~7–19MB
~270K SLoC