- 断言测试
- 异步上下文跟踪
- 异步钩子
- 缓冲(Buffer)
- C++ 插件
- 使用 Node-API 的 C/C++ 插件
- C++ 嵌入 Node环境
- 子进程(Child processes)
- 集群(Cluster)
- 命令行选项
- 控制台(Console)
- 核心包(Corepack)
- 加密(Crypto)
- 调试器(Debugger)
- 已弃用的 API
- 诊断通道(Diagnostics Channel)
- 域名系统(DNS)
- 域(Domain)
- 错误(Errors)
- 事件(Events)
- 文件系统(File system)
- 全局变量(Globals)
- HTTP
- HTTP/2
- HTTPS
- 检查器(Inspector)
- 国际化
- 模块:CommonJS 模块
- 模块:ECMAScript 模块
- 模块:
node:module
API - 模块:packages 模块
- 网络(Net)
- 系统(OS)
- 路径(Path)
- 性能挂钩(Performance hooks)
- 性能挂钩(Permissions)
- 进程(Process)
- Punycode 国际化域名编码
- 查询字符串(Query strings)
- 命令行库(Readline)
- REPL 交互式编程环境
- 诊断报告
- 单个可执行应用程序
- Stream 流
- 字符串解码器
- 单元测试
- 定时器(Timers)
- 传输层安全/SSL
- 跟踪事件
- TTY
- UDP/数据报
- URL
- 实用程序
- V8
- 虚拟机
- WebAssembly
- Web加密 API(Web Crypto API)
- 网络流 API(Web Streams API)
- 工作线程(Worker threads)
- zlib
Node.js v18.18.2 文档
- Node.js v18.18.2
-
►
目录
- TTY
- 类:
tty.ReadStream
- 类:
tty.WriteStream
- 事件:
'resize'
writeStream.clearLine(dir[, callback])
writeStream.clearScreenDown([callback])
writeStream.columns
writeStream.cursorTo(x[, y][, callback])
writeStream.getColorDepth([env])
writeStream.getWindowSize()
writeStream.hasColors([count][, env])
writeStream.isTTY
writeStream.moveCursor(dx, dy[, callback])
writeStream.rows
- 事件:
tty.isatty(fd)
- 类:
- TTY
-
►
索引
- 断言测试
- 异步上下文跟踪
- Async hooks
- Buffer
- C++ addons
- C/C++ addons with Node-API
- C++ embedder API
- Child processes
- Cluster
- Command-line options
- Console
- Corepack
- Crypto
- Debugger
- Deprecated APIs
- Diagnostics Channel
- DNS
- Domain
- Errors
- Events
- File system
- Globals
- HTTP
- HTTP/2
- HTTPS
- Inspector
- Internationalization
- Modules: CommonJS modules
- Modules: ECMAScript modules
- Modules:
node:module
API - Modules: Packages
- Net
- 系统(OS)
- 路径(Path)
- Performance hooks
- Permissions
- 进程(Process)
- Punycode
- Query strings
- 命令行库(Readline)
- REPL 交互式编程环境
- Report
- Single executable applications
- Stream
- String decoder
- Test runner
- Timers
- TLS/SSL
- Trace events
- TTY
- UDP/datagram
- URL
- Utilities
- V8
- VM
- WASI
- Web Crypto API
- Web Streams API
- Worker threads
- Zlib
- ► 其他版本
- ► 选项
目录
- TTY
- 类:
tty.ReadStream
- 类:
tty.WriteStream
- 事件:
'resize'
writeStream.clearLine(dir[, callback])
writeStream.clearScreenDown([callback])
writeStream.columns
writeStream.cursorTo(x[, y][, callback])
writeStream.getColorDepth([env])
writeStream.getWindowSize()
writeStream.hasColors([count][, env])
writeStream.isTTY
writeStream.moveCursor(dx, dy[, callback])
writeStream.rows
- 事件:
tty.isatty(fd)
- 类:
TTY#
源代码: lib/tty.js
node:tty
模块提供了tty.ReadStream
和tty.WriteStream
类。在大多数情况下,没有必要也不可能直接使用该模块。但是,可以使用以下方式访问它:
const tty = require('node:tty');
当 Node.js 检测到它正在连接文本终端(“TTY”)时运行时,默认情况下, process.stdin
将被初始化为tty.ReadStream
的实例,
并且默认情况下,process.stdout
和process.stderr
将是tty.WriteStream
的实例。确定 Node.js 是否在 TTY 上下文中运行的首选方法是检查process.stdout.isTTY
属性的值是否为true
:
$ node -p -e "Boolean(process.stdout.isTTY)"
true
$ node -p -e "Boolean(process.stdout.isTTY)" | cat
false
在大多数情况下,应用程序几乎没有理由手动创建tty.ReadStream
和tty.WriteStream
类的实例。
类:tty.ReadStream
#
- 扩展:<net.Socket>
代表 TTY 的可读端。在正常情况下,
process.stdin
将是 Node.js 进程中唯一的tty.ReadStream
实例,并且没有理由创建其他实例。
readStream.isRaw
#
如果TTY当前配置为作为原始设备运行,则boolean
为true
。
当进程启动时,即使终端在原始模式下运行,此标志始终为false
。它的值将随着对setRawMode
的后续调用而改变
。
readStream.isTTY
#
对于tty.ReadStream
实例,boolean
始终为true
。
readStream.setRawMode(mode)
#
mode
<boolean>如果为true
,则将tty.ReadStream
配置为作为原始设备运行。如果是false
,则将tty.ReadStream
配置为在默认模式下运行。readStream.isRaw
属性将设置为结果模式。- 返回:<this>读取流实例。
允许配置tty.ReadStream
,使其作为原始设备运行。
在原始模式下,输入始终是逐个字符可用的,不包括修饰符。此外,终端对字符的所有特殊处理都被禁用,包括回显输入字符。在此模式下,Ctrl+C将不再导致SIGINT
。
类:tty.WriteStream
#
- 扩展:<net.Socket>
代表 TTY 的可写端。在正常情况下,
process.stdout
和process.stderr
将是为 Node.js 进程创建的唯一
tty.WriteStream
实例,并且没有理由创建其他实例。
事件:'resize'
#
只要 writeStream.columns
或 writeStream.rows
属性发生更改,就会发出 'resize'
事件。调用时不会将任何参数传递给侦听器回调。
process.stdout.on('resize', () => {
console.log('screen size has changed!');
console.log(`${process.stdout.columns}x${process.stdout.rows}`);
});
writeStream.clearLine(dir[, callback])
#
dir
<数字>-1
:光标左侧1
:光标右侧0
:整行
callback
<Function>操作完成后调用。- 返回:<boolean>
false
如果流希望调用代码在继续写入其他数据之前等待发出'drain'
事件;否则true
。
writeStream.clearLine()
按dir
标识的方向清除此 WriteStream
的当前行。
writeStream.clearScreenDown([callback])
#
callback
<Function>操作完成后调用。- 返回:<boolean>
false
如果流希望调用代码在继续写入其他数据之前等待发出'drain'
事件;否则true
。
writeStream.clearScreenDown()
从当前光标处向下清除此WriteStream
。
writeStream.columns
#
number
指定 TTY 当前拥有的列数。每当发出'resize'
事件时,此属性都会更新。
writeStream.cursorTo(x[, y][, callback])
#
x
<数字>y
<数字>callback
<Function>操作完成后调用。- 返回:<boolean>
false
如果流希望调用代码在继续写入其他数据之前等待'drain'
事件发出;否则true
。
writeStream.cursorTo()
将此WriteStream
的光标移动到指定位置。
writeStream.getColorDepth([env])
#
返回:
1
2 个,4
16,8
为 256,24
支持 16,777,216 种颜色。
用它来确定终端支持什么颜色。由于终端颜色的性质,可能会出现误报或漏报。它取决于进程信息和可能决定使用哪个终端的环境变量。可以传入env
对象来模拟特定终端的使用。这对于检查特定环境设置的行为非常有用。
要强制实施特定颜色支持,请使用以下环境设置之一。
- 2 种颜色:
FORCE_COLOR = 0
(禁用颜色) - 16 种颜色:
FORCE_COLOR = 1
- 256 种颜色:
FORCE_COLOR = 2
- 16,777,216 种颜色:
FORCE_COLOR = 3
还可以使用NO_COLOR
和
NODE_DISABLE_COLORS
环境变量来禁用颜色支持。
writeStream.getWindowSize()
#
- 返回:<数字[]>
writeStream.getWindowSize()
返回与此WriteStream
对应的 TTY 的大小。该数组的类型为
[numColumns, numRows]
,其中numColumns
和numRows
表示相应 TTY 中的列数和行数。
writeStream.hasColors([count][, env])
#
count
<整数>请求的颜色数量(最少 2)。 默认值: 16。env
<Object>包含要检查的环境变量的对象。这使得能够模拟特定终端的使用。默认值:process.env
。- 返回:<布尔值>
如果writeStream
支持的颜色至少与count
中提供的颜色一样多,则返回 true
。最小支持度为 2(黑色和白色)。
这具有与writeStream.getColorDepth()
中描述的相同的误报和漏报
。
process.stdout.hasColors();
// Returns true or false depending on if `stdout` supports at least 16 colors.
process.stdout.hasColors(256);
// Returns true or false depending on if `stdout` supports at least 256 colors.
process.stdout.hasColors({ TMUX: '1' });
// Returns true.
process.stdout.hasColors(2 ** 24, { TMUX: '1' });
// Returns false (the environment setting pretends to support 2 ** 8 colors).
writeStream.isTTY
#
始终为 true
的boolean
。
writeStream.moveCursor(dx, dy[, callback])
#
dx
<数字>dy
<数字>callback
<Function>操作完成后调用。- 返回:<boolean>
false
如果流希望调用代码在继续写入其他数据之前等待发出'drain'
事件;否则true
。
writeStream.moveCursor()
相对于其当前位置移动此WriteStream
的光标。
writeStream.rows
#
number
指定 TTY 当前拥有的行数。每当发出'resize'
事件时,此属性都会更新。
tty.isatty(fd)
#
如果给定的fd
与 TTY 关联,则 tty.isatty()
方法返回true
;如果未关联,则返回false
,包括每当fd
不是非负整数。