此API提供了向屏幕输出内容和读取用户输入的简化版方法。因此你无需手动操作GPU API实现这些功能。
term.isAvailable(): boolean
term.read
和term.write
函数能否起到实际作用。term.getViewport(): number, number, number, number, number, number
term.gpu(): table
term.pull([...]): ...
event.pull
的作用完全一致,接收同样的参数,返回同样的结果。此方法用于在等待事件结果时令光标闪烁。term.getCursor(): number, number
term.setCursor(col: number, row: number)
term.getCursorBlink(): boolean
term.setCursorBlink(enabled: boolean)
term.clear()
term.clearLine()
term.read([history: table[, dobreak:boolean[, hint:table or function[, pwchar:string]]]]): string
option
(选项)参数。其中带索引号的数组元素会被作为之前的histroy
(历史)对待,键被命名的元素取代了之前的参数。为了兼容性,OpenOS 1.6仍支持以前的用法,即参数列表。ops
参数中支持一个新键:nowrap
。现在term.read
的默认行为模式是垂直换行光标和输入。旧的行为模式是水平滚动输入,即现在的term.read({nowrap=true})
。
可选的history
表作用为提供预定义文本,这些文本可以通过上下方向键循环选择。此表必须成序列(即表中键值必须为从1开始的连续不间断的整数)。此功能的使用例为被shell和Lua解释器的命令历史功能。如果有文本输入并且被按下回车键确定,这条文本就会被加入表的末尾。
dobreak
参数在设定为false
(设定为nil
时默认为true
!)时,输入完成后(如用户按下回车键)不会换行。
hint
参数用于tab键补全。此参数可以为内容是字符串的表,或者接收两个参数并返回字符串表的函数,函数的参数为当前文本和在此文本中的位置,即回调函数的签名为 function(line:string, pos:number):table
。
pwchar
参数若给定,输入内容将会被给定字符串的第一个字符遮盖。例如,给定"*"
将会导致输入的字符显示为星号。但返回值当然还是输入的实际内容。
此函数在输入成功后会返回一个字符串,管道关闭(^d)时会返回nil
,管道中断(^c)时返回false
。
注1:io.stdin:read()
使用了此函数。
注2:此函数将会把输入的字符串与\n(换行符)一并返回。如果你只想要输入的字符串,请使用io.read()
。
term.write(value: string[, wrap: boolean])
text.detab
转换。若wrap
为true
,函数将会对文本自动换行。若光标超出了显示区域底部,则函数会自动滚动显示缓冲区。但是(当wrap
为false
时)在超出显示区域右边界时不会滚动。term.write
与io.stdout写入的是同一个流。term.bind(gpu)
gpu
代理对象(而不是地址)绑定到终端。启动过程中,在GPU与屏幕均可用后,此方法会自动调用。请注意如果手动将终端重新绑定到高度和宽度不同的屏幕,终端绘制区域将会被剪裁,不能最大化显示。此函数改变了所有终端输出使用的GPU,而不只是term API使用的,即包含io.write
、print
、io.stdout:write
以及所有使用同样输出流的函数。term.bind
可用于修改上述函数使用的gpu
。term.screen(): string
term.bind
)上调用了 getScreen
。term.keyboard(): string