IO.js TTY

2018-11-28 22:35 更新

Stability: 2 - Stable

tty模塊主要提供了tty.ReadStreamtty.WriteStream這兩個(gè)類。大多數(shù)情況下,你都不需要直接使用這個(gè)模塊。

當(dāng)io.js檢測(cè)到它運(yùn)行于TTY上下文中,那么process.stdin將會(huì)是一個(gè)tty.ReadStream實(shí)例,process.stdout將會(huì)是一個(gè)tty.WriteStream實(shí)例。測(cè)試io.js是否運(yùn)行在TTY上下文中的一個(gè)比較好的辦法是檢查process.stdout.isTTY

$ iojs -p -e "Boolean(process.stdout.isTTY)"
true
$ iojs -p -e "Boolean(process.stdout.isTTY)" | cat
false

tty.isatty(fd)

如果fd關(guān)聯(lián)了終端,就返回true,反之返回false。

tty.setRawMode(mode)

已棄用。使用tty.ReadStream#setRawMode()(如process.stdin.setRawMode())代替。

Class: ReadStream

一個(gè)net.Socket子類,代表了一個(gè)TTY中的可讀部分。一般情況下,在任何io.js程序(僅當(dāng)isatty(0)true時(shí))中,process.stdin將是僅有的tty.ReadStream實(shí)例。

rs.isRaw

一個(gè)被初始化為false的布爾值。它代表了tty.ReadStream實(shí)例的“原始”狀態(tài)。

rs.setRawMode(mode)

mode必須為truefalse。它設(shè)定tty.ReadStream的屬性表現(xiàn)得像原始設(shè)備或默認(rèn)值。isRaw將會(huì)被設(shè)置為結(jié)果模式(resulting mode)。

Class: WriteStream

一個(gè)net.Socket子類,代表了一個(gè)TTY中的可寫部分。一般情況下,在任何io.js程序(僅當(dāng)isatty(1)true時(shí))中,process.stdout將是僅有的tty.WriteStream實(shí)例。

ws.columns

一個(gè)表示了TTY當(dāng)前擁有列數(shù)的數(shù)字。這個(gè)屬性會(huì)通過resize事件被更新。

ws.rows

一個(gè)表示了TTY當(dāng)前擁有行數(shù)的數(shù)字。這個(gè)屬性會(huì)通過resize事件被更新。

Event: 'resize'

  • function () {}

當(dāng)列屬性或行屬性被改變時(shí),通過refreshSize()被觸發(fā)。

process.stdout.on('resize', function() {
  console.log('screen size has changed!');
  console.log(process.stdout.columns + 'x' + process.stdout.rows);
});
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)