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命令行工具

Download history 19/week @ 2024-03-29 3/week @ 2024-04-05 84/week @ 2024-04-12 5/week @ 2024-04-19

每月 79 次下载
用于 tuifeed

MIT 许可证

44KB
579

tui-realm-textarea

~ tui-realm 的 textarea 组件 ~

tui-textarea · tui-realm · 文档

@veeso 开发

当前版本:1.1.2 (29/08/2023)

License-MIT Repo stars Downloads counter Latest version Ko-fi

CI Docs



关于 tui-realm-textarea ✏️

tui-realm-textarea 是 tui-realm 的 textarea 组件实现。它基于 tui-textarea 组件,由 rhysd 开发。

Demo


入门 🏁

将 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 并对我的工作表示感激,请考虑进行一小笔捐赠 🥳

您可以使用以下平台之一进行捐赠

ko-fi PayPal


许可证 📃

tui-realm-textarea 采用 MIT 许可证。

您可以在这里阅读整个许可证

依赖项

~5–18MB
~247K SLoC