2017-06-01 82 views
0

查看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') 
    } 
} 

输出:

enter image description here

我怎样才能让这个end是在结束,halfwayish已经过时了,1在第一行,而不必在终端中滚动?

回答

0

请检查这是否适合您。 编辑后的最终解决方案:

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'); 
    } 
} 
+0

这是行不通的。它将输出行之间没有空格。 – Tom

+0

请检查后编码与console.log('\ r \ n')每个if语句后,并注释掉其他console.log('\ r \ n') –

+0

我希望'结束'在最后,“halfwayish”为一半,“1”为第一行。我已经更新了我的问题,使其更清楚。 – Tom