在Node.js中获取终端的可见行数(或高度)
问题描述:
查看TTY node module,我可以访问process.stdout.rows,它返回“”一个数字,指定TTY当前具有的行数。 “但显然可用者和不的可见那些如下面的代码:在Node.js中获取终端的可见行数(或高度)
let lines = process.stdout.rows
// Clear console
process.stdout.write('\x1Bc')
for (var i = 0; i < lines; i++) {
if (i === 0) {
console.log(1)
} else if (i === Math.round(lines/2)) {
console.log('halfwayish')
} else if (i === lines - 1) {
console.log('end')
} else {
console.log('\r\n')
}
}
输出:
我怎样才能让这个end
是在结束,halfwayish
已经过时了,1
在第一行,而不必在终端中滚动?
答
请检查这是否适合您。 编辑后的最终解决方案:
let lines = process.stdout.rows
// Clear console
process.stdout.write('\x1Bc');
var stop = false;
for (var i = 0; i < lines; i++) {
if (i === 0) {
console.log(1);
} else if (i === Math.round(lines/4)) {
console.log('halfwayish');
} else if (i === lines/2) {
stop = true;
console.log('end');
} else if(stop === false){
console.log('\r\n');
}
}
这是行不通的。它将输出行之间没有空格。 – Tom
请检查后编码与console.log('\ r \ n')每个if语句后,并注释掉其他console.log('\ r \ n') –
我希望'结束'在最后,“halfwayish”为一半,“1”为第一行。我已经更新了我的问题,使其更清楚。 – Tom