命令行
文档编写中
部分内容可能尚不完整。
ThinkTerm 在 shell 里做的一切都通过一个可执行文件 thinkterm 完成。
thinkterm --help子命令
| 命令 | 作用 |
|---|---|
start | 启动 GUI,可选择运行另一个程序。别名 -e |
tui [DOMAIN…] | 在当前终端里打开 ThinkTerm 界面 |
connect <name> | 连接到一个 ThinkTerm 多路复用器 |
ssh | 建立 SSH 会话 |
serial | 打开串口 |
cli <subcommand> | 与运行中的多路复用服务端交互 |
imgcat <file> | 把图片输出到终端 |
ls-fonts | 显示当前使用的字体信息 |
show-keys | 显示当前的按键绑定 |
set-working-directory | 告知终端当前工作目录,用于 shell 集成 |
record | 把终端会话录制为 asciicast |
replay | 回放 asciicast |
shell-completion | 输出 bash、zsh、fish、elvish 或 PowerShell 的补全脚本 |
与运行中的多路复用器通信
thinkterm cli 面向的是一个已经在运行的服务端 —— 你 GUI 窗口背后的那个,或者一个后台 mux 服务端。由于多路复用器能寻址任意窗口、Thread 和已连接客户端中的任意 pane,这些命令可以够到你当前并没有在看的会话。
查询
| 命令 | 作用 |
|---|---|
list | 列出窗口、标签和 pane |
list-clients | 列出已连接的客户端 |
get-pane-direction | 报告某个方向上的 pane |
创建与销毁
| 命令 | 作用 |
|---|---|
spawn | 新建标签或窗口 |
split-pane | 分割已有的 pane |
move-pane-to-new-tab | 把一个 pane 移出为独立标签 |
kill-pane | 关闭一个 pane |
移动与调整大小
| 命令 | 作用 |
|---|---|
activate-pane | 聚焦某个 pane |
activate-pane-direction | 聚焦某个方向上的 pane |
activate-tab | 聚焦某个标签 |
adjust-pane-size | 调整 pane 大小 |
zoom-pane | 把 pane 放大到填满其标签 |
文本进出
| 命令 | 作用 |
|---|---|
send-text | 向某个 pane 写入文本,效果等同于键入 |
get-text | 读取某个 pane 屏幕上当前的文本 |
命名与基础设施
| 命令 | 作用 |
|---|---|
set-tab-title | 重命名标签 |
set-window-title | 重命名窗口 |
rename-workspace | 重命名工作区 |
agent | 查询 agent 状态。目前只读 |
tlscreds | 获取 TLS 凭据 |
proxy | 启动 RPC 代理管道 |
产生列表的命令可以选择以表格或 JSON 输出。
两个 pane 里的程序可以互相通信
send-text 和 get-text 就足以让一个程序驱动另一个,两边都不需要任何改动:
程序 A ──send-text──► 程序 B 的终端输入
B 完成工作并打印回应
程序 A ◄──get-text─── 读回结果任何交互式程序都能参与 —— 编码助手、shell 脚本、REPL。接口就是 pane 本身,所以不需要为此专门实现什么。
目前这个交换是靠注入终端输入完成的,这意味着没有消息身份、没有结构化回应,完成与否只能靠轮询。更结构化的协议正在设计中。
