#input #forms #simulating #think #mainframe #emulation #user

mfform-lib

一个简单的库,用于模拟主框架输入表单,类似于3270。

2个不稳定版本

0.4.0 2024年7月12日
0.3.0 2024年7月12日

#446 in 命令行界面


用于 mfform

MIT 协议

62KB
1.5K SLoC

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

mfform

一个简单的输入表单,用于模拟主框架输入表单,类似于3270。
查看演示 · 报告错误 · 请求功能

目录
  1. 关于项目
  2. 入门
  3. 使用方法
  4. 路线图
  5. 贡献
  6. 许可协议
  7. 联系方式
  8. 致谢

关于项目

Product Name Screen Shot

mfframe 是我创建的一个小工具,用于收集用户数据。我最近一直在玩 Hercules,主框架仿真器,以及长期对它们的喜爱。所以,我做了任何人都会做的事情,我创建了一个小工具,向用户提供一个类似3270的对话框来请求输入。

(返回顶部)

构建工具

  • Rust
  • Crossterm
  • nom

(返回顶部)

入门

首先创建一个 screen.mfform 文件,包含所需的输入(见下文),然后通过调用 mfform 运行程序。

先决条件

目前你需要 rust 编译器

  • rustup
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    

安装

cargo install --git https://github.com/thorhs/mfform

(返回顶部)

使用方法

配置文件

以下是一个示例配置文件

LABEL 8 2 USER ===>
LABEL 4 4 PASSWORD ===>
LABEL 6 6 NUMBER ===>
LABEL 5 8 DEFAULT ===>

INPUT    18 2 8 username
PASSWORD 18 4 8 password
NUMBER   18 6 8 number
INPUT    18 8 8 default awesome!

SELECT username id1 First!
SELECT username id2 Second
SELECT username id3 Third
SELECT username id4 Fourth

标签行由标签关键字、标签的 x,y 坐标和值组成。y 坐标之后的所有内容都用作文本,不需要引号。

输入行以相同的 x,y 坐标开始,后面跟输入字段长度和字段名。字段名后面可以跟一个可选的默认值。

密码行与输入行类似,但输入值在屏幕上被隐藏。请注意,该值将在程序输出中为纯文本。

数字行与输入行类似,但只接受数字。

选择行包含字段名、项目 ID 和项目文本。这可以为特定输入字段启用 F4 功能,并将 ID/text 组合添加为可能的选中项。

使用此工具

一旦 mfform 运行,以下键盘快捷键可用

  • Enter - 提交输入表单,程序将以 name=value 格式打印字段值并退出。
  • Esc - 取消输入表单,不会写入 stdout,程序退出。
  • F4 - 对于具有 SELECT 的输入字段,将触发一个弹出表单,允许用户选择一个项目作为值。
  • Tab/Shift+Tab - 前一个/下一个输入字段。
  • 箭头键 - 在屏幕上移动。
  • Backspace - 当在输入字段上时,将删除前一个字符并将剩余内容向左移动。
  • Del - 当在输入字段上时,将删除当前字符并将剩余内容向左移动。
  • Ctrl-D - 将启用表单下方的调试输出,对于最终用户来说并不太有用。
  • Ctrl-C - 应始终取消表单并干净地退出到 shell。
  • 任何其他字符 - 在输入字段中时,将覆盖当前字符。目前尚无插入功能。应支持任何 Unicode。

(返回顶部)

路线图

  • 插入功能
  • 可能是 LUA 或其他嵌入式脚本来填充 SELECT。

请参阅开放问题,获取完整的功能提议(和已知问题)列表。

(返回顶部)

贡献

贡献是开源社区成为学习、灵感和创造美妙场所的原因。您所做的任何贡献都将被强烈赞赏。

如果您有改进这个项目的建议,请分叉存储库并创建一个 pull request。您也可以简单地通过标签 "enhancement" 打开一个问题。别忘了给项目加星!再次感谢!

  1. 分叉项目
  2. 创建您的功能分支(git checkout -b feature/AmazingFeature
  3. 提交您的更改(git commit -m 'Add some AmazingFeature'
  4. 推送到分支(git push origin feature/AmazingFeature
  5. 打开 pull request

(返回顶部)

许可协议

在 MIT 许可证下分发。有关更多信息,请参阅 LICENSE.txt

(返回顶部)

联系方式

您的姓名 - @thorhs - [email protected]

项目链接: https://github.com/thorhs/mfform

(返回顶部)

致谢

(返回顶部)

依赖关系

~2.8–9MB
~74K SLoC