3 个不稳定版本
0.2.0 | 2021年4月13日 |
---|---|
0.1.1 | 2021年4月8日 |
0.1.0 | 2021年4月8日 |
243 在 文本编辑器 中
41KB
1K SLoC
Mini-Me
基于 crossterm
的可嵌入、可自定义的行内文本编辑器。
╭─── Input Prompt
1 │ hello there
2 │ this is a simple prompt
3 │ thats multiline and decent enough
4 ┃ _
╰─── Lines: 4 Chars: 70 Ln: 3, Col: 0
特性
- 简单、直观、可嵌入。
- 可自定义页眉、页脚和或边距。
- 预设样式不稳定。
- 范围选择。
- (不稳定) 支持剪贴板。
二进制安装
minime
可以用作 CLI。安装它的最佳方式是使用
cargo install --features=bin --path .
可以通过调用 minime -h
来使用二进制。
默认控制
- 箭头键按预期工作。
- Home、End、Delete、Tab 和 backtab 与 VSCode 的行为相同。
- Shift-arrow 键创建选择范围。
- 在最后一行空行上按
Esc
或Enter
以关闭和提交提示。 - Control-X/C/V 剪贴板支持不稳定。
使用方法
基本设置
这是最基本的可用的设置。
use minime::{editor::keybindings::NormalKeybinding, editor::Editor, Result};
fn main() -> Result<()> {
println!("Write something cool!");
let term = Editor::default();
dbg!(term.read(NormalKeybinding))?;
Ok(())
}
高级
您可以将 stdout()
或 stderr()
锁定以获得更好的性能。您还可以在渲染器中自定义几个设置。
use minime::{
editor::{keybindings::NormalKeybinding, Editor},
renderer::{
full::CrosstermRenderer,
styles::classic::{ClassicFooter, ClassicGutter, ClassicHeader},
},
Result,
};
fn main() -> Result<()> {
// Redirect our output to stdout (default).
let stdout = std::io::stdout();
let mut lock = stdout.lock();
let renderer = CrosstermRenderer::render_to(&mut lock)
.max_height(Some(10))
.margin(ClassicGutter)
.header(ClassicHeader(
"Enter on the last line or Esc to submit your input!",
))
.footer(ClassicFooter);
// Print out some prompt using styling options.
let term = Editor::with_renderer(renderer);
dbg!(term.read(NormalKeybinding)?);
Ok(())
}
依赖项
~2.4–4.5MB
~84K SLoC