26 个版本
0.7.0 | 2024年8月12日 |
---|---|
0.6.0 | 2022年1月15日 |
0.5.1 | 2021年6月10日 |
0.5.0 | 2021年3月3日 |
0.2.14 | 2019年9月11日 |
#67 in GUI
122 个月下载量
1.5MB
1.5K SLoC
欢迎使用 cursive-multiplex 👋
A tmux like multiplexer for gyscos/cursive views
此项目正在进行中
此项目为 gyscos/cursive 提供类似于 Tmux 的分格窗口管理器。您可以将任何其他 cursive
视图放置在 Mux
视图内,以在复杂的布局中并排显示这些视图。观看下面的演示以了解其外观。
外观如何? demo
展开查看
用法
简单地将以下内容添加到您的 Cargo.toml
[dependencies]
cursive-multiplex = "^0.2.0"
然后使用 Mux::new
创建一个新的 Mux 视图
let (mut mux, root_node) = cursive_multiplex::Mux::new(
cursive::views::TextView::new("Hello World!".to_string())
);
Mux 为键绑定定义了默认值。您可以使用文档中描述的 API 进行更改。
展开查看默认键绑定
操作 | 键 |
---|---|
向上移动焦点 | Alt + ↑ |
向右移动焦点 | Alt + → |
向下移动焦点 | Alt + ↓ |
向左移动焦点 | Alt + ← |
向上调整大小 | Ctrl + ↑ |
向右调整大小 | Ctrl + → |
向下调整大小 | Ctrl + ↓ |
向左调整大小 | Ctrl + ← |
缩放 | Ctrl + x |
添加视图
您可以通过为现有节点提供路径或 ID 来添加视图,例如。
let new_node = mux.add_right_of(
cursive::views::TextView::new("Foo"),
root_node,
).expect("adding right panel to root failed");
也可以通过它们的路径添加视图。
if let Some(sibbling) = mux.root().right().right().down().build() {
let new_node = mux.add_above(
cursive::views::TextView::new("Foo"),
sibbling,
).expect("adding by path failed");
}
返回的 Result Ok 包含分配给视图的新 ID,或者失败时返回错误。
删除视图
您也可以通过提供视图的 ID 来删除视图。
mux.remove_id(new_node)?;
成功时返回已删除节点的 ID。
切换视图
如果您想重新排列视图,您可以通过使用以下方法轻松切换它们:
mux.switch_views(new_node, old_node)?;
故障排除
如果您发现任何错误/意外的行为或您对未来的更改有建议,请打开一个问题,描述当前的行为和您期望的行为。
开发
运行测试
运行所有测试套件
只需运行
$ cargo test
即可执行所有可用的测试。
调查失败的测试
如果您的更改导致某些测试失败,您可以使用 cargo-insta
工具来调查测试用例。
安装
$ cargo install cargo-insta
并交互式地运行测试和调查所有失败的测试。
$ cargo insta review
然后将显示期望和接收到的屏幕之间的任何更改。
shields.io 端点
shields.io 端点在 ./target/shields
文件夹内生成。它们用于本 README。
作者
Fin Christensen
:octocat:
@fin-ger
🐘@fin_ger@weirder.earth
🐦@fin_ger_github
Johannes Wünsche
:octocat:
@jwuensche
🐘@fredowald@mastodon.social
🐦@Fredowald
显示您的支持
如果此项目对您有帮助,请给它一个 ⭐!
依赖项
~6–12MB
~135K SLoC