<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ocr.michiyo.me/w/index.php?action=history&amp;feed=atom&amp;title=API%2Fterm%2Fzh</id>
	<title>API/term/zh - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ocr.michiyo.me/w/index.php?action=history&amp;feed=atom&amp;title=API%2Fterm%2Fzh"/>
	<link rel="alternate" type="text/html" href="https://ocr.michiyo.me/w/index.php?title=API/term/zh&amp;action=history"/>
	<updated>2026-08-24T15:14:39Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://ocr.michiyo.me/w/index.php?title=API/term/zh&amp;diff=1051&amp;oldid=prev</id>
		<title>imported&gt;OCDoc Import: Imported from legacy OpenComputers documentation at ocdoc.cil.li</title>
		<link rel="alternate" type="text/html" href="https://ocr.michiyo.me/w/index.php?title=API/term/zh&amp;diff=1051&amp;oldid=prev"/>
		<updated>2026-08-24T08:08:27Z</updated>

		<summary type="html">&lt;p&gt;Imported from legacy OpenComputers documentation at ocdoc.cil.li&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Term(终端) API =&lt;br /&gt;
&lt;br /&gt;
此API提供了向屏幕输出内容和读取用户输入的简化版方法。因此你无需手动操作GPU API实现这些功能。&lt;br /&gt;
&lt;br /&gt;
* `term.isAvailable(): boolean`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;返回term API是否可用，即是否存在首选GPU和屏幕。换言之，`term.read`和`term.write`函数能否起到实际作用。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `term.getViewport(): number, number, number, number, number, number` （OpenOS 1.6新加入）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;获取可视区域的宽度、高度、x偏移量、y偏移量、x相对坐标、y相对坐标。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `term.gpu(): table` （OpenOS 1.6新加入）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;获取term API所使用GPU的代理对象。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `term.pull([...]): ...` （OpenOS 1.6新加入）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;与`event.pull`的作用完全一致，接收同样的参数，返回同样的结果。此方法用于在等待事件结果时令光标闪烁。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `term.getCursor(): number, number`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;获取光标的当前位置。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `term.setCursor(col: number, row: number)`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;将光标位置设定为给定坐标。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `term.getCursorBlink(): boolean`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;获取光标闪烁功能是否启用，即光标是否每隔半秒在其位置实际显示的&amp;quot;像素&amp;quot;和纯白色方块间来回变换。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `term.setCursorBlink(enabled: boolean)`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;设定光标闪烁功能是否启用。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `term.clear()`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;清空整个屏幕，并将光标位置重置为(1, 1)。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `term.clearLine()`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;清空光标所在的行，并将光标的横坐标重置为1。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `term.read([history: table[, dobreak:boolean[, hint:table or function[, pwchar:string]]]]): string`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;从终端读取一些文本，即让用户能够输入一些文本。例如，shell和Lua解释器用此函数来读取用户输入。  &lt;br /&gt;
此函数会使当前行从光标位置算起的剩余部分变为可编辑区域。在此区域中可以输入、删除文字，还可以使用左右方向键和home/end键移动光标。  &lt;br /&gt;
***自OpenOS 1.6起，此处指定的参数列表已被废弃。**第一个参数为`option`（选项）参数。其中带索引号的数组元素会被作为之前的`histroy`（历史）对待，键被命名的元素取代了之前的参数。为了兼容性，OpenOS 1.6仍支持以前的用法，即参数列表。&lt;br /&gt;
*新`ops`参数中支持一个新键：`nowrap`。现在`term.read`的默认行为模式是垂直换行光标和输入。旧的行为模式是水平滚动输入，即现在的`term.read({nowrap=true})`。  \\&lt;br /&gt;
可选的`history`表作用为提供预定义文本，这些文本可以通过上下方向键循环选择。此表必须成序列（即表中键值必须为从1开始的连续不间断的整数）。此功能的使用例为被shell和Lua解释器的命令历史功能。如果有文本输入并且被按下回车键确定，这条文本就会被加入表的末尾。  &lt;br /&gt;
`dobreak` 参数在设定为`false`（**设定为`nil`时默认为`true`！**）时，输入完成后（如用户按下回车键）不会换行。  &lt;br /&gt;
`hint`参数用于tab键补全。此参数可以为内容是字符串的表，或者接收两个参数并返回字符串表的函数，函数的参数为当前文本和在此文本中的位置，即回调函数的签名为 `function(line:string, pos:number):table`。  &lt;br /&gt;
`pwchar`参数若给定，输入内容将会被给定字符串的第一个字符遮盖。例如，给定`&amp;quot;*&amp;quot;`将会导致输入的字符显示为星号。但返回值当然还是输入的实际内容。   &lt;br /&gt;
此函数在输入成功后会返回一个字符串，管道关闭（^d）时会返回`nil`，管道中断（^c）时返回`false`。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;注1：&amp;#039;&amp;#039;&amp;#039;`io.stdin:read()` 使用了此函数。&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;注2：&amp;#039;&amp;#039;&amp;#039;此函数将会把输入的字符串与\n（换行符）一并返回。如果你只想要输入的字符串，请使用`io.read()`。&lt;br /&gt;
* `term.write(value: string[, wrap: boolean])`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;用于将文本输出到终端上，从光标的当前位置起始，可选是否自动换行，输出时同步更新光标位置。  &lt;br /&gt;
此函数会自动将tab字符用`text.detab`转换。若`wrap`为`true`，函数将会对文本自动换行。若光标超出了显示区域底部，则函数会自动滚动显示缓冲区。但是（当`wrap`为`false`时）在超出显示区域右边界时**不会**滚动。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;注：&amp;#039;&amp;#039;&amp;#039;此方法遵循io重定义。即`term.write`与io.stdout写入的是同一个流。&lt;br /&gt;
* `term.bind(gpu)` （OpenOS 1.6新加入) ）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;将某个`gpu`代理对象（而不是地址）绑定到终端。启动过程中，在GPU与屏幕均可用后，此方法会自动调用。请注意如果手动将终端重新绑定到高度和宽度不同的屏幕，终端绘制区域将会被剪裁，不能最大化显示。此函数改变了所有终端输出使用的GPU，而不只是term API使用的，即包含`io.write`、`print`、`io.stdout:write`以及所有使用同样输出流的函数。`term.bind`可用于修改上述函数使用的`gpu`。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `term.screen(): string` （OpenOS 1.6新加入）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;为了便利而引入的方法，仅仅是在终端绑定的GPU（参见`term.bind`）上调用了 `getScreen`。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `term.keyboard(): string` （OpenOS 1.6新加入）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;获取终端用于接收按键事件的键盘地址。&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== 目录 ==&lt;br /&gt;
&lt;br /&gt;
{{:API/contents/zh}}&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;OCDoc Import</name></author>
	</entry>
</feed>