gpt4 book ai didi

javascript - 向终端提示添加颜色会导致出现大的空白

转载 作者:数据小太阳 更新时间:2023-10-29 06:12:43 25 4
gpt4 key购买 nike

我正在编写一个简单的 cli 脚本,并想为以下代码添加一些颜色:

rl.question('Enter destination path: ', function(answer) {
// ...
});
rl.write('/home/' + user + '/bin');

在终端中显示:

Enter destination path: /home/jmcateer/bin_

但我想为提示添加一些颜色,我做了以下操作:

rl.question('\u001b[1;36mEnter destination path:\u001b[0m ', function(answer) {

});
rl.write('/home/' + user + '/bin');

命令行提示符最终显示:

Enter destination path:                 /home/jmcateer/bin_

它可以工作,但我不希望有大量空白。有没有人知道如何处理这个问题?

编辑:

我无法通过退格删除空格...当我尝试使用退格键时,空格会像这样跳到另一端

Enter destination path:                 /home/jmcateer/bin_
Enter destination path: /home/jmcateer/bi _
Enter destination path: /home/jmcateer/b _
...
Enter destination path: _

此时退格键无效。

最佳答案

当你调用 rl.setPrompt(prompt, length) 时没有第二个参数,the internal _promptLength variable is set to the length of the prompt string ; ANSI X3.64 转义序列被解释。内部 _getCursorPos 方法根据 _promptLength][3] 计算光标位置;因此,在长度中包含转义序列会导致光标定位得比它应该的更远。

为了完全解决这个问题,Node 的 readline 库应该在设置 _promptLength 时解析 ANSI 转义序列。要解决此问题,您可以手动计算不带转义序列的提示字符串的长度,并将其作为第二个参数传递给 rl.setPrompt(prompt, length)

关于javascript - 向终端提示添加颜色会导致出现大的空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12075396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com