#editor #tui #text #ratatui #vim #text-editing

edtui

基于 TUI 的、受 Vim 启发的编辑器

12 个版本 (4 个破坏性更新)

0.7.2 2024 年 8 月 17 日
0.6.0 2024 年 8 月 17 日
0.5.0 2024 年 6 月 29 日
0.3.3 2024 年 3 月 1 日
0.1.0 2023 年 11 月 28 日

#85 in 文本编辑器

Download history 166/week @ 2024-05-04 1/week @ 2024-05-11 8/week @ 2024-05-18 1/week @ 2024-05-25 134/week @ 2024-06-22 248/week @ 2024-06-29 3/week @ 2024-07-06 115/week @ 2024-08-10 393/week @ 2024-08-17

508 每月下载量
用于 wireman

MIT 许可证

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