4

我正在设计一个包含使用 Xterm.js 的终端的 Web,并希望将字符串传输到服务器。我可以在上面输入一些字符串,但不能使用“退格”、“删除”、“主页”功能。

我尝试自己完成这些功能,但有很多功能需要做。

例如退格

term.on('key', (key, ev) => {
    const code = key.charCodeAt(0);
    if(code == 127){   //Backspace
        term.write("\b \b");
    }
});

我可以删除最后一个字符,但不能删除字符串内...这些功能是我自己做的吗?有没有更方便的模块?

谢谢!

4

1 回答 1

2

简而言之,是的。您必须自己操作缓冲区,没有任何方法可以为您执行此操作。

TL;博士

我实际上遇到了同样的问题。看来所有这些都是缓冲区驱动的,我还没有完全弄清楚如何以自然的方式做到这一点,但是......

模拟左箭头:

this.child.write('\x1b[D');

您还可以通过十六进制添加任何 unicode 字符:\uhhhh

于 2019-09-19T01:26:00.257 回答