**This is an old revision of the document!**

Term(终端) API

此API提供了向屏幕输出内容和读取用户输入的简便方法。因此你无需再手动操作GPU API实现这些功能。

  • term.isAvailable(): boolean
    返回term API是否可用,即是否存在主GPU和屏幕。换言之,term.readterm.write函数能否起到实际作用。
  • term.getViewport(): number, number, number, number, number, number
    (OpenOS 1.6新加入) 获取宽度、高度、x偏移量、y偏移量、x相对坐标、y相对坐标。
  • term.gpu(): table
    (OpenOS 1.6新加入) 获取term API使用的GPU代理。
  • term.pull([...]): ...
    (OpenOS 1.6新加入) 与event.pull的作用完全一致,接收同样的参数,返回同样的结果。此方法用于在等待事件结果时令光标闪烁。
  • term.getCursor(): number, number
    获取光标的当前位置。
  • term.setCursor(col: number, row: number)
    将光标位置设定为给定坐标。
  • term.getCursorBlink(): boolean
    获取光标闪烁是否启用,即光标是否每隔半秒在其位置实际显示的“像素”和纯白色方块间来回变换。
  • term.setCursorBlink(enabled: boolean)
    设定光标闪烁功能是否启用。
  • term.clear()
    清空整个屏幕,并将光标位置重置为(1, 1)。
  • term.clearLine()
    清空光标所在的行,并将光标的横坐标重置为1。
  • term.read([history: table[, dobreak:boolean[, hint:table or function[, pwchar:string]]]]): string
    从终端读取一些文本,即让用户能够输入一些文本。例如,此函数被shell和Lua解释器用来读取用户输入。此函数会使当前行从光标位置算起的剩余部分变为可编辑区域。在此区域中可以输入、删除文字,还可以使用左右方向键和home/end键移动光标。
    自OpenOS 1.6起此处指定的参数列表已被废弃。The first parameter is an options argument. The indexed array values are treated as history, named keys take the place of legacy arguments. For compatibility, OpenOS 1.6 will respect the previous usage, i.e. parameter list. *The new ops parameter supports a new key, nowrap. The default behavior of term.read wrap the cursor and input vertically. Legacy behavior scrolled the input horizontally, i.e. term.read({nowrap=true}) The optional history table can be used to provide predefined text that can be cycled through via the up and down arrow keys. It must be a sequence (i.e. the keys must be a gap-less integral interval starting at 1). This is used for the command history in shell and Lua interpreter, for example. If text is entered and confirmed with enter, it will be added to the end of this table.
    The dobreak parameter, when set to false (nil defaults to true!) will not enter a new line after input was completed (e.g. by the user pressing enter).
    The hint parameter is used for tab completion. It can either be a table with strings or a function that returns a table of strings and takes two parameters, the current text and the position in that text, i.e. the signature of the callback is function(line:string, pos:number):table.
    The pwchar parameter, when given, causes input to be masked using the first char of the given string. For example, providing "*" will make all entered characters appear as stars. The returned value will still be the actual text inserted, of course.
    The function will return a string if input was successful, nil if the pipe was closed (^d), or false if the pipe was interrupted (^c) Note: io.stdin:read() uses this function.
    Note 2: This will return the entered string with the \n (new line character). If you want only the entered string to be returned, use io.read(). - term.write(value: string[, wrap: boolean])
    Allows writing optionally wrapped text to the terminal starting at the current cursor position, updating the cursor accordingly. It automatically converts tab characters to spaces using text.detab. If wrap is true, it will automatically word-wrap the text. It will scroll the displayed buffer if the cursor exceeds the bottom of the display area, but not if it exceeds the right of the display area (when wrap is false).
    Note: This method respects io redirection. That is to say, term.write writes to the same stream as io.stdout - term.bind(gpu) (new in OpenOS 1.6)
    Binds a gpu proxy (not address) to the terminal. This method is called automatically during boot when the gpu and screen become available. Note that if manually rebinding a terminal to a screen with different width and height, the terminal draw area will be truncated and not maximized. This changes the gpu used in all terminal output, not just via the term api, i.e. io.write, print, io.stdout:write, etc all use the same output stream, and term.bind is used to change the gpu used. - term.screen(): string
    (new in OpenOS 1.6)
    Convenience method, simply calls getScreen on the terminal's bound gpu (see term.bind) - term.keyboard(): string
    (new in OpenOS 1.6)
    Gets the address of the keyboard the terminal is accepting key events from. 目录 ———–