如何使用blessed / nodejs创建可滚动框

时间:2016-06-24 17:24:48

标签: javascript node.js user-interface terminal blessed

我无法弄清楚,如何创建一个有福的可滚动框。

https://github.com/chjj/blessed

根据文档,它应该是这样的:

"use strict";

const blessed = require('blessed');

const screen = blessed.screen({
    smartCSR: true
});

let box = blessed.box({
    top: 0,
    left: 0,
    width: '80%',
    height: '80%',
    style: {
        bg: 'red'
    },
    alwaysScroll:true,
    scrollable: true,
    scrollbar: true
});

screen.append(box);
screen.render();

for (let i = 0; i < 200; i++) {
    box.insertLine(0, 'texting ' + i);
    box.screen.render();
}

框窗口显示,它已填满,但没有滚动条。我错过了什么?

1 个答案:

答案 0 :(得分:5)

您的代码是正确的,但您需要更多配置才能使其正常工作。我在您的框中添加了keysvi属性,并为滚动条定义了style。使用以下代码,您应该能够使用箭头键或类似Vi的键映射(j向下移动,k向上移动,g跳转到第一行,G跳到最后一行。)

"use strict";

const blessed = require('blessed');

const screen = blessed.screen({
    smartCSR: true
});

let box = blessed.box({
    parent: screen,
    top: 0,
    left: 0,
    width: '80%',
    height: '80%',
    style: {
        bg: 'red'
    },
    keys: true,
    vi: true,
    alwaysScroll:true,
    scrollable: true,
    scrollbar: {
      style: {
        bg: 'yellow'
      }
    }
});

screen.render();

for (let i = 0; i < 200; i++) {
    box.insertLine(0, 'texting ' + i);
    box.screen.render();
}