Node.js:防止光标换行
Node.js: Prevent cursor wrapping
使用process.stdout.write
,光标位于输出字符串的末尾
但是,当您在端子的右边框上书写任何内容时,光标将放置在下一行的开头。
如果您希望通过填充整个终端来为应用程序提供背景,这会导致问题,因为它会滚动窗口。
有一种变通方法,在写入右下角的字符槽后,向上滚动一行,但这似乎并不适用于所有平台,即cmd。
从描述中,您似乎在谈论ansi.js
,它(正如ANSI转义序列中所指出的,在接受的答案中,不会打印到Windows上的stdout)依赖于libuv
之类的库。
该库实现了适量的转义序列。但参考ansi.js的源代码,它使用转义[1 在curses应用程序中,这类操作是通过在倒数第二列的右下角写入字符来完成的,然后使用插入字符将其放置到位。但libuv
中的一条评论解释了原因: * Normally cursor movement in windows is relative to the console screen buffer,
* e.g. the application is allowed to overwrite the 'history'. This is very
* inconvenient, it makes absolute cursor movement pretty useless. There is
* also the concept of 'client rect' which is defined by the actual size of
* the console window and the scroll position of the screen buffer, but it's
* very volatile because it changes when the user scrolls.
ansi.js
和libuv
都没有实现这一点。
- 如何在映射数组中添加换行符
- JQuery:向多个匹配结果添加换行符的最简单方法
- 在文本区域中使用jQuery.text()保持换行符
- Internet Explorer中的文本换行错误
- 从Javascript警报中防止换行
- javascript替换换行符和特殊字符
- 换行符拆分返回“”;未定义”;
- javascript中换行的regexp
- 编辑数据库输入时在文本框上换行
- 在 JS 中添加字符串之前强制换行
- 如何使用web浏览器在NoSQL数据中呈现换行符
- 换行符插入jquery选择器
- jquery使用val()复制值似乎可以删除换行符
- 文本区域-获取每一行,找到换行符
- 处理字段中带有换行符的csv文件-node.js
- 使用jquery将单个换行符替换为span元素
- javascript/jQuery:在title中添加换行符——在IE9中有效,但在IE8中无效
- 测试光标是否位于文本区域中的第一行(使用软换行符)
- Node.js:防止光标换行
- 按回车键时,在光标位置添加换行符