如同系统终端般使用ghost_terminal
up/down切换命令,鼠标右键快速粘贴,支持tab补全(如果人格支持)
键入你的人格所支持的表达式随后对其求值!
便于人格开发
ghost terminal v13.9.0.1
ghost_terminal [options]
选项:
-h, --help : 显示此帮助信息并退出。
-v, --version : shows the version number and exits.
-c, --command <command> : 运行指定的命令并退出。
-s, --sakura-script <script> : 运行指定的Sakura脚本并退出。
-g, --ghost <ghost> : 通过名字链接到指定的ghost。
-gh, --ghost-hwnd <hwnd> : 通过HWND链接到指定的ghost。
-gp, --ghost-folder-path <path> : 按文件夹路径链接到指定的ghost。
-r, --run-ghost : 如果(它/她/他/他们/其他代称)当前没有运行,则运行该ghost。
-rwt, --register-to-windows-terminal : 注册到Windows终端(需要 -g <ghost name> 或 -gp <ghost文件夹路径>)。
-rwt-name <name> : 以指定的名字注册到Windows终端(只与-rwt一起工作)。
-rwt-icon <icon> : 用指定的图标(PNG或ICO路径)注册到Windows终端(只适用于-rwt)。
--disable-text <text types>|all : 禁用一些不必要的文本(用','分割)或所有的文本。
root : 禁用当以root身份运行终端时的彩蛋文本。
event : 当你的ghost没有某些事件时,禁用警告文本。
WindowsTerminal : 禁用告诉你安装Windows终端或用-rwt(-g|-gp)运行这个exe的文本。
FiraCode : 禁用告诉你尝试Fira Code字体的文本。
例子:
ghost-terminal -g "Taromati2" -rwt --disable-text event,WindowsTerminal,FiraCode
比如:
//...
..\saori\ghost_terminal.exe -g Taromati2 -c reload
@echo on
这个脚本文件中以此命令实现了重载ghost的功能
ghost terminal可以被用于挂钩其他程序中的功能。
ghost_name 可以是Sakura(\0
)端名称,或ShioriEcho.GetName
返回的GhostName
,或descript.txt
中的ghost名称
ghost_terminal通过X-SSTP-PassThru-*
进行与人格间的信息沟通(见文档)
任何ghost_terminal的输出都将经过虚拟终端序列渲染,而不是普通的文本。
参考:虚拟终端序列
你可以使用它来控制终端的显示效果,如文字颜色、背景色、字体等。
比如Taroamti2以此输出实现清屏:
when 'cls'{
ShioriEcho.Special=CHR(27)+'[f'+CHR(27)+'[2J'
}
在以下事件中大多数事件如果ghost没有实现,terminal将使用默认行为
换言之,如果你想你的ghost支持terminal,你只需要实现ShioriEcho
事件即可
其余事件只在你想要更改默认行为或者提供更为丰富的体验时才需要进行定义
ShioriEcho.Begin
ghost_terminal对此ghost启动时事件Reference0
终端版本Reference1
终端启动方式
当terminal以-s
启动时,为SakuraScript
当terminal以-c
启动时,为Command
否则为Common
- 返值
X-SSTP-PassThru-Tittle
(可选)
设置终端标题X-SSTP-PassThru-Icon
(可选)
设置终端图标(PNG或ICO路径)X-SSTP-PassThru-SmallIcon
(可选)
设置终端小图标(PNG或ICO路径)
如果不设置,将与X-SSTP-PassThru-Icon
保持一致X-SSTP-PassThru-CustomLoginInfo
(可选) 如果设置了,终端将不显示默认的登录信息,但会显示这个的内容。
这个返回值将经过简单转义:\n
将转换为换行\t
将转变为制表符\\
将转化为\
ShioriEcho.End
ghost_terminal正常程序退出时事件- 返值
忽略,但言灵正常执行
- 返值
ShioriEcho.GetName
ghost_terminal获取名称时事件- 返值
X-SSTP-PassThru-GhostName
(可选)
显示人格名X-SSTP-PassThru-UserName
(可选)
显示用户名
- 返值
ShioriEcho
命令键入完毕后事件Reference0
终端所收集到的命令- 返值
如果你没有定义ShioriEcho.GetResult
,你可以在这里返回ShioriEcho.GetResult
所支持的任意返回值,它们同样会被terminal正确处理(除了可能返回值3,在没有定义ShioriEcho.GetResult
的情况下ShioriEcho
中什么都不返回只会进入下一个命令的获取)
若你定义了ShioriEcho.GetResult
,则这里的返回值将被忽略(但言灵正常执行)
ShioriEcho.GetResult
查询求值结果事件- 可能返值1
X-SSTP-PassThru-Result
显示内容并进入下一命令的获取X-SSTP-PassThru-Type
(可选)
补充信息:值类型
- 可能返值2
X-SSTP-PassThru-Special
显示内容并进入下一命令的获取
这个返回值将经过简单转义:\n
将转换为换行\t
将转变为制表符\\
将转化为\
- 可能返值3
- 空
等待1秒后重新发起ShioriEcho.GetResult
- 空
- 其他
X-SSTP-PassThru-State
此返值可叠加在上述返值中
若其为End
,终端终止
若其为Continue
,终端不显示任何内容并进入下一命令的获取
- 可能返值1
ShioriEcho.TabPress
命令通过tab补全时事件Reference0
终端所收集到的命令Reference1
按下tab时光标所在命令的第几个字符(起始值0)Reference2
用户连续第几次按下tab(起始值0)Reference3
这一系列tab补全中初次按下tab时光标所在命令的第几个字符(起始值0)- 返值
X-SSTP-PassThru-Command
(可选)
将命令替换为此内容X-SSTP-PassThru-InsertIndex
(可选)
将光标移动到此位置(若不提供则保持不变)X-SSTP-PassThru-OldInsertIndex
(可选)
将后续的Reference3
更新为此内容,有效性直到这一系列的tab补全结束(若不提供则保持不变)
ShioriEcho.CommandUpdate
命令更新时事件Reference0
终端所收集到的命令- 返值
X-SSTP-PassThru-CommandForDisplay
(可选)
将显示的命令替换为此内容
ghost可以通过此事件实现密码输入时的掩码、正常读入时的语法高亮、以及其他功能
ShioriEcho.CommandPrompt
命令提示符更新时事件- 返值
X-SSTP-PassThru-Prompt
(可选)
将显示的命令提示符替换为此内容
ghost可以通过此事件实现命令提示符的动态变化
- 返值
ShioriEcho.CommandComplete
用户于命令行最右端按下→
时事件Reference0
终端所收集到的命令Reference1
按下→
时光标所在命令的第几个字符(起始值0)- 返值
X-SSTP-PassThru-Command
(可选)
将命令替换为此内容
ghost可以通过此事件实现命令的自动补全X-SSTP-PassThru-InsertIndex
(可选)
将光标移动到此位置(若不提供则保持不变)
ShioriEcho.CommandHistory.New
命令历史末尾新增空命令时事件- 返值
忽略,但言灵正常执行
- 返值
ShioriEcho.CommandHistory.Update
命令历史更新时事件Reference0
历史命令的内容Reference1
历史命令的索引(倒序,起始值0)- 返值
忽略,但言灵正常执行
ShioriEcho.CommandHistory.Get
命令历史获取时事件Reference0
历史命令的索引(倒序,起始值0)- 返值
X-SSTP-PassThru-Command
(可选)
将命令替换为此内容
ShioriEcho.CommandHistory.ForwardIndex
用户按压↑
时更新索引时事件Reference0
历史命令的索引(倒序,起始值0)Reference1
index
被期望增加的值- 返值
X-SSTP-PassThru-Index
(可选)
将索引更新为此数值