基于 linenoise 而设计的带有历史记录的纯 Go 行编辑器
Liner 是一个带有历史记录的命令行编辑器,它受到 linenoise 的启发;一切 Unix 类似的东西都是 VT100 (或者非常努力地想成为 VT100)。如果您的终端不是假装成 VT100,请更改它。Liner 还支持 Windows。 Liner 专门用于跨平台应用程序。因此,我们决定用纯 Go 编写它,避免使用 cgo,以便于跨平台编译。此外,某些平台上支持的功能已故意省略。例如,Ctrl-Z 在 Unix 上是"暂停",而在 Windows 上是"EOF"。为了使应用程序在每个支持的平台上都具有相同的行为, Liner 会忽略 Ctrl-Z。
Liner 遵循 X11 许可证 (与新的 BSD 许可证类似) 发布。
| 按键操作 | 操作 |
|---|---|
| Ctrl-A, Home | 将 Cursor 移动到行首 |
| Ctrl-E, End | 将 Cursor 移动到行尾 |
| Ctrl-B, Left | 将 Cursor 向左移动一个字符 |
| Ctrl-F, Right | 将 Cursor 向右移动一个字符 |
| Ctrl-Left, Alt-B | 将 Cursor 移动到上一个单词 |
| Ctrl-Right, Alt-F | 将 Cursor 移动到下一个单词 |
| Ctrl-D, Del | (如果行不为空) 删除 Cursor 后的字符 |
| Ctrl-D | (如果行为空) 文件结尾 - 通常退出应用程序 |
| Ctrl-C | 重置输入 (创建新的空提示符) |
| Ctrl-L | 清屏 (行未修改) |
| Ctrl-T | 交换前一个字符与当前字符 |
| Ctrl-H, BackSpace | 删除 Cursor 前的字符 |
| Ctrl-W, Alt-BackSpace | 删除 Cursor 前的单词 |
| Alt-D | 删除 Cursor 后的单词 |
| Ctrl-K | 从 Cursor 到行尾删除内容 |
| Ctrl-U | 从行首到 Cursor 删除内容 |
| Ctrl-P, Up | 从历史记录中查找上一个匹配项 |
| Ctrl-N, Down | 从历史记录中查找下一个匹配项 |
| Ctrl-R | 反向搜索历史记录 (Ctrl-S 向前搜索, Ctrl-G 取消) |
| Ctrl-Y | 粘贴从 Yank 缓冲区 (Alt-Y 粘贴下一个 Yank 代替) |
| Tab | 下一个补全 |
| Shift-Tab | (在 Tab 后) 上一个补全 |
请注意, "上一条" 和 "历史中的下一条" 会保留用户已输入的部分内容,
暂无开放 Issues,或尚未同步最近议题。