IO.js TTY

2018-11-28 22:35 更新

Stability: 2 - Stable

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

io.js檢測到它運行于TTY上下文中,那么process.stdin將會是一個tty.ReadStream實例,process.stdout將會是一個tty.WriteStream實例。測試io.js是否運行在TTY上下文中的一個比較好的辦法是檢查process.stdout.isTTY

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

tty.isatty(fd)

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

tty.setRawMode(mode)

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

Class: ReadStream

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

rs.isRaw

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

rs.setRawMode(mode)

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

Class: WriteStream

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

ws.columns

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

ws.rows

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

Event: 'resize'

  • function () {}

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

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號