4 个稳定版本
| 1.1.2 | 2023 年 8 月 29 日 | 
|---|---|
| 1.1.1 | 2022 年 10 月 17 日 | 
| 1.1.0 | 2022 年 8 月 2 日 | 
| 1.0.0 | 2022 年 6 月 23 日 | 
#2659 在 命令行工具 中
每月 79 次下载
用于 tuifeed
44KB
579 行
tui-realm-textarea
~ tui-realm 的 textarea 组件 ~
tui-textarea · tui-realm · 文档
由 @veeso 开发
当前版本:1.1.2 (29/08/2023)
关于 tui-realm-textarea ✏️
tui-realm-textarea 是 tui-realm 的 textarea 组件实现。它基于 tui-textarea 组件,由 rhysd 开发。

入门 🏁
将 tui-realm-textarea 添加到您的 Cargo.toml 🦀
tui-realm-textarea = "^1.1.0"
如果不使用 Crossterm,则按 tui-realm 的方式定义后端
tui-realm-textarea = { version = "^1.1.0", default-features = false, features = [ "with-termion" ] }
功能 ⚙️
这些功能可以在 tui-realm-textarea 中启用
- clipboard启用系统剪贴板支持
- search启用 textarea 中的字符串搜索
示例 📋
在 示例 中查看如何使用 textarea 组件。示例包含一个简单的文本编辑器。
cargo run --example demo --features clipboard,search
按 ESC 退出
组件 API
命令:
| Cmd | 结果 | 行为 | 
|---|---|---|
| 自定义($TEXTAREA_CMD_NEWLINE) | None | 插入换行 | 
| 自定义($TEXTAREA_CMD_DEL_LINE_BY_END) | None | 从末尾到当前位置删除行 | 
| 自定义($TEXTAREA_CMD_DEL_LINE_BY_HEAD) | None | 从开头到当前位置删除行 | 
| 自定义($TEXTAREA_CMD_DEL_WORD) | None | 删除当前单词 | 
| 自定义($TEXTAREA_CMD_DEL_NEXT_WORD) | None | 删除下一个单词 | 
| 自定义($TEXTAREA_CMD_MOVE_WORD_FORWARD) | None | 移动到下一个单词 | 
| 自定义($TEXTAREA_CMD_MOVE_WORD_BACK) | None | 移动到上一个单词 | 
| 自定义($TEXTAREA_CMD_MOVE_PARAGRAPH_BACK) | None | 移动到上一个段落 | 
| 自定义($TEXTAREA_CMD_MOVE_PARAGRAPH_FORWARD) | None | 移动到下一个段落 | 
| 自定义($TEXTAREA_CMD_MOVE_TOP) | None | 移动到文件开头 | 
| 自定义($TEXTAREA_CMD_MOVE_BOTTOM) | None | 移动到文件末尾 | 
| 自定义($TEXTAREA_CMD_UNDO) | None | 撤销上一个更改 | 
| 自定义($TEXTAREA_CMD_REDO) | None | 重做上一个更改 | 
| 自定义($TEXTAREA_CMD_PASTE) | None | 粘贴缓冲区当前内容 | 
| 自定义($TEXTAREA_CMD_SEARCH_BACK) | None | 转到上一个搜索匹配项 | 
| 自定义($TEXTAREA_CMD_SEARCH_FORWARD) | None | 转到下一个搜索匹配项 | 
| 取消 | None | 删除下一个字符 | 
| 删除 | None | 删除上一个字符 | 
| 转到(开始) | None | 转到行首 | 
| 转到(结束) | None | 转到行尾 | 
| 移动(向下) | None | 移动到下一行 | 
| 移动(向上) | None | 移动到上一行 | 
| 移动(向左) | None | 将光标移动到左边 | 
| 移动(向右) | None | 将光标移动到右边 | 
| 滚动(向上) | None | 向上滚动 scroll_step 行 | 
| 滚动(向下) | None | 向下滚动 scroll_step 行 | 
| 输入(ch) | None | 在编辑器中输入一个字符 | 
| 提交 | 提交 | 获取当前行 | 
❗ 仅当启用
clipboard功能时才支持粘贴命令
状态:返回的状态是一个包含文本区域中行数的 Vec(String)。
属性:
- Borders(Borders):设置组件的边框属性
- Custom($TREE_IDENT_SIZE, Size):设置渲染每个深度级别的空间
- Custom($TEXTAREA_MAX_HISTORY, Payload(One(Usize))):设置要记录的历史步骤
- Custom($TEXTAREA_CURSOR_STYLE, Style):设置光标样式
- Custom($TEXTAREA_CURSOR_LINE_STYLE, Style):设置当前行样式
- Custom($TEXTAREA_FOOTER_FMT, Payload(Tup2(Str, Style))):设置底部栏的格式和样式
- Custom($TEXTAREA_LINE_NUMBER_STYLE, Style):设置行号的样式
- Custom($TEXTAREA_STATUS_FMT, Payload(Tup2(Str, Style))):设置状态栏的格式和样式
- Custom($TEXTAREA_SEARCH_PATTERN, String:设置搜索模式
- Custom($TEXTAREA_SEARCH_STYLE, Style:设置搜索样式
- Style(Style):设置 textarea 的一般样式
- Custom($TEXTAREA_TAB_SIZE, Size):设置要显示的制表符大小
- FocusStyle(Style):非活动样式
- ScrollStep(Length):定义可滚动的最大行数
- 标题(标题):设置框标题
页脚和状态格式
状态栏和页脚栏支持特殊语法。以下键可以插入到字符串中
- {ROW}:当前行
- {COL}:当前列
文档 📚
开发者文档可在Rust Docs上找到:https://docs.rs/tui-realm-textarea
贡献和问题 🤝🏻
欢迎贡献、错误报告、新功能和提问!😉 如果您有任何问题或疑虑,或者想建议一个新功能,或者只是想改进 tui-realm,请随意打开一个 issue 或 PR。
请遵循我们的贡献指南
变更日志 ⏳
查看 tui-realm-textarea 的变更日志这里
支持开发者 ☕
如果您喜欢 tui-realm 并对我的工作表示感激,请考虑进行一小笔捐赠 🥳
您可以使用以下平台之一进行捐赠
许可证 📃
tui-realm-textarea 采用 MIT 许可证。
您可以在这里阅读整个许可证
依赖项
~5–18MB
~247K SLoC